软件工程第2篇-第4章-需求分析_第1页
软件工程第2篇-第4章-需求分析_第2页
软件工程第2篇-第4章-需求分析_第3页
软件工程第2篇-第4章-需求分析_第4页
软件工程第2篇-第4章-需求分析_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024/7/23©曲阜师范大学计算机科学学院1第4章结构化需求分析本章的主要目标是介绍软件需求分析的相关工作。读完本章,你将了解以下基本内容:需求分析的基础。结构化面向数据流的需求分析。结构化需求分析常用工具。2024/7/23©曲阜师范大学计算机科学学院2第4章结构化需求分析4.1需求分析基础4.2面向数据流的结构化需求分析方法4.3其他图形工具2024/7/23©曲阜师范大学计算机科学学院34.1需求分析基础

软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望,最终形成需求规格说明。需求分析阶段是介于系统分析和软件设计阶段间的重要桥梁。2024/7/23©曲阜师范大学计算机科学学院44.1.1需求分析的任务与原则需求分析可分为问题分析、需求描述及需求评审3个阶段。在问题分析阶段,分析人员通过对问题及其环境的理解、分析和综合,清除用户需求的模糊性、歧义性和不一致性,并在用户的帮助下对相互冲突的要求进行折衷。需求描述阶段的主要任务是以需求模型为基础,考虑到问题的软件可解性,生成需求规格说明和初步的用户手册。在需求评审阶段,分析人员需在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的全面性、精确性和一致性,并使用户和设计人员对需求规格说明及用户手册的理解达成一致。2024/7/23©曲阜师范大学计算机科学学院54.1.2需求初步获取技术

4.1.2.1访谈与会议

4.1.2.2深入用户工作环境

4.1.2.3用户与开发人员一同参与

4.1.2.4需求实例2024/7/23©曲阜师范大学计算机科学学院64.1.2.4需求实例问题描述:家庭保安市场正以每年40%的速度增长。现希望建立一种基于微处理器的家庭保安系统,它能够识别异常事件并采取相应的防护措施。这些异常事件应包括非法进入、火灾、水淹等等。一旦异常情形被相应的传感器探测出来,系统应自动通过电话向监控中心报警。此外,系统还应该允许户主对其行为实施程序式控制。针对此问题,软件研发联合小组首先制定工作制度:每次会议开始前必须有确定的议程,参加者需要针对各项议程进行充分的准备,这种准备不仅是思想上的,还应成形于文字。2024/7/23©曲阜师范大学计算机科学学院7最后,初步分析活动应形成结论性文档,该文档将作为后续分析活动的基础。经过初步分析后,“家庭保安系统”的部分需求文档(不包括约束条件和测试标准)如下:“家庭保安系统”的软件允许用户在安装时进行系统配置,实施对传感器的监控并通过控制面板与用户进行信息交互。配置操作包括:(1)指定每一传感器的种类和编号;(2)设置开、关机密码;(3)指定报警电话号码;(4)指定报警延迟和电话重拨延迟时间(以秒为单位)。当软件系统接收到传感器发出的数据后,判断是否出现异常事件。若是,则在指定的延迟时间内拨报警电话,拨号操作将按照重拨延迟反复进行,直至电话接通。然后软件系统负责报告时间、地点和异常事件的性质。开机后,软件系统负责显示当前工作状态,接收并处理用户指令。2024/7/23©曲阜师范大学计算机科学学院84.1.3需求建模软件目标系统可通过模型刻画所涉及的信息、处理功能及实际运行时的外部行为。

建立软件模型是分析活动的焦点。2024/7/23©曲阜师范大学计算机科学学院94.1.4问题抽象、问题分解与多视点分析抽象方法要求分析人员在分析过程中善于捕捉用户描述或问题本身所固有的一般――特殊关系,首先关注一般问题的解决途径,进而指导特殊问题的求解。问题分解也是普遍适用于分析各阶段的一般性方法。与问题分解相对应,还有一种“视角分解”方法广泛应用于需求分析活动,这就是所谓的“多视点分析”。2024/7/23©曲阜师范大学计算机科学学院104.1.5支持需求分析的快速原型技术一旦确定采用快速原型技术后,分析人员不妨遵循以下步骤:利用各种分析技术和方法,生成一个简化的需求规格说明;对前述需求规格说明进行检查、修订后,生成设计规格说明。一般情况,为了快速生成原型,软件的设计只关心软 件的总体结构、用户界面和数据设计,不注重过程内部的控制流程设计。在现有工具或环境的帮助下快速生成可运行的软件原型并进行测试、完善和改进。可用的主要工具有可重用的软部件库、用户界面自动生成器等快速原型支持工具;将原型提交给用户评估并征询改进意见;上述过程将反复迭代进行,直到用户完全认可为止。2024/7/23©曲阜师范大学计算机科学学院114.1.6需求规格说明与评审4.1.6.1需求规格说明书的目标和内容 它必须服务于以下目标:便于用户、分析人员和软件设计人员进行理解和交流。支持目标软件系统的确认。控制系统进化过程。需求规格说明书的主体内容包括功能与行为需求描述以及非行为需求描述两部分。需求规格说明书基本构架和内容见《计算机软件文档编制规范(GB/T8567-2006)》。2024/7/23©曲阜师范大学计算机科学学院124.1.6.2需求评审衡量需求规格说明书质量的标准按重要性次序排列为正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。正确性。需求规格说明书中的功能、行为、性能描述必须与用户对目标软件产品的期望相吻合。无歧义性。对于用户、分析人员、设计人员和测试人员而言,需求规格说明书中的任何语法单位只能有唯一的语义解释。完全性。需求规格说明书不能遗漏任何用户需求。可验证性。对于规格说明书中的任何需求,均应该对技术和经济上的可行性手段进行验证和确认。2024/7/23©曲阜师范大学计算机科学学院13一致性。需求规格说明书的各部分内容之间不能相互矛盾。可理解性。追求上述目标不应妨碍需求规格说明书对于用户、设计人员和测试人员的易理解性。可修改性。需求规格说明书的格式和组织方式应保证能够比较容易地接纳后续的增删改,并使修改后的说明书能够较好地保持其他各项属性。可追踪性。需求规格说明书分析后获得的每项需求必须与用户的原始需求项清晰地联系起来,并为后续开发和其他文档引用这些需求项提供便利。2024/7/23©曲阜师范大学计算机科学学院144.2面向数据流的结构化需求分析方法结构化分析方法的雏形出现于20世纪60年代后期。直到1979年才由DeMarco将其作为一种需求分析方法正式提出。20世纪80年代中后期,Ward&Hatley和Hatley&Pirbhai在结构化分析方法中引入了实时系统分析机制,Harel等人研制了面向复杂实时反应式系统的开发环境STATEMATE。结构化需求分析过程是通过建立三种模型来诠释,它们分别是数据模型、功能模型和行为模型。2024/7/23©曲阜师范大学计算机科学学院154.2.1实体-联系图在数据模型中包含三种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。4.2.1.1数据对象数据对象可以是外部实体(例如产生或使用信息的任何事物)、事物(例如报表)、行为(例如打电话)、事件(例如响警报)、角色(例如教师、学生、经理、雇员等)、单位(例如会计科)、地点(例如仓库)或结构(例如文件)等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。数据对象彼此间是有关联的,例如,教师“教”课程,学生“学”课程。数据对象只封装了数据而没有对施加于数据之上的操作加以引用,这是数据对象与面向对象范型中的“类”或“对象”的显著区别。2024/7/23©曲阜师范大学计算机科学学院164.2.1.2属性属性定义了数据对象的性质。应该根据对所要解决问题的理解,来确定特定数据对象的一组合适的属性。2024/7/23©曲阜师范大学计算机科学学院174.2.1.3联系客观世界中的事物彼此间往往是有联系的。数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下三种:一对一联系(1:1)一对多联系(1:N)多对多联系(M:N)2024/7/23©曲阜师范大学计算机科学学院184.2.1.4实体-联系图的符号使用实体-联系图(Entity-RelationshipDiagram)来建立数据模型。可以把实体联系图简称为ER图,相应地把用ER图描绘的数据模型称为ER模型。2024/7/23©曲阜师范大学计算机科学学院194.2.1.5数据规范化通常用“范式(NormalForms)”定义消除数据冗余的程度。第一范式(1NF)数据冗余程度最大,第六范式(6NF)冗余程度最小。从实用角度来看,在大多数场合选用第三范式比较恰当。第一范式无重复的列。第二范式完全依赖于主键[消除非主属性对主键的部分函数依赖]。第三范式不依赖于其它非主属性[消除传递依赖]。2024/7/23©曲阜师范大学计算机科学学院204.2.2状态转换图状态转移图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件来表示系统的行为。4.2.2.1状态状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。在状态图中定义的状态主要有:初态(即初始状态)、终态(最终状态)和中间状态。在一张状态图中只有一个初态,而终态则可以有0至多个。4.2.2.2事件事件是在某个特定时刻发生的事件,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。2024/7/23©曲阜师范大学计算机科学学院214.2.2.3符号在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示,中间状态用圆角矩形表示,可以用两条水平横线分成上、中、下3个部分。上面部分为状态的名称,这部分不能缺省;中间部分为状态变量的名字和值,此部分可选;下面部分是活动表,这部分也是可选。活动表的语法格式为:事件名(参数表)/动作表达式状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。事件表达式的语法:事件说明[警戒条件]/动作表达式图4.2是状态图中使用的主要符号表征。2024/7/23©曲阜师范大学计算机科学学院224.2.2.4举例

2024/7/23©曲阜师范大学计算机科学学院234.2.3数据流图数据流图(DataFlowDiagram,DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程所经受的变换。如图4.4(a)所示,数据流图有4种基本符号:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。注意,数据流与程序流程图中用箭头表示的控制流有本质不同,不可以混淆。2024/7/23©曲阜师范大学计算机科学学院24处理并不一定是一个程序。一个处理框可以代表一系列程序、单个程序或者程序的一个模块;它甚至可以代表用穿孔机穿孔或目视检查数据正确性等人工处理过程。一个数据存储也并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据存储和数据流都是数据,仅仅所处的状态不同。数据流图的基本要点是描绘“做什么”,而不考虑“怎样做”。2024/7/23©曲阜师范大学计算机科学学院254.2.3.2数据流层次在分析的初始,整个信息处理系统可以用图4.5所示的顶级(第0级)数据流图表示:2024/7/23©曲阜师范大学计算机科学学院26随着需求分析活动的逐渐深入,较高层抽象级别的复杂转换可以精化为一系列相互关联的数据流和子转换。在进行逐层精化的过程中,必须维持层次间数据流图的平衡,被完成精化的转换的输入流、输出流必须与精化它的数据流子图的初始输入流和最终输出流保持严格一致。2024/7/23©曲阜师范大学计算机科学学院274.2.3.3数据字典通常,数据字典的每一数据条目包含以下内容:(1)在数据流图中标识数据流、数据源或外部实体的名称与别名;(2)数据类型;(3)所有以它作为输入流或输出流的转换列表;(4)如何使用该数据条目的简要说明;(5)数据条目的解释性说明;(6)其他补充说明,例如取值范围与缺省值,有关的设计约束等。2024/7/23©曲阜师范大学计算机科学学院28数据条目的定义必须遵循精确、简洁的原则,并且能为用户方和软件开发方共同理解。例如,可以使用形式语言中的语法定义机制描述数据条目的内容:=定义为(等价于);A+B表示语法成分A.B的顺序连接;A|B表示A或B;()表示括弧内的内容可选(圆括弧里的分量可有可无)。[A]表示A0|A,即含有一个A,或者不含;{A}n(n≥0)表示n个A的顺序连接;2024/7/23©曲阜师范大学计算机科学学院29常常使用上限和下限进一步注释表示重复的花括弧。一种注释方法是在开括弧的左边用上角标和下角标分别表明重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限。例如:1{A}5,或者,它们含义相同。表示用A表示的字符串集合,字符串包括:A.AA.AAA.AAAA和AAAAA。这样,“家庭保安系统”中的“电话号码”数据条目可以定义如下:电话号码=分机号|外线号码分机号=8601|8602|…|8699外线号码=9+[市话号码|长话号码]长话号码=0+区号+市话号码区号=3{0|1|…|9}3市话号码=局号+分局号局号=455|448|888|552分局号=4{0|1|…|9}42024/7/23©曲阜师范大学计算机科学学院304.2.3.4基于数据流的分析方法4.2.3.4.1创建数据流数据流图是目标软件系统中各个处理子功能以及它们之间的数据流动的图形表示。数据流图的精化过程实际上是处理子功能和数据流的细化过程。随着这一过程的进行,用户需求逐步精确化、一致化和完全化。2024/7/23©曲阜师范大学计算机科学学院31在创建用户需求的数据流模型的过程中,分析人员应遵循以下规则:首先建立顶级数据流图:2024/7/23©曲阜师范大学计算机科学学院32对用户需求的文字描述进行语法分析,其中的名词和名词短语构成潜在的外部实体、数据源或数据流,动词构成潜在的处理功能。2024/7/23©曲阜师范大学计算机科学学院33采用通常的功能分解法,按照“高内聚、低耦合”原则逐个对处理功能进行精化;与此同时,逐步完成数据流的精化,并针对被精化的处理功能生成下一级数据流图。“高内聚、低耦合”原则是指,被分解出来的各子功能之间的联系相对松散、简单,子功能内部各部分的联系相对紧密、复杂。对数据流的精化包含两方面的意义。首先,伴随着功能分解的进行,数据流的内容及各项特征将逐步彰显,所以要将其作为数据字典的一个条目,并不断精化、调整内容。其次,在父数据流图中的复合数据项可被分解为子数据项,这种数据流分解并不违背平衡准则。2024/7/23©曲阜师范大学计算机科学学院34在精化过程中必须维持各级数据流的平衡。精化过程应适可而止,避免涉及软件设计细节。一般来说,如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解。2024/7/23©曲阜师范大学计算机科学学院354.2.3.4.2过程规格说明图4.8中“口令核对”子功能分解出来的“设置口令”子功能可描述如下:参数:口令;类别:字符串;处理步骤:i.检查系统是否已有口令。若有,则验证用户输入口令的有效性。若有效,则显示提示信息要求输入新口令;否则,显示失败信息并退出。ii.检查口令长度是否合法。若非法,则显示提示信息,要求重新输入。iii.要求用户再次键入合法口令,以便用户确认和记忆。若两次键入的口令不符,则返回。iv.将确认后的口令按某种加密方法转换为另一字符串存放于系统配置文件中。显示成功信息并退出。约束条件:在上述i、ii、iii步骤中,用户重试的机会不超过三次。2024/7/23©曲阜师范大学计算机科学学院364.3其他图形工具4.3.1层次方框图层次方框图是用树形结构的一系列层次矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再进行分割的元素)。2024/7/23©曲阜师范大学计算机科学学院374.3.2Warnier图法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具­­­­――Warnier图。和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。2024/7/23©曲阜师范大学计算机科学学院384.3.3IPO图IPO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论