软件需求工程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 软件需求工程概述
IEEE 关于软件需求的定义
1) 用户解决问题或达到目标所需的条件或能力;(用户的角度 )
2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条
件或能力。(软件系统的角度 )
软件需求的分类
1)
目标需求; 2)
业务需求; 3)
功能需求; 4)
性能需求; 5)
约束与限制。 6)
软件需求间的层次关系
需求规格说明
需求规格说明是软件所应满足的全部需求,并可以文档的方式完整和精确陈述这些需求。
一个好的需求规格说明应该具有的特征
1)
完整性。 2)
正确性。 3)
可行性。 4)
必要性。 5)
划分优先级。 6)
无二义性。 7) 可验证性。
第2章 软件工程与需求工程
软件开发过程模型
1) 瀑布式模型
2) 快速原型模型
3) 渐增式模型
4)螺旋式模型
5)面向对象的开发模型
所谓面向对象就是应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念对问题进行分析和求解的软件开发技术,或者说,是以对象(类)为数据中心、对象之间的动态行为模式作为运行机制的一种问题求解方法。
软件需求工程特点
1)有一部分分析工作必须在设计之前进行,而另外一些分析工作则需与其他部
分的设计与实现工作并行地进行,因而呈现出非线性的工作方式。
2)软件系统的表达形式在整个开发模型中都是相同的,即面向对象方法中把类
及其结构作为系统的表达单元,无论哪一个阶段都以渐增的方式不断地进化或细化这些表达单元。
3)开发模型支持软件的重用。
需求工程对软件开发的影响如下:
1)需求是制定项目计划的基础。
2)需求工程所产生的最终产物——需求规格说明——是软件设计和软件实现的
基础。
3)需求规格说明也是测试工作和用户验收软件系统的依据。
4)需求规格说明也是软件维护工作的依据。
软件需求的开发和管理过程
软件需求的开发和管理过程是由导出、确认和维护软件系统需求规格说明的一系列活动组成的。
根据需求工程开发和管理过程可大致划分需求开发和需求管理两个阶段。其中需求开发主要产生正式的需求规格说明,需求管理主要是根据需求的变化对需求规格说明的内容及版本进行管理。
第3章需求获取
实地收集需求信息面临的困难
1)能提出软件需求的用户没有时间与开发人员进行交流和讨论。
2)有时用户不愿意花费太多的时间进行讨论。
3)用户和开发人员考虑自身利益,对需求信息的手机工作采取消极的态度。
4)用户对所面临的工作没有系统的认识和整理,使得开发人员无法整理和分
析。
5)开发人员缺乏用户的业务常识,双方交流困难,收集工作难以进行。
实地调查的步骤
要想获得充分的用户需求信息,就必须实地进行调查并与用户交流。实地调查通常分为三个步骤:
1)向掌握“全局”的负责人调查。
2)向部门负责人调查。
3)向业务人员调查。
2、3步骤是一个反复的过程,调查前应有提纲,调查要有记录,调查后要核实。
实地收集需求信息的方式
开发人员与用户的交流可采取如下几种方式:
1)座谈会的方式:参加人数不宜过多,避免拖延会议速度或偏离会议主题,应
该有人主持会议,提前发给参加人员有关会议的议题和内容等材料,有助于提高会议效率。
2)书面咨询的方式:由软件开发人员将所关心的和有待澄清的问题以书面形式
提交给用户,软件开发人员通过理解和分析用户的回答来收集他们的真正的需求。
3)利用用例表示方法:用例是了解用户的业务流程和澄清含糊细节的好方法。
所谓用例是用于描述软件系统与一个外部“执行者”的交互顺序,体现执行者完成一次任务的过程。
场景的定义及构成
所谓场景是指用户与软件系统实现某个目标而进行交互活动过程的描述。可视为使用系统经历的解释。
由以下几个方面的内容构成:
1)执行者
2)进入场景前系统状态描述
3)执行者的目的
4)动作和事件系列(包括正常和非正常事件流)
场景的表示
场景的表示出了可用自然语言表示外,也可用图形、动画等其它形式。场景也可与快速原型方法结合使用。场景可利用一些已有的半形式化的图形表示方法和技术。
1)非形式化的表示:自然语言、结构化语言、图形、动漫画等。
2)形式化的表示:状态图、流程图、时序图、代数描述图等。
场景技术还具有如下特点:
1)可把当前系统存在的问题作为实例记录下来。
2)可成为项目相关人员间的共同语言
3)由于描述了软件系统的操作,比较具体,易理解性较好
4)通过场景使得提出和获得需求的双方之间能建立起相应的理解。
使用场景技术还应注意以下问题:
1)场景的数量,场景数量过大,易加大分析和理解的难度。
2)场景的冗余问题,应尽量避免场景描述的内容发生重叠。
3)应防止场景描述的内容冗长。
第4章需求分析
需求分析与需求获取的关系:
需求分析和需求获取是密切相关的两个过程。需求分析的基本任务就是提炼、分析和仔细审查已收到的需求信息,找出真正的和具体的需求,以确保所有项目相关人员都明白其含义。此外,在分析过程中,通过建立软件系统的逻辑模型,发现或找出需求信息中存在的冲突、遗漏、错误或含糊问题等。
需求分析的具体工作包括:
1)建立系统关联图;
2)构建用户接口原型;
3)分析需求可行性;
4)确定需求的优先级别;
5)需求建模;
6)建立数据字典。
上述列举的所有工作要视具体的软件系统规模而施行。
第5章需求建模方法与技术
需求建模的概念
需求建模是需求分析中最重要的工作。需求建模主要是根据待开发软件系统的需求利用某种建模方法建立该系统的逻辑模型,也称需求模型或分析模型,以帮助软件开发人员检测软件需求的一致性、完整性、二义性和错误。