软件工程 教学课件 ppt 作者 马林艺 第二章需求工程

上传人:E**** 文档编号:89320865 上传时间:2019-05-23 格式:PPT 页数:64 大小:589KB
返回 下载 相关 举报
软件工程 教学课件 ppt 作者 马林艺 第二章需求工程_第1页
第1页 / 共64页
软件工程 教学课件 ppt 作者 马林艺 第二章需求工程_第2页
第2页 / 共64页
软件工程 教学课件 ppt 作者 马林艺 第二章需求工程_第3页
第3页 / 共64页
软件工程 教学课件 ppt 作者 马林艺 第二章需求工程_第4页
第4页 / 共64页
软件工程 教学课件 ppt 作者 马林艺 第二章需求工程_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《软件工程 教学课件 ppt 作者 马林艺 第二章需求工程》由会员分享,可在线阅读,更多相关《软件工程 教学课件 ppt 作者 马林艺 第二章需求工程(64页珍藏版)》请在金锄头文库上搜索。

1、SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,第二章 需求工程,本章要点,系统需求概念和表达需求的常用方法。,需求工程过程中的基本步骤和常用的需求分析模型工具。,需求活动中的建模技术和主要的分析方法(结构化分析方法)。,验证需求的快速原型开发方法及使用的工具软件。,需求活动的结果表达需求说明书及需求评审的内容。,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERIN

2、G,1.需求分析的任务 主要有两个方面: 通过对问题及环境的理解、分析和综合,建立分析模型; 在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。 2.软件系统需求分类 软件系统需求可以分为功能需求、非功能需求和领域需求: 1)功能需求描述系统所预期提供的功能或服务。即定义系统应该做什么,系统要求输入什么信息,输出什么信息,以及如何将输入变换为输出。它由开发的软件类型、软件未来的用户以及开发的系统类型决定。 2)非功能需求是指那些不直接与系统具体工作相关的一类需求。主要涉及系统的总体特性,如可靠性、反映时间和储存空间等。 3)领域需求是来自系统的应用领域的

3、需求,反映了该领域的特点,它可能是一个新的特有的功能需求,对已存在的功能需求的约束或者是需要实现的一个特别计算。,2.1.1 需求分析,2.1 软件需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,2.软件系统需求分类 某学校的一个工资管理系统的功能需求描述如下: 运用管理系统处理工资问题,计算工资,做出工资表。 财务处每月接受每个职工当月的有关工资数据,编制出当月职工的工资报表,并将工资发到职工手中。 财务人员取得数据,计算应发工资和扣除项目,生成工资单,并将工资数据写

4、入报表数据库,修改与工资有关的其它相关数据。 非功能性的需求涉及的面非常广,包括系统的性能,目标系统所受的限制条件和开发和维护软件的限制,还包括如安全规章、隐私权保护的立法等外部因素。具体内容可由三个方面构成产品需求、机构需求、外部需求,细节由图2-1所示。 对于非功能需求的表述要求尽可能的量化且可验证。表2-1给出了一些可能用来指定非功能性系统特性的度量,据此可以检验系统是否满足了相应的需求。,2.1.1 需求分析,2.1 软件需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEER

5、ING,2.软件系统需求分类,2.1.1 需求分析,2.1 软件需求,图2-1 非功能需求的类型,非功能需求,产品需求,机构需求,外部需求,交付需求,空间需求,性能需求,可靠性需求,效率需求,可用性需求,安全性需求,隐私需求,立法需求,道德需求,互操作需求,可移植性需求,实现需求,标准需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,2.软件系统需求分类,2.1.1 需求分析,2.1 软件需求,表2-1 指定非功能需求的度量,SOFTWARE ENGINEERING SO

6、FTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,3.需求的层次 软件需求可以分为三个不同的层次-业务需求、用户需求和系统功能需求(也包括非功能需求)。如图2-2所示。,2.1.1 需求分析,2.1 软件需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,3.需求的层次 业务需求:说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中

7、予以说明。项目视图和范围文档应该包括高层的产品业务目标,所有的使用实例和功能需求都必须能达到业务需求的需要。项目视图说明使所有项目参与者对项目的目标能达成共识。而范围则是作为评估需求或潜在特性的参考。 用户需求:用户需求文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。 系统需求:定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。系统需求是比用户需求更详细的需求描述,是系统实现的基本依据。系统需求描述画出图形分析模型是有益的,这些模型包括数据流程图、实体关系图、状态转化图、对象类和联系图。自然语言也可以用来书写系统需求描述,为了减少

8、自然语言描述引起的误会,可以在描述中加进一些结构以减少二义性,也可以使用程序描述语言PDL来描述需求(在软件设计工具中介绍)。主要的描述方法如表2-2所示。 质量特性 确定质量属性是在其它非功能需求和功能需求之外再考虑一下非功能的质量特点,这会使你的产品达到并超过客户的期望。对系统如何能很好地执行某些行为或让用户采取某一措施的陈述就是质量属性,这是一种非功能需求。,2.1.1 需求分析,2.1 软件需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,3.需求的层次,2.1.

9、1 需求分析,2.1 软件需求,表2-2 需求描述所使用的符号,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,需求获取的目的是使开发人员全面准确地了解用户的需求。要想达到用户和开发者之间的充分理解是要经过大量的工作的。软件开发人员提出了一些好的方法介绍如下。 1.系统调查 系统调查工作是以系统分析人员为核心,成立调查组织,吸收原系统业务骨干和管理人员参加。可以有多个调查组同时工作,互相介绍情况。调查组织要拟定调查计划和提纲,要明确调查的目的、范围、对象、方法和分工。 系统调

10、查的一般方法有:发调查表征询意见、访问、开调查会、直接参加业务活动、请用户领导和业务骨干讲课、查阅文献资料。具体可有以下几点: 1)建立联合分析小组,建立一个由用户、系统分析员和领域专家参加的联合分析小组,通过联合分析小组的工作,可以使系统开发人员和用户之间方便地沟通,所以也有人将这种面向团队的需求收集方法称为“简易应用规格说明技术”。 2)客户访谈是获取用户需求的最常用、最基本的方法,系统分析人员必须深入现场,和用户方的业务人员进行多次交流。根据用户将来使用产品的功能、频率、优先等级或熟练程度等方面的差异,可将他们分成不同的类别,然后分别对每一类用户通过现场参观、个别座谈或小组会议等形式,了

11、解他们对现有系统的问题和期望新系统功能等方面的看法。 在访问用户的过程中可以使用情景分析技术,情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。,2.1.2获取需求的方法,2.1 软件需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,2.快速原型获取和验证需求 在需求工程过程中,开发人员根据对软件的理解,利用快速开发工具先快速地建立一个系统原型,然后让用户对原型进行评估,并提出修改意见,最终达到全面、准确地确定软件系统的外部行为和特征。,2.1.2获

12、取需求的方法,2.1 软件需求,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。 需求工程可分为系统需求工程(如果是针对由软硬件共同组成的整个系统)和软件需求工程(如果仅是专门针对纯软件部分)。软件需求工程是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型

13、开发过程把这些系统需求转换成软件的需求描述和一些性能参数。 需求工程包括两个方面:一是关于软件开发过程中的需求开发阶段,另一方面就是涉及到管理方面的问题即需求阶段的管理 。,2.2.1 需求工程步骤,2.2需求工程过程,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,1.需求开发 需求开发又分为可行性研究、需求导出和分析、编写规格说明书和需求验证。 可行性研究 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的实质,在较高层次上以较抽象的方式

14、进行的系统分析和设计的过程。 在这一阶段分析员要导出系统的逻辑模型,然后从逻辑模型出发寻找若干种可供选择的解法(即系统实现方案),对每种方案都要研究它的可行性,一般方案的可行性主要有四个方面:技术可行性、经济可行性、法律可行性、操作可行性。 需求导出和分析 决定系统应该提供什么服务,系统应该具有什么样的性能以及硬件约束等等。这一阶段可分为以下两步工作: 1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。 2)需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义。需求分析过程如图2-2所示。,2.2

15、.1 需求工程步骤,2.2需求工程过程,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,1.需求开发,2.2.1 需求工程步骤,2.2需求工程过程,图2-2需求分析过程,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,1.需求开发 编写规格说明书 需求规格说明是生成需求模型构件的精确的形式化的描述,软件需求规格说明阐述一个软件系统必须提供的功能和性能以及它所

16、要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。 需求验证及评审 需求验证及评审是以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;审查需求文档、依据需求编写测试用例、编写用户手册、确定合格的标准。,2.2.1 需求工程步骤,2.2需求工程过程,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,2.需求管理 需求管理的目的在于支持系统的需求演进,如需求变化和可跟踪性问题。需求管理是一个额外的需求工程活动,这个活动管理需求工程活动的变更

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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