现代软件工程
上QQ阅读APP看书,第一时间看更新

小结

需求工程的任务是为设计和构建活动建立一个可靠坚固的基础。需求工程发生在与客户沟通活动和为一般的软件过程定义的建模活动过程中。软件团队成员要实施7个不同的需求工程职能:起始、导出、精化、协商、规格说明、确认和管理。

在项目起始阶段,项目干系人建立基本的问题需求,定义最重要的项目约束,以及陈述主要的特征和功能,必须让系统表现出这些特征和功能以满足其目标。该信息在导出阶段得到提炼和延伸,在此阶段中利用有主持人会议、QFD和使用场景的开发进行需求收集活动。

精化阶段进一步把需求扩展为分析模型——基于场景、基于类、行为和面向数据流的模型元素的集合。模型可能对分析模式和在不同的应用系统中重复出现分析问题的解决方案加以注解。

当确定需求并且创建分析模型时,软件团队和其他项目干系人协商优先级、可用性和每条需求的相对成本。协商的目标是开发一个现实可行的项目计划。此外,将按照客户需求确认每个需求和整个需求模型,以确认将要构建的系统对于客户的要求是正确的。

需求建模的目标是创建各种表现形式,用其描述什么是客户需求,建立生成软件设计的基础,一旦软件建立就能定义一组可被确认的需求。需求模型为系统级表示层和软件设计之间的间隔构造了桥梁。系统表示层描述了整个系统和业务功能,软件设计描述了软件应用的架构和用户接口,以及组件级的结构。

基于场景的模型从用户的角度描述软件需求。用例是主要的建模元素,它叙述或以模板驱动方式描述了参与者和软件之间的某个交互活动。在需求获取过程中得到的用例定义了特定功能或交互活动的关键步骤。用例的形式化和详细程度各不相同,但是最终结果为所有的其他分析建模活动提供了必需的输入。还可以使用活动图说明场景,即一种类似于流程图的图形表现形式,描述在特定场景中的处理流。泳道图显示了如何给不同的参与者或类分配处理流。

数据建模常用于描述软件构建或操作的信息空间。数据建模由所代表的数据对象开始,这些数据对象必须由软件所理解的信息组成。每个数据对象的属性得到识别,数据对象间的关系得到描述。

为了识别分析类,基于类的建模使用从基于场景和面向流的建模元素中导出信息。可以使用语法分析从文本叙述中提取候选类、属性和操作,并制定了用于定义类的标准。CRC索引卡可以用于定义类之间的联系。此外,可以使用各种UML建模方法定义类之间的层次、关系、关联、聚合和依赖。使用一种分析包方式进行分类和分组,从而在某种意义上为大型系统提供了更好的管理。

在数据流对象做处理功能转换时,面向流程建模关注数据流对象。从结构化分析进行推导,面向流程建模使用了数据流图,建模符号描述了当数据对象移动通过一个系统时如何将输入转化为输出。由一个处理的规格说明或者叙述来描述转换数据的每个软件功能。除了数据流以外,这些建模元素也描述了控制流,控制流是说明事件如何影响系统行为的一种图示。

行为建模描述了动态行为。行为模型采用从基于场景、面向流程到基于类的输入,从而把分析类和系统的状态作为一个整体来表达。为达到这一目的,要识别状态,定义引起类(或系统)由一个状态转换到另一状态的事件,还要识别当完成转换后发生的活动。状态图和顺序图是行为建模的常用表达方式。

分析模式能让软件工程师使用现有的知识领域,便于建立需求模型。一个分析模式描述了一个特定的软件特性或功能,该特性或功能由一套相关用例描述。

Web应用系统的需求建模能使用大多数的建模元素。但是,只在一套指定的模型中使用这些元素,它涉及驻留于Web应用系统中的内容、交互操作、功能、导航和服务客户端的配置。