一、需求工程
需求工程分为需求开发和需求管理。
需求开发:需求获取,需求分析,需求定义、需求验证。
需求管理:变更控制、版本控制、需求跟踪,需求状态跟踪。(对需求基线的管理)
1.1需求获取
质量功能部署QFD:将用户要求转化成软件需求的技术
系统非功能性需求:
需求获取方式:
联合需求计划JRP:开调查会
1.2需求分析
1.2.1 SA 结构式需求分析
1.2.2 面向对象OOA分析、UML
基本概念:类分为实体类,控制类(动词名称类,衔接其他类进行用例类控制),边界类(接口,流动的类)。
UML-统一建模语言组成:
构造块。分为事物(结构事物-静态部分,行为事物-动作,分组事物,注释事物)、关系、图。
UML需求建立模型:
用例模型。用例图。
分析模型。类图。
部署图。软硬件直接映射,部署后的图。
包图。软件体系结构图。
用例图。系统和外部参与者的交互,强调需求。
定时图 强调时实际时间。
通信图/ 协作图 强调的是对象之间的组织结构。
顺序图(序列图)。一种交互图,强调对象之间消息的发送顺序,同时显示对象之间的交互。有时间线。
活动图。活动之间的进程交互,可表现并发,强调对象间的控制流程。有比较科学的表达形式:泳道式活动图。
状态图。状态的变迁,强调事件导致的对象行为。
基于UML的需求分析过程大致可分为以下步骤:
①利用用例及用例图表示需求。从业务需求描述出发获取执行者和场景;对场景进行汇总、分类、抽象,形成用例;确定执行者与用例、用例与用例图之间的关系,生成用例图。
②利用包图和类图表示总体框架结构。根据领域知识、业务需求描述和既往经验设计目标软件系统的顶层架构;从业务需求描述中提取“关键概念”,形成领域概念模型;从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。
面向对象设计的基本任务,把面向对象分析模型转换为面向对象设计模型。
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。
设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的活动图等。
1.3需求定义
严格定义法和原型法。
1.4需求验证
需求评审和需求测试。
2、需求管理
需求管理:变更控制、版本控制、需求跟踪,需求状态跟踪。
变更控制。申请,评估,决策,实施,验证,沟通存档。流程:提出问题,问题分析和变更描述,变更分析和成本计算,变更实现。
版本控制。
需求跟踪。需求进行跟踪,跟进。正向跟踪和反向跟踪。用户原始需求到软件需求到下游工作产品。
需求状态跟踪。
系统建模:结构化建模方法、信息化工程建模方法(数据库建模方法)、面向对象建模方法
程序流程图PFD
用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。流程图中只能包括5种基本控制结构:顺序型、选择型、WHILE循环型(当型循环)、UNTIL循环型(直到型循环)和多分支选择型。
IPO图
输入、输出与功能模块、文件及系统外部项都需要通过数据字典来描述\
N-S图
分别是顺序型、选择型、WHILE循环型(当型循环)、UNTIL循环型(直到型循环)和多分支选择型,任何一个N-S图都是这5种基本控制结构相互组合与嵌套的结果。在N-S图中,过程的作用域明确;它没有箭头,不能随意转移控制;而且容易表示嵌套关系和层次关系;并具有强烈的结构化特征。但是当问题很复杂时,N-S图可能很大。
问题分析图(Problem Analysis Diagram,PAD) 又一种描述详细设计的工具。PAD也包含5种基本控制结构,并允许递归使用。
过程设计语言PDL
结构化语言或伪代码,以便在开发人员之间比较精确地进行交流。
判定树
用来表示逻辑判断问题的一种常用的图形工具,它用树来表达不同条件下的不同处理流程