需求分析基础 (2).ppt
需求分析基础需求分析基础3 3第三第三 章章 软件需求作为软件生命周期的第一个阶段,软件需求作为软件生命周期的第一个阶段,软件需求作为软件生命周期的第一个阶段,软件需求作为软件生命周期的第一个阶段,其重要性越来越突出,到其重要性越来越突出,到其重要性越来越突出,到其重要性越来越突出,到2020世纪世纪世纪世纪8080年代中期,逐年代中期,逐年代中期,逐年代中期,逐步形成了步形成了步形成了步形成了软件工程的子领域软件工程的子领域软件工程的子领域软件工程的子领域需求工程。需求工程。需求工程。需求工程。9090年代后,需求工程成为软件界研究的重点年代后,需求工程成为软件界研究的重点年代后,需求工程成为软件界研究的重点年代后,需求工程成为软件界研究的重点之一。从之一。从之一。从之一。从19931993年起,每两年举办一次需求工程国年起,每两年举办一次需求工程国年起,每两年举办一次需求工程国年起,每两年举办一次需求工程国际研讨会(际研讨会(际研讨会(际研讨会(ISREISRE),),),),19941994年起,每两年举办一次年起,每两年举办一次年起,每两年举办一次年起,每两年举办一次需求工程国际会议(需求工程国际会议(需求工程国际会议(需求工程国际会议(ICREICRE)。一些关于需求工程)。一些关于需求工程)。一些关于需求工程)。一些关于需求工程的工作小组相继成立,使需求工程的研究得到了的工作小组相继成立,使需求工程的研究得到了的工作小组相继成立,使需求工程的研究得到了的工作小组相继成立,使需求工程的研究得到了迅速进展。迅速进展。迅速进展。迅速进展。3.1 3.1 软件需求工程的基本概念软件需求工程的基本概念 对对系系统统应应该该提提供供的的服服务务和和所所受受到到的的约约束束进进行行理理解、分析、建立文档、检验的过程解、分析、建立文档、检验的过程需求工程需求工程1.1.什么是软件需求工程?什么是软件需求工程?2.2.软件需求工程的任务是什么?软件需求工程的任务是什么?3.3.需求工程过程需求工程过程4.4.软件需求分析方法软件需求分析方法软件需求的重要性软件需求的重要性 软件需求无疑是当前软件工程中的关键问题,软件需求无疑是当前软件工程中的关键问题,没有需求就没有软件没有需求就没有软件没有需求就没有软件没有需求就没有软件。美国于美国于1995年开始对全国范围内的年开始对全国范围内的8000个软件项目个软件项目进行跟踪调查。进行跟踪调查。分析失败的原因发现,分析失败的原因发现,与需求过程相关的原因占了与需求过程相关的原因占了45%,而其中,而其中缺乏最终用户的缺乏最终用户的缺乏最终用户的缺乏最终用户的参与以及不完整的需求又是两参与以及不完整的需求又是两参与以及不完整的需求又是两参与以及不完整的需求又是两大首要原因,大首要原因,大首要原因,大首要原因,各占各占13%和和12%。未完成未完成完成未实施完成未实施完成完成完成完成软件需求的困难软件需求的困难软件需求是软件工程中最复杂的过程之一:软件需求是软件工程中最复杂的过程之一:1.应用领域的广泛性应用领域的广泛性,它的实施无疑与各个应用行,它的实施无疑与各个应用行业的特征密切相关。业的特征密切相关。2.非功能性需求建模技术的缺乏,非功能性需求建模技术的缺乏,及其与功能性需及其与功能性需求有着错综复杂的联系,大大增加了需求工程的求有着错综复杂的联系,大大增加了需求工程的复杂性。复杂性。3.沟通上的困难,沟通上的困难,由于系统分析员、需求分析员等由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背景,各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。给需求工程的实施增加了人为的难度。软软 件需件需 求求用用 户需户需 求求系系 统需统需 求求功能功能需求需求非功能非功能需求需求领域领域需求需求由客户管理员、由客户管理员、用户等提出用户等提出软件需求的内容软件需求的内容一、软件需求内容一、软件需求内容功能需求功能需求 它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统在特定条件下的行为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述系统的功能、输入系统的功能、输入系统的功能、输入系统的功能、输入/输出、异常等,有时还需要输出、异常等,有时还需要输出、异常等,有时还需要输出、异常等,有时还需要申申申申明系统不应该做什么。明系统不应该做什么。明系统不应该做什么。明系统不应该做什么。领域需求领域需求领域需求领域需求 是由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。能需求,或是对功能的约束。能需求,或是对功能的约束。能需求,或是对功能的约束。非功能需求非功能需求产品需求产品需求机构需求机构需求外部需求外部需求互操作互操作需求需求道德道德需求需求立法立法需求需求性能性能需求需求空间空间需求需求交付交付需求需求实现实现需求需求标准标准需求需求隐私隐私需求需求安全安全性需求性需求可用性可用性需求需求效率效率需求需求可靠性可靠性需求需求可移植可移植性需求性需求传统需求分析传统需求分析 在传统软件工程生命周期中,涉及需求的阶段在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:称作需求分析。一般来说,需求分析的作用是:定义软件的范围及必须满足的约束;定义软件的范围及必须满足的约束;确定软件的功能和性能及与其他系统成分的接确定软件的功能和性能及与其他系统成分的接 口口;建立数据模型、功能模型和行为模型;建立数据模型、功能模型和行为模型;最终提供需求规格说明,并用于作为评估软件最终提供需求规格说明,并用于作为评估软件 质量的依据。质量的依据。二、需求工程的活动 需求工程是系统工程和软件工程的一个交叉分支,涉需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。求和软件能力之间的桥梁。需求工程需求工程需求工程需求工程系统目标系统目标系统服务系统服务软件约束软件约束运行环境运行环境需求工程的基本活动包括:需求工程的基本活动包括:获取需求获取需求;深入实际,在充分理解用户需求的基深入实际,在充分理解用户需求的基础上,获取系统需求。础上,获取系统需求。需求需求分析与建模;分析与建模;进行需求建模、对模型或原型进行需求建模、对模型或原型进行分析。进行分析。确认需求确认需求;确保需求说明准确、完整地表达系统确保需求说明准确、完整地表达系统的主要特性。的主要特性。进化需求进化需求。客户的需要总是不断(连续)增长。客户的需要总是不断(连续)增长的的 ,进化需求是必要的。,进化需求是必要的。一、一、需求获取需求获取需求获取需求获取(requirementerequiremente licitationlicitation)是需求工程的主体。是需求工程的主体。是需求工程的主体。是需求工程的主体。缺乏领域知识缺乏领域知识,应用领域的问题常常是模糊的、不应用领域的问题常常是模糊的、不精确的;精确的;存在默认的知识存在默认的知识,如难以描述的常识问题;如难以描述的常识问题;存在多个知识源存在多个知识源,且多知识源之间可能有冲突;且多知识源之间可能有冲突;客户可能的偏见客户可能的偏见,如不能提供,如不能提供或不想告知或不想告知你所需要你所需要了解的事情。了解的事情。非常困难,主要原因有:非常困难,主要原因有:需求获取技术需求获取技术 需求抽取的方法一般有:需求抽取的方法一般有:1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2.问卷调查法问卷调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养高效团队。培养高效团队。4.观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5.原型化方法原型化方法6.基于用例的方法基于用例的方法 还有知识工程方法等如:场记分析法、卡片分还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。类法、分类表格技术和基于模型的知识获取等。面谈的对象主要有用户和领域专家:面谈的对象主要有用户和领域专家:面谈的对象主要有用户和领域专家:面谈的对象主要有用户和领域专家:1 1)面谈前的准备要充分;面谈前的准备要充分;面谈前的准备要充分;面谈前的准备要充分;2 2)面谈后注意认真分析总结;面谈后注意认真分析总结;面谈后注意认真分析总结;面谈后注意认真分析总结;3 3)注意掌握面谈的人际交流技能。注意掌握面谈的人际交流技能。注意掌握面谈的人际交流技能。注意掌握面谈的人际交流技能。需求获取技术需求获取技术 需求抽取的方法一般有:需求抽取的方法一般有:1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2.问卷法调查法问卷法调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养高效团队。培养高效团队。4.观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5.原型化方法原型化方法6.基于用例的方法基于用例的方法是从多个用户中收集需求信息的有效是从多个用户中收集需求信息的有效是从多个用户中收集需求信息的有效是从多个用户中收集需求信息的有效方式方式方式方式 ,一般问卷设计形式:,一般问卷设计形式:,一般问卷设计形式:,一般问卷设计形式:1 1)多项选择问题)多项选择问题)多项选择问题)多项选择问题 ;2 2)评分问题)评分问题)评分问题)评分问题 ;3 3)排序问题)排序问题)排序问题)排序问题 。需求获取技术需求获取技术 需求抽取的方法一般有:需求抽取的方法一般有:1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2.问卷法调查法问卷法调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养高效团队。培养高效团队。4.观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5.原型化方法原型化方法6.基于用例的方法基于用例的方法由开发方和用户方共同召开由开发方和用户方共同召开由开发方和用户方共同召开由开发方和用户方共同召开,操作步骤:操作步骤:操作步骤:操作步骤:开发方根据双方制定的开发方根据双方制定的开发方根据双方制定的开发方根据双方制定的需求调研计划需求调研计划需求调研计划需求调研计划召开相关需求主题沟召开相关需求主题沟召开相关需求主题沟召开相关需求主题沟通会;通会;通会;通会;会后开发方整理出会后开发方整理出会后开发方整理出会后开发方整理出需求调研记录需求调研记录需求调研记录需求调研记录提交给用户方确认;提交给用户方确认;提交给用户方确认;提交给用户方确认;如果此主题还有未明确的问题则再次沟通如果此主题还有未明确的问题则再次沟通如果此主题还有未明确的问题则再次沟通如果此主题还有未明确的问题则再次沟通,否则开始下一主题;否则开始下一主题;否则开始下一主题;否则开始下一主题;所有需求都沟通清楚后,开发方根据历次所有需求都沟通清楚后,开发方根据历次所有需求都沟通清楚后,开发方根据历次所有需求都沟通清楚后,开发方根据历次需求调研记录需求调研记录需求调研记录需求调研记录整整整整理出理出理出理出用户需求说明书用户需求说明书用户需求说明书用户需求说明书,提交给用户方确认签字。,提交给用户方确认签字。,提交给用户方确认签字。,提交给用户方确认签字。因此系统应该具备以下功能:因此系统应该具备以下功能:因此系统应该具备以下功能:因此系统应该具备以下功能:基本数据维护功能基本数据维护功能基本数据维护功能基本数据维护功能 基本业务功能基本业务功能基本业务功能基本业务功能 数据库管理功能数据库管理功能数据库管理功能数据库管理功能 信息查询功能信息查询功能信息查询功能信息查询功能例例例例1 1:有一个大学图书管理系统,该系统除了一般的:有一个大学图书管理系统,该系统除了一般的:有一个大学图书管理系统,该系统除了一般的:有一个大学图书管理系统,该系统除了一般的图书管理功能外,还能够为学生和教工从其他图书馆图书管理功能外,还能够为学生和教工从其他图书馆图书管理功能外,还能够为学生和教工从其他图书馆图书管理功能外,还能够为学生和教工从其他图书馆借阅图书和文献资料提供服务。借阅图书和文献资料提供服务。借阅图书和文献资料提供服务。借阅图书和文献资料提供服务。1.1.功能需求功能需求功能需求功能需求基本数据维护功能:基本数据维护功能:基本数据维护功能:基本数据维护功能:提供使用者录入,修改并进行维护基本数据的提供使用者录入,修改并进行维护基本数据的提供使用者录入,修改并进行维护基本数据的提供使用者录入,修改并进行维护基本数据的途径。基本数据包括读者的信息、图书资料的相关途径。基本数据包括读者的信息、图书资料的相关途径。基本数据包括读者的信息、图书资料的相关途径。基本数据包括读者的信息、图书资料的相关信息,可以对这些信息进行修改,更新。信息,可以对这些信息进行修改,更新。信息,可以对这些信息进行修改,更新。信息,可以对这些信息进行修改,更新。基本业务功能:基本业务功能:基本业务功能:基本业务功能:读者借、还书籍的登记管理功能,随时根据读读者借、还书籍的登记管理功能,随时根据读读者借、还书籍的登记管理功能,随时根据读读者借、还书籍的登记管理功能,随时根据读者借、还书籍的情况更新数据库系统,如果书籍已者借、还书籍的情况更新数据库系统,如果书籍已者借、还书籍的情况更新数据库系统,如果书籍已者借、还书籍的情况更新数据库系统,如果书籍已经借出,可以进行预留操作,书籍的编目、入库、经借出,可以进行预留操作,书籍的编目、入库、经借出,可以进行预留操作,书籍的编目、入库、经借出,可以进行预留操作,书籍的编目、入库、更新等操作。更新等操作。更新等操作。更新等操作。数据库管理功能:数据库管理功能:数据库管理功能:数据库管理功能:对所有图书信息及读者信息进行统一管理维护对所有图书信息及读者信息进行统一管理维护对所有图书信息及读者信息进行统一管理维护对所有图书信息及读者信息进行统一管理维护的功能,对书籍的借还也要进行详细的登记,以便的功能,对书籍的借还也要进行详细的登记,以便的功能,对书籍的借还也要进行详细的登记,以便的功能,对书籍的借还也要进行详细的登记,以便协调整个图书馆的运作。协调整个图书馆的运作。协调整个图书馆的运作。协调整个图书馆的运作。信息查询功能:信息查询功能:信息查询功能:信息查询功能:提供对各类信息的查询功能,如对本图书馆的提供对各类信息的查询功能,如对本图书馆的提供对各类信息的查询功能,如对本图书馆的提供对各类信息的查询功能,如对本图书馆的用户借书信息,还书的信息,书籍源信息,预留信用户借书信息,还书的信息,书籍源信息,预留信用户借书信息,还书的信息,书籍源信息,预留信用户借书信息,还书的信息,书籍源信息,预留信息等进行查询,对其他图书馆的书籍、资料源信息息等进行查询,对其他图书馆的书籍、资料源信息息等进行查询,对其他图书馆的书籍、资料源信息息等进行查询,对其他图书馆的书籍、资料源信息的查询功能。的查询功能。的查询功能。的查询功能。2.2.非功能需求非功能需求非功能需求非功能需求 系统安全性需求:系统安全性需求:系统安全性需求:系统安全性需求:为保证系统安全性,对本图书为保证系统安全性,对本图书为保证系统安全性,对本图书为保证系统安全性,对本图书馆的各项功能进行分级、分权限操作,对各类用户进馆的各项功能进行分级、分权限操作,对各类用户进馆的各项功能进行分级、分权限操作,对各类用户进馆的各项功能进行分级、分权限操作,对各类用户进行确认。对其它图书馆借阅图书和文献资料服务控制行确认。对其它图书馆借阅图书和文献资料服务控制行确认。对其它图书馆借阅图书和文献资料服务控制行确认。对其它图书馆借阅图书和文献资料服务控制访问范围:如限访问范围:如限访问范围:如限访问范围:如限IPIP、限用户等。、限用户等。、限用户等。、限用户等。对系统可用性的需求:对系统可用性的需求:对系统可用性的需求:对系统可用性的需求:为了方便使用者,要求对为了方便使用者,要求对为了方便使用者,要求对为了方便使用者,要求对所有交互操作提供在线帮助功能。所有交互操作提供在线帮助功能。所有交互操作提供在线帮助功能。所有交互操作提供在线帮助功能。对系统查询速度的需求:对系统查询速度的需求:对系统查询速度的需求:对系统查询速度的需求:要求系统在要求系统在要求系统在要求系统在20S20S之内响之内响之内响之内响应查询服务请求。应查询服务请求。应查询服务请求。应查询服务请求。对系统可靠性的需求:对系统可靠性的需求:对系统可靠性的需求:对系统可靠性的需求:要求系统失败发生率小于要求系统失败发生率小于要求系统失败发生率小于要求系统失败发生率小于1%1%。3.3.领域需求领域需求领域需求领域需求 例如:对例如:对例如:对例如:对“大学图书管理系统大学图书管理系统大学图书管理系统大学图书管理系统”,提出一些与图,提出一些与图,提出一些与图,提出一些与图书管理的业务相关的需求:书管理的业务相关的需求:书管理的业务相关的需求:书管理的业务相关的需求:图书编目要求按照图书编目要求按照图书编目要求按照图书编目要求按照中国图书馆分类法中国图书馆分类法中国图书馆分类法中国图书馆分类法进行;进行;进行;进行;由于版权限制,某些文献资料只能在图书馆规定由于版权限制,某些文献资料只能在图书馆规定由于版权限制,某些文献资料只能在图书馆规定由于版权限制,某些文献资料只能在图书馆规定的阅览室阅读,并限制复制和打印。的阅览室阅读,并限制复制和打印。的阅览室阅读,并限制复制和打印。的阅览室阅读,并限制复制和打印。第一条需求是对遵循我国图书管理的规定,执行第一条需求是对遵循我国图书管理的规定,执行第一条需求是对遵循我国图书管理的规定,执行第一条需求是对遵循我国图书管理的规定,执行对图书的分类管理的标准。而第二条需求则是版权法对图书的分类管理的标准。而第二条需求则是版权法对图书的分类管理的标准。而第二条需求则是版权法对图书的分类管理的标准。而第二条需求则是版权法对图书馆文献资料的保护的需要,描述了对一类文献对图书馆文献资料的保护的需要,描述了对一类文献对图书馆文献资料的保护的需要,描述了对一类文献对图书馆文献资料的保护的需要,描述了对一类文献资料有限制的使用和服务。资料有限制的使用和服务。资料有限制的使用和服务。资料有限制的使用和服务。二、二、需求分析与建模需求分析与建模 需求分析和建模又包含三个层次的工作。需求分析和建模又包含三个层次的工作。1 1、需求分析、需求分析 2 2、需求建模(分为企业、需求建模(分为企业建模建模、功能需求、功能需求建模建模和非和非功能需求功能需求建模建模等)等)3 3、需求规格说明需求规格说明不同的描述方式。不同的描述方式。主要对收集到的需求进行提炼、分析和认真审主要对收集到的需求进行提炼、分析和认真审查,确保所有参加人员取得一致共识。找出错误、查,确保所有参加人员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。遗漏和不足,建立完整的分析模型。需求分析常用技术需求分析常用技术 为了降低软件的复杂度,便于对问题的分析和为了降低软件的复杂度,便于对问题的分析和为了降低软件的复杂度,便于对问题的分析和为了降低软件的复杂度,便于对问题的分析和理解,常采用以下技术:理解,常采用以下技术:理解,常采用以下技术:理解,常采用以下技术:1.1.分解分解分解分解 将大问题分解为小问题,通常是自顶而将大问题分解为小问题,通常是自顶而将大问题分解为小问题,通常是自顶而将大问题分解为小问题,通常是自顶而下,不断细化的过程。下,不断细化的过程。下,不断细化的过程。下,不断细化的过程。2.2.抽象抽象抽象抽象 抓住问题的本质特性,从不同抽象层次抓住问题的本质特性,从不同抽象层次抓住问题的本质特性,从不同抽象层次抓住问题的本质特性,从不同抽象层次进行分析,提出解决问题的方案。进行分析,提出解决问题的方案。进行分析,提出解决问题的方案。进行分析,提出解决问题的方案。3.3.多视点多视点多视点多视点 注意从各类开发人员和不同用户的角注意从各类开发人员和不同用户的角注意从各类开发人员和不同用户的角注意从各类开发人员和不同用户的角度考虑问题,才能获得度考虑问题,才能获得度考虑问题,才能获得度考虑问题,才能获得 对系统的全面完整的需求。对系统的全面完整的需求。对系统的全面完整的需求。对系统的全面完整的需求。三、需求的有效性验证三、需求的有效性验证 (一一一一)需求验证的重要性需求验证的重要性需求验证的重要性需求验证的重要性.由于需求是软件开发的第一阶段,直接影响后由于需求是软件开发的第一阶段,直接影响后面各阶段的开发。面各阶段的开发。.需求的可变性必须进行验证。需求的可变性必须进行验证。软件软件软件软件需求需求需求需求软件软件软件软件设计设计设计设计软件软件软件软件编码编码编码编码软件软件软件软件测试测试测试测试运行运行运行运行维护维护维护维护做什么做什么做什么做什么怎么做怎么做怎么做怎么做三、需求的有效性验证三、需求的有效性验证 (二二二二)需求验证的内容需求验证的内容需求验证的内容需求验证的内容1 1.有有有有效效效效性性性性检检检检查查查查指指功功能能需需求求是是否否符符合合用用户户所所提提出出的需求。的需求。2.2.2.2.一致性检查一致性检查一致性检查一致性检查系统功能描述及约束是否一致。系统功能描述及约束是否一致。3.3.3.3.完完完完备备备备性性性性检检检检查查查查是是否否包包含含所所有有系系统统用用户户的的需需求求和和约束。约束。4.4.4.4.可可可可检检检检验验验验性性性性检检检检查查查查是是否否能能设设计计出出一一组组验验证证方方法法,确定了检验的标准。确定了检验的标准。四、需求管理四、需求管理 需求管理贯穿需求分析全过程,包括需求管理贯穿需求分析全过程,包括:需求管理需求管理需求管理需求管理变更控制变更控制 建议变更建议变更建议变更建议变更 分析影响分析影响分析影响分析影响 交流交流交流交流 合并合并合并合并 测量需求的稳测量需求的稳测量需求的稳测量需求的稳定性定性定性定性版本控制版本控制 定义需求文档定义需求文档定义需求文档定义需求文档版本版本版本版本 确定单个需求确定单个需求确定单个需求确定单个需求文档版本文档版本文档版本文档版本需求跟踪需求跟踪需求跟踪需求跟踪 定义与其他需定义与其他需定义与其他需定义与其他需求的链接求的链接求的链接求的链接 定义与其他系定义与其他系定义与其他系定义与其他系统元素的链接统元素的链接统元素的链接统元素的链接需求状态跟踪需求状态跟踪需求状态跟踪需求状态跟踪 定义需求状态定义需求状态定义需求状态定义需求状态 跟踪所有需求跟踪所有需求跟踪所有需求跟踪所有需求状态状态状态状态四、需求管理四、需求管理 需求管理的所有活动中,最重要的是需求管理的所有活动中,最重要的是“需求变更管理需求变更管理”,包括包括:问题分析和变更问题分析和变更描述描述变更分析和成本变更分析和成本计算计算变更实现变更实现修正后的修正后的需求需求识别出的识别出的问题问题 需需求求管管理理过过程程需需要要CASE(Computer Aided Software Engineering)工具支持。工具支持。1.1.传统的变化管理传统的变化管理传统的变化管理传统的变化管理 基本内容包括软件配置、软件基线和变化审查。基本内容包括软件配置、软件基线和变化审查。基本内容包括软件配置、软件基线和变化审查。基本内容包括软件配置、软件基线和变化审查。2.2.新的管理方法新的管理方法新的管理方法新的管理方法 软件家族法软件家族法软件家族法软件家族法。即软件产品线方法,该方法是源。即软件产品线方法,该方法是源。即软件产品线方法,该方法是源。即软件产品线方法,该方法是源于工业界产品线的概念,关注于一个软件企业如何组于工业界产品线的概念,关注于一个软件企业如何组于工业界产品线的概念,关注于一个软件企业如何组于工业界产品线的概念,关注于一个软件企业如何组织一组具有共性特征的,相似产品的生产,并应用软织一组具有共性特征的,相似产品的生产,并应用软织一组具有共性特征的,相似产品的生产,并应用软织一组具有共性特征的,相似产品的生产,并应用软件复用的相关原理与技术。件复用的相关原理与技术。件复用的相关原理与技术。件复用的相关原理与技术。多视点方法多视点方法多视点方法多视点方法。它可以用于管理不一致性并进行。它可以用于管理不一致性并进行。它可以用于管理不一致性并进行。它可以用于管理不一致性并进行关于变化的推理。是从多个视点出发在软件工具的协关于变化的推理。是从多个视点出发在软件工具的协关于变化的推理。是从多个视点出发在软件工具的协关于变化的推理。是从多个视点出发在软件工具的协助下对需求描述,进行自动需求建模,从而提高需求助下对需求描述,进行自动需求建模,从而提高需求助下对需求描述,进行自动需求建模,从而提高需求助下对需求描述,进行自动需求建模,从而提高需求模型的完整性。模型的完整性。模型的完整性。模型的完整性。需求变更管理方法需求变更管理方法需求工程过程需求工程过程需求工程过程需求工程过程 可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡 3.2 需求分析方法 功能分解方法功能分解方法功能分解方法功能分解方法 将系统看作若干功能模块的集合,每个功能又可将系统看作若干功能模块的集合,每个功能又可以分解为子功能以分解为子功能,子功能还可继续分解子功能还可继续分解,分解的结果即分解的结果即是系统的雏形。是系统的雏形。存在问题存在问题1.1.需要人工完成需要人工完成2.2.无法对描述的准确度进行验证。无法对描述的准确度进行验证。3.3.难以适应需求的变化。难以适应需求的变化。问题空间问题空间功能功能子功能子功能映射映射1客房预定系统客房预定系统 2前台接待系统前台接待系统 3前台收银系统前台收银系统 4帐务系统帐务系统 5管家系统管家系统 6电话系统电话系统 7客历系统客历系统 8合约系统合约系统 9经理系统经理系统 10总经理系统总经理系统 11密码管理系统密码管理系统 12报表系统报表系统 13帐务报表帐务报表酒店管理系统酒店管理系统例:例:例:例:按照功能分解为以下子系统:按照功能分解为以下子系统:按照功能分解为以下子系统:按照功能分解为以下子系统:盘存盘存/销售系统销售系统 1.0.01.0.0销售处理销售处理 1.1.01.1.0盘存处理盘存处理 1.2.01.2.0例:例:盘存盘存/销售系统,用户提出系统应有以下功能销售系统,用户提出系统应有以下功能:计算买主订单计算买主订单 准备销售报表准备销售报表 建立买主文件和应收帐发票建立买主文件和应收帐发票 运行更新的盘存文件运行更新的盘存文件 产生托运单和包装单产生托运单和包装单 保证库存及时订货保证库存及时订货计算销售计算销售记录记录 1.1.1产生销售产生销售报表报表 1.1.2核对买主核对买主贷方金额贷方金额 1.1.3验证库存验证库存量级量级 1.2.1产生货运产生货运订单订单 1.2.2执行买主执行买主汇票汇票 1.2.3产生盘存产生盘存报表报表 1.2.4 3.2 需求分析方法 结构化分析方法结构化分析方法结构化分析方法结构化分析方法 是一种以数据、数据的封闭性为基础,从问题空是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法间到某种表示的映射方法,由数据流图由数据流图(DFDDFD图图)表示。表示。顾客出版社验证验证订单订单汇总汇总订单订单订单出版社 订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确订单一批订单出版社档案文件出版社档案文件订货存根文件订货存根文件3.2 需求分析方法面向对象的分析方法面向对象的分析方法 面面向向对对象象分分析析方方法法(OOA)的的关关键键是是识识别别问问题题域域内内的的对象对象,分析它们之间的关系分析它们之间的关系,并建立起三类模型。并建立起三类模型。信息建模法信息建模法 是是从从数数据据的的角角度度对对现现实实世世界界建建立立系系统统的的信信息息模模型型,基基本本工工具具是是ERER图图。是是由由实实体体、属属性性和和关关系系组组成成的的网网络络图。图。E-E-实体,是一个或一组对象;实体,是一个或一组对象;R-R-关系,关系,实体之间联系或交互作用。实体之间联系或交互作用。注意:信息建模与面向对象分析的区别!注意:信息建模与面向对象分析的区别!3.2.1 3.2.1 3.2.1 3.2.1 结构化分析方法结构化分析方法结构化分析方法结构化分析方法分分解解:对对于于一一个个复复杂杂的的系系统统,为为了了将将复复杂杂性性降降低低到到可可以以掌掌握握的的程程度度,可可以以把把大大问问题题分分解解成成若若干干小小问问题题,然然后后分分别别解决(如右图)。解决(如右图)。一、一、一、一、SASASASA法的基本思想法的基本思想法的基本思想法的基本思想 “分解分解”和和“抽象抽象”。抽抽象象:分分解解可可以以分分层层进进行行,即即先先考考虑虑问问题题最最本本质质的的属属性性,暂暂把把细细节节略略去去,以以后后再再逐逐层层添添加加细细节节,直直至至涉涉及及到到最最详详细细的的内内容容,这这种种用用最最本本质质的的属属性性表表示示一一个个系系统的方法就是统的方法就是“抽象抽象”。1.11.21.3x2132.12.22.31.11.3 基本思想与步骤基本思想与步骤三、三、三、三、SASASASA法的描述方法法的描述方法法的描述方法法的描述方法1 1、分层的数据流图、分层的数据流图(DFD(DFD图图)2 2、数据词典、数据词典3 3、描述加工逻辑的结构化语言、判定表及判定树、描述加工逻辑的结构化语言、判定表及判定树二、二、二、二、SASASASA法的步骤法的步骤法的步骤法的步骤当前系统当前系统具体模型具体模型建立建立当前系统当前系统逻辑模型逻辑模型抽象抽象目标系统目标系统逻辑模型逻辑模型建立建立完善的系统完善的系统逻辑模型逻辑模型改进改进深入调查深入调查研究研究分析用户需求分析用户需求,用用DFD图描述图描述分析系统需求分析系统需求,用用DFD图描述图描述修改完善修改完善DFD图图,增添功能增添功能三、三、数据流图数据流图数数据据流流图图(Data Flow Diagram,DFD)是是描描述述系系统统中中数数据据流流程程的的图图形形工工具具,它它描描述述了了将将系系统统的的逻逻辑辑输入转换为逻辑输出所需的加工处理过程。输入转换为逻辑输出所需的加工处理过程。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名加工名数据流数据流数据流名数据流名文件名文件名实体名实体名箭箭 头头圆或椭圆圆或椭圆单或单或双杠双杠矩形框矩形框还有一些辅助的图例还有一些辅助的图例:一、数据流图的图符一、数据流图的图符基本图形符号:基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*与与+或或互斥+X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶顶层层中中 间间 层层底底 层层先全局后局部先全局后局部,先整体后细节先整体后细节,先抽象后具体先抽象后具体.0图1图2图1.1图2.1图2.2图分层DFD 图需求案例分析需求案例分析案例一案例一 医院病房监护系统医院病房监护系统 (采用结构化分析方法)(采用结构化分析方法)(采用结构化分析方法)(采用结构化分析方法)案例二案例二 网上竞拍系统网上竞拍系统 (采用基于用例的方法)(采用基于用例的方法)(采用基于用例的方法)(采用基于用例的方法)一、问题的描述一、问题的描述一、问题的描述一、问题的描述在医院在医院ICU病房里,将病症监视器安置在每个病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的组合病症病床,对病人进行监护。监视器将病人的组合病症信号实时地传送到中央监护系统进行分析处理。信号实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报出现异常时,系统会立即自动报警,并打印病情报告和更新病历。告和更新病历。根据医生的要求随时打印病人的病情报告,系根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。统还定期自动更新病历。案案 例例 一一 医院病房监护系统医院病房监护系统经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症、监视病员的病症(血压、体温、脉搏等血压、体温、脉搏等)。2 2、定时更新病历。、定时更新病历。3 3、病情出现异常情况时报警。、病情出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。例例2 2:医院病房监护系统:医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历2.2.3 实例:医院病房监护系统请分析软件请分析软件系统系统需求需求!1、监视病员的病症、监视病员的病症 采集病症信号采集病症信号(血压、体温、脉搏等血压、体温、脉搏等)。组合病症信号。组合病症信号。将模拟将模拟病症信号转换为数字信号(病症信号转换为数字信号(A-D转换)。转换)。2、定时更新病历、定时更新病历 将将病症信号进行格式化并加入更新日期、时间。病症信号进行格式化并加入更新日期、时间。更新病历库中病人的信息。更新病历库中病人的信息。可人工设定更新可人工设定更新病历的时间间隔。病历的时间间隔。3、病情出现异常情况时报警、病情出现异常情况时报警 根据标准病症信号库中的值,判断是否报警。根据标准病症信号库中的值,判断是否报警。将报警信号转换为各种模拟信号(将报警信号转换为各种模拟信号(D-A转换)。转换)。实时打印病情报告,立即更新病历。实时打印病情报告,立即更新病历。4、随机地产生某一病员的病情报告、随机地产生某一病员的病情报告二、系统功能需求二、系统功能需求二、系统功能需求二、系统功能需求局部监视局部监视局部监视局部监视更新日志更新日志更新日志更新日志产生病情报告产生病情报告产生病情报告产生病情报告非功能需求1、监视器与网络的、监视器与网络的可靠性要求可靠性要求,涉及