《现代软件工程3.ppt》由会员分享,可在线阅读,更多相关《现代软件工程3.ppt(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章结构化分析第一节结构化分析的主要工具第二节结构化分析方法的实现步骤第三节结构化分析规格说明书第四节结构化分析实例第一节结构化分析的主要工具结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。为了能够准确、清晰地描述数据的流向人们使用数据流程图;为了明确地定义数据的组成和数据项的含义使用数据字典;为了对数据处理的描述使用IPO模块说明。1系统流程图系统流程图是描述一个系统物理模型的图形工具,使用一些图形符号以黑盒子的形式描绘系统的每个部件,如设备、文件、数据库、程序、通讯和人工过程等。通常可以在需求调研阶段使用它来描绘用户当前系统的物理模型,
2、需求分析时在物理模型的基础上获得系统的逻辑模型,在设计阶段根据系统的逻辑模型设计出新系统的物理模型。见讲义系统流程图的常见符号表:注意:系统流程图和程序流程图的区别,系统流程图是反映系统物理结构的概貌,它主要描绘信息在系统各个物理部件之间的流动情况,每个部件都是一个未打开的黑盒子;程序流程图是反映系统中具体模块或算法的处理过程,也可以理解为对打开的黑盒子中内容的描述。系统流程图有两个作用一是可以用系统流程图描述系统的组成元素;二是用来描述信息在各个元素之间的流动情况。例如,我们可以在分析阶段用系统流程图展示当前系统的物理结构,将现系统的设备、接口、通讯等情况一一描绘出来。在设计阶段,将新系统的
3、设备、接口、通讯以及软件元素也都描绘在系统流程图中,并且可以由此生成系统的软硬件初始配置清单。然后根据系统的运行环境要求和具体性能要求、投入成本等综合因素对软硬件设备进行具体选型。软件系统的物理模型应该反映软件元素在各个硬件元素上的分布、以及各个软硬件元素之间的信息通信。软件元素包括文件、数据库、模块等。硬件元素包括客户机、服务器、网络设备、通信设备、信息采集设备等画系统流程图的步骤:首先找出可能的系统硬件元素,如果是人工系统则找出各个相关的业务部门或组织;接着寻找各个硬件元素上分布的软件元素,如果是人工系统则寻找各个部门或组织的职责(任务);然后,找出各个元素之间的通信或连接方式;最后仔细研
4、究各个元素,对于比较复杂的软件元素需要描述主要处理步骤(不要过于详细)和信息流,如果是人工系统,需要对处理复杂的过程进行简要描述,对于硬件元素需要说明规格和型号。图书馆信息管理系统流程图查询图书/读者PC机借/还书PC机办证/处罚/员工管理PC机新书订购/编目PC机读者客户端办公室客户端采编室客户端流通部客户端数据库服务器SQLServer7.0联想微机服务器HP5000打印机借还书部分的系统流程图实例还书事务处罚处理预借到书通知还书处理打印处罚信息借还书记录预借登记处罚信息罚款单2数据流程图数据流程图是描绘系统逻辑模型的图形工具,只描绘信息在系统中的流动和处理情况,不反映系统中的物理部件,数
5、据流程图使用四个标准的基本符号。数据的源点或终点数据的源点和终点可能是相同,为了保持图形的清晰,最好重复画一个相同的符号,将它们分别表示。源点和终点的名称直接写在图形符号里处理处理是数据流程图的核心,一个处理可以表示一个程序、一个模块、多个程序、也可以是人工处理过程。为了使系统清晰,便于管理,每个处理应该给予一个编号,这个编号与处理说明中的编号是对应的,非常便于查找。每个处理的名称写在图形符号中,使得数据流程图易于理解。数据流数据流是在处理与数据存储、处理与数据源/数据终点、处理与处理之间流动的信息。通常在实际开发中,不提倡处理之间直接传递的数据流,最好是在处理之间经过数据存储来传递信息,这样
6、系统的安全性会更好。数据流程图中的每个数据流都需要给予一个编号或名称。数据存储数据存储是保存数据的地方,它可以是一个文件、一张数据库表、也可以是文件或数据库表的一部分。注意:数据流程图是描绘信息在系统中的流动和处理,在数据流程图中不能反映控制流,许多人画数据流程图时总是想加入分支判断或循环,这类控制性的流程属于程序流程图描绘的内容,不要放入数据流程图中层次数据流图注意数据流程图上所有图形符号只限于前述四种基本图形元素。数据流程图必须包括前述四种基本元素,缺一不可。数据流程图上的数据流必须封闭在外部实体之间。每个加工至少有一个输入数据流和一个输出数据流。注意在数据流程图中,需按层给加工框编号,编
7、号表明该加工所处层次及上下层的亲子关系。一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。数据流程图上每个元素都必须有名字和编号。数据流图中不可夹带控制流。初画时可以忽略琐碎的细节,以集中精力于主要数据流,然后通过不断细化添加必要的细节。3数据字典在结构化分析时所定义的数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。数据字典中所有的定义必须是严密的、精确的、无二义性的。数据字典把数据的最小组成单位看成是数据元素或者叫做基本数据项,若干个数据元素可以组成一个数据结构也叫做组合数据项。数据流词条的定义数据流是数据结构在系统内的传播路径,一个
8、数据流词条的主要内容如下:数据流名称:给数据流起一个有意义的名称。编号:与数据流图中的编号相对应。说明:简要介绍它的作用数据流来源:来自哪里数据流去向:流向哪里数据流组成:数据结构数据流量和数据量:流通量、数据量数据元素词条的定义数据元素是数据处理中最小的、不可再分解的单位。它直接反映事物某个属性,它的描述如下:数据元素名称:给数据元素起一个有意义的名称,便于交流和记忆。简称:数据元素的简称可以作为数据元素在程序中的名称。类型:数据元素的类型,例如:字符型、数字型、布尔型等。长度:数据元素的长度。例如:身份证号的长度18位。取值范围:数据元素的取值范围,例如,职工年龄的去值范围定义为18至60
9、岁,表示为18.60。初始值:数据元素的初始值,例如,为了操作简便,软件定义借书日期的初始值默认为系统的当前日期。相关的数据元素及数据结构:如果一个数据元素有相关的数据元素和数据结构可在此说明。数据存储词条的定义数据文件是保存数据的载体,数据文件的描述格式如下:名称:给数据存储起一个有意义的名称。编号:数据存储在数据流图中的编号。简述:简单描述数据存储的作用。数据存储的组成:数据结构。存储方式:文件/数据库表访问频率:该数据存储的访问频率,用于数据设计时考虑优化。数据加工处理词条的定义数据的加工处理描述比较复杂,对它的具体描述一般用专门的工具,例如:IPO图、结构化英语、判定表等。在数据字典中
10、一般只列出数据加工处理的名称和编号。例如:借书处理,编号:IPO1001。分析和设计人员能够用编号找到IPO1001,获得详细的描述数据源点及终点词条的定义数据源点和终点的描述内容:名称:数据源点或终点的名称,可以是一个组织、一个部门或一个外部系统等等。简要说明:简单描述数据源点或终点在系统中的作用和地位,对系统的影响和要求。有关的数据流:与该点有关的输入和输出数据流。数据流/数据存储字典表编号:名称:使用频率:来源/去向:使用权限:保存时间:名称简称键值类型长度值域初值备注特别说明:图书基本信息的数据字典编号:编号:DS102 名称:名称:图书信息 使用频率使用频率:每天访问100次 来源来
11、源/去向去向:采编部创建,流通部使用使用权限:使用权限:采编部“写”/其他部门“读”保存时间:保存时间:永久名称简称键值类型长度值域初值备注图书编号BookIDP字符100书名BookNM字符100类型Subject字符100可选择作者Author字符100 4 IPO图数据流程图中的加工处理本应该放在数据字典中进行定义,但是由于处理与数据是有一定区别的两类事物,它们各自有独立的描述格式,因此在实际项目中通常将处理说明用另外的格式描述。下面是项目中常用的加工处理说明模板。加工处理说明表系统名称:作者:处理编号:日期:输入参数说明:输出参数说明:处理说明:局部数据元素:备注:5层次方框图层次方框
12、图这种工具应用非常普遍。它不仅可以反映系统的功能组成关系,也可以反映现实世界中的信息组成关系。如果严格按照结构化方法的步骤进行的话,功能层次方框图应该是在概要设计阶段由数据流程图转化而来的软件结构图。在需求分析阶段可以将层次方框图用于帮助理解和分析现实世界的数据关系。层次方框图是种树形结构,树上的每个节点都是一个方框。如果是软件功能结构方框图,则每个方框表示一个功能模块。例如图所示,功能A由子功能B、C、D实现,其中功能C由E和F子功能实现,而功能F又由子功能G、H、I、J实现。6实体关系图需求分析的一项重要任务是弄清系统将要处理的数据和数据之间的关系,主要内容包括:要处理的主要数据对象是什么
13、?每个数据对象的组成如何?这些对象当前位于何处?每个对象与其他对象有哪些关系?对象和变换它们的处理之间有哪些关系?为回答这些问题,在结构化需求分析方法中使用实体关系图。实体关系图最初是由Peter ChenCHE77为关系数据库系统的设计提出的,并被其他人进行了扩展。它给出了一组基本的构件:数据对象、属性、关系和各种类型指示符,主要目的是表示数据对象及其关系。7状态变迁图状态变迁图在需求分析阶段用于描述系统的行为。传统的结构化分析方法中没有这个工具,只有结构化分析的扩展版本才提供。状态变迁图通过描述系统状态以及导致系统改变状态的事件来表示系统的行为。并不是所有的系统需求分析都要做状态变迁图,只
14、有当系统行为模式变化比较复杂的情况下才使用。状态是可观察的行为模式,例如,在图书馆信息管理系统中,图书的状态有:“正在采购中”、“正 在 编 辑 中”、“在 书 库 中”、“借 出”、“注销”,在状态变迁图中,矩形代表状态,箭头代表状态间的“变迁”。每个箭头用规则表达式标记,箭头上方指明导致变迁发生的事件,箭头下方指明此事件引发的行为。例如,当图书“在书库中”状态下,发生“借书”事件,引发系统的“借书处理”行为,导致图书变为“借出”状态。第二节第二节 结构化分析方法结构化分析方法实现步骤实现步骤任务1)确定系统的功能要求 2)确定系统的数据要求3)确定系统的操作要求和界面要求4)确定系统的性能
15、要求5)确定系统的运行要求6)获得当前系统的物理模型7)抽象出当前系统的逻辑模型8)建立目标系统的逻辑模型。9)修正开发计划10)如果需要则开发系统原型结构化分析的原则原则一:必须要理解问题的数据域和功能域。事实上一个软件从外部可以将其看成是一个黑盒子,信息从一端流入,从另一端流出,信息的变化就是软件的功能所为。计算机程序所处理的数据域的描述不外乎就是:数据内容、数据结构和数据流。数据内容就是数据项,数据结构就是数据项的组织形式,数据流是数据通过系统时的变化方式。在需求分析阶段的功能描述通常是用文字说明要“做什么”,不必具体展开怎样做。原则二:按自顶向下、逐层分解的方式对问题进行分解和细化。如
16、果将一个要解决的问题不拆开分析,而是从整体上考虑解决方案通常是困难的。特别是一些复杂的问题,如果将其分解成一个个小的、容易控制和理解的子问题,除了便于理解,还可以将子问题划分给不同的小组,分别完成,然后在装配起来形成一个完成的系统。最重要的是通过拆分,可以使软件开发走向组件开发的道路。因为划分的小问题中有些是常见问题,有些是特殊问题。对常见问题可以重用已有的软件构件,开发人员只对特殊问题提供解决方案。这样不仅提高软件开发的效率,更主要的是使软件开发向着“工程化”方向迈进。横向分解纵向分解结构化分析方法具体实现步骤1 1、信息分析:、信息分析:根据用户的需求画出初始的数据流程图,写出数据字典和初
17、始的加工处理说明。因为,初始的数据流程图还要进行修改,随着需求分析的深入,数据流程图的修改量很大,所以,开始时的说明不要涉及太多的细节,以免不必要的返工。2 2、回溯:、回溯:以初始数据流程图为基础,从数据流程图的输出端开始回溯。首先确定系统的输出是什么?将输出的信息在数据字典中说明。为了获得这个输出,要进行那些加工处理,输入信息是什么?也就是说,对这个输入信息进行加工处理,便可以获得需要的输出信息。这个输入可能是用户的原始输入,也可能是其它加工处理的输出,如果是其它处理的输出,那么继续向前回溯找它的处理和处理的输入。这样不断地回溯直到所有的输出都沿数据流图回溯到原始输入端为止。在回溯过程中将
18、所有的输入输出数据流和数据存储都放到数据字典中定义,完善初始的数据字典。每个处理的详细说明放在加工处理说明表中说明3 3、补充:、补充:在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,将数据流程图补充完善。对于模糊不清的问题要通过进一步的调研进行确认。4 4、确定非功能需求:、确定非功能需求:对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。用户对软件的质量属性可能会提出很多要求,有时实现全部质量属性是不现实的,因此开发人员和用户要根据软件的特点,有侧重地实现某些质量属性。接口包括硬件接口、软件接口、用户接口、通讯接口。有时,设计和实现的约束会对开发人员形成较大的压力,所
19、以,要讨论这些约束的合理性和必要性。5、复复查查:系统分析人员将补充修改过的数据流程图、数据字典、数据实体关系图和处理说明讲给用户听。方法是以数据流程图为核心,辅以数据字典和处理说明,将整个软件的功能要求、数据要求和运行要求和扩展要求讲解给用户和系统的其它相关人员。大家一起跟着分析人员的思路检查数据是否正确,数据的来源是否合理、软件的功能是否完备,每条功能都回溯到用户的需求上,有没有丢失的需求等等。6 6、画出软件的功能结构图:、画出软件的功能结构图:通过细化数据流程图,以方框图的形式画出系统的功能结构,注意在分析阶段的功能结构图不要过于强调细节7 7、修正开发计划、修正开发计划:由于这时的需
20、求已经非常细致了,根据细化的需求修订开发计划8 8、编写需求文档、编写需求文档:编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。第三节结构化分析规格说明书结构化分析规格说明书软件需求规格说明书(Software Requirments Specifications 简称SRS)是需求阶段的产品,它精确地阐述一个软件系统提供的功能、性能和必要的限制条件。软件需求规格说明是系统测试、系统设计、编码和用户培训的基础。编写软件需求规格说明书的目标为开发者和客户之间建立共同协议创立一个基础。对要实现的软件功能做全面的描述,有助于客户判断软件产品是否符合他们的要求。提高开发效率。
21、在软件设计之前通过编写SRS,周密地对软件进行全面的思考,从而极大地减少后期的返工。由于对SRS要进行仔细地审查,所以还可以尽早发现遗漏的需求和对需求错误的理解。为需求审查和用户验收提供了标准。SRS是需求阶段的阶段产品,在阶段结束之前由审查小组对它进行审查。审查通过的SRS才能进入设计阶段,SRS是用户严守的主要文件,通常用户根据合同和SRS对软件产品进行验收测试。SRS是编制软件开发计划的依据。项目经理根据SRS中的任务来规划软件开发的进度、计算开发成本、确定开发人员分工。对关键功能进行风险控制,制定质量保障计划。但是在SRS中不包括各种开发计划。SRS是进行软件产品成本核算的基础,可以成
22、为定价的依据。但是SRS本身不包括成本计算。编写SRS的基本要求有两点一是必须描述软件具备的功能和性能;二是必须用确定的、无二义性的、完整的语句来描述功能和性能。在SRS必须描述的基本内容有软件功能描述软件要做什么?注意不要写怎么做。软件性能描述软件功能执行过程中的速度、可使用性、响应时间、各种软件功能的恢复时间、吞吐能力、精度、频率等。设计限制软件的表现效果、实现语言、数据库完整性、资源限制、操作环竟等方面强加于软件实现过程的限制。质量属性包括有效性、高效性、灵活性、安全性、互操作性、可靠性、健壮性、易用性、可维护性、可移植性、可重用性、可测试性外部接口与人、硬件、其它软件的相互关系。注意在
23、编写SRS时不要涉及设计的内容,不要把软件划分成若干模块,然后给每个模块分配一个功能;不要描述模块间的信息流程或者控制流;不要设计数据结构。另外,在SRS中不要包括软件开发过程方面的描述,不要把软件成本估计、开发进度、软件开发方法、质量保证、验收过程等软件开发合同性事宜的内容放入SRS,这些内容应该写入其它的文档中。注意为了使需求便于跟踪和管理,在需求规格说明书中对每条需求都应该进行编号,并且编号是固定唯一的。例如,要在ED-1,ED-2之间插入一条需求时,可以编号ED-1.1,其它的编号不变。见讲义需求规格说明书的模板第四节结构化分析实例图书馆信息管理系统需求读者来图书馆借书,可能先查询馆中
24、的图书信息。查询可以按书名、作者、图书编号、关键字查询。如果查到则记下书号,交给流通组工作人员,等候办理借书手续。如果该书已经被全部借出,可做预订登记,等待有书时被通知。如果图书馆没有该书的记录,可进行缺书登记。办理借书手续时先要出示图书证,没有图书证则去图书馆办公室申办图书证。如果借书数量超出规定,则不能继续借阅。借书时流通组工作人员登记图书证编号、图书编号、借出时间和应还书时间。当读者还书时,流通组工作人员根据图书证编号,找到读者的借书信息,查看是否超期,如果已经超期,则处罚。如果图书有破损、丢失,则进行破损处罚。登记还书信息,做还书处理,同时查看是否有预订登记,如果有则发出到书通知。图书
25、采购人员进行图书采购时,要注意合理采购。如果有缺书登记则随时进行采购。采购到货后,编目人员进行验收,编目、上架,录入图书信息,发到书通知。如果图书丢失或旧书淘汰,则将该书从书库中清除,即图书注销。以上是图书管理系统的基本需求。经过与图书馆工作人员反复交流,他们提出了下列建议:建议1:当读者借阅的图书到期时,希望能够提前以一个短信息或电子邮件方式提示读者。建议2:读者希望能够实现网上查询和预订图书。建议3:应用系统的各种参数设置最好是灵活的,由系统管理人员根据需要设定。例如:借阅量的上限,还书提示的时间,预订图书的保持时间等参数。用户给出的上述需求式一个比较简单的需求,没有向我们前面介绍的那样给
26、出业务需求、用户需求。遇到这种情况我们要进一步与用户沟通,了解系统的目标、规模、范围,不能自己想当然确定。本例中用户给出的系统目标是实现读者借还书的信息化,并且利用Internet网络实现读者与图书馆之间的互动和图书馆的人性化管理。提高图书的利用率。系统的规模较小,只涉及图书、读者、借还书的管理,相关的部门有采编部、流通部、办公室。描绘系统流程图查询图书/读者PC机借/还书PC机办证/处罚/员工管理PC机新书订购/编目PC机读者客户端办公室客户端采编室客户端流通部客户端数据库服务器SQLServer7.0联想微机服务器HP5000打印机系统0层数据流程图 描述本例中的数据源/终点有读者、采编部
27、、办公室、流通部。读者提供的主要信息是读者号、书号;办公室是为读者分配读者号,定义处罚规则、借还书规则;采编部提供新书信息;流通部实现借还书操作,产生借还书信息。下面应该对图书馆信息管理系统这个“黑盒子”进行逐步分解,细化数据流程图。读者使用该系统进行图书信息查询、读者信息查询、网上预订图书,所以应该增加查询功能和预订图书功能;采购部的人员使用本系统完成图书编目、新书信息发布功能,为此增加图书编目和新书发布处理;流通部的工作人员使用本系统完成读者借还书的事务,应该为他们设置借书、还书处理;办公室的人员负责读者信息管理、罚款信息管理和系统的参数制定,为他们添加读者信息管理、处罚信息管理、系统参数
28、维护三个处理。系统1层数据流程图两个问题一个是图形元素的编号问题,为了在进行细化的过程中图型元素保持原有的编号,我们在对图形元素编号时应该有规划,以保证在的细化过程中便于插入新的图型元素。另一个问题是对于一个较大型的应用系统,数据流程图往往会很复杂,因此可以将一个数据流程图分解为多幅数据流程图,保持图面的简洁注意一层的数据流程图是比较高层的数据流程图,通常会舍掉一些细节。上面的数据流程图中有些内容没有考虑,例如,图书催还、预借到书通知、取消预订、操作登录等等。为了尽量使数据流程图考虑周全,可以从两个方面下手:先从每个数据源出发,检查对于一个数据源来说,功能是否完善了;然后分析每个处理,看它们描
29、述的是否清楚。还书数据流程图借书数据流程图采编和办公室数据流程图注意1)画数据流程图时要注意使用统一的符号。数据流程图中只有四个基本符号,它们应该统一。每个符号上应该有规范的编号和简称。2)编号问题在实际的分析和设计中非常重要,因为分析和设计是一个不断迭代的过程,其中不免要增加或减少某些元素,如果编码不规范,最终可能会造成混乱。通常的编码是按照大的功能集合或子系统划分的,有时在分析时还不能确定子系统,但是,可以根据用户的需求大致划分功能集合。在图书管理信息系统中,我们可以暂时划分出借书、还书、图书预订、处罚、采购、登录、系统维护和其他操作。采用三位编码:XXX,第一位是功能号,后面两位是顺序号
30、。例如:IPO201 读者有效性判断,2xx代表借书处理;01 是借书处理中的第一个操作。3)许多新手在画数据流程图时,总是想考虑一些判断条件,而数据流程图的表示方式中没有判断的符号,因此就感觉无从下手。为什么会出现这样的情况呢?原因是考虑的过于详细了,这些判断应该是在某个处理内部的,而不是在处理之间的判断。4)如果画在一张图上的图形元素过多,看起来会很复杂。可以分别画几幅数据流程图,只是注意相应的元素编号要一致。5)数据流程图可以由简到繁逐步细化,具体细化的程度可以根据系统的规模、开发人员对系统的了解程度等因素考虑。上面的例子中还书的数据流程图相对比较粗略,借书的数据流程图比较细致,如果在分
31、析阶段给出的数据流程图不够细致的话,在设计阶段就会有较多的细化工作,读者可以在第四章看到对还书数据流程图的细化工作。6)根据数据流程图和对需求的了解,应该给出一张需求表,包括需求的编号、简单描述、优先级和验证方式。编号简述使用者优先级验证方式IPO100处罚管理办公室1根据处罚规则设计测试用例,包括有效数据、无效数据;处罚条件边界的数据IPO101读者管理办公室2正确的和完善的读者数据、正确但不完善的读者数据、无效的读者数据、同名的读者数据IPO102图书编目采购部1正确的和完善的图书数据、正确但不完善的图书数据、无效的图书数据、相同的图书数据IPO103新书发布采购部2新书量超过一屏显示的情况、新书信息是否完善、只读界面是否不能修改例子的文档见讲义