03 软件需求工程1314.pptx
《03 软件需求工程1314.pptx》由会员分享,可在线阅读,更多相关《03 软件需求工程1314.pptx(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、需求工程需求工程软件工程(Software Engineering)1通过对问题及其环境的理解与分析,为问题涉及的信通过对问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的命周期的需求分析阶段需求分析阶段。软件需求作为软件生命周期的一个阶段,其重要性越软件需求作为软件生命周期的一个阶段,其重要性越来越突出,到来越突出,到20世纪世纪80年代中期,逐步形成了年代中期,逐步形成了软件工程的子
2、软件工程的子领域领域需求工程。需求工程。90年代后,需求工程成为软件界研究的重点之一。从年代后,需求工程成为软件界研究的重点之一。从1993年起,每两年举办一次需求工程国际研讨会(年起,每两年举办一次需求工程国际研讨会(ISRE),),1994年起,每两年举办一次需求工程国际会议(年起,每两年举办一次需求工程国际会议(ICRE)。一)。一些关于需求工程的工作小组相继成立,使需求工程的研究得些关于需求工程的工作小组相继成立,使需求工程的研究得到了迅速进展。到了迅速进展。2内容摘要内容摘要1.1.什么是需求工程什么是需求工程?2.2.什么是软件需求工程?什么是软件需求工程?3.3.软件需求的重要性
3、软件需求的重要性4.4.软件需求的困难软件需求的困难5.5.软件需求内容软件需求内容6.6.需求工程的活动需求工程的活动31)需求的基本概念需求的基本概念 宽泛地讲,需求来源于用户的一些宽泛地讲,需求来源于用户的一些“需要需要”,这些,这些“需要需要”被分被分析、确认后形成完整的文档,该文档详细地说明了产品析、确认后形成完整的文档,该文档详细地说明了产品“必须或必须或应当应当”做什么。做什么。软件需求软件需求是指用户对是指用户对目标软件系统目标软件系统在功能、行为、性能、设在功能、行为、性能、设计约束等方面的期望。计约束等方面的期望。2)需求工程需求工程(RE)的的概念概念 是指应用已证实有效
4、的技术、方法进行需求分析,确定客户需求,是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。科。需求分析专家需求分析专家 Alan Davis 把需求工程定义为把需求工程定义为“直到(但不包括)直到(但不包括)把软件分解为实际架构构件之前的所有活动把软件分解为实际架构构件之前的所有活动”RE通过合适的工具和记号系统地描述待开发系统及其行为特征和通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支相关约束,形成需求文档
5、,并对用户不断变化的需求演进给予支持。持。1 什么是需求工程什么是需求工程42.什么是软件需求工程?什么是软件需求工程?需求工程需求工程RE可分为可分为系统需求工程系统需求工程(如果是针对由软硬件共同(如果是针对由软硬件共同组成的整个系统)和组成的整个系统)和软件需求工程软件需求工程(如果仅是专门针对纯软(如果仅是专门针对纯软件部分)。件部分)。软件需求工程软件需求工程是一门分析并记录是一门分析并记录软件需求软件需求的学科,它把的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研
6、任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成究、原型开发过程把这些系统需求转换成软件的需求描述软件的需求描述和和一些性能参数。一些性能参数。5软件需求无疑是当前软件工程中的关键问题,软件需求无疑是当前软件工程中的关键问题,没有需求就没有需求就没有软件。没有软件。需求的重要性需求的重要性Frederick Frederick BrooksBrooks在在他他19871987年年经经典典文文章章“No No Silver Silver BulletBullet”中中阐述了需求的重要性:阐述了需求的重要性:开发软件系统最困难的部分就是准确说明开发什么。最困
7、难的开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。极大的损害,并且以后对它修改也极为困难。需求是产品的根源,需求工作的优劣对产品影响最大。就像一条需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。河流,如果源头被污染了,那么整条河流也就被污染了。国内软件业的痼疾:人们并不清楚究竟
8、该做什么,但却一直忙碌国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。不停地开发。3.软件需求的重要性软件需求的重要性63.软件需求的重要性软件需求的重要性 美国于美国于1995年开始对全国范围内的年开始对全国范围内的8000个软件项目进行个软件项目进行跟踪调查。跟踪调查。分析失败的原因发现,分析失败的原因发现,与需求过程相关的原因占了与需求过程相关的原因占了45%,而其中,而其中缺乏最终用户的缺乏最终用户的参与以及不完整的需求又是两参与以及不完整的需求又是两大首要原因,大首要原因,各占各占13%和和12%。未完成未完成完成未实施完成未实施完成完成完成完成74.软件需求的困
9、难软件需求的困难软件需求是软件工程中最复杂的过程之一:软件需求是软件工程中最复杂的过程之一:应用领域的广泛性应用领域的广泛性,它的实施无疑与各个应用行业,它的实施无疑与各个应用行业的特征密切相关。的特征密切相关。非功能性需求建模技术的缺乏非功能性需求建模技术的缺乏及其与功能性需求有及其与功能性需求有着错综复杂的联系,大大增加了需求工程的复杂性。着错综复杂的联系,大大增加了需求工程的复杂性。沟通上的困难,沟通上的困难,由于系统需求分析各方面人员有不由于系统需求分析各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。增加了人为的难
10、度。客户说不清楚需求;客户说不清楚需求;需求自身经常变动;需求自身经常变动;分析人员或客户理解有误。分析人员或客户理解有误。8真正的软件需求获取如此困难(漫画)真正的软件需求获取如此困难(漫画)9 需求工程需求工程是系统工程和软件工程的一个交叉分支,涉是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能
11、力之间的桥梁。求和软件能力之间的桥梁。需求工程需求工程需求工程需求工程系统目标系统目标系统服务系统服务软件约束软件约束运行环境运行环境5.软件需求内容软件需求内容10软软 件需件需 求求用用 户需户需 求求系系 统需统需 求求功能功能需求需求非功能非功能需求需求领域领域需求需求由客户管理员、由客户管理员、用户等提出用户等提出软件需求的内容软件需求的内容5.软件需求内容软件需求内容11功能需求功能需求 它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统在特定条件下的行为的描述。它与软件系统的类在
12、特定条件下的行为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述系统的功能、输入系统的功能、输入系统的功能、输入系统的功能、输入/输出、异常等,有时还需要输出、异常等,有时还需要输出、异常等,有时还需要输出、异常等,有时还需要申申申申明系统不应该做什么。明系统不应该做什么。明系统不应该做什么。明系统不应该做什么。领域需求领域需求 是由软件系统的应用领域所决定的特有的功是
13、由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。能需求,或是对功能的约束。能需求,或是对功能的约束。能需求,或是对功能的约束。12非功能需求非功能需求产品需求产品需求机构需求机构需求外部需求外部需求互操作互操作需求需求道德道德需求需求立法立法需求需求性能性能需求需求空间空间需求需求交付交付需求需求实现实现需求需求标准标准需求需求隐私隐私需求需求安全性安全性需求需求可用性可用性需求需求效率效率需求需求可靠性可靠性需求需求可移植可移植性需求性需求非功能需求非功能需求13因此系统应该具备以下因此系统应该具备以下
14、功能功能功能功能:基本数据维护功能基本数据维护功能 基本业务功能基本业务功能 数据库管理功能数据库管理功能 信息查询功能信息查询功能例例例例1 1:有一个大学图书管理系统,该系统除了一般的有一个大学图书管理系统,该系统除了一般的有一个大学图书管理系统,该系统除了一般的有一个大学图书管理系统,该系统除了一般的图书管理功能外,还能够为学生和教工从其他图书馆图书管理功能外,还能够为学生和教工从其他图书馆图书管理功能外,还能够为学生和教工从其他图书馆图书管理功能外,还能够为学生和教工从其他图书馆借阅图书和文献资料提供服务。借阅图书和文献资料提供服务。借阅图书和文献资料提供服务。借阅图书和文献资料提供服
15、务。141.1.功能需求功能需求功能需求功能需求基本数据维护功能:基本数据维护功能:基本数据维护功能:基本数据维护功能:提供使用者录入,修改并进行维护基本数据的提供使用者录入,修改并进行维护基本数据的提供使用者录入,修改并进行维护基本数据的提供使用者录入,修改并进行维护基本数据的途径。基本数据包括读者的信息、图书资料的相关途径。基本数据包括读者的信息、图书资料的相关途径。基本数据包括读者的信息、图书资料的相关途径。基本数据包括读者的信息、图书资料的相关信息,可以对这些信息进行修改,更新。信息,可以对这些信息进行修改,更新。信息,可以对这些信息进行修改,更新。信息,可以对这些信息进行修改,更新。
16、基本业务功能:基本业务功能:基本业务功能:基本业务功能:读者借、还书籍的登记管理功能,随时根据读读者借、还书籍的登记管理功能,随时根据读读者借、还书籍的登记管理功能,随时根据读读者借、还书籍的登记管理功能,随时根据读者借、还书籍的情况更新数据库系统,可以进行书者借、还书籍的情况更新数据库系统,可以进行书者借、还书籍的情况更新数据库系统,可以进行书者借、还书籍的情况更新数据库系统,可以进行书籍的编目、入库、更新等操作。籍的编目、入库、更新等操作。籍的编目、入库、更新等操作。籍的编目、入库、更新等操作。15数据库管理功能:数据库管理功能:数据库管理功能:数据库管理功能:对所有图书信息及读者信息进行
17、统一管理维护的对所有图书信息及读者信息进行统一管理维护的对所有图书信息及读者信息进行统一管理维护的对所有图书信息及读者信息进行统一管理维护的功能,对书籍的借还也要进行详细的登记,以便协调功能,对书籍的借还也要进行详细的登记,以便协调功能,对书籍的借还也要进行详细的登记,以便协调功能,对书籍的借还也要进行详细的登记,以便协调整个图书馆的运作。整个图书馆的运作。整个图书馆的运作。整个图书馆的运作。信息查询功能:信息查询功能:信息查询功能:信息查询功能:提供对各类信息的查询功能,如对本图书馆的用提供对各类信息的查询功能,如对本图书馆的用提供对各类信息的查询功能,如对本图书馆的用提供对各类信息的查询功
18、能,如对本图书馆的用户借书信息,还书的信息,书籍源信息等进行查询,户借书信息,还书的信息,书籍源信息等进行查询,户借书信息,还书的信息,书籍源信息等进行查询,户借书信息,还书的信息,书籍源信息等进行查询,对其他图书馆的书籍、资料源信息的查询功能。对其他图书馆的书籍、资料源信息的查询功能。对其他图书馆的书籍、资料源信息的查询功能。对其他图书馆的书籍、资料源信息的查询功能。162.2.非功能需求非功能需求非功能需求非功能需求 系统安全性需求:系统安全性需求:系统安全性需求:系统安全性需求:为保证系统安全性,对本图书为保证系统安全性,对本图书为保证系统安全性,对本图书为保证系统安全性,对本图书馆的各
19、项功能进行分级、分权限操作,对各类用户进馆的各项功能进行分级、分权限操作,对各类用户进馆的各项功能进行分级、分权限操作,对各类用户进馆的各项功能进行分级、分权限操作,对各类用户进行确认。对其它图书馆借阅图书和文献资料服务控制行确认。对其它图书馆借阅图书和文献资料服务控制行确认。对其它图书馆借阅图书和文献资料服务控制行确认。对其它图书馆借阅图书和文献资料服务控制访问范围:如限访问范围:如限访问范围:如限访问范围:如限IPIP、限用户等。、限用户等。、限用户等。、限用户等。对系统可用性的需求:对系统可用性的需求:对系统可用性的需求:对系统可用性的需求:为了方便使用者,要求对为了方便使用者,要求对为
20、了方便使用者,要求对为了方便使用者,要求对所有交互操作提供在线帮助功能。所有交互操作提供在线帮助功能。所有交互操作提供在线帮助功能。所有交互操作提供在线帮助功能。对系统查询速度的需求:对系统查询速度的需求:对系统查询速度的需求:对系统查询速度的需求:要求系统在要求系统在要求系统在要求系统在20S20S之内响之内响之内响之内响应查询服务请求。应查询服务请求。应查询服务请求。应查询服务请求。对系统可靠性的需求:对系统可靠性的需求:对系统可靠性的需求:对系统可靠性的需求:要求系统失败发生率小于要求系统失败发生率小于要求系统失败发生率小于要求系统失败发生率小于1%1%。173.3.领域需求领域需求领域
21、需求领域需求例如:对例如:对例如:对例如:对“大学图书管理系统大学图书管理系统大学图书管理系统大学图书管理系统”,提出一些与图书管,提出一些与图书管,提出一些与图书管,提出一些与图书管理的业务相关的需求:理的业务相关的需求:理的业务相关的需求:理的业务相关的需求:图书编目要求按照中国图书馆分类法进行;图书编目要求按照中国图书馆分类法进行;图书编目要求按照中国图书馆分类法进行;图书编目要求按照中国图书馆分类法进行;由于版权限制,某些文献资料只能在图书馆规定由于版权限制,某些文献资料只能在图书馆规定由于版权限制,某些文献资料只能在图书馆规定由于版权限制,某些文献资料只能在图书馆规定的阅览室阅读,并
22、限制复制和打印。的阅览室阅读,并限制复制和打印。的阅览室阅读,并限制复制和打印。的阅览室阅读,并限制复制和打印。第一条需求是对遵循我国图书管理的规定,执行对第一条需求是对遵循我国图书管理的规定,执行对第一条需求是对遵循我国图书管理的规定,执行对第一条需求是对遵循我国图书管理的规定,执行对图书的分类管理的标准。而第二条需求则是版权法对图书的分类管理的标准。而第二条需求则是版权法对图书的分类管理的标准。而第二条需求则是版权法对图书的分类管理的标准。而第二条需求则是版权法对图书馆文献资料的保护的需要,描述了对一类文献资图书馆文献资料的保护的需要,描述了对一类文献资图书馆文献资料的保护的需要,描述了对
23、一类文献资图书馆文献资料的保护的需要,描述了对一类文献资料有限制的使用和服务。料有限制的使用和服务。料有限制的使用和服务。料有限制的使用和服务。18 Herb Krasner定义了需求工程的五阶段生命周期:定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需求实需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理现与验证、需求演进管理 Matthias Jarke和和Klaus Pohl提出了三阶段周期提出了三阶段周期的说法:获取、表示和验证的说法:获取、表示和验证 本书将软件需求工程细分为:本书将软件需求工程细分为:需求获取、需求分需求获取、需求分析与协
24、商、系统建模、需求规约、需求验证析与协商、系统建模、需求规约、需求验证和和需求管需求管理理六个阶段。六个阶段。6.需求工程的活动需求工程的活动 19需求工程中的活动可分为两大类需求工程中的活动可分为两大类:一、需求开发一、需求开发二、需求管理二、需求管理6.需求工程的活动需求工程的活动 20一、一、需求开发需求开发 需求开发需求开发的任务是的任务是准确地定义未来系统的目标,确定为了满足用户的需求准确地定义未来系统的目标,确定为了满足用户的需求系统必须系统必须做什么做什么。用需求规格说明书规范的形式准确地表达用户的。用需求规格说明书规范的形式准确地表达用户的需求。需求。需求开发需求开发的目的是通
25、过调查与分析,获取用户需求并定义产品需求。的目的是通过调查与分析,获取用户需求并定义产品需求。(1 1)需求获取)需求获取的目的是的目的是深入实际,深入实际,通过各种途径通过各种途径,在充分理解用户需求在充分理解用户需求的基础上,的基础上,获取用户的需求信息获取用户的需求信息。(2 2)需求分析、协商与建模)需求分析、协商与建模的目的是对各种需求信息进行分析,消除的目的是对各种需求信息进行分析,消除错误,刻画细节等。错误,刻画细节等。(3 3)需求规格说明)需求规格说明目的是根据需求获取和需求分析的结果,进一步定目的是根据需求获取和需求分析的结果,进一步定义准确无误的产品需求,产生需求规格说明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 软件需求工程1314 软件 需求 工程 1314
限制150内