-
为学堂在线清华大学《软件工程》部分视频笔记
-
8.1需求工程师
- 需求分析是软件工程中的重要步骤,是决定软件醒目成败的关键影响因素之一。因此,需求工程成为软件工程和系统工程重要的分支领域之一。在需求工程中,我们主要关注的事软件和系统需求的获取、建模、分析、验证和管理。
- 应具备的能力
l.分析问题和解决问题的能力
2.人际沟通及交流能力
3.软件工程知识和技能
4.应用领域有关知识
5.书面语言组织和表达能力 - 优秀需求工程师的目标
1.识别错误假设
2.确保一致性
3.提升依从性
4.减少彼此误解
5.提高支持速度和效率
6.提升客户满意度
7.撰写优质需求文档
-
8.2需求定义
- 定义
- 定义1
“需求”是对外可见的系统特征。
“需求管理”有三项任务:
| 学习——需求获取
| 剪枝——需求优选
| 文档化——撰写需求规格说明书
- 定义2
需求,是人们要解决的某个问题或达到某种目的的需要。是系统或其组成部分为满足某种书面规定(合同,标准,规范等)所要具备的能力。需求将作为系统开发,测试,验收,提交的正式文档依据。—IEEE 6l0.l2.1990
- 定义3
每一个“人造物”都是一个内部环境与外部环境的“接口”。这里内部环境指人造物本身的设计组成。外部环境指人造物的周遭及其作用环境。对这个接口的描述既是需求。
—— Herbert Simon. 1969
- 定义1
- 需求应涵盖的内容
为什么要设计该系统
·系统由谁使用
·系统要做什么
·系统涉及哪些信息
·对解决方案有何额外限制
·如何使用该系统
·质量需要达到何种程度
- 需求规约
好的需求是可以度量的,能给出项目成功的必要条件
单个需求项的质量
1.准确
2.正确
3.明确
4.可行
5.可证
整个需求集合的质量
1.现实
2.精确
3.全面
- 定义
-
8.7撰写需求文档
- 需求规格说明用户
客户和终端用户——提供需求,并保证其满足用户需要
市场人员和销售——根据客户要求定义有竞争力的产品特征管理产品发布
产品开发人员——通过需求了解系统要做什么并且开发系统
测试人员——参照需求进行系统验证,通过测试和用户征询的方式
项目管理人员——需要参照需球规格说那分,补充本地运行所需的特性
- 高质量需求规格说明
一个高质量的需求规格说明是
1.所有需求的集合
2.描述产品要提供的所有功能
3.是软件系统解决方案的商业合同的基础
4.是测试计划的基础
5.定义产品需求的度量标准
6.是产品需求跟踪的先决条件
7.影响开发产品的项目计划
- 高质量需求规格说明的评价标准
1.正确性=经过验证的
2.无歧义
3.完整的
4.可测试=可以证明的可修改的
5.可跟踪的
6.易理解
7.一致的
8.有序的
9.项目或产品特定的其他特征
- 需求文档的组织形式
文档需要有逻辑组织结构
· 例如:参照IEEE的模板
典型的组织形式包括
· 按系统能够响应的各种外部环境情况组织
· 按系统特征来组织
· 按系统的响应方式来组织
· 按所管理的外部数据对象来组织
·按用户类型来组织
· 按软件的工作模式来组织
·按子系统的划分来组织
- IEEE-80 SRS模板大纲(软件需求文档的框架)
·介绍
·术语表
·用户需求规格说明
·系统结构
·系统需求规格说明
·系统模型
·系统的演化·附录
·索引
- SRS模板的优缺点
优点
1.模板提高效率
2.在有模板的情况下,面对一个完整的大纲,不容易遗漏重要的信息
缺点
1.并非对于所有的系统,模板的章节设计都是类似的
2.如果仅仅为了满足标准,而填写模板的所有章节,在不相关的章节,会加入一些没有意义的内容
3.读者很难将这些无意义的文字和真正的需求分开
- 软件需求规格说明SRS的风格(获取需求的主要途径)
须根据实际选择合适的需求规格说明方式- 描述性的自然语言文本
用户故事
- 从用例模型产生
用例模型与需求转化可看成可逆的过程·如果需求模型以用例的形式表示,我们可以逆向生成需求的完整集合
- 从需求数据库中生成
·商业需求数据库有内置的功能来生成经过筛选的需求规格说明
·从产品线需求规格数据库中生成特定产品的需求规格说明
- 从混合模型中生成
·特征模型和用例模型
- 描述性的自然语言文本
- 需求规格说明用户
-
4.1软件过程
- 过程的含义
过程是一组将输入转化为输出的相互关联或相互作用的活动。
- 过程方法
过程方法是系统地识别和管理组织内所使用的过程,保证更有效地获得期望的结果。
- 软件过程
软件维护:
系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。
软件开发过程是为了获得高质量软件,而实施的一系列活动。- 需求开发
需求开发 : 在可行性研究之后,分析、整理和提炼所收集到的用户需求,建立完整的需求分析模型,编写软件需求规格说明。
- 软件设计
软件设计 ∶ 根据需求规格说明,确定软件体系结构,进一步设计每个系统部件的实现算法、数据结构及其接口等。
- 软件构造
软件构造︰概括地说是将软件设计转换成程序代码,这是一个复杂而迭代的过程,要求根据设计模型进行程序设计以及正确而高效地编写和测试代码。
- 软件维护
软件维护 : 系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。
- 需求开发
- 软件项目管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本.人员、进度、质量和风险进行控制和管理的活动。
- 软件配置管理
软件配置管理是通过执行版本控制、变更控制的规程,并且使用合适的配置管理软件,来保证所有产品配置项的完整性和可跟踪性。
- 过程的含义
-
4.2软件过程模型
- 软件过程模型
- 瀑布模型
将基本的开发活动看成是一系列界限分明的独立阶段,这是—种计划驱动的软件过程,有利于规范软件开发活动。活动线性方式顺序执行- 特点
活动自上而下次序固定,当前活动接受上一项活动的完成结果
用户只有在整个过程结束时才能看到开发结果(导致开发过程中间难以相应用户的变更需求)
- 适用场合
建适用于软件需求在开发初期就可以被完整确定的软件项目,而且用户使用的环境也很稳定
- 特点
- 原型化模型
原型是一个部分开发的产品,用于加强对系统的理解,有助于明确需求和选择可行的设计策略。- 特点
初步实现产品的一部分,可以帮助开发人员评价和分析不同方案的实现效果
原型化开发可以是可操作的软件界面,也可以是纸上原型
- 适用场合
需求不确定时
- 特点
- 迭代式开发
将描述、开发和验证等不同活动交织在一起,在开发过程中建立一系列版本,将系统一部分一部分地逐步交付。- 特点
逐步交付,缩短开发周期,更好地获得用户对产品的反馈,
可以更快速的发布产品,可以快速响应客户的需求变化
- 迭代式开发的两种形式
- 增量模型
增量模型: 在每一个新的发布中逐步增加功能直到构造全部功能。
- 迭代模型
迭代模型: 一开始提交一个完整系统,在后续发布中补充完善各子系统功能。
- 适用场合
开发周期短,需求不确定性高,需求变化可能性大
- 增量模型
- 特点
- 可转换模型
利用自动化的手段,通过一系列转换将需求规格说明转化为一个可交付使用的系统。- 特点
由于数学方法具有严密性和准确性,形式化方法所交付的系统具有较少的缺陷和较高的安全性。
- 适用场合
特别适合于那些对安全性、可靠性和保密性要求极高的软件系统,这些系统需要在投入运行前进行验证。
- 特点
- 瀑布模型
- 软件过程模型
软件开发过程与需求获取
于 2022-09-16 21:16:46 首次发布