需求工程小黑指北-考试速通攻略(一)
概念速记-简洁版(上)
1. 需求工程导论
软件的模拟特性:在这些导致需求问题的原因当中一个最为重要的原因是:未能很好地理解和掌握“应用”型软件的模拟特性以及由此而产生的一系列影响和要求。
软件的模拟特性来源于其知识载体的特性:软件在运行中表现出来的特性、行为应该和应用的现实情况保持一致。这样,人们通过观察软件的表现就可以得出相应现实问题的答案,即软件“模拟”了现实。
需求工程的概念:
简单来说需求工程是所有需求处理活动的总和,它收集信息、分析问题、整合观点、记录求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应。
从细节来看,可以定义如下:需求工程是软件工程的一个分支它关注软件系统所应实现现实世界目标、软件系统的功能和软件系统应当遵守的约束,同时也关注以上因素和准确的软件行为规格说明之间的联系,关注以上因素与其随时间或跨产品族而演化之后的相关因素之间的联系。
需求工程的基本活动:
需求的定义
1.用户为了解决问题或达到某些目标所需要的条件或能力;
2.系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力;
3.对1或2中的一个条件或一种能力的一种文档化表述。
结论:(重要)需求是以用户为中心的,是与问题相联系的;需求要被清晰、明确地写在文档上。
需求的层次性:
问题域特性:有自己的运行规律,而且这些规律不会因解系统的引入而发生改变。
优秀需求的特性:完备性,正确性,可行性,必要性,无歧义,可验证。
IEEE软件需求的分类:功能需求,性能需求,质量属性(可靠性,可用性,安全性,可维护性,可移植性,易用性),对外接口,约束。
涉众基线:比较容易发现的涉众。
需求工程产生的文档:项目前景与范围文档,用户需求文档,需求规格说明。
需求工程的根本任务:建立分析模型,创建解决方案。
2. 需求获取
常见困难:背景立场,表述能力,认知困境,越俎代庖,缺乏用户参与。
前景:前景描述了产品的作用以及 终的功能,它将所有涉众都统一到一个方向上。
范围:范围指出当前项目是要解决产品长远规划中的哪一部分,范围声明它为项目划定了需求的界线。
目标分析能处理问题、目标、特色、角色、任务等因素的依赖关系。
目标之间的关系(链接):
NFR方法分析非功能需求:NFR方法是一个以目标模型为基础,同时包含获取,与其他需求模型的整合及分析,规格化,验证等其他需求开发活动的工作框架。
活动图:
涉众交互网络图:
涉众识别的方法:
先膨胀后收缩:涉众群体简单,易出现遗漏。
检查列表:全面系统,无明确细化方法。
涉众网络:复杂情况,正确完备复杂。
Power/Interest分布图适用于:优先级评估、风险评估。
硬数据采样:
样本大小SS=0.25*(确定性因子/可接受的错误)²
样本大小SS=p*(1-P)(确定性因子/可接受的错误)² //p:差异样本比例
期望的确定性 |
确定性因子 |
95% |
1.960 |
90% |
1.645 |
80% |
1.281 |
常见模型驱动方法:面向目标的方法,基于场景的方法,基于用例的方法。
用例是静态结构化文本。用例:对相关场景集合的叙述性文本描述。
用例之间的关系:包含、扩展、泛化。
实例场景又称为具体场景;抽象场景又称为类型场景。
需求获取方法之面谈
面谈优点:简单,低成本,建立友好关系,提高涉众热情
面谈缺点:耗时,地理位置,要求交流能力,模糊表述
面谈问题:程序性提示、元问题,避免双筒问题、诱导性问题
需求获取方法之原型
分类:(使用方式):演示原型、严格意义上的原型、试验原型、缺陷分布原型、引示系统原型
(开发方法):演化式原型,抛弃式原型(探索式原型,实验式原型)
适用情况:不确定性,对未来知识了解有限而无法确定某些行为或事件后果
缺点:成本高
原型的需求内容:外观,角色和实现
原型方法获取需求的基本过程:确定原型需求,原型开发,原型评估,原型修正
故事版原型分类:主动故事版原型,被动故事版原型,交互故事版原型
演示原型用于:项目启动阶段
实验式开发方法考察重要的系统的质量属性。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)