TA的每日心情 | 奋斗 2013-10-24 10:55 |
---|
签到天数: 10 天 [LV.3]偶尔看看II
|
什么是系统分析?
在软件行业中,大家都认为系统分析员应该是个非常高深的角色,甚至很多系统分析员在一些大公司里面的待遇要比部门经理还要高。所以,也成为很多程序员人生中的一个目标。
定义
系统分析的工作,在最初的定义中,系统分析员是将用户的原始需求转换成程序员可以理解的形式,由程序员来进行原始编码实现。
系统分析员一般要完成三个任务。
1)需求调研:带领需求调研人员与用户接触交流获取完整的用户需求。
2)需求分析:分析用户的需求,同时不断与用户进行交流,形成需求的稳定版本---在这里也就是通过对需求的分析获得系统整体架构,然后指导分析人员构建完成分析模型,当然这也是需求管理重要的一步。
3)设计:指导设计人员熟悉分析模型,并据此完成设计模型的开发工作,然后交给程序员进行编码实现。
现实状况
在国内的实际工作中,开发人员目前往往是一人多职,每一个人几乎是从需求调研开始一直做到编码结束的。而国内的项目经理则更要求是多面手,从项目管理到需求,分析,设计,编码,几乎要求无所不会,无所不能才可以。
因此往往造成工作失去计划,因为项目经理太忙没有时间制定计划,或者是制定了一个形式上的计划,以至于项目计划本身的可操作性就非常差。
随后,因为项目经理本身还要参与开发,使得他没有精力来进行项目过程的监控管理,没有时间跟踪其它开发人员的开发进度,检查其它开发人员的开发结果的有效性,最终导致整个项目的完全失控,或者远超时限的延期。
一些建议
对于一些比较大的工程项目,或者一些可以进行比较规范的管理的软件公司,本书有如下建议。
如果要进行真正的工程化开发,在软件成为一个产业的时候,原始方式就已经不可用了。因为它使得很多高素质的人员不得不从事一些比较机械化的工作,无法更好地发挥一个高层次人才的作用,造成很大的资源浪费。
比如说:对于一个简单的递归调用,完成一个基本数组的增加等这样的一些任务,每一个现在的开发人员都可以轻而易举地做到,但是这样的事情让开发人员来做,往往是大材小用。因为系统分析员也不得不从事普通的编码工作,来撰写这样的简单过程,项目组应该让他们把自己的精力集中在一些难点,以及一般的开发人员无法解决的问题上。
现在,开发人员既要了解业务,又要熟悉开发,这要求的确是很高的。如果项目组进行了人员的职能划分,这样就可以大量减少开发人员对业务的了解,而提高开发效率,另外一部份人(下面是需求人员)专门从事需求工作来对客户的业务进行了解。
在进行分析模型开发工作时,建议由系统分析员带领需求人员进行绘制,设计人员参与讨论------主要是为了让设计人员明白需求中一些需要特别注意的问题,了解需求中与自己相关业务的基本过程。
如果一个公司职能划分足够明确清晰,并且开发人员素质达到了一定的层次,分析模型就只需由需求人员来给制,设计人员只需要负责开发设计模型就可以了。
摘自《软件工程之全程建模实现》 |
|