系统工程引论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.2 需求的开发问题

问题明确后就要去发现需求Sage A P,Armstrong Jr J E.Introduction to Systems Engineering,John Wiley & Sons,2000.。所谓系统的需求,简单地说就是希望系统干什么。

当委托者或者用户提出一个系统工程项目时,他们有可能对这个系统已经形成了概念,这种概念可能是极其粗浅的,但终归是概念。但也可能他们只是有一种系统的直觉,还没有形成概念,需求分析过程必须使他们把直觉转化为概念。而需求发现的过程就是这种转化的过程。

从需求的内容来说,可以分成两个大类。

(1)功能需求。系统为了达到它的目标,需要具备一定的功能。例如一个运输系统就需要具备运送旅客或者货物的功能,一个信息系统需要有采集、存储、处理和提供信息的功能。所谓功能需求,就是这种要求。

(2)非功能需求。这种要求不是直接关系到系统目标,但还是属于必需的要求。例如在下列方面的要求。

① 可靠性。

② 可用性。

③ 可维护性。

④ 效率。

⑤ 节能性。

⑥ 无污染。

⑦ 适应性,等等。

一般来说,这里涉及环境对系统的需求或者说对系统的约束,而所谓环境,有项目环境与宏观环境之分。项目环境指的是与项目有关的环境条件,而宏观环境指的是范围更大的社会、经济、资源、法律乃至于人文环境。

在我国颁布试行的《工程项目管理导则》中国工程咨询学会.工程项目管理导则(试行).天津:天津大学出版社,2010.中,列举出外部的约束包括下列方面。

(1)发展规划引导和约束。

(2)产业政策引导和约束。

(3)技术政策引导和约束。

(4)自然资源条件约束。

(5)生态环境条件约束。

(6)土地条件约束。

(7)水资源条件约束。

(8)能源条件约束。

(9)社会条件约束。

需求又可以分为:

(1)必须满足的需求。

(2)希望满足但不是必定要满足的需求。

(3)可满足或不满足的需求。

其中第一类是必须保证的。第二类是在条件许可时应该尽量满足的,这就决定于付出的代价是否值得。第三类则是在不需要付出(或极少付出)而能满足就更好的。

还有的把需求分成:

(1)操作需求。这是系统为完成其功能所要进行的操作所提出的需求。

(2)维护与支持需求。这是对操作需求的保证。

上面列举的各类需求有很多是交叉的,还很难把它们加以明确区分。但在需求分析过程中,需要时时考虑到它们,因为有些约束性的需求是不太明显的,容易被人忽略。

与需求分析有关的活动可以分成两大类:一类可以称为需求的发现或者称为需求的开发,另一类可以称为需求的管理。需求的开发包括需求调查、需求分析与需求定义。

合理的需求不单来源于委托者(客户),而且是通过委托者(客户)与开发人员之间有效的交流与合作而形成的。

值得注意的是,应该在一开始就弄清楚:需求的提出是从谁的利益出发的。现在的社会存在着多个利益主体,它们从自己的利益出发提出需求是可以理解的。但是从整体和全局出发,就会发现有的提出是合理的,有的是不够合理甚至是不合理的。例如需求是在市中心建设一个易燃易爆产品的生产场所,就是不合理的。

一般可以让委托者(用户)先提出,在提出后加以分析取舍。

培养正确的需求意识是委托者(客户)和系统分析与开发人员都需要努力去做的,而系统分析与开发人员在这个阶段应该发挥更加积极主动的作用。在参与具体的项目时,分析人员应该主动学习一些项目所涉及的具体应用领域的基本知识.以更好地理解用户的需求。

由于不可能一次就完全了解用户的需求,而且在系统开发过程中还需要不断地请用户参与,因此与用户的沟通是需要贯穿始终的。需求分析人员需要对用户解释一些做法的必要性和合理性,以得到用户最大的支持与合作。