《软件工程导论》第三章需求分析.ppt
《《软件工程导论》第三章需求分析.ppt》由会员分享,可在线阅读,更多相关《《软件工程导论》第三章需求分析.ppt(102页珍藏版)》请在三一办公上搜索。
1、需求分析,第三章,山东师范大学信息科学与工程学院 王化雨,09-10 学 年 第 一 学 期张海藩软件工程导论(第5版),2009年10月,2023/6/1,2,主要内容,引言需求分析的任务与用户沟通获取需求的方法分析建模与规格说明实体-联系图数据规范化状态转换图其他图形工具验证软件需求,2023/6/1,3,需求分析,回顾:软件生命周期由 3个时期组成:软件定义、软件开发、软件维护(运行维护)软件定义时期一般为3个阶段:问题定义、可行性研究、需求分析需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅
2、是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。,2023/6/1,4,需求分析的要点,为了开发出真正满足用户需求的软件产品,必须知道用户的需求,对软件需求的深入理解是需求分析是为了知道用户的需求,它的基本任务是回答“做什么”。它无法解决“如何做”的问题。与可行性研究相比,需求分析的工作更为细致。由系统分析员负责,通过与用户交流完成工作。成果是软件需求规格说明书。,2023/6/1,5,需求分析的关键在于分析员和用户的交流,在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用:只有用户才真正知道自己需要什么,但是他们并不知道怎样
3、用软件实现自己的需求,用户必须把他们对软件的需求尽量准确、具体地描述出来;分析员知道怎样用软件实现人们的需求,但是在需求分析开始时他们对用户的需求并不十分清楚,必须通过与用户沟通获取用户对软件的需求。,2023/6/1,6,需求分析与规格说明是艰巨复杂的工作,用户与分析员之间需要的内容很多;双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。因此,整个需求分析过程中应该采用行之有效的通信技术,集中精力细致工作。必须严格审查验证需求分析的结果。,2023/6/1,7,需求分析需要遵守的准则,用于需求分析的结构化分析方法应遵守下述准则:必须理解并描述问题的信息域,以此建立数据模型。信息流:
4、数据和控制通过一个系统时的变化方式。两个功能之间的数据/控制传递就确定了功能间的接口。信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。信息结构:各种数据和控制项的内部组织。必须定义软件应完成的功能,它要求建立功能模型。必须描述作为外部事件结果的软件行为,要求建立行为模型。必须对信息、功能和行为模型进行分解,用层次的方式展示细节。,2023/6/1,8,数据模型、功能模型、行为模型的两种视图,逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系(是通过行为结合在一起的),而不是实现的细节。逻辑描述是软件设计的基础。物理视图给出的是处理功能和数据结构的实际表现形式
5、,这往往是由设备本身决定的。,2023/6/1,9,以层次化的方式对问题进行分解和不断细化 软件的功能域和信息域都能做进一步的分解。这种分解可以是同一层次上的,称为横向分解;也可以是多层次的纵向分解。,纵向分解,横向分解,两种层次化方式,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。通常软件开发项目是要实现目标系统的物理模型。目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的。,目标系统,当前系统,物理模型,逻辑模型,模型化,抽象化,物理模型,逻辑模型,具体化,实例化,理解需求,表达需求,导出,怎么做,做什么,需求分析
6、的实现步骤,2023/6/1,11,需求分析流程,2023/6/1,12,主要内容,引言需求分析的任务与用户沟通获取需求的方法分析建模与规格说明实体-联系图数据规范化状态转换图其他图形工具验证软件需求,2023/6/1,13,需求分析的任务内容,确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划,2023/6/1,14,确定对系统的综合要求,功能需求是对软件系统的一项基本需求,但并不是唯一的需要。通常对软件系统的需要是综合性的,大约包括功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束逆向需求将来可能提出的要求,2023/6/1,15,系统的综合要求-1功能需求
7、,指定系统必须提供的服务划分出系统必须完成的所有功能。,2023/6/1,16,系统的综合要求-2性能需求,性能需求指定系统必须满足的定时约束或容量约束,通常包括:速度(响应时间)信息量速率主存容量磁盘容量安全性例如:“应力分析程序必须在一分种之内生成任何一个梁的应力报告。”,2023/6/1,17,系统的综合要求-3可靠性和可用性需求,可靠性需求定量地指定系统的可靠性,如:“机场雷达系统在一个月内不能出现2次以上故障”;可用性:可用性与可靠性密切相关,它量化了用户可以使用系统的程度。例如:“在任何时候,主机或备份机上的机场雷达系统应该至少有一个是可用的,而且在一个月内在任何一台计算机上该系统
8、不可用的时间不能超过总时间的2。”,2023/6/1,18,系统的综合要求-4出错处理需求,这类需求说明系统对环境错误应该怎样响应。环境错误:非应用系统本身造成的错误。例如:如果它接收到从另一个系统发来的违反协议的消息,应该做什么?某些情况下,“出错处理”指的是当应用系统发现它自己犯下一个错误时所采取的行为。应该有选择地提出这类错误处理需求。这是因为:目标是开发出正确的系统不是用无休止的出错处理代码掩盖自己的错误。对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少。,2023/6/1,19,系统的综合要求-5接口需求,接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:
9、用户接口需求;硬件接口需求;软件接口需求;通信接口需求。例如:“把商品从货源地运送到目的地所需要的成本,应该一直显示在成本正文框中。”应用系统与用户的接口。“向运输公司传送需运送的商品信息的格式是exp,其中是从商品目录中选取的字符串。”应用系统与其他应用系统通信的信息格式。,2023/6/1,20,系统的综合要求-6约束,设计约束(或实现约束)描述在设计(或实现)应用系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代设计(或实现)过程,只是说明用户或环境强加给项目的限制条件。常见的约束有:精度工具和语言约束设计约束应该使用的标准应用使用的硬件平台,2023/6/1,21,系统的
10、综合要求-7逆向需求,逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,人们应该仅注意能澄清真实需求且可消除可能发生的误解的那些逆向需求。例如:“应力分析程序无须分析桥梁倒塌数据。”,2023/6/1,22,系统的综合要求-8将来可能提出的要求,应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来可能会提出来的要求。这样做的目的是:在设计过程中对系统将来可能的扩充和修改项做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。,2023/6/1,23,需求分析的任务内容,确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划,2023/6/1,24,分析
11、系统数据要求必要性和方法,任何一个软件系统都本质上都是信息处理系统:系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件的需求有深远的影响。因此,必须分析系统的数据要求。分析系统的数据要求是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的方法。,2023/6/1,25,分析系统的数据要求工具,复杂的数据由许多基本的数据元素组成;数据结构表示数据元素之间的逻辑关系。数据字典可以全面准确地定义数据,但不够直观。为提高可理解性,常用层次方框图和Warnier图来形象直观描述数据结构。,2023/6/1,26,分析系统的数据要求数据需要规范化,软件系统中经常使
12、用长期保存的信息。信息通常以一定方式组织并存储在数据库或文件中。为减少数据冗余,简化修改数据的过程,通常要把数据结构规范化。,2023/6/1,27,需求分析的任务内容,确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划,2023/6/1,28,导出系统的逻辑模型,通过确定对系统的综合要求、分析系统的数据要求,即可导出系统的逻辑模型。逻辑模型通常下列工具或方法描述:数据流图实体联系图状态转换图数据字典主要的处理算法前面介绍过:逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系(是通过行为结合在一起的),而不是实现的细节。逻辑描述是软件设计的基础。物理视图给出的是处
13、理功能和数据结构的实际表现形式,这往往是由设备本身决定的。,2023/6/1,29,需求分析的任务内容,确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划,2023/6/1,30,修正系统的开发计划,如果完成:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型即可较为准确地估计开发系统的成本和进度,修正以前制定的开发计划。,2023/6/1,31,主要内容,引言需求分析的任务与用户沟通获取需求的方法分析建模与规格说明实体-联系图数据规范化状态转换图其他图形工具验证软件需求,2023/6/1,32,与用户沟通获取需求的方法内容,访谈面向数据流自顶向下求精简易的应用规
14、格说明技术快速建立软件原型,2023/6/1,33,访谈,最早使用的,也是使用最为广泛的。分正式和非正式访谈;既可访问用户,也可访问用户领域的专家;可以考查现场,亦应考查市场。有时需要设计、分发、收集、分析调查表。可以使用情景分析技术,2023/6/1,34,情景分析技术的含义,所谓情景分析技术是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。例如:目标系统是一个制定减肥计划的软件,当给出某个肥胖症患者的年龄、身高、体重、腰围及其他数据时,就出现一个可能的情景描述。系统分析员根据自己对目标系统应具备的功能的理解,给出适用于该患者的菜单。客户公司的饮食专家可能指出,那些菜单对于有特殊
15、饮食需求的患者(如:糖尿病人、素食者等)是不合适的。这就使分析员认识到,目标系统在制定菜单之前还应该先询问患者的特殊饮食需求。系统分析员利用情景分析技术,往往能够获知用户的具体需求。,2023/6/1,35,情景分析技术的用处,能在某种程度上演示目标系统的行为:便于用户理解可以揭示出一些分析员目前还不知道的需求可以保证用户在需求分析过程中始终处于积极主动的地位。需求分析的目标是获知用户的真实需求,而这一信息的唯一来源是用户因此,让用户起积极主动的作用对需求分析工作获得成功是至关重要的。,2023/6/1,36,与用户沟通获取需求的方法内容,访谈面向数据流自顶向下求精简易的应用规格说明技术快速建
16、立软件原型,2023/6/1,37,面向数据流自顶向下求精数据、数据流的重要性,软件系统本质上是信息处理系统,而任何信息处理系统都是把输入数据变成需要的输出信息。数据决定的需要的处理和算法,显然是需求分析的出发点。可行性研究阶段许多实际的数据元素被忽略了,需求分析阶段则应定义所有数据元素。,2023/6/1,38,面向数据流自顶向下求精如何实施,结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法:可行性研究得到了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。为此需要从数据流图的输出端着手分析,因为系统的基本功能就是产生输出数据,而输出数据决定了系统必
17、须具有的最基本组成元素。沿数据流从输出端往输入端回溯,可确定每个数据元素的来源,同时初步定义了某个算法。有时,某个输出的数据元素尚未在数据流图中描述,或描述有误,或需要的算法还不明确。对这些,应及时纠正和补充。分析过程中得到的有关数据元素的信息记录在数据字典中,把对算法的简明描述记录在IPO图中。通过系统分析员的上述工作,数据流图会扩展到更低层次,从而完成数据流图的细化。必须请用户对数据分析得出的结果进行复查。最终得到对系统数据和功能要求的满意了解。,2023/6/1,39,面向数据流自顶向下求精求精过程图,上述过程可图示如下:,2023/6/1,40,与用户沟通获取需求的方法内容,访谈面向数
18、据流自顶向下求精简易的应用规格说明技术快速建立软件原型,2023/6/1,41,简易的应用规格说明技术,传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位。由于不能像同一个团队的人那样齐心协力地识别和精化需求,这两种方法的效果有时并不理想。简易的应用规格说明技术,是一种面向团队的需求收集法。今天,它已经成为信息系统领域使用的主流技术。简易的应用规格说明技术分析需求,提倡用户与开发者密切合作,共同:标识问题提出解决方案要素商讨不同方案指定基本需求,2023/6/1,42,简易的应用规格说明技术典型过程,对用户初步访谈、初步确定需求,开发者与用户分别写出“产品需求”;确定双方代表开
19、会地点、时间、协调人;开会前所有与会者都将得到“产品需求”初稿。与会者开会前要认真审查资料,列出系统环境对象、系统将产生的对象以及系统为完成功能而使用的对象;列出操作这些对象的服务、约束条件、性能标准。根据自己理解。会议上,在确定需要这个软件产品后,将每人的列表进行组合。除去冗余,加入讨论中的新项目,由协调人主持讨论表中的每个议题。讨论的目标是,针对每个议题(对象、服务、约束和性能)都创建出一张的表。一致的条例继续细化由双方更小的小组讨论、所有条例都细化到“原子项”。每个小组形成的“小型规格说明”均需提交给全体人员讨论。最终,形成完整的“软件需求规格说明书”。,2023/6/1,43,简易的应
20、用规格说明技术优点,开发者与用户不分彼此,齐心协力,密切合作;即时讨论并求精;有能导出规格说明的具体步骤。,2023/6/1,44,与用户沟通获取需求的方法内容,访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型,2023/6/1,45,快速建立软件原型,快速建立软件原型是较为准确、有效的需求分析技术。快速原型:快速建立起来旨在演示目标系统主要功能的可运行程序。构建原型的要点:应该实现用户看得见的功能(例如,屏幕显示或打印报表),省略目标系统的“隐含”功能(例如,修改文件)。,2023/6/1,46,快速建立软件原型特点,快速:尽快向用户提供一个可在计算机上运行的目标系统的模型,
21、以便用户和开发者在目标系统应该“做什么”问题上尽快达成共识。因此它的某些错误可以忽略。容易修改:原型的“修改-试用-反馈”将重复多遍,如果修改耗时过多,势必延误开发。,2023/6/1,47,快速建立软件原型方法和工具,可快速构建和修改原型的工具:第四代技术:如数据库查询和报表语言、程序和应用系统生成器等非过程语言。可重用的软件构件:使用一组已有的软件构件(组件)来装配原型。软件构件可以是数据结构(或数据库)构件,或软件体系结构构件(即程序),或过程构件(即模块),必须把软件构件设计成能在不知其内部工作细节的条件下重用。形式化规格说明和原型环境:形式化规格说明语言和工具,用于替代自然语言规格说
22、明技术。当前的开发交互式环境,可以调用自动工具把基于形式语言的规格说明翻译成可执行的程序代码,用户能够使用可执行的原型代码去进一步精化形式化的规格说明。,2023/6/1,48,原型化方法的必要性,在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件项目。用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。软件开发者对于所要解决的应用问题认识更是模糊不清随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;开发者又可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改变需求来解脱困境。因此规格说明难以完善、需求的
23、变更、以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。为解决这些问题,逐渐形成了软件系统的快速原型的概念。,2023/6/1,49,软件原型的分类,探索型:目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型:这种原型用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。进化型:这种原型的目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。,2023/6/1,50,原型使用策略,废弃策略追加策略,2023/6/1,51,建立快速原型的好处,增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程导论 软件工程 导论 第三 需求 分析

链接地址:https://www.31ppt.com/p-5064794.html