西安工业大学软件工程第三章需求工程

上传人:汽*** 文档编号:567920816 上传时间:2024-07-22 格式:PPT 页数:31 大小:204.50KB
返回 下载 相关 举报
西安工业大学软件工程第三章需求工程_第1页
第1页 / 共31页
西安工业大学软件工程第三章需求工程_第2页
第2页 / 共31页
西安工业大学软件工程第三章需求工程_第3页
第3页 / 共31页
西安工业大学软件工程第三章需求工程_第4页
第4页 / 共31页
西安工业大学软件工程第三章需求工程_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《西安工业大学软件工程第三章需求工程》由会员分享,可在线阅读,更多相关《西安工业大学软件工程第三章需求工程(31页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 需求工程需求工程需求工程是当前软件工程中的关键问题,从客观意义上说,需求工程面对的问题几乎是没有范围的。由于应用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关。其客观上的难度还体现在非功能性需求及其与功能性需求的错综复杂的联系上,当前对非功能性需求分析建模技术的缺乏大大增加了需求工程的复杂性。从主观意义上说,需求工程需要方方面面人员的参与(如领域专家、领域用户、系统投资人、系统分析员、需求分析员等等),各方面人员有不同的着眼点和不同的知识背景,沟通上的困难给需求工程的实施增加了人为的难度。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software Eng

2、ineerSoftware Engineer)3.13.1 软件需求软件需求v软件需求的定件需求的定义 v需求的需求的层次次v需求需求错误的原因的原因计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.1.13.1.1软件需求的定义软件需求的定义IEEE软件工程标准词汇表(1997年)将需求定义为:(1)用户解决问题或达到目标所需的条件或能力;(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(3)一种反映(1)或(2)所描述的条件或能力的文档说明。 计算机科学与工程学院计算机科学

3、与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.1.13.1.1软件需求的定义软件需求的定义另外,以下列出其他几种关于“需求”的定义:v需求是用户所需要的并能触发一个程序或系统开发工作的说明;v需求是从系统外部能发现系统所具有的满足于用户的特点、功能及属性等;v需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.1.23.1.2需求的层次需求的层次计算机科学与工程学

4、院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.1.23.1.2需求的层次需求的层次v业务需求(business requirement)反映了组织机构或客户对系统或产品高层次的目标要求,它们在项目视图与范围文档中予以说明。v用户需求(user requirement)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。v功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。v非功能需求(non-functional requ

5、irement)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。非功能需求包括过程需求、产品需求和外部需求三类,其中过程需求有交付、实现方法和标准等需求,产品需求包括性能、可用性、实用性、可靠性、可移植性、安全保密性、容错性等方面的需求,外部需求有法规、成本、操作性等需求。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.1.33.1.3需求错误的原因需求错误的原因1.缺乏足够的用户参与2.用户需求不断增加 3.需求模棱两可 4.添加不必要的特性 5.规格说明过于简单 6.忽略了用户分

6、类 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.23.2 需求工程需求工程需求工程是指应用已证实有效的原理和方法,系统地描述出待开发系统及其行为特征和相关约束。通常,需求工程由一些过程组成,可分为需求开发和需求管理两部分,而需求开发又可进一步分为问题获取、分析、编写规格说明和验证四个阶段,如下图所示: 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.13.2.1 需求工程的内容需求工程的内容1.需求开需求开发的主要活

7、的主要活动 v确定产品所期望的用户类;v获取每个用户类的需求;v了解实际用户任务和目标以及这些任务所支持的业务需求;v分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息;v将系统级的需求分为几个子系统,并将需求中的一部分分配给软件组件;v了解相关质量属性的重要性;v商讨实施优先级的划分;v将所收集的用户需求编写成规格说明和模型;v评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)

8、3.2.1 需求工程的内容需求工程的内容2 需求管理的主要活需求管理的主要活动 v 定义需求基线;v 评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它;v 以一种可控制的方式将需求变更融入到项目中;v 使当前的项目计划与需求一致;v 估计变更需求所产生影响并在此基础上协商新的承诺;v 让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪;v 在整个项目过程中跟踪需求状态及其变更情况。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.23.2.2 需求获取需求获取1 工作内容工作内容

9、v聆听用户的需求 v分析和整理所获取的信息 v文档化的描述 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.2 需求需求获取取2 基于用例的方法基于用例的方法 v确定角色 v确定用例 v描述用例 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.33.2.3 需求分析需求分析需求分析的主要活动包括: v绘制系统关联图 v创建用户接口原型 v分析需求可行性 v确定需求的优先级别 v为需求建立模型 v创建数据字典 计算机科

10、学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.43.2.4 需求传递需求传递需求需求传递的主要任的主要任务是是书写写软件需求件需求规格格说明,其目的是:明,其目的是:v传达对需求的理解;v作为软件开发项目的一份契约;v作为评价后续工作的基线;v作为控制需求进化的基线。 编写软件需求规格说明有三种方法:v将结构化语言与自然语言结合,编写文本型文档;v建立可视化的模型;v采用形式化的方法进行需求规格说明,如Z模式、Petri Net等计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software En

11、gineerSoftware Engineer)3.2.53.2.5需求验证需求验证1 需求需求说明的明的质量特性量特性 v正确性 v完整性 v一致性 v无二义性 v可修改性 v可跟踪性 v可验证性 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.53.2.5需求验证需求验证2 需求需求验证的方法的方法 v审查需求文档 v以需求为依据编写测试用例 v编写用户手册 v确定合格的标准 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Enginee

12、r)3.2.63.2.6 需求管理需求管理1 需求管理的内容需求管理的内容 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.2.63.2.6 需求管理需求管理2需求管理工具需求管理工具 工具工具 公司公司 类型型 Caliber-RMTechnology Builders, Inc以数据库为核心DOORSQuality Systems and Software, Inc以数据库为核心QSSrequireitQuality Systems and Software, Inc以文档为核心RequisiteProR

13、ational Software Corporation以文档为核心RTM WorkshopIntegrated Chipware, Inc以数据库为核心Vital LinkCompliance Automation, Inc以文档为核心计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.33.3 分析建模分析建模v分析模型 v数据字典 v结构化分析过程 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.3.13.3.1 分析模型

14、分析模型计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.3.23.3.2 数据字典数据字典数据字典描述数据流图的数据存储、数据加工(最底层加工)和数据流,它记录的主要内容有:v基本信息:名字、别名、描述;v定义:数据长度、数据类型、数据结构;v使用特点:取值范围、使用频率、使用方式等;v控制信息:来源、用户、引用程序、读写权限等;v其他说明 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.3.33.3.3 结构化分析过程结构

15、化分析过程1 创建建实体关系体关系图(1) 在需求收集的过程中,要求客户列出应用软件或业务过程涉及到的“事物”,将其演化成数据对象;(2) 一次考虑一个对象,分析员和客户定义这个对象和其他对象之间是否存在连接;(3) 如果存在连接,应创建一个或多个关系;(4) 对每一个关系,确定其关联类型;(5) 重复步骤(2)到步骤(4),直到定义了所有关系。(6) 定义每个实体的属性;(7) 形式化并复审实体关系图;(8) 重复步骤(1)到(7),直到数据建模完成。 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.3.3

16、3.3.3 结构化分析过程结构化分析过程2 创建数据流模型建数据流模型 通常,数据流图是分层绘制的,整个过程反映了自顶向下进行功能分解和细化的分析过程。顶层(也称第0层)DFD用于表示系统的开发范围,以及该系统与周围环境的数据交换关系;最底层DFD代表了那些不可进一步分解的“原子加工”;中间层DFD是对上一层父图的细化,其中的每一个加工可以继续细化,中间层次的多少由系统的复杂程度决定。 (1) 第0层DFD将整个系统表示成一个加工; (2) 确定并标记主要的输入和输出; (3) 分离出下一层中的加工、数据对象和存储,并对其进行细化,一次细化一个加工; (4) 标记所有加工和箭头; (5) 重复

17、步骤(3)和(4),直到所有的加工只执行一个简单的操作,可以很容易地用程序实现。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.3.33.3.3 结构化分析过程结构化分析过程3 创建行建行为模型模型通常来说,行为建模用于实时系统。实时系统中可能存在许多脚本,很多实体需要进行状态划分和描述状态转换图,有时为了描述系统的并发行为,还需要使用其他一些工具进行描述,如Petri网。在事务系统中,系统行为相对简单,只有某些行为较复杂的实体才需要建立其状态转换图。(1) 分析外部事件,所谓外部事件是指外部实体与系统的一次

18、交互。(2) 分析事件的响应者,该响应者为了响应该事件要进行怎样的活动,这种活动又会激发哪些事件等,这样构成了系统行为的脚本。(3) 根据事件和活动划分实体的状态,也可根据其他知识划分实体状态,考虑发生怎样的事件使该实体进入这个状态,怎样的事件使该实体从这个状态转换到另一状态等。 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.43.4 软件原型软件原型v原型的定义和作用 v抛弃式原型和演化式原型 v为什么要采用原型法 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software Engine

19、erSoftware Engineer)3.4.13.4.1 原型的定义和作用原型的定义和作用原型(prototype),即把系统主要功能和接口通过快速开发制作为“软件样机”,以可视化的形式展现给用户,及时征求用户意见,从而明确无误地确定用户需求。同时,原型也可用于征求内部意见,作为分析和设计的接口之一,可方便于沟通。 原型在软件开发过程中可以起到以下主要作用:明确并完善需求 探索设计选择方案 发展为最终的产品 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.4.23.4.2 抛弃式原型和演化式原型抛弃式原型

20、和演化式原型1抛弃式原型(抛弃式原型(Throwaway Prototype) 抛弃式原型的使用过程如下图所示。首先,选择适当的演示功能,并描述相应的用户界面,然后构造软件原型。由于抛弃式原型在达到预期目的后被抛弃,因此应该花最小的代价尽快地建立该原型。用户对所构造的软件原型进行评估,提出反馈意见,这些反馈可能会引起功能的改变,也可能引起用户界面的改变。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.4.23.4.2 抛弃式原型和演化式原型抛弃式原型和演化式原型2. 演化式原型(演化式原型(Evolution

21、ary Prototype)演化式原型适合于基于Web应用的系统开发,这种系统往往随着开发的进展本身的需求也在发生变化。与丢弃式原型不同,演化式模型一开始就必须具有健壮性和产品质量级的代码,因此,对于描述相同的功能,建立演化式原型比建立丢弃式原型所花的时间要多。计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.4.33.4.3为什么要采用原型法为什么要采用原型法v为什么在需求说明书之外需要原型:v原型方法有什么风险v如何避免项目团队做原型的时候出现部分人员闲置v如果避免项目在原型上停滞不前 v如何避免用户看了原

22、型后漫无边际地提要求 v如何避免在原型基础上继续开发时可维护性降低 计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)3.53.5 实例实例v见教材计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)习题习题 v什么是需求分析?需求分析阶段的基本任务是什么?v什么是结构化分析方法?该方法使用什么描述工具?v需求分析的方法应遵循的原则是什么?v软件需求分析与说明的方法有哪些基本原则?计算机科学与工程学院计算机科学与工程学院软件工程(软件工程(Software EngineerSoftware Engineer)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号