软件需求工程学习笔记(四)
1. 需求基本概念
����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������� &����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; IEE����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������E 610.12-1990标准采用的Dor����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������fman和Thayer的需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������定义为:(1)用户解决某个问题或����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������者达到某个目标所需要的条件或能力;����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������(2)一个系统或系统组件为了实现某个契约、����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������标准、规格说明或其他需要遵循����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������的文件而必须满足的条件或拥有的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������能力;(3)前两项中所描述的条件或能力的文档化表����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������示。
&nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp;  ����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; Jones 1994年给����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������出的定义是“用户所需要的����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������并能触发一个程序或系统开发工作的说明”。Ala����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������n Davis 1993年给出的定义是����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������:“从系统外部能发现系统所具有的满足于用户的特����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������点、功能、属性等”。Sawyer 1997年给出����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的定义是“需求是指明必须实现什么的规格说����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������明。它描述了系统的行为、特性或属性,是开发����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������过程中对系统的约束”。Suzanne和Ja����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������mes给出的定义是:需求����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是产品支持其拥有者的业务所必需完成的事,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������或让拥有者接收并感兴趣所����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������必须具备的品质。需求之所以存在,要么是因����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������为该类型的产品要求某些功能或品质,要么因为客户����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������希望该需求成为交付的产品的一部分。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������杨巨龙给出的定义是:(1)站在顶层和全����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������局的角度从问题和目标开始����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������全面细致地对业务进行分析和描述����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������;(2)在业务分析的基础上将信息系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统的宏观设计也纳入到分析中����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,并描述出业务与信息系统的关系;(3)用户����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������解决问题或达到目标所需的条件或权����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������能;(4)系统或系统部件要满足合同、标准、规范或����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������其他正式规定文档所需具有的条件或权能;(5)����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������一种反映上面4部分所描述的条件或权����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������能的文档说明。张维明等给出的定义是:需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������是一个对用户意图不断进行揭示和判断的过����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������程,其目的在于细化,精化产品����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的作用范围,确定拟开发系统的功能和性能、约束、环����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������境等。需求应是问题信息和系统行为、特性、设计����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������及制造约束的描述的集合。潘加宇对需求的描述����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是:需求聚焦于待开发系统的边界,详����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������细描述系统要卖得出去必须具有的表现,即功能和����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������性能。此外,还有这样的一����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������些定义:需求是人的一种主观心理状态,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������是人们为了延续生命和发展自身,����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������并以一定方式适应生存环境而产生的对客观事����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������物的要求和欲望。需求是人们对����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������事物的期望。需求是人们对系统的主观期����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������望,真正的需求存在于人们的脑海中,任何文����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������档形式的需求仅仅是一个模型、一种叙述����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������或描述。涉众通过这种描述能够����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������对系统取得一致的理解。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������p; &nbs����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; IEEE公布的定义包括从用户角度(系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统的外部行为)和开发者角度����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������(一些内部特性)来阐述需求。从用户角度����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������来说,需求就是“从系统外部能发现系统所具有����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的满足于用户的特点、功能及属性等”。它强����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������调的是产品和何种形式,而并非产品����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是怎样设计、构造的。从开发者角度来说,需求就是����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������“指明必须实现什么的规格说����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������明。它描述了系统的行为、特����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������性或属性,是在开发过程中对系统的约束”。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������Jones 1994、Alan Da����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������vis 1993 和Sawye����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������r 1997提出的需求定义是从系统角度来看����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的。这些不同形式的定义分别从用户或系����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������统的角度对“需求”进行了描述,定义涵盖了系统����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的外部条件和内部特征,以����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������及用户、系统、需求之间的联系。这些定义分别����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������从不同领域分析需求,但是其核心内容是“����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������系统应满足的外部条件或内部具备的功能”����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������。实际上,没有一个清晰、毫无二义性的“����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������需求”术语存在,所谓的“需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求”,是人们对系统的一种����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������主观期望,真正的“需求”存在于人们的脑海中。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������没有绝对的“需求”,需求总是从一定的视����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������角描述。需求是用户(人或系统)为解决问题或达成����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������目标所需要的特性或条件。
2.市场需求、产品需求和组件需����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求
����� �������Ƴ����������� �������Ƴ����������� �������Ƴ����������� �������Ƴ������ &nb����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������sp; 在具体的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������软件项目中,往往会从市场需求、产����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������品需求和组件需求这三种视角����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������观察软件需求。市场需求是从客户的视角描述的对一个产品的需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。它用客户或用户的语言描述����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������产品的用途和体验。它描述为什么要实现这个项目。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������产品需求是从方案实现的角度描述对一����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������个产品的需求。产品需求描述不同用户可以用这个产品����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������做什么,市场需求和客户期����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������望怎样在这个产品中实现。它以产品的语言����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������描述特性,定义方案域和优先级。组件需求是从实����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������现和后期方案的角度描述的对产品组����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������件的需求,描述怎样通过组件实现产品需求。组件����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求是产品需求或系统的递归式优化。这三种视角����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������在方案优化和抽象过程中产生����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������。市场需求是在需求规格说明书中描����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������述的,许多项目是对现有产品的变更。市����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������场需求也描述这些变更,而不总是����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������描述从零开始的项目或产品的需����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������求。确定变更首先要对目标用户群和目标细分市场进����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������行分析,准确把握它们的需要和用途。我们经常实现����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������一些看上去很有趣的功能或变更,但它们的市场����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������太小。所以,要从经济的角度为它们设定合适����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������的优先级。市场需求是从利益相关者的不同视角开发����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������可行的业务需求,产品需求是从不同����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������用户的角度看的。产品需求和组件需求是互为条件的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,这两种视角不是互斥的,而是互相依赖的。这三种视����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ������角依赖于方案框架。
3.软件需求产品的特性
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 软件需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求的特性是说明软件需求内容和形式上应具有的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������属性。软件需求在内容上应具有完整性、正确性、����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������可行性、第一性、前置性、必要性、无二义性����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、可靠验证性等特性;软件需求在形式上应具����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������有规则性、一致性可修改性、����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������可追踪性等特性。完整性是指每一个软件需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������都必须将所要实现的功能描述清楚,以使开发人员获����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������得设计和实现这些功能所需的����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������定量信息。正确性是指软件需求中的每一项需求都必����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������须准确地描述其开发的功能。第一性是指业务分析工����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������作是软件需求第一重要的工作。前置性是说在软����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������件需求中应将信息系统的体系架构设计����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������、数据库设计、安全设计等设计工作前����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������移到软件需求中,进行初步的宏观设计和顶层设计����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。这么做的目的是为了避免信息孤岛和重复建设����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的问题。可行性是说软件需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������中的每一项需求都是要在已知系统和环境����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������的月三种全部可以实现。必要性是说软件需求的每一����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������项需求都应把客户的真正所需要的和最终����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������系统所需遵从的标准记录下来。等����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������级性是说要对软件需求进行优先级排����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������序。无二义性是说对需求文档中重复出����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������现的名称上相同的词汇只能有一个明确统一的解释。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������可验证性是说,对于每一条����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������需求,都应该有可测量的验收标准。规则性是说软件����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������需求内容应按照格式化文档进行填写。一致性����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������是说一个需求和另一个需求、一����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������个文档和另一个文档中不能����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������存在同名不同义的矛盾。可修改性是指对需求分析文����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������档进行修改时应对每一需求变更进行历����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������史记录。可追踪性是指应该能在每项软件需求����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������与它的根源、设计元素、源代码����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、测试用例之间建立链接关系。以上特性是良好����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求所应有的必要属性。不良定义的需求会导致软件项目的延期或取消。
&����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������nbsp;  ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; 第三方机构Standish Group发布����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的1994年度CHAOS R����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������eport报告中给出了软件项目成败因素分����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������析的报表。从表中数据可以看出:在项目十����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������大成功保证中有3个是直接与需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求相关的,累计权重达到37.1����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������%;而十大败因中与需求直����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������接相关的有5个,累计权重高达51����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������.6%,需求问题对项目影����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������响程度之高可见一斑。Ebert等人的最新研究结����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������果显示,大多数软件项目的取����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������消是因为没有足够清楚的需求和没有很好的控����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������制变更,在失败的项目中,和不良需求相关联����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������的典型问题需求包括:(1)隐含的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求;(2)缺少的需求;(3)后期才明����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������确的需求;(4)从一开始就有错误或不完����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������整的需求基线;(5)肤浅和有歧义的需求����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������;(6)不确定和不明确的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������需求;(7)不良的变更管理;(8)对于基线����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������和变更缺少文档;(9)员工转向新领域等。
4.需求工程的产生与发展
&n����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������bsp; 在20世纪����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������60年代计算机发展的初期,相对于硬件的通����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������用性来说,软件是为每个具����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������体的应用而专门设计的。由于软件规模普遍较小����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,程序的编写者和使用者往往是相����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������同的。在这种个体化的软件环境中,软件的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������设计通常是在人们的头脑中进行的一个隐����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������含的过程,除了程序清单外,没有保留其他的文档����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������资料。
&����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; ����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������随着计算机系统的迅速发展,在20实际����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������60年代中期到70年代中期,出现了制造软件的“软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������件作坊”,形成了广泛使用的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������软件产品。各种“软件作坊”沿用早期形成的个体化软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������件开发方法。随着计算机应用的普及,软件����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������数量急剧膨胀,程序的个性化特征导致了一����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������系列的问题,出现了所谓的“软件危机”。����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������软件危机的出现推动了软件工程����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������概念的形成,人们借鉴传统工业的成功����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������做法,通过工程化的方法来开发����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������软件。软件工程意味着在软件开发的过程中引入软件生����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������命周期的思想和结构化的软件开发方法,增强软件开发����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������过程中的管理机制,保障软件开发技术����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的严格落实。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; &nbs����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������p; 在软件开发的过程,最初要做的工作����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是问题定义,也就是确定要解决的问题是什么;然后进����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������行可行性研究,决定该问题是否存在一个����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������可行的解决办法;接下来进行需求分析,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������也就是深入、具体地了解用户的要求,在所����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������要开发的系统必须做什么的问题上和用户取得完����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������全一致。经过上述软件定义时期的准备工作����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������才能进入软件开发时期。
&nbs����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 和“软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������件危机”出现的原因类似,由于缺乏需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������开发经验的积累,需求开发的过����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������程没有统一的、公认的方法����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������论和规范指导,缺乏有力的工具支持,做好充����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������分验证等原因,导致后续的软件����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������开发阶段没有切实可行的依据,软件质量得不����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������到保证。因此,人们借鉴软件危机的解决思路����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,提出了需求工程的设想,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������即按照工程化的原则和方法����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������来开发、维护需求,提高需求质����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������量和开发效率。在20世纪80年代中期形����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������成了软件工程的子领域——需求工程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。
&����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; 需求工程涉����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������及到软件系统的目标、软件系统提供的服务、软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������件系统的约束和软件系统运行的环境。此外,它还涉����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������及这些因素和系统精确规格说明以及系统进����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������化之间的关系,并提供现实需要和软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������件能力之间的桥梁。进入20世纪90年代以来,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求工程成为研究的热点之����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������一。需求工程技术的应用范围不断����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������扩大,一般的信息系统建设、复����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������杂系统分析等都开始将需求分析作为系统开����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������发的重要阶段。与此同时,关于需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求工程技术的研究也逐渐发展起来。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������从1993年起每两年举办一次需求工程国际研讨会(����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������ISRE),自1994年����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������起每两年举办一次需求工程国际会议(IC����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������RE),在1996年Springer-V����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������erlag发行了一本新的刊物Requ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������irements Engineering。与����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������此同时,一些关于需求工程的工作小组也相继成����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������立,如欧洲的RENOIR等。
5.需求工程的定义
����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������ 德国学者Eber����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������t对需求工程给出的定义是:需求工程是系统性地����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、规范地进行需求获取、编写、分析、协����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������商、核实和管理,使期望和目标在一个产品中实现����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������bsp; 这个定义的����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������内涵是:(1)需求工程是一个����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������工学学科,它是系统工程和软件工����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������程的交叉学科,它的方法和技术来����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������源于多个学科领域。(2)需求工程的生命周期伴随产����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������品的生命周期。需求工程不仅发生在新产品的开����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������发过程中,也发生在对已有产品的改造����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������过程中。(3)需求工程与项目密切相关,需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求只存在于开发这个需求的项目的上下文中。(4)����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������需求工程作为规范也是项目管理����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������规范的一部分,它优先遵循项目管理的规范。需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������求工程的目标不是编写完美����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的需求,而是作为功能在一个产����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������品或方案中具体应用。(5)需求工程是����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������提出问题并解答问题的过程。它提出并解答软����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������件系统的目标和如何达标的问题。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������
����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������� &nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 德国学者Phol提出����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������了将需求工程划分为3个维度的观����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������点。Phol认为需求工程具有3个维度����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,它们是内容维度、共识维度和文档化维度。内容维����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������度被用来理解所获取的系统需求。在����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求工程过程开始时,除了系统愿景,仅有少����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������量系统需求是已知的,而需求工程过程结束时,需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求工程师已理解了所有的需求。共识维����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������度与相关涉众就已知需求的理解取得共识的程度有����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������关。文档化维度采用各种文档化或规格说明的格����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������式对系统需求进行文档化和规约����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������描述。文档化维度意味着将需求活动中抽取的以非正式����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的方式记录的信息进行重新的整����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������理和描述。由此导出的需求工程的基本目标定义为:����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������需求工程是一个协作式的、不断迭代以及����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������增量的过程,旨在确保:(1)所有相关的����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������需求都在所需要的细节层次上����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������得到了清晰的了解和理解;(2)在相关涉众间建立����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������起对系统需求的充分共识;(3)所有����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求都依照相关的文档化/规约格式和规范进行了����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������文档化和规约描述。
6.需求工程的研究实例
&nbs����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������p; 如上文����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������所述,需求工程描述软件工程和系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统工程范围内的规范,需求工程学科的准����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������则是来自实践的规范性准则。同时,需求的不确定性也����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������使需求工程作为规范受到强烈的不确定性的影响����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,许多常规的工作也充满了探索性的因素。正如Eb����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������ert所说,需求工程没有封闭的理论,它的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������法则是经验性质的。基于这个����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������事实,有必要对现有的需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������工程理论进行全面的学习和研究,为后续的研究����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������提供符合实际的信息资源材料。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������bsp; &����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; 下面将介绍德国学者Pho����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������提出的需求工程框架,中国学者张维明����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������等人的提出的军事信息系统需求����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������框架,英国学者Robert����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������son夫妇的Volere需求过程,以及中国学者徐����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������峰提出的SERU需求过程框架和杨巨龙����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������提出的基于信息资源规划的需求工程。
 ����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; 6.1 Phol需求工程框架
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������bsp; 在Phol����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求工程框架中,需求工程的问题域被划分为5����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������类对象,它们分别是:系统上下文、需求工程的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������核心活动、需求制品、需求确认和需求管理。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������p; &n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������bsp; 系统上下文是系统所����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������处的环境中与定义、理解和解释系统需求相关的那些����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������部分。系统上下文由4个上下文刻面组成����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������:主体刻面、使用刻面、IT����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������系统刻面、开发刻面。
&nb����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������sp; &nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp; 主体刻����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������面包含了系统上下文中与系统相关的对象和事件。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������使用刻面包含了与人或其他系统对����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������本系统使用相关的所有方面。IT����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������系统刻面由运行与技术环境的所有方面组成,包括那些����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������定义了如何使用各种技术与运行环境的约束或����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������指南的仿真与策略。所有这些技术和运行环����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������境以及由它们所导致的各种约束影响着����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������系统的需求定义。开发刻面包含了与系统开发过程相关����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的上下文方面,包括过程准则与约束等确保软件系统质����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������量的手段或技术。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������p; &����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; 目标、场景和����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������面向方案的需求是需求工程中����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������的三种需求制品。
����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ������� &nbs����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������p; 目标是关于系统的����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������目的、属性或者使用的意图。每一个需求工程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������都开始于一个致力于改变当前状态的目标����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������。目标导向是需求工程成功的关键����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������。系统愿景是系统高层目标的定义。其����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������他所有目标都是对系统愿景的精化。目标����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������模型适合用来显示记录不同涉众的期望����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������及目标之间的依赖关系。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 场景记录了����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������满足或不满足某些目标的一组系统����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������交互序列。场景描述了一个目标(或者����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������一组目标)被满足或者未被满足的一个具体实例。它提����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������供了一个或多个目标的具体细节。一����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������个场景通常定义了一系列为满足目标而执行的交互����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������步骤,并将这些交互步骤与系统上����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������下文相联系。场景是介于抽象模型和现实之间的中间层����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������抽象。场景比目标以及功能、数据和行为����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的概念更加具体,同时,场景自身也覆盖了多����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������个不同的抽象层次。涉众可����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������以根据所预期的在需求工程过程中的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������场景使用方式,来选择合适����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的场景描述抽象层次。场景特别适用记录关于上下文的信息。场景����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������中记录的典型上下文信息包����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������括参与者、角色、目标、前置条件、����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������后置条件、资源以及位置。在上下����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������文的主体刻面中,场景可以用来描述系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统中所表达的关于上下文对象的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������信息更新。在上下文的使用����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������刻面中,场景被用于刻画使用工作流����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。在IT系统刻面中,场景可以被用����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������来刻画如维护、备份之类的过����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������程。在开发刻面中,场景可以被用来描述����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������修改该系统的工程师与系统之����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������间的交互序列。
 ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������; 面向方案的需求定����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������义了系统需要实现的属性和特征����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������。面向方案的需求定义了系统的数据视图、功能视图和����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������行为视图。数据视图描述了数据方面的实����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������体以及实体关系和属性。功能视图通����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������过使用功能性模型描述面向方案的需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������。系统的功能模型按照功能以及功能与数据存储之间����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的数据流来描述系统需求。行为模型通常用来描述系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������统的反映性行为,主要通过(1)状态����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������;(2)事件;(3)状态转换来定义����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������系统的动态行为。
 ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������; ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������需求工程的核心活动是文档化、抽取和协商。����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������
 ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������; 文����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������档化活动旨在记录执行需求工程核心����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������活动或横向活动时所抽取或开发的重要信息����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������。
&����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; 需求抽取����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是需求工程的3个核心活动之一。需求抽����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������取活动的目标是:(1)识别相关的需求来源;(����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������2)从所识别的来源中抽取����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������现有的需求;(3)开发新的创新����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������性需求。
&nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������sp; 需求协商����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������是需求工程中3个核心活动之����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������一。协商活动的目标是:(1)识别冲突;(2����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������)分析每个冲突的原因;(3)通过适当的策����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������略解决冲突;(4)记录冲突解决方案和原����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������理。通过需求协商活动可以实����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������现对于所有已知的系统需求在所有涉众之间达成����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������充分的共识。
&nb����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������sp; ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������ 确认活动的目����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������标是:(1)确认对系统上下文的考虑;(����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ������2)确认需求工程活动的执行;(3)确����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������认所创建的需求制品。当确认对系统上下文的考虑����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������时,需要检查与所有4个上下����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������文刻面相关的上下文是否已经被充分考虑����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������到,同时被正确地文档化。当确认需求工程活动的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������执行时,应遵循过程标准、指导和活动描����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������述来进行确认。当确认所创建����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������的需求制品时,需要确(1)确认内容;(2)确认文����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������档化;(3)确认共识。这三个确认方面与需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������求工程的内容维度、文档化维度和共识维度����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������相关。
����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������  ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������; 管理活动必须考虑以下3个主要方面:(1)上下����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������文变更的识别和管理;(2)需求工程活动的管理����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������;(3)需求制品的管理。对于上下文变更的管理����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������,主要通过观察的技术进行。����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������对于需求工程过程及其活动的管理,主要通过顺����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������序的基于阶段的管理方法或迭代的基于需求制品的管����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������理方法。对于需求制品的管����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������理,包括三种必不可少的管理活动����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������:(1)建立需求的可追踪性;(2)需求����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������的优先级排序;(3)管理需求制品的变更。
 ����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������这五类对象的内在联系是:需求工程师立足于系统����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������上下文,从事需求工程的核心活动,得����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������到需求制品。横切活动用来支撑核心活动,并确保����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������需求工程的结果。
 ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������; 6.2军事信息系统的需求工程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������
 ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; 军事信息系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统需求工程框架由需求工程的内容模型、需求工程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的过程模型、需求工程的方法模型和需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������工程的工具这四类对象构成����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。
����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������� 内容模型定义了系统����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求的范围、层次以及类型����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������等方面的信息,对需求内容进行系统的、合理的分类����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。建立内容模型着眼于需求的理解和组����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������织以及需求的获取、描述、验证及����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������管理。
����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������� 过程模型主要定义信息����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������系统需求论证人员在需求论证过程中所采取的步骤����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������和程序,从过程上规范方法使用的顺序、要求交付的文����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������档资料以及各个阶段完成的标识����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������等。过程模型的定义与控制是为了保证需求论证����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������活动的基本质量。方法模型主要定义信息系统需����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������求论证的各个阶段所采用的各种技术手段或算法,方法����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������模型是与过程相关联的方法体系。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������方法模型为各种需求内容的论证提供了基本思����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������路和步骤。方法模型的定义是为了����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������提高需求论证的质量和效率。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 辅助工具以计算����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������机软件的方式实现了方法模型中所定义的各种����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������方法,并且通过数据之间的约束关����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������系体现了过程模型所定义的流程,为需求论证����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������人员提供了自动或半自动的����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ������支撑手段,提高了需求论证的效率、科学性����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������和正确性。需求工程的内容模型基于多视����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������图的需求分类方法对需求进����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������行了分类。图展示了基于Zachman����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������多视图框架对需求内容的分类,一共包含����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������15个需求产品。根据视图主体,需求的内容又����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������分为四个层次,分别是:业务需求、信息需求、系统需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������求和技术需求。这四种需求之����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������间的关系如图所示。
&nb����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������sp; &nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp; 过程是有组织地将输入转����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������变为输出的一系列的活动集合。要开发高质量的需求模����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������型与成果,必须按照一个系统化和严格����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������化和严格有序的过程来管理和控����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������制需求开发进程。需求工程过程框架如图所����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������示。需求过程的每个阶段都有适合于当����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������前阶段的方法。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������bsp; 需求获取是一����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������个确定和理解不同用户类的需要和限制的信息收集过程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。在需求获取的过程中,常采用下����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������列方法和技术:(1)会谈;(2)调����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������查问卷;(3)观察记录;(4)组织文档����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ������;(5)使用用例;(6)����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������快速原型法;(7)联合会议记录����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������等。在这些传统的需求获取方法之外����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������,军事信息系统需求工程方法的研����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������究者还提出了(1)基于综合微观����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������分析机制的需求获取方法;(����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������2)基于场景的需求获取方法;(3)三维互动采掘����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������方法等。
 ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������� 需求建模的重要目的是要理解系统����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������将处理的问题,准确地获取用户的需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������;同时,也是为了让相关人员能理解和评审需求。需求����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������建模包括结构建模、行为建模、数据和内����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������容相关的需求建模和其他需求建模。行����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������为建模方法包括:(1)IDEF0图;(2)����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������基于事件模型;(3)数据����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������流图;(4)IDEF0/UC����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������M集成等。数据/内容建模方法包括(1)基于本体的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求建模方法(E-R)图����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������;(2)IDEF1X方法;(3)面向对象的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求建模方法等。
&nbs����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������p; ����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������� 需求验证是通过对需求进行审查、确认、测����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������试、建模、执行、分析和评价,确定需求文����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������档中的需求在逻辑上是否一致,在性能上是否达到最优����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������或满足用户要求。需求验证的过程如图所示。需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������验证的方法包括结构化文本����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、决策表和决策树、数理逻辑和IDEF3方法等。����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������对于业务时序需求的验证,亦可采用消息时序图和对����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������象Petri网的方法。
&����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������nbsp; 需求管理����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的着眼点在于管理策略和规则的制定����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������以及需求管理工具的开发。在进行需求管理时,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������主要是借鉴现有的管理方法和技术。常用的参考模����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������型包括ISO9000,CMMI,RUP统一过程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������和REPEAT模型等。需求变更可界定为信息系统需求描述文����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������档被确定后,在执行过程中,在满����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������足用户期望以及相关约束条件����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的前提下,对需求要素进行调整����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������与修改。需求变更的主要原因分类如图所示。需求变����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������更影响结果如图所示。
����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������� ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������� 从需求数据存储形式来����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������划分,需求工程工具通常分为两����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������类:一类是以数据库为核心;另一类是以����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������文档为核心。以数据库为核心的需求����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ�������工程工具把所有的需求、属����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������性和跟踪能力信息存储在数据库中。以文档为����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������核心的需求工程工具通常使用字处理程序制作和存储����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求数据。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������p; 6.3.Volere需求过程
&����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; &����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������nbsp; Volere需求过程是一种旨在指����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������导需求工程师成功地发现正确完����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������整的需求,收集、验证需求,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������并编写需求文档的过程,这是针对得到提交产物的一����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������个指南,是一种提交产物驱动的工作集合。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������bsp; 项����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������目启动工作为需求发现工作奠����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������定基础,并确保项目成功所需要的资����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������源都已经到位。在项目启动的工作中,主要的涉����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������众聚在一起,对关键的项目问题达成一致����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������意见。项目启动工作确定项目业务����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������问题的范围、涉众和项目目标,同时对项目����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求部分所涉及的成本进行需求预估。
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; &nbs����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 如果项目启动工作达到了预期的目标,就可以����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������开始网罗需求的活动。在网罗需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求的过程中,需求工程师对业务问题范围内的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������工作进行研究,学习和理解业务的功能,并在此基础����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������上划分业务用例。业务用例代表了响应业务事件所需要����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的功能。对系统本质的理解建立在对业����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������务事件的理解和分析基础之上。系统存在的根����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������本理由来自于拥有这个产品之后底层业务����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的改变。通过界定发生改变的业务的范����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������围就可以界定产品的范围,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������从而确定合适的产品用例场景,并写下����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������需求和用户故事。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������bsp; ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������ 场景展示了业务过程的功能����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������性,将业务过程分解为一系列容易识别的步骤,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������用自然语言写成,以便于所有的涉众����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������都可以参与讨论。当涉众达成一����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������致之后,场景就成为需求的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������基础。
����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������  ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ����������� �������Ƴ������; 编写需求的目的是为了以一种无二义的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、可测试的方式写下需求,以确保����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������参与开发的各方面涉众对需要做的事达成一致理解。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������需求理由和验收标准使项目涉众更容易理解需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������求,而对需求的测量是为了判断构建的产品是否����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是涉众真正需要的。编写需求的活动是与网罗需求、制����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������作原型和质量关等其他活动集成����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������在一起的。
&nbs����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 质量����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������关对需求的正确性进行检查,通过质量关的需求才����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������能成为需求规格说明的一部����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������分。质量关检查需求的完整性����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、相关性、可测试性、一致性、可����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������追踪性和其他一些质量属性。当质量关是需求传递给开����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������发者的唯一通道时,项目团队就����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������能控制需求。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������bsp; &nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 复查需求检查是否存在遗漏的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求,保证所有的需求相互一致,需求����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������与需求之间没有悬而未决的冲突。复查工作确保规格����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������说明书是完整的和恰当的,这样就可以转向下一个开����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������发阶段。需求过程是一个从愿景到系����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统规格说明书的演化过程。理解工作����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������的过程伴随着从愿景到业务用例再到场����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������景的演化过程,在此基础上理解产����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������品的过程伴随着从从业务用例到功能需求、非功能需求����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������和限制条件的过程,最后产出����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������了代表着技术需求的软件规格����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������说明书。在需求过程中,一份结����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������构良好的需求模板既是一种强大的需求过程工具����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,也是一份完整需求过程的检查清单。
 ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������; 6.4 SERU需求过程框架
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; &nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp; SERU需求工程过程框架覆盖����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������了需求获取、需求分析、需求管理中的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������主要活动,明确定义了工作任务、介绍����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������了工作方法、指出了工作产物,说����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������明了产物之间的连接方法,可以帮助软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������件开发团队快速应用到工作中,有����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������效提高需求工程的质量。
 ����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������; ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������在SERU需求过程框架中,S����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������代表着子问题域,核心思想是根据业����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������务区划来分解系统,使系统的各个部分在业����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������务上保持相对独立,降低耦合性;U代表着用例����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������,用例是封装需求的手段,是需求组织的最小����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������单位,由一个业务活动(B类用例)、一个具体报表����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������项(R类用例)和一个具体接口(I类用例)。E和R����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������是联接业务和用例之间的线索。E表示事件,是流����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������程的起点,通过业务事件的标识找到流程����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������,通过流程将不同的场景串接在一起。R表示查询、����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������分析、统计,通过寻找管控点确定报表类型����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,然后细化到具体的报表项。
 ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; SER����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������U需求过程框架将需求过程从逻辑����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������上分为三个阶段。第1个阶段是需求定义阶段,这个阶段定����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������义为项目的立项阶段。其核心工作是:(1)根据业����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������务特点划分主题域;(2)确定每个主题域范围,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������用上下文关系图表示;(3)针对每个主题域����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������,列出业务事件、报表类型列表。本阶段主要����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的产物是:(1)构件图,用来表示主题域之间����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的关系;(2)上下文关系图,用来表����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������示主题域的范围;(3)业务事件列表,报����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������表类型列表。第2个阶段是理清需求框架和脉络阶段����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。这个阶段对应于需求捕获、分析这一阶段,结束的标����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������志是“标识出绝大多数的用例”。本阶段的核心����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������工作是:(1)针对每个业务事件进����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������行流程、业务实体、使用场景分析;(2)针对每����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������类报表进行业务实体、使用场景分析����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������;(3)将场景抽象,得到用例模����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������型;(4)将业务实体分析获得的领域模型片段����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������进行合并与抽象。(5)对设����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������计约束与质量属性进行分析。本阶段的主要产����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������物是:(1)活动图,用来表示业����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������务流程;(2)领域类图片段,表示每����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ������个业务流程、报表类型涉及的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������业务实体;(3)用例模型片段����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������,表示每个业务流程中的业务活动、具体报表项����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������;(4)领域模型,按主题域对领域类图����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������片段进行合并与抽象;(5)用例����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������模型:按主题域对用例模型片段进行合并与抽象;(����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������6)部署图:用来描述软、����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������硬件环境方面的设计约束。第3个阶段是填充细节阶段。这个阶段对应于需����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求捕获和分析的深化阶段,结束标志是“����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������已标识用例、领域类的细节均填充����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������完毕”。本阶段的核心工作是:(1)����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������针对每个用例类进行捕获和分析;(2)����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������对流程图上标识的相关文档进行分����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������析,完成领域类的细节填充;(3)在架构����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������师的支持下,完成技术类用例����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������的描述。本阶段主要产物是����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������:(1)业务类用例描述,包括事件����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������流、相关需求、UI原型、规则约束;(2����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������)报表类用例描述,包括报����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������表概述、报表内容和输入/输出格式;(3)����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������接口类用例描述,包括使用者概述、内容与格式����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、实现约束;(4)领域类描述����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������:包括数据窗口分析、组成与格式、计算规����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������则等。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������bsp; &nb����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp; 需求工程师在项目中应用此过程框架时,可以����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������根据需要对框架进行剪裁、����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������定制和修改。
&n����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ������bsp; &nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������p; 6.5基于业务及信����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������息化规划说明的需求工程
&nbs����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������p; 基于业务及信����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������息化规划说明的需求工程在需求开发和需求管����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������理的过程之前增加了需求规划的阶段����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������。需求规划阶段的核心工作����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������由业务研究、应用建模、系统规划、分析计算����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������、报告编制和规划评审组成。需求����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������规划阶段的工作产物是业务及����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������信息化规划说明。
&nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp; &nb����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������sp; 业务及信息化规划说明是业务和����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������信息化规划工作的成果。业务及信息化规划工����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������作由业务分析、系统分析等部分组成,业务分析反映����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������的是组织机构或客户以问题和目标为核心的业务组����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������织、业务域、业务过程、业务活动、业务规����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������则、业务单证、业务量的物理世界����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的现状的不失真反映;系统分析反映����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的是系统域、系统过程、系统活动����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������、系统规则、系统单证、系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������统数据、系统流程、系统架构等,是对组织机构或客����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������户要建系统和待建系统站在总����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������体角度的一种系统的宏观设计����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������。
&nbs����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������p; ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������� 业务及信息化规划说明的重点是站在组织角����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������度依据客户的问题和目标来确定需求的范����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ������围和要达到的深度,范围包括业务组织、����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������业务域、业务过程、业务活动、业务单证、业����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������务数据、业务规则、业务流程等,而目����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������标说的是关于时间的效率、空间����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������上的覆盖程度、使用的简便性等����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������。业务需求规划说明还包括系统分析和����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������安全分析,是站在宏观角度对信息系统的期望描述,业����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������务需求规划将指导软件开发的各个环节。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������在阐述了基于业务及信息化规划����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������说明的内容之外,杨巨龙还介绍了需求工程的知识体系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������和方法体系。
7.小结
 ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������; ����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������本文介绍了软件需求和需求工程的基本概念,以及����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������5个关于需求工程的研究实例,或����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������者说是关于需求工程的知识体系。时至����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������今日,需求工程的知识发展面貌日新月异,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������本文所介绍的内容亦是粗枝大叶,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������挂一漏万。但是,从整体上看,略可管����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������窥需求工程作为一门学科的发展脉����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������络,那就是:与系统工程全����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������方位结合的需求工程。Paul在其专著《需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������求工程:原理、方法和实践》一书中问道:“真的还需����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������要另外一本需求工程的教科书吗?”他����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的同胞Ebert就立刻以一本《需求工程实践����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������者之路》回答了他。Paul����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的自信是有道理的,他在书中精辟����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������的总结道:“需求工程就是在上下文中建立����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������愿景。”按照系统方法论,上下文更多的呈现����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������出硬系统问题的特性,这个系统是建立在人类科学����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������技术尤其是电子信息技术发展的基础之上的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������,这也就意味着即使遇到了一时说不清楚的问题,只要����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������回退到技术的层面,一定能够为对问题的认识寻找����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������到一个相对坚实的立足点。那么,建����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������立愿景呢?我们勉强可以把这个问题归结为一个软系统����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������问题,因为“建立愿景”这四个字其内涵是弄明白����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������人的愿望,把它们表达成可见的景,����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������然后像栽花一样种在计算机系统中,还要能够确保其正����� �������Ƴ����������� �������Ƴ������������ �������Ƴ����������� �������Ƴ�������常演化发展。Paul在知识工程和系统工程基础上����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������发展起来的需求工程框架本身就是一个严密的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������系统,在他的手中需求工程的知识已经被整合形成了����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������一个硬系统,从这一点出发加入合适的计算����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������机技术应该立刻能够整合出一种用于处理软件需求的软����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������件工具,但这种软件工具的自动化程度再高,也����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������只能不断的提升软件需求知识对软件项����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������目现实的转化率,而不能也不可能实现完全的知����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������识自动化。在军事信息系统需求工程一书中,作者����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������把基于系统的需求工程方法、基于企业应用框架的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������需求工程方法和基于能力的需求工程方法作����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������为三种并列的需求工程方法。但是,张维明以及他����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������周围的学术团队实际上用他们不断推陈出新的学术成果����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������指明了需求工程发展的方向����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������。要素、能力、结构,三者统一于����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������体系,体系是什么?系统之系统。����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������再看薛惠峰等人以航天工程实践为研究对象形成����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������的现代信息化知识体系,开宗明义就提出要����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������用现代系统工程支撑现代信息化建设。从����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������知识系统发展的历程看,可以说张维明等人的研究是从����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������实践出发自底向上的,薛惠峰等人的研究是����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������自上而下的,显而易见,在需求工程的����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������研究领域,这两种路线已经交会在一起,正经历着自组����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������织的整合,即将或者已经体现出了����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ������涌现性,将要向更高的层次发展演化了。再想想钱����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������学森等人提出的综合集成的系统方法!����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������我们现在无法知道这分处南北����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������东西的几个学术团队是否在按照某种����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������方法的指导从事着研究,我们����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������现在能够看到的事实是,出现了这����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������么一种宏观现象,可以使用这����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������种思想合乎实践的诠释。这还仅仅����� �������Ƴ������������ �������Ƴ����������� �������Ƴ������������ �������Ƴ�������是从软件需求工程的角度出发自����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������然而然的呈现出的一个现象。����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������如果上升到软件工程这个系统层面,戴汝为院士等人在����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������专著中提到的“社会智能与综合集成系统”与����� �������Ƴ����������� �������Ƴ����������� �������Ƴ������������ �������Ƴ�������陆汝钤院士等人在文章中提到的“天马”系统以及“知����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������件”的概念,这又是处于什么层次的待开发的信息资源����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������呢?对比身边种种现象,我不禁产����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������生这样一个疑惑:钱学森之问真的没有答案吗����� �������Ƴ����������� �������Ƴ������������ �������Ƴ������������ �������Ƴ�������?桃李不言,下自成蹊。这也从����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������侧面印证了上文介绍的另一个观点,那就是“系����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������统工程建立的历史条件是:生产和技术����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������大大发展了,已经发展到需要系统工程的阶段����� �������Ƴ������������ �������Ƴ������������ �������Ƴ����������� �������Ƴ�������,而且也有可能体现系统工程的阶段。其深层次����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ������因素是人类的科学技术和生产能力已经到����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������了重点要从解决硬技术转向重点解决软技术的阶����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������段。”显而易见,需求工程及软件工程已经走在了����� �������Ƴ������������ �������Ƴ������������ �������Ƴ������������ �������Ƴ�������这个点上。