软件工程导论第3章 需求分析.ppt

上传人:仙人指路1688 文档编号:2825351 上传时间:2023-02-26 格式:PPT 页数:62 大小:317.50KB
返回 下载 相关 举报
软件工程导论第3章 需求分析.ppt_第1页
第1页 / 共62页
软件工程导论第3章 需求分析.ppt_第2页
第2页 / 共62页
软件工程导论第3章 需求分析.ppt_第3页
第3页 / 共62页
软件工程导论第3章 需求分析.ppt_第4页
第4页 / 共62页
软件工程导论第3章 需求分析.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《软件工程导论第3章 需求分析.ppt》由会员分享,可在线阅读,更多相关《软件工程导论第3章 需求分析.ppt(62页珍藏版)》请在三一办公上搜索。

1、软件工程导论(第5版),普通高校本科计算机专业特色教材精选,张海藩 编著,第3章 需求分析,主要内容3.1 需求分析的任务3.2 与用户沟通获取需求的方法3.3 分析建模与规格说明3.4 实体-联系图3.5 数据规范化3.6 状态转换图3.7 其他图形工具3.8 验证软件需求教学重点基本技术、需求规格说明书的作用与组成。,需求分析,软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析主要通过对应用问题及其环境的分析与理解,采用

2、一系列的分析方法和技术,将用户的需求逐步精确化、完全化、一致化,最终形成需求规格说明文档的过程。,需求分析,需求分析阶段的成果主要是软件需求规格说明书,该成果以书面形式准确地描述软件需求,是软件设计、编码、测试直至维护的主要基础。需求分析是软件定义和软件开发的重要桥梁,是软件生存周期的关键性阶段。良好的分析活动能够减少错误和遗漏,从而可提高软件生产率和产品质量、降低开发与维护成本。在整个需求分析过程中,不仅要采用行之有效的通信技术,集中精力过细地工作,而且必须严格审查验证需求分析的结果。,需求分析,结构化分析准则必须理解并描述问题的信息域,根据这条准则应该建立数据模型。必须定义软件应完成的功能

3、,这条准则要求建立功能模型。必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。,3.1 需求分析的任务,任务深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。,3.1 续,.确定对系统的综合要求 功能需求指定系统必须提供的服务。性能需求指定系统必须满足的定时约束或容量约束。可靠性和可用性需求可靠性需求定量地指定系统的可靠性。可用性量化了用户可以使用系统的程度。出错处理需求指明系统对环境错误应该

4、怎样响应。出错处理,某些情况下指当应用系统发现自己犯错时所采取的行动。,3.1 续,接口需求描述应用系统与它的环境通信的格式。约束描述在设计或实现应用系统时应遵守的限制条件。逆向需求指明软件系统不应该做什么。仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。将来可能提出的要求那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。目的:对系统将来可能的扩充和修改预做准备,3.1 续,.分析系统的数据要求任何一个软件系统本质上都是信息处理系统。分析系统的数据要求通常采用建立数据模型的方法。复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。常常利用数据字典

5、和图形工具相结合的方式描绘数据结构。为减少数据冗余,通常要把数据结构规范化。,3.1 续,.导出系统的逻辑模型综合上述两项分析的结果可以导出系统的详细的逻辑模型。通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述系统的逻辑模型。.修正系统开发计划根据在分析过程中获得的对系统的更深入更具体的了解,修正以前制定的开发计划。,3.2 与用户沟通获取需求的方法,.访谈访谈是最早开始使用的获取用户需求的技术。正式访谈时,系统分析员将提出一些事先准备好的具体问题。在非正式访谈中,分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。当需要调查大量人员的意见时,利

6、用分发调查表的方式发现的新问题。情景分析技术,即对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。,3.2 续,情景分析技术用处它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。保证用户在需求分析过程中始终扮演一个积极主动的角色。,3.2 续,准备问题的原则首先应搞清一般性、整体性问题,然后再涉及细节问题。在组织问题时要尽量做到客观、公证,不应限制用户的自由发挥。所提问题汇总后应能反映应用问题及其子问题的全貌、并且不要过分详细。,3.2 续,面向数据流自顶向下求精数据是需求分析的出发点,它决定了系统需要实现的处理和算法,。结构化

7、分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。它是结构化分析、结构化设计和结构化编程的总称。为了把数据流和数据存储定义到元素级,通常从数据流图的输出端着手分析。输出数据决定了系统必须具有的最基本的组成元素。结构化分析方法由于具有简单易懂、使用方便的特点,且出现较早,所以获得了广泛的应用。,3.2 续,面向数据流自顶向下求精过程,3.2 续,简单的应用规格说明技术使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位而且往往有意无意地与开发者区分“彼此”。简易的应用规格说明技术是一种面向团队的需求收集法。它提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨

8、不同方案并指定基本需求。优点:开发者与用户齐心协力,密切合作;即时讨论并求精;有能导出规格说明书的具体步骤。,3.2 续,应用规格说明技术分析需求的过程进行初步访谈,初步确定待解决问题的范围和解决方案。用户和开发者分别写“产品需求”。召开由开发者和用户共同参与的会议。经过讨论确定针对每个议题的意见一致的需求列表。与会者分组为每个需求列表制定小型的规格说明,并供全会讨论。每个与会者都制定产品的确认标准,通过全会讨论,制定意见一致的确认标准。起草完整的软件需求规格说明书。,3.2 续,软件原型软件需求分析的过程,实际上是软件原型的建造和不断完善的过程。目标软件系统原型一方面可用于精确地记录用户从各

9、个视点、不同抽象级别上对原始问题及目标软件的描述;另一方面,将帮助分析人员挖掘用户需求。目标软件系统原型主要通过刻画软件系统中的数据、功能和外部行为,演示目标系统。构建原型的要点是实现用户看得见的功能,省略目标系统的隐含功能。,3.2 续,快速建立软件原型快速建立软件原型是最准确、最有效、最强大的需求分析技术。基本思想:在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。当原型几经改进最终确认后,它将直接进化成软件产品,或者由软件设计、编码人员按照模型所确立的外部特征去实现软件产品。特性:快速;容易修改。,3.2 续,采

10、取建立原型系统策略的原因由于用户与软件设计人员认识上的局限,不能预先指定所有要求,因此在开发过程中重复和反复是必要的和不可避免的;在用户和系统分析员之间存在固有的通信鸿沟,用户需要一个“活的”系统模型,以便获得实践经验,以便沟通;目前有快速建立原型系统的工具可供选用。,3.2 续,快速原型技术的具体步骤选用某种分析方法生成软件系统或所关心部分的简化需求规格说明。对该规格说明进行评审通过后,立即生成设计规格说明。使用可重用软部件、用户界面自动生成器等工具快速生成可运行的软件原型并通过测试。将原型提交给用户进行评价,以便征求改进意见。上述过程反复迭代,直至用户完全满意。,3.2 续,快速原型相关技

11、术第四代技术利用一种面向问题而非面向过程的第四代编程语言快速地生成可执行的代码。可重用的软件构件。使用一组已有的软件构件来装配原型。形式化规格说明和原型环境。调用自动化工具把基于形式化语言的规格说明翻译成可执行的程序代码。,3.2 续,快速原型技术的适用场合该技术特别适合于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合,目前的绝大多数软件都适合于快速原型技术。除非由于问题相当复杂,致使开发快速原型可以获得的支持太少、所冒的风险太大时,不易采用。但对于其中的某些子问题,尤其是用户界面,还可采用快速原型技术进行部分分析。,3.3 分析建模与规格说明,.分析建模模型:是

12、为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常模型由一组图形符号和组织这些符号的规则组成。结构化分析实质上是一种创建模型的活动。需求分析阶段应该建立三种模型:数据模型实体-联系图功能模型数据流图行为模型状态转换图,3.3 续,2.软件需求规格说明需求分析的主要阶段性产品是需求规格说明书。它必须通过需求评审后才能生效,这是一个重要的里程碑。需求规格说明书的作用:它是软件设计人员进行设计和编码的出发点和基础;它是对目标软件产品进行验收测试的依据。这就要求需求规格说明书中的各项需求都应该是可测试的;它起到软件开发方和客户(或用户)方之间的一份合同的作用。,3.3 续,需求规

13、格说明书中的内容应主要包括功能与行为的需求描述和非行为需求描述。非行为需求是指目标软件系统在工作时应具备的属性,主要有运行效率、可靠性、安全性、可维护性、可移植性等等。在需求规格说明书中不应包括如人员需求、成本预算、进度计划、质量保证计划等内容,以便使其简洁、目标明确。通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可利用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。,3.3 续,需求规格说明书的基本格式框架目录1.引言 1.1 本说明的编写目的 1.2 软件产品的作用范围 1.3 定义、同义词与缩写 1.4 参考文献2.概述 2.1 产

14、品与其环境间的关系 2.2 功能概述 2.3 用户特征 2.4 约束条件 2.5 假设与前提条件,3.3 续,3.功能或行为需求 3.1 功能或行为需求1:1)引言 2)输入 3)处理过程描述 4)输出 3.2 功能或行为需求2:1)引言 2)输入 3)处理过程描述 4)输出 3.n 功能或行为需求n:1)引言 2)输入 3)处理过程描述 4)输出4.外部界面需求 4.1 用户界面 4.2 硬件界面 4.3 软件界面,3.3 续,5.性能需求 5.1 精度 5.2 时间特征 5.3 灵活性6.设计约束 6.1 标准化约束 6.2 硬件约束 7.其他需求 7.1 数据库需求 7.2 用户操作需求

15、 7.3 工作场地需求,3.3 续,8.软件产品属性 8.1 可用性 8.2 安全性 8.3 可维护性 8.4 可移植性附录索引,3.4 实体-联系图,概念数据模型通过建立数据模型可理解并描述问题的信息域。系统分析员通常通过建立一个概念性的数据把用户的数据要求清楚、准确地描述出来。概念性数据模型是一种面向问题的数据模型,描述了从用户角度看到的数据。数据模型包含三种信息:数据对象、数据对象的属性、数据对象之间的联系。,3.4 续,数据对象数据对象:是现实世界中实体的数据表现,是省略了功能和行为的实体。数据对象:对软件必须理解的复合信息的抽象。复合信息:具有一系列不同性质和属性的事物。数据源;数据

16、对象包括:外部实体的数据部分;数据流的内容。,3.4 续,属性数据对象由其属性刻画,属性定义了数据对象的性质。通常属性包括:命名性属性:对数据对象的实例命名,其中必含有一个或一组关键属性,以便唯一地标识数据对象的实例。描述性属性:对数据对象实例的性质进行刻画。引用性属性:将自身与其他数据对象的实例关联起来。一般而言,现实世界中任何给定实体都具有许多属性,分析人员应当并且只能考虑与应用问题有关的属性。,3.4 续,联系应用问题中的任何数据对象都不是孤立的,它们与其他数据对象一定存在各种形式的关联。联系指数据对象之间相互连接的方式。联系的命名及内涵因具体问题而异。分析人员必须善于剔除与应用问题无关

17、的关系。通常实体联系有三种类型:一对一的联系(1:1):一个实体在此种联系下只能对应一个实体。一对多的联系(1:n):一个实体在此种联系下对应其他实体型中的一个以上实体;多对多的联系(m:n):一个实体类型中的多个实体与另一个实体类型中的多个实体相联系。,3.4 续,E-R(Entity-Relation)图在数据密集型应用问题中,对复杂数据及数据之间复杂关系的分析和建模将成为需求分析的重要任务。实体-联系图在数据流分析方法中适合于复杂数据建模的工具。E-R图是表示数据对象及其之间关系的图形语言机制。优点:接近人的习惯思维方式;直观形象,便于理解。,3.4 续,E-R方法和实体模型 矩形框表示

18、实体型。在框内写上实体名,如“学生”实体型。椭圆形/圆角矩形表示实体有关的属性。椭圆内标记属性的名字。直线表示实体与属性之间的联系。菱形框表示实体之间的联系。,3.4 续,例如,在教学管理中,学校开设若干门课程,一个教师可以教授其中的一门或多门课程,每位学生也需要学习其中的几门课程。教学管理的E-R图如下:,3.5 数据规范化,数据规范化目的消除数据冗余,消除多义性;使关系单纯化;方便操作;使关系模型更灵活。数据规范化的衡量通常按照属性间的依赖情况区分规范化的程度。属性间依赖程度满足不同程度要求的为不同范式。通常用“范式”定义消除数据冗余的程度。利用范式规范化数据的缺点:范式级别越高,存储自身

19、的过程就越复杂。范式级别越高,在需求变化时数据的稳定性越差。范式级别越高,系统性能越低。,3.5 续,规范化规则数据对象的任何实例对每个属性必须有且仅有一个属性值。属性是原子数据项,不能包含内部数据结构。如果数据对象的关键属性多于一个,那么其他的非关键属性必须表示整个数据对象而不是部分关键属性的特征。所有的非关键属性必须表示整个对象而不是部分属性的特征。,3.5 续,判断规范化程度的条件关系中所有属性都是“单纯域”,即不出现“表中有表”。非主属性完全函数依赖于关键字。非主属性相互独立,即任何非主属性间不存在函数依赖。,如果一个关系连条件都不满足,则这个关系是非规范化的。如果一个关系仅满足条件,

20、则这个关系满足第一范式(1NF)。如果一个关系满足条件、,但不满足,则这个关系满足第二范式(2NF)。如果一个关系同时满足条件、和,则这个关系满足第三范式(3NF)。,3.5 续,教学管理E-R图,3.5 续,如何进行规范化学生(学号,姓名,性别,年龄,专业,籍贯)教师(职工号,姓名,年龄,职称,工资级别,工资)课程(课程号,课程名,学分,学时,课程类型)选课(学号,课程号,听课出勤率,作业完成率,分数)教课(职工号,课程号),3.6 状态转换图,相关定义状态:任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。分为初态、终态和中间状态三种。事件:引

21、起系统做动作或(和)转换状态的控制信息。状态转换图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。同时还指明了作为特定事件的结果,系统将做哪些动作。状态变迁通常是由事件触发的。,3.6 续,符号,说明:初态:实心圆 终态:内圆为实心圆的同心圆中间态:圆角矩形 状态转换:箭头的连线 状态的名称:必选状态变量的名字和值:可选活动表:可选,3.6 续,活动表语法格式:事件名(参数表)/动作表达式常用的3种标准事件:entry,exit和do。entry事件指定进入该状态的动作;exit事件指定退出该状态的动作;do事件指定在该状态下的动作。动作表达式描述应做的具体动作。,3.6 续,

22、事件表达式语法格式:事件说明守卫条件/动作表达式事件说明的语法为:事件名(参数表);守卫条件是一个布尔表达式;动作表达式是一个过程表达式。,3.6 续,电话系统状态图,3.7 其他图形工具,层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。顶层矩形框,代表完整的数据结构;中间的各矩形框代表上层数据的子集;最底层的各矩形框代表组成不能再分割的实际数据元素。随着结构的精细化,层次方框图对数据结构的描绘得越来越详细。,3.7 续,例如,描绘一家计算机公司全部产品的数据结构可以用图中的层次方框图表示。,3.7 续,Warnier图1974年,法国人J.D.Warnier提出了一种

23、LCP(Logical Construction of Programs,逻辑构造程序)。他利用顺序、选择、重复三种结构表示信息的层次分解,并指出可以从信息层次结构推导出程序结构。1981年Ken Orr对Warnier的工作进行了扩充,使其不仅包含了Warnier的信息层次结构,还引进了数据流和处理功能,从而发展成为一种需求分析方法。Warnier图又称为Warnier-Orr图,可以表示数据结构和程序结构,即表明信息的逻辑组织。,3.7 续,考虑一个典型的报纸自动组版系统。报纸作为其中重要的信息对象,具有以下内容:1.首版 1)标题新闻 2)国内新闻 3)本地新闻2.商业金融版 1)股市行

24、情 2)商业新闻 3)广告3.文化体育版 1)文化、体育新闻 2)散文 3)新书评论,3.7 续,Warnier图示例,3.7 续,Warnier图说明花括号内的信息条目构成顺序关系;花括号从左至右排列表示树型层次结构;符号“”表示不可兼具的选择关系;“”表示“非”。圆括号内的数字表示重复次数:(1,n)表示重复结构,(1)或不标次数表示顺序结构,(0,1)表示选择结构。,3.7 续,软件产品示例,3.7 续,IPO图IPO图美国IBM公司IPO图是输入处理输出图的简称,它的基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据。IPO图使用的基本

25、符号既少又简单,易学易用。使用IPO图可以简略地描述系统的主要算法。,3.7 续,IPO图示例,3.7 续,改进的IPO图示例,3.8 验证软件需求,从哪些方面验证软件需求的正确性一致性:任何一条需求不能和其他需求互相矛盾。完整性:规格说明书应该包括用户需要的每一个功能或性能。现实性:需求应该是用现有的硬件技术和软件技术基本上可以实现的。有效性:需求确实能解决用户面对的问题。,3.8 续,验证软件需求的方法验证需求的一致性用自然语言书写时,人工审查验收。用形式化的需求陈述语言书写时,用软件工具验证需求的一致性。验收需求的现实性参照参照以往开发类似系统的经验;采用仿真或性能模拟技术。验收需求的完

26、整性和有效性需要用户的密切配合;使用原型系统。,3.8 续,对用于需求分析的软件工具的要求必须有形式化的语法,以便于计算机自动处理使用这种语法说明的内容。使用这个软件工具能够导出详细的文档;必须提供分析规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;使用这个软件工具之后,应该能够改进通信状况。,3.8 续,形式化的语言RSL(需求陈述语言)语句计算机处理ASSM数据库PASCAL模拟程序 PSL/PSA(问题陈述语言/问题陈述分析程序)用PSL描述系统描述符数据库增加删除修改描述符信息PSA处理产生格式化文档和分析报告PSL/PSA 系统的优点改进了文档质量,从而减少管理和维护的费用。数据存放在数据库中,便于操作。,习题,银行取款过程数据流图,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号