携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
需求工程导论
需求因素:
•用户参与(用户输入)
• 高层管理支持
• 清晰的需求说明
• 切合实际的期望
• 清晰的目标和前景
• 需求变化
• 额外的无用功能
需求问题的具体原因分析:
软件生产中产生需求问题的最大原因在于对应用软件的模拟特性理解不透彻或应用不坚决,它会导致软件开发者产生轻视需求的态度问题。另外,还有一些技术原因也会导致需求问题的产生。
1.非技术性和社会性因素重视不足 2.传统需求分析方法的缺陷 3.软件规模的日益扩大 4.需求问题的高代价性
什么是需求工程?
定义1:简单来说,需求工程是所有需求处理活动的总和,它收集信息、分析问题、整合观点、记 录需求并验证其正确性,最终反应软件被应用后与其环境互动形成的期望效应。 定义2:从细节来说,需求工程是软件工程的一个分支,它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束,同时它也关注以上因素和准确的软件行为规格说明之间的联系,关注以上因素与其随时间或跨产品族而演化之后的相关因素之间的联系。
需求工程的复杂性:
1.处理范围广泛 2.涉及诸多参与方 3.处理内容多样 4.处理活动互相交织 5.处理结果要求苛刻
需求工程师是涉众和开发者之间的桥梁,要重视“软技能”,需要创新,需求开发是团队行为
1.软件生产中产生需求问题的最大原因在于对应用软件的(模拟性)理解不透彻或应用不坚决。
2.需求分析的目的是保证需求的(完整性和一致性)。
3.系统需求开发的结果最终会写入(系统需求规格说明)。
4.传统的需求分析方法都是从设计领域转入分析领域的。
5.应用型软件分析阶段的主要目的是发现人们利用软件的原因(目的),找出需要软件解决的问题,理解应用环境中的领域知识,保证功能的 模拟性 。
6.需求工程是所有需求处理活动的总和,它包括需求开发和需求管理两个部分。
7.软件需求开发用来确定系统需求中应该由软件满足的部分,将其映射为软件行为,产生软件需求规格说明。
8.【判断题】需求验证是需求工程中最后一个活动。×
9.【判断题】软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对问题域中的某些部分具有模拟特性。√
10.【简答题】简述需求工程的主要任务。
1.需求工程必须说明软件系统将被应用的环境及其目标,同时说明软件需求“做什么”和“为什么”需要做;
2.需求工程必须将目标、功能和约束反应到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明,完成需求规格说明书;
3.还需要妥善处理目标、功能和约束随着时间的演化情况,进行综合考虑和处理。
11.【名词解释】什么是需求工程?
需求工程是所有需求处理活动的总和,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反应软件被应用后与其环境互动形成的期望效应。
需求基础
优秀需求的特性
1.完备性 2.正确性 3.可行性 4.必要性 5.无歧义 6.可验证
习题:
1.现实世界中的(实体和状态)构成了问题解决的基本范围,称为该问题的问题域。
2.功能需求通常分为三个层次,即业务需求、用户需求和(系统需求)。
3.优秀的需求应该具备 7 个特性,即完备性、正确性、可行性、必要性、无歧义和 精确性、可验证。
4.【判断题】规格说明是问题域为满足用户需求而提供的解决方案,规定了解系统的行为特征。×
5.【判断题】业务需求具有明显的目的性和较高的抽象性,经过明确和细化的处理,可以 直接转化为系统需求。×
6.【简答题】产生不必要需求的原因主要是:
没有满足需求的必要性,主要原因在于没有真正理解了用户的需求,需求分析工作做的不到位,没有切实解决问题。
7.【名词解释】需求: IEEE 对需求的定义为:
用户为解决问题或达到某种目标所需要的条件或能力;
系统或系统内部为了满足合同、标准、规范和其他正式文档所规定的要求所需要的条件或能力;
对1或2中的一个条件或一种能力的一种文档化表述。