5.1 软件工程定义(了解)
软件工程是指应用计算机科学、数学及管理科学等原理,其目的是提高软件生产率、提高软件质量、降低软件成本。
5.2 软件需求(掌握)
5.2.1 需求的层次(掌握)
软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。
软件需求就是系统必须完成的事和必须具备的品质。需求是多层次的,包括业务需求、用户需求和系统需求。
业务需求:指反映组织机构或用户对系统、产品高层次的目标要求
用户需求:描述的是用户的具体目标
系统需求:是从系统的角度来说明软件的需求,包括功能需求、非功能需求和约束等。
5.2.2 质量功能部署(掌握)
质量功能部署是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。
软件需求分为常规需求、期望需求和意外需求
5.2.3 需求获取(掌握)
需求获取是确定和理解不同的项目干系人对系统的需求和约束的过程
常见的需求获取方法包括:用户访谈、问卷调查、采样、情节串联版、联合需求计划等
5.2.4 需求分析(掌握)
好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性。
1、架构化分析
结构化分析建立模型的核心是数据字典,围绕这个核心,有3个层次的模型,分别是数据模型、功能模型和行为模型(状态模型)。
结构化分析的步骤:
物理模型——逻辑模型——生成数据字典和基元描述——提出目标系统物理模型——确定成本和风险,对各种方案进行分析——选择方案——建立完整的需求规约
1)DFD(数据流图)需求建模方法
也称为过程建模和功能建模方法,DFD建模方法的核心是数据流。
DFD方法由4种基本元素(模型对象)组成:数据流、处理/加工、数据存储和外部项
建立DFD图的目的是:描述系统的功能需求
具体的建模过程及步骤:
① 明确目标,确定系统范围
② 建立顶层DFD图
③ 构建第一层DFD分解图
④ 开发DFD层次结构图
⑤ 检查确认DFD图
2)数据字典的应用
数据字典是一种用户可以访问的记录数据库和应用程序元数据的目录
数据字典的作用是作为分析阶段的工具。任何字典最重要的用途是供人查询,在结构化分析中,数据字典的作用是给数据流图上的每个元素加以定义和说明。
数据字典主要包括数据项(数据结构中的数据项说明)、数据结构(数据结构说明)、数据流(流线的说明)、数据存储(数据块的存储特性说明)、处理过程(功能块的说明)等。
2、面向对象分析
面向对象分析(OOA)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。
在这种方法中定义了两种对象类之间的结构,分别是分类结构(一般与特殊的关系)和组装结构(反映了对象之间额整体与部分的关系)
1)OOA的基本原则
2)OOA的基本步骤
① 确定对象和类(类与对象是一对多的关系)
② 确定结构
③ 确定主题
④ 确定属性
⑤ 确定方法
5.2.5 需求规格说明书(掌握)
软件需求规格说明书(SRS)是在需求分析阶段需要完成的文档,是软件需求分析的最终结果,任何规模和性质的软件项目都不应该缺少。
SRS应该包括范围、引用文件、需求、合格线规定、需求可追踪性、尚未解决的问题、注解和附录。
一般通过需求评审和需求测试工作来对需求进行验证
5.2.6 需求变更(掌握)
1、变更控制过程
一旦确定了需求基线,应该使所有已建议的变更都遵循变更控制过程
需求变更管理过程:
① 问题分析和变更描述
② 变更分析和成本计算
③ 变更实现:在计划驱动过程模型中,往往需要回溯到需求分析阶段开始,重新做对应的需求分析、设计和实现等步骤;在敏捷开发模型中,往往会将需求变更纳入到下一次迭代的执行过程中。
2、变更策略
(1)所有需求变更必须遵循变更控制过程;
(2)对于未获得批准的变更,不应该做设计和实现工作;
(3)变更应该由项目变更控制委员会决定实现哪些变更;
(4)项目风险承担者应该能够了解变更数据库的内容;
(5)决不能从数据库中删除或者修改变更请求的原始文档;
(6)每一个集成的需求变更必须能跟踪到一个经核准的变更请求。
3、变更控制委员会
变更控制委员会(CCB)是项目所有者权益代表,负责裁定接受哪些变更。通常包括用户和实施方的决策人员。
过程及操作步骤主要包括制定决策、交流情况和重新协商约定等。
5.2.7 需求跟踪(掌握)
需求跟踪的目的是建立与维护“需求—设计—编程—测试”之间的一致性,确保所有的工作成果符合用户需求。
需求跟踪有正向跟踪和逆向跟踪,正向跟踪和逆向跟踪合称为“双向跟踪”。
不论采用何种跟踪方式,都要建立与维护需求将跟踪矩阵(表格)
需求跟踪是一个要求手工操作且劳动强度很大的任务,需要组织提供支持