需求分析简答重点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一部分软件需求的基本概念
*好需求的特征:无歧义、完整、一致、可检验、确定、可跟踪的,正确的,可行的和必要的。
软件开发的目标,简单而言,就是满足用户的需要。
三种最经常使项目“遇到困难”的因素是:
⏹缺乏用户介入:占所有项目的13%
⏹不完整的需求和规格说明:占所有项目的12%
⏹不断改变的需求和规格说明:占所有项目的12%
三种项目最主要的“成功因素”是:
⏹用户介入:占所有成功项目的16%
⏹高层管理的支持:占所有成功项目的14%
⏹需求陈述清晰:占所有成功项目的12%
高质量的需求过程带来的好处:在开发后期和整个维护阶段的重做的工作大大减少了。
IEEE软件工程标准词汇表定义需求为:
1.用户解决问题或达到目标所需的条件或能力。
2.系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条
件或能力。
3.一种反映上面(1)或(2)所描述的条件或能力的文档说明。
第二章需求的层次
*需求是多层次的,包括业务需求、用户需求、功能需求和非功能需求。
业务需求反映了组织机构或客户对系统、产品高层次的目标要求,位于需求链中的最顶层,在项目视图和范围文档中予以说明。
用户需求描述了用户使用产品必须要完成的任务,这在实例文档或方案脚本予以说明。
功能需求定义了开发人员必须实现的软件功能,使得用户完成他们的任务,从而满足了业务需求。和非功能需求在SRS中说明。
非功能性的需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。
需求路线图:涉众需要—〉系统的特性—〉建立软件需求
软件的6个质量特征(非功能性需求):可靠性,可用性,有效性,可维护性,可移植性,约束。
有效性(Efficiency)
是在规定的条件下,软件性能水平与所使用资源量之间关系有关的一组属性。
可靠性(Reliability)
是与在规定的一段时间和条件下,软件维持其性能水平的能力有
关的一组属性
可维护性(Maintainability)
是与进行指定的修改所需的努力有关的一组属性
约束定义为:对开发人员在软件产品设计和构造上的限制。
第二部分需求工程与需求工程过程
第3章主要软件生命周期模型
瀑布模型
快速应用开发模型(RAD)
螺旋模型
RUP
迭代式模型
瀑布模型的优点
客户很容易熟悉该模型。
以有序的方式解决复杂的问题,易于理解,目标简单—完成所需要的活动。
可以严格控制项目进程,使项目管理易于实施。
方便按阶段设置里程碑,便于项目跟踪。
定义了质量控制过程。运用该过程来确定系统的质量。
采用瀑布模型需要具备的项目特征
☐在系统开发前要对需求有完整、全面、清晰的了解。
☐上述需求不存在隐含的不可克服的风险。
☐需求变更不能过于频繁。
☐不同涉众的需求互相兼容,不存在明显的冲突。
☐开发团队掌握了解决需求问题的有效方法。
☐开发期限允许分阶段地串行工作。
RAD模型的优点
☐采用高效率的开发工具,从而减少了整个产品的开发周期。提高了生产率,降低了成本。
☐用户能够持续地参与开发,提高了用户参与程度,从而使用户的满意度上升,保证了系统能够满足用户的需要。
☐工作重点从文档转为构建,所见即所得。
RAD方法包含三个阶段:需求计划阶段,用户描述,构建阶段
采用RAD模型的项目特征
☐系统可模块化(基于组件的结构)和可缩放。
☐用户能参与到整个生命周期中。
☐项目开发周期很短通常约60天。
☐项目团队熟悉问题领域,能熟练使用开发工具
螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
螺旋模型的优点
☐能够及时找到项目存在的风险,避免因为克服不了的困难而造成大的损失。
☐使用户能够尽早将信息经常反馈给开发人员,保证了产品的正确性和高质量。
☐可以方便地评估和验证每次迭代的成果;实现从开发到维护的无缝连接。
采用螺旋模型的项目特征
☐适用于大型项目;更适用于内部开发(指没有外包的开发内容)。
☐用于新功能、新产品或需要采用新技术时。
☐收益不确定,项目不能确保成功时。
☐用户不能确定其需求或需求很复杂时。
Rational统一过程是一种软件工程过程。提供了如何在开发组织中严格分配任务和职责的方法。
目标:按照预先制定的时间计划和经费预算,开发高质量的软件产品以满足最终用户的需求。
*RUP6个核心过程工作流:业务建模,需求,分析和设计,实现,测试,部署
*3个核心支持工作流:配置和变更管理,项目管理,环境
RUP的优点
☐降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
☐降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
☐加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
☐由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
迭代模型与瀑布模型的差别在于风险的暴露时间上
敏捷方法的价值观包括了沟通,简单,反馈,勇气,谦逊
敏捷方法分为三个部分:敏捷项目管理,敏捷需求分析和敏捷软件开发
敏捷思想的核心是人与交流
第4章需求工程
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
*完整的软件需求工程包括需求开发和需求管理两个部分,需求开发的一般过程分为需求获取、需求建模、需求规格说明、需求验证四个阶段,需求管理则主要包括需求基线的建立、需求变更控制以及需求跟踪等活动。
需求工程方法大致分为四类:面向过程、面向数据、面向控制、面向对象。
面向对象的需求工作流包括:问题分析,理解涉众需要,定义系统,管理项目规模,改进系统定义。
软件需求过程的改进具有以下两个主要目标:解决在以前项目或目前项目中遇到的问题;防止和避免你可能在将来的项目中要遇到的问题