书签 分享 收藏 举报 版权申诉 / 211
上传文档赚钱

类型《软件系统开发技术》课件第3章.ppt

  • 上传人(卖家):momomo
  • 文档编号:7938912
  • 上传时间:2024-09-06
  • 格式:PPT
  • 页数:211
  • 大小:1.71MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《软件系统开发技术》课件第3章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件系统开发技术 软件 系统 开发 技术 课件
    资源描述:

    1、第三章需求分析和规格说明方法3.1 需求分析和规格说明阶段的基本概念3.2 结构化分析(SA方法)概述3.3 数据流图3.4 数据词典3.5 小说明3.6 分析的步骤3.7 SA方法小结3.8 快速原型法3.9 需求分析阶段的其它工作习题三第三章需求分析和规格说明方法软件开发一般涉及两方面的人员:由用户提出问题,并期望由软件开发人员给出问题的解答。所以,开发过程由用户向开发人员提出问题开始。这两方面人员往往缺乏共同的语言,用户熟悉本身的业务(如飞机订票)但不熟悉计算机技术,软件人员熟悉计算机技术但不了解用户的业务,软件人员习惯用数据结构、程序结构、编程语言等方式来讨论问题,而用户不能确切地理解

    2、这些概念,所以双方交流时存在着隔阂。3.1 需求分析和规格说明阶段的基本概念需求分析和规格说明阶段的基本概念第三章需求分析和规格说明方法更糟的情况是:用户本身也不知道他究竟要计算机做些什么,这就更增加了交流的困难。开发人员往往急于求成,于是在未明确软件系统应该“做什么”的情况下,就开始进行设计、编程,而用户则不清楚软件人员在设计一个怎样的系统,直至系统完成交付给用户之后,才发现它不符合要求,但这时已太迟了。这一类教训,国内、国外都不少见,用户与软件人员之间交流困难是造成软件危机的重要原因之一。在上述教训的基础上,人们认识到:为了开发出满意的软件系统,开发过程应该分为两大阶段进行,第一阶段是正确

    3、地确定问题,第二阶段才是为问题寻找合适的解答。所以,开发时首先必须有一段时间集中精力分析理解用户究竟要求系统“做什么”,这就是需求分析和规格说明阶段的由来。第三章需求分析和规格说明方法 需求分析和规格说明阶段(Requirement Analysls and Specification),又称需求确定阶段或分析阶段,其目的是澄清用户的需求。这个阶段的基本任务是:用户和软件人员双方一起来充分地理解用户的要求,并把双方共同的理解明确地表达成一份书面文档需求说明书。所以分析阶段的两大任务就是“理解”和“表达”,“分析”就是理解问题,“规格说明”就是按某种标准的方式把问题表达出来。在软件生命期的各个阶

    4、段中,分析阶段是面向“问题”的,它主要是对用户的业务活动(如飞机订票)进行分析,明确在用户的业务环境中,软件系统应该“做什么”;后面的设计、编程阶段则是面向“解答”的,这时考虑的是如何构造一个满足用户要求的系统。所以,在分析阶段,我们应集中考虑软件系统“做什么”,而尽可能少考虑系统将怎么样具体实现的问题,这些问题都应尽量推迟到以后的阶段去解决。第三章需求分析和规格说明方法下面讨论什么是“用户要求”(Requirements)。在电气工程中,为了研制一台收音机,首先必须明确用户对这台收音机有什么要求,它包括收音机应具有的功能及种种限制,例如“三波段,频率范围分别是Mw(530l605)kHz、s

    5、w 1(2.36.0)MHz、sw 2(6.01 8)MHz,两喇叭,输出功率3.5 w2,电源为交直流两用,可以连续工作50 h以上,体积小于(4020l0)cm3,重量小于2 kg,成本费低于5 0元”。第三章需求分析和规格说明方法 在软件工程中,所谓“用户要求”(或称“需求”)是指软件系统必须满足的所有性质和限制。用户要求通常包括功能要求、性能要求、可靠性要求、安全保密要求以及开发费用、开发周期、可使用的资源等方面的限制,其中功能要求是最基本的,它又包括数据要求和加工要求两方面。用户和软件人员充分地理解了用户的要求之后,要将共同的理解明确地写成一份文档需求说明书(Requirement

    6、specification),所以需求说明书就是“用户要求的明确表达。第三章需求分析和规格说明方法需求说明书主要有以下三个作用:作为用户和软件人员之间的合同,为双方相互了解提供基础。反映出问题的结构,可以作为软件人员进行设计和编写的基础。作为验收的依据,即作为选取测试用例和进行形式验证的依据。这三种作用对需求说明书提出了不同的、有些矛盾的要求:第三章需求分析和规格说明方法 作为设计的基础和验收的依据,需求说明书应该是精确而无二义的,这样才不致被人误解。需求说明书越精确,则以后出现错误、混淆、反复的可能性就越少。例如“本系统应能令人满意地处理所有的输入信息”是一种含糊不清的描述,验收时无法检查这

    7、一要求是否满足。又如“响应时间足够快”也是不明确的,而“响应时间小于3 s”则是精确的描述,在测试时可以检查系统“满足”还是“不满足”这个要求。第三章需求分析和规格说明方法 用户能看懂需求说明书,并能发现和指出其中的错误是保证软件系统质量的关键,所以需求说明书必须简明易懂,尽量不包含计算机技术上的概念和术语,使用户和软件人员双方都能接受它。由于用户往往不是一个人,而是企业组织中各个部门的好几个工作人员,他们可能提出相互冲突的要求,分析阶段必须协调和解决这些冲突,最后在需求说明书中表达的应该是一致的、无矛盾的用户要求。第三章需求分析和规格说明方法 由于用户的要求时时会发生变化,需求说明书也就需要

    8、作相应的修改,所以需求说明书的表达方式又必须是易于修改维护的。总之,需求说明书应该既完整、一致、精确、无二义,又要简明易懂并易于维护。显然,要达到这样的目标并非容易。第三章需求分析和规格说明方法 过去,软件人员往往不写需求说明书,或者是在程序完成之后,作为善后工作才补写需求说明书,对于大型软件系统来说,这种做法是不科学的。我们应该认识到:需求说明书是软件生命期中一份至关重要的文档,在分析阶段必须及时地建立并保证其质量。需求说明书实际上是为软件系统描绘一个逻辑模型,因此,在开发早期就为尚未诞生的软件系统建立起一个可见的模型,将是确保产品质量的有力措施,并可保证开发工作的顺利进行。第三章需求分析和

    9、规格说明方法 大型系统的需求说明书往往有一二百页,一些超大型军事系统的需求说明书则可能超过一千页,当然其中不可避免地含有各种错误,开发人员应该清醒地认识到:错误发现得越早则纠正代价越小。所以需求说明书编写完后,应该组织用户和一些专家反复对其作检验和审查,争取尽早发现错误并及时纠正。分析阶段纠正需求说明书上的一个错误可能只要花半小时,而迟至后期纠正则可能要花成千倍的代价。这里,想一下“先苦后甜的座右铭相信是有益的。第三章需求分析和规格说明方法 分析阶段是用户和软件人员双方讨论协商的阶段,由于双方缺乏共同语言,所以需要有中间人来主持工作,分析员就是双方之间的中间人。一个分析员应具有以下的能力:熟悉

    10、计算机技术。了解用户业务领域的相关知识。能在用户和软件人员之间借助数据处理的概念进行交流。过去,计算机的应用领域还是比较简单的,相比之下,训练软件人员去理解用户的业务比使用户掌握软件技术要容易些。由于这一历史原因,目前分析员一角通常由软件人员一方资历较高的人担任。将来计算机会应用于技术上比较复杂的领域,而计算机知识将越来越普及,那时分析员一角由用户方面熟悉计算机技术的人来担任将会更合适。第三章需求分析和规格说明方法分析阶段由分析员主持,用户一方应派代表积极参加,他们应包括企业负责人,企业中各部门的负责人以及具体工作人员等三个层次的代表,因为企业负责人了解总的策略以及今后的发展,部门负责人了解各

    11、部门的业务情况,而具体工作人员则熟悉具体的操作,他们所提供的情况在分析阶段都应认真收集和考虑。用户一方的责任是从他们的业务角度出发对系统提出要求,一般说来,他们不应干预系统怎么样实现的问题。第三章需求分析和规格说明方法分析员的责任是做用户的顾问和翻译,但他们不应该代替用户对系统提出要求。在分析员的主持下,用户和软件人员经过充分交流,最后对系统具体应该“做什么”达成协议,这个协议实际上就是需求说明书。分析阶段是保证软件质量的第一步,它的任务是复杂的,如何分析用户要求,需求说明书用什么形式表示等都需要有一定的技术来指导。由于分析阶段是同用户进行讨论,因此这个阶段的方法、模型、语言和工具都必须考虑到

    12、用户的特点。7 0年代以来,逐步出现了多种适用于分析阶段的技术,但是至今还没有既能完整精确地描述大型系统的用户要求,又能简单易懂地被广大用户接受的形式语言,目前大多数软件系统的需求说明书还是用非形式化的方式(例如用图形或自然语言等)表示的。第三章需求分析和规格说明方法 在众多的分析技术中,具有代表性的有Yourdon公司的“结构化分析”忍引、密执安大学的PsLPSA系统、TRw公司的sR V等。本章3.23.7将介绍“结构化分析”这一典型的分析方法,3.8简述快速原型法,3.9进一步讨论分析阶段的其他活动。第三章需求分析和规格说明方法 在众多的分析方法中,“结构化分析”(structured

    13、Analysis,简称sA方法)是一个简单实用、使用很广的方法。sA方法由美国Yourdon公司在70年代提出,它适用于分析大型的数据处理系统,特别是企事业管理方面的系统。这个方法通常与设计阶段的结构化设计(sD方法)衔接起来使用。3.2 结构化分析结构化分析(sA方法方法)概述概述第三章需求分析和规格说明方法 介绍sA方法的经典著作是参考文献1、2等,其中第一本书的作者是TomDeMarco,所以sA方法又常称为YourdonDeMarco方法。考虑到国情,本书对sA方法作了少量的修改和一定的简化。第三章需求分析和规格说明方法 3.2.1 由顶向下逐层分解由顶向下逐层分解 软件工程技术中,控

    14、制复杂性的两个基本手段是“分解”和“抽象”。对于一个复杂的问题,由于人的理解力、记忆力均有限,所以不可能触及到问题的所有方面以及全部的细节。为了将复杂性降低到人可以掌握的程度,可以把大问题分割成若干个小问题,然后分别解决,这就是“分解”;分解也可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这就是“抽象。同许多典型的分析方法(如sADT、lsAc)一样,sA方法也是采用了这两个基本手段。第三章需求分析和规格说明方法 对于一个复杂的系统(例如银行管理系统),如何理解和表达它的功能呢?sA方法使用了“由顶向下逐层分解”的方式。图3.1中系统x很复杂

    15、,为了理解它,可以将它分解成1、2、3、4几个子系统;如果子系统l和2仍然很复杂,可以将它们再分解成1.1、1.2、等子系统,如此继续下去,直到子系统足够简单,能够清楚地被理解和表达为止。第三章需求分析和规格说明方法 对系统作了合理的逐层分解后,我们就可分别理解系统的每一个细部(图3.1中的1.1、1.2、2.1、2.2、等),并为每个细部写下说明(称为“小说明”),再将所有这些“小说明”组织起来,就获得了整个系统x的系统说明书。“逐层分解体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这是有助于理解问题的。第三章需求分析和规格说明方法 图3.1的顶层抽

    16、象地描述了整个系统,底层具体地画出了系统的每一个细部,而中间层则是从抽象到具体的逐步过渡。但是简明易懂,所表达的意义也比较明确。用sA方法获得的需求说明书由以下几部分组成:一套分层的数据流图。一本数据词典。一组小说明。补充材料。第三章需求分析和规格说明方法这套文档中,“数据流图”描述系统的分解,即描述系统由哪些部分组成、各部分之间有什么联系等;“数据词典”描述系统中的每一个数据;“小说明”则详细描述系统中的每一个加工。上述资料再加上视系统而定的各种补充材料就可明确而完整地描述一个系统的功能。sA方法在描述方式上的特点是尽量采用图形表示,因为图形比较形象、直观、易于理解,一张图的表达效果可能比几

    17、千字的叙述还要好。第三章需求分析和规格说明方法 3.2.3 步骤步骤 目前大多数计算机系统都是用来代替一个当前已经存在的人工数据处理系统,对于这类系统的分析过程可分四步进行:1.理解当前的现实环境,获得当前人工系统的具体模型。2.从当前系统的具体模型抽象出当前系统的逻辑模型。3.分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型。4.为目标系统的逻辑模型作补充。第三章需求分析和规格说明方法 3.3.1 数据流图的基本成分数据流图的基本成分 sA方法采用“分解”的方式来理解一个复杂的系统,“分解”需要有描述的手段,数据流图(Data Flow Diagram)就是作为描述“分解的手段引进

    18、的。对大多数数据处理系统来说,从数据流的角度来描述一个企事业组织的业务活动是比较合适的。数据流图描述了一个组织有哪几个组成部分,也描述了来往于各部分之间的数据流。下面先看一个例子。3.3 数据流图数据流图第三章需求分析和规格说明方法 假定要为某培训中心研制一个计算机管理系统,我们首先需分析这个系统应该做些什么,为此必须分析培训中心的业务活动。培训中心是一个功能很复杂的系统,它为有关行业的在职人员开设许多门课程,有兴趣的人可以来电或来函报名选修某门课程,培训中心要收取一定的费用,学员通过支票付款,学员也可以来电或来函查询课程计划等有关事宜。培训中心的日常业务是:将学员发来的电报、信件、电话收集分

    19、类后,按几种不同情况处理。第三章需求分析和规格说明方法如果是报名的,则将报名数据送给负责报名事务的职员,他们要查阅课程文件,检查某课程是否额满,然后在学生文件、课程文件上登记,并开出报名单交财务部门,财务人员再开出发票经复审后通知学员。如果是付款的,则由财务人员在帐目文件上登记,再经复审后也给学员一张通知单。如果是查询的,则交查询部门查阅课程文件后给出答复。如果是想注销原来已选修的课程,则由注销人员在课程、学生、帐目文件上作相应修改,经复审后通知学员。对一些要求不合理的函电,培训中心将拒绝处理。第三章需求分析和规格说明方法 我们可以用图3.2的数据流图描述这个系统的“分解”。这张图告诉我们:系

    20、统分解成“收集”、“分类”、“报名”等8个部分,这些部分之间通过图中所示的数据流进行联系,要理解整个系统只需分别理解这8个部分就可以了。由于每个部分比整个系统小多了,所以分析工作就可简化。图3.3是一张简单的数据流图,它所表达的意思是:数据流X从源点S流出被加工P1变换成数据流Y,加工P1执行时要访问文件F;数据流Y又被加工P2变换成数据流Z。下面分别讨论各种成分。第三章需求分析和规格说明方法图3.2第三章需求分析和规格说明方法图3.3第三章需求分析和规格说明方法 1.数据流数据流 数据流由一组固定成分的数据组成。如图3.2中,数据流“报名数据”由“姓名”、“年龄”、“性别”、“单位名”、“课

    21、程名”等成分组成,数据流“发票”由“姓名”、“单位名”、“金额”组成,它们的组成成分都是确定的。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。第三章需求分析和规格说明方法 两个加工之间可以有几股数据流,如图3.4所示,日报表和月报表这两个数据流相互间没有任何联系,也不是同时流出的。一般说,除了流向文件或从文件流出的数据流不必命名之外(在这种情况下,有文件名已足够了),每个数据流必须有一个合适的名字。名字一方面是为了区别,同时也是给人一个直观的印象,使人容易理解这个数据流的含义。为数据流命名时,可从其组成成分或含义的角度来考虑,如图3.5中

    22、,“取款单”和“合理取款单的组成是相同的,但后者是经检查后认为合理的(如它的“帐号”和“户名”相符),这样的命名就易于理解。第三章需求分析和规格说明方法 图 3.4 第三章需求分析和规格说明方法 图 3.5 第三章需求分析和规格说明方法 应该注意的是:数据流图中描述的是数据流而不是控制流。图3.6中“取下一张卡片”是一个控制流而不是数据流,因为并没有任何数据沿着这个箭头流动,所以这个箭头应该从图中删去。习惯使用框图(程序流程图)的软件人员特别应该注意不要犯这种错误。图3.7中“每月第一天”是加工“计算工资”的激发条件,它也不是数据流,因为并没有数据流经它,所以也应删去。第三章需求分析和规格说明

    23、方法图 3.6 第三章需求分析和规格说明方法图 3.7 第三章需求分析和规格说明方法 2.加工加工 加工是对数据进行的操作。图3.2中,“报名”、“产生发票”、“查询”等都是加工。加工的名字也应适当地反映这个加工的含义,使之容易理解。每个加工还有一个编号,编号说明这个加工在层次分解中的位置,这个问题将在3.3.4节讨论。第三章需求分析和规格说明方法 3.文件文件 文件是暂时存贮的数据。图3.2中有“学生”、“课程”、“帐目”,等文件。文件的名字也应适当地选择,以便理解。我们还应注意加工与文件之间数据流的方向,如果加工要读文件,则数据流是从文件流出的,如果加工要写文件或修改文件(虽然修改文件一般

    24、先要读文件,但其本质是写)则数据流是流向文件的,如果加工既要读文件(除了修改文件之外)又要写文件,则数据流是双向的。第三章需求分析和规格说明方法图3.8中,加工“检查拼写的正确性对输入的词进行检查,当在涧汇表词汇表中查不到这个词时,则认为这个词是错误的加以拒绝,由于这个加工只读词汇表,所以图中的箭头从文件流出。如果这个加工从词汇表中查不到输入的词时,认为这是一个新的词,并将它增添到词汇表中,则加工与文件间的箭头应画成双向的。第三章需求分析和规格说明方法 4.源点和终点源点和终点 一个数据处理系统的内部用数据流、文件和加工三种成分表示一般已够了,然而为了便于理解,有时还可以画出数据流的源点和终点

    25、来说明它的来龙去脉。源点和终点通常是存在于系统之外的人员或组织,如图3.2中“学员”是数据流“函电”的源点,也是数据流“通知单”的终点。第三章需求分析和规格说明方法 画出源点和终点只是起到注释作用帮助理解而已,由于它们是系统之外的事物,我们对此是不很关心的,所以源点和终点的表达不必很严格。除了上述四个基本成分之外,根据具体情况,数据流图中也可画出一些物质流。物质流可用粗箭头表示(图3.9)。由于物质流与数据流往往是密切联系的,如一批货物同描述这批货物的清单一起从某个部门发出,在数据流图中画上物质流可能有助于理解,但是这类信息到最后总要从数据流图中抹去,因为软件系统只能处理数据而不能处理物质。第

    26、三章需求分析和规格说明方法 数据流图中也可用*号表示“与”,用号表示“或”,见第二章图2.5。图3.1 0表达的意思是:加工P执行时,需要用到数据流A“与”数据流B,而P输出数据流x“或”数据流Y。画出这些记号也是为了帮助理解,但是这类记号应尽量少用,因为它们使图中各成分间的联系复杂化了,这将给分解造成不便,而这些信息在写“小说明”时总要详细描述的,所以在数据流图中画出这些记号实际上是多余的。第三章需求分析和规格说明方法图3.9第三章需求分析和规格说明方法图3.10第三章需求分析和规格说明方法 小结小结 数据流图从“数据”和“数据经受的加工”这两个相互补充的方面来表达一个数据处理系统。它从数据

    27、的角度描述它们作为输入进入系统,经受某个加工,再经受某个加工,或者合并,或者分解,或者存贮,最后成为输出离开系统的整个过程。经验证明,对数据处理系统来说,从数据角度观察问题一般能够较好地抓着问题的本质,并描述出系统的概貌。但是,数据流图只描述了系统的“分解”,它并没有表达出每个数据和加工的具体含义,这些信息需要在“数据词典”和“小说明”中表达出来。第三章需求分析和规格说明方法 数据流图的优点是直观,容易理解,容易被一组人同时进行审查,如果图中有错误,一般也比较显眼,容易被人们发现。实践证明,从事数据处理工作的人(包括用户和软件人员)都很容易接受这个描述方式。第三章需求分析和规格说明方法 3.3

    28、.2 由外向里画数据流图由外向里画数据流图 首先应指出的是,最初的数据流图应是描述当前的实际情况,即当前存在的人工数据处理情况(尽管当前情况也许有许多不合理之处),为此分析员应将他在一个企业组织中看到听到的事实如实画出来。用户目前使用的单据、表格、卡片、清单等资料就是“数据流”或“文件”。用户目前在做的工作就是“加工”,它们的名字就是用户习惯使用的名字。总之,在刚开始时只是将现实情况反映出来,而不是急于去想像未来的计算机系统是怎样的。本章3.6将讨论如何从描述当前人工系统的数据流图过渡到描述未来计算机系统的数据流图。第三章需求分析和规格说明方法 随着经验的增加,分析员会发现对各种不同的问题,画

    29、数据流图的方法也不尽相同,但原则上都是“由外向里”进行的,“由外向里”是一种比较自然而且有条理的思考过程。在画数据流图时,首先应画出系统的输入数据流和输出数据流,也就是先决定系统的范围,然后再考虑系统的内部。同样,对每一个加工来说也是先画出它们的输入输出,再考虑这个加工的内部。第三章需求分析和规格说明方法 1.画系统的输入输出画系统的输入输出 刚开始分析时,系统究竟应包括哪些功能还不清楚,所以我们应该保险一些,使系统的范围稍大,把可能有关的内容都包括进去。此时应该向用户了解:“系统从外界接受什么数据?”,“系统向外界送出什么数据?”等,然后根据他们的答复画出数据流图的外围。如培训中心管理系统从

    30、外界接受的数据是“函电”,向外界送出的数据是“通知”,则数据流图的外围如图3.11所示。第三章需求分析和规格说明方法图3.11第三章需求分析和规格说明方法 2.画系统的内部画系统的内部 此时需逐步将系统的输入和输出数据流用一连串加工连接起来,一般可以从输入端逐步画到输出端,也可以反过来从输出端追溯到输入端。在数据流的组成或值发生变化的地方应画上一个“加工”,它的作用就是实现这一变化。如果系统中有一组数据,用户把它们作为一个单位来处理(如:一起到达,一起被加工)则应将这组数据看成是一个数据流。反之,不要把一些相互无关的,用户也并不将它们看成为一个整体来处理的若干数据画成一个数据流。第三章需求分析

    31、和规格说明方法 对每一个数据流应该了解它的组成是什么,这些组成项来自何处,这些组成项如何组合成这一数据流,为实现这一组合还需要什么有关的加工和数据等等。另外,数据流图中还要画出有关的文件,即各种存贮的数据,此时也应了解文件的组成情况。对培训中心管理系统来说,在图3.11的基础上“由外向里”进行分析,就可画出图3.2的数据流图。第三章需求分析和规格说明方法 3.画加工的内部画加工的内部 同样用“由外向里”的方式,可以继续分析每个加工的内部,如果加工的内部还有一些数据流,则可将这个加工用几个子加工代替,并在子加工之间画出这些数据流,(这一点在3.3.3还要进一步讨论)。下面再讨论几个应注意的问题。

    32、第三章需求分析和规格说明方法 1.适当地命名适当地命名 数据流图中每一成分的命名是否恰当与数据流图的易理解性有直接的关系,所以命名时应该仔细推敲。为数据流命名时应注意以下几点:1)为避免引起错觉,名字要适合于整个数据流,而不是仅仅反映它的某些成分。2)避免用空洞的名字,如“数据”、“信息”、“输入”、“输出之类,因为这种名字缺乏具体的含义。第三章需求分析和规格说明方法 3)如果发现难以为某个数据流命名,这往往是数据流图分解不当的征兆,此时可以试试重新分解是否能解决这个难题。通常应先为数据流命名再为加工命名,这也反映了“由外向里”的思考过程。图3.1 2中,如果加工的输入输出已命名为“取款单”和

    33、“合理取款单”,则加工的名字显然应是“检查合理性”,反之,先为加工命名再考虑其输入输出,则不会这样容易。第三章需求分析和规格说明方法图3.12第三章需求分析和规格说明方法 为加工命名,应注意以下几点:1)为避免错觉,名字应反映整个加工,而不是它的一部分工作。2),如果加工的名字能由一个具体的及物动词加上一个具体的宾语构成,则是最理想的。如“计算工资”、“收集函电”、“开发票”等都是较好的名字。“加工”、“处理”等空洞的动词应尽量避免。另外,名字中只要一个动词就够了,如果必须用两个动词,则把这个加工再分解成两个可能更合适些。在实际问题中,上述理想的名字不一定能得到,在上层的数据流图尤为困难。第三

    34、章需求分析和规格说明方法3)如碰到难以适当命名的加工,这往往是分解不当的迹象,此时应考虑重新分解。2.画数据流而不是控制流画数据流而不是控制流 数据流图与传统的框图是不同的,数据流图是从数据的角度来描述一个系统,而框图则是从对数据进行加工的工作人员的角度来描述系统。数据流图中的箭头是数据流,而框图中的箭头则是控制流,它表达的是程序执行的次序。第三章需求分析和规格说明方法 在宏观地分析一个组织的业务概况时从数据流的角度来理解问题比较合适,所以采用数据流图,而框图只适用于描述系统中某个加工的执行细节。数据流图中强调数据流而不强调控制流,所以从图中一般是看不出执行次序的,例如图3.2中,我们看不出“

    35、产生发票”这个加工是每接收到一张“报名单”就进行工作,还是每天工作一次,这个问题可推迟至建立“小说明”时才加以考虑。第三章需求分析和规格说明方法 为了区别数据流和控制流,我们只需问一个问题:“这条线上有什么数据流过?”,如果没有,它就是控制流,在数据流图中就不应将它画出。3.先考虑稳定状态先考虑稳定状态 画数据流图时,暂不必考虑系统是如何开始工作的、如何结束的,只假定它能开始运行就是了,这是为了集中精力先考虑稳定状态下的种种问题,所以将系统的“开始”和“结束”等问题推迟到适当的时候才予以考虑(本章3.6讨论这个问题)。第三章需求分析和规格说明方法4.忽略琐碎的枝节忽略琐碎的枝节 画数据流图时,

    36、应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性问题。我们只需在图中画出这些枝节性数据流就可以了(如图3.2中的数据流“不合理”),而不必沿着它们再进一步分析下去。虽然大多数系统都要花较多的精力来考虑例外情况、出错处理等,但这些问题对理解整个系统并没有很大的影响,因此可以放心地推迟考虑。第三章需求分析和规格说明方法 5.随时准备重画随时准备重画 理解一个问题总要经过从不正确到正确,从不恰当到恰当的过程,一次就成功的可能性是很小的,对复杂的问题尤其如此。分析员应随时准备抛弃旧的数据流图而用更好的版本来代替它。在分析阶段重画几张图是很小的代价,只要能获得更正确清晰的需求说.明书,

    37、使得设计、编程等阶段节省大量的劳动力,这样做是完全值得的。反之,在分析阶段草草了事,使一些隐患潜伏下来,到开发后期再来纠正,代价就太大了。第三章需求分析和规格说明方法 3.3.3分层数据流图分层数据流图 对一个大型的系统,如用一张数据流图画出所有的数据流和加工,则图纸将极其庞大复杂,因而难以理解。为了控制复杂性,SA方法采用了“分层”的技术。培训中心管理系统的数据流图只有一层,但是如果编号为 3的加工“付款和编号为7的加工“复审仍很复杂,一时难以理解,则可以将它们进一步分解成加工3.1、3.2、以及加工7.1、7.2、7.3、等,如此继续下去,直到每个加工都足够简单易于理解为止。第三章需求分析

    38、和规格说明方法 逐层分解的方式不是一下子引进太多的细节,而是有控制地逐步增加细节,实现从抽象到具体的逐步过渡,这是有助于理解一个复杂的问题的。用数据流图来描述“逐层分解”,就得到了一套分层的数据流图。图3.1 3(a)是某系统的数据流图。这个系统修改放在磁带中的一个主文件上,对文件作修改的信息放在卡片上。该系统读入一叠卡片,按卡片上的修改信息对磁带中的记录作相应修改,然后产生新的主文件。第三章需求分析和规格说明方法 图3.1 3(a)画出了这个系统的所有加工和数据流,它是比较复杂的,不很容易理解。但是如果用一套分层的数据流图来描述就清楚多了(见图3.1 3(b)。图3.1 3(b)对系统的描述

    39、是容易使人理解的。顶层图说明了系统的输入数据是“旧主文件”和“修改卡片”,系统的输出数据是“新主文件。下一层的图0是中间层,它说明系统分成三部分,并描述了各部分之间的联系。由于每一部分还较复杂,所以它们又分别分解成图1、图2和图3。第三章需求分析和规格说明方法 图l说明“产生修改信息”这一部分又分成三部分,它们分别是检查卡片的顺序、对卡片进行编辑以及构成一定格式的修改信息。图2说明“产生记录”这一部分分成核对检查和、构成一定格式的主记录两部分。图3说明“产生新文件”这一部分分成四部分,分别是检查记录和修改信息是否匹配、修改、产生新记录、配上检查和等。第三章需求分析和规格说明方法 显然,上述“由

    40、顶向下逐层分解”的理解和表达过程,比一下子抛出系统的所有细节(一次性分解)是优越多了。对于更大的系统,则逐层分解的优越性更为明显。一套分层的数据流图由顶层、底层和中间层组成。顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不必再分解的加工组成,这些加工都已足够简单,称为基本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步被分解。较小的系统可能没有中间层,而大的系统中间层可达8、9层之多。第三章需求分析和规格说明方法 图3.1 3(b)中,顶层图被称为是图0的“父图”,图0称为是顶层图的“子图;同样,图0是图1、图2和

    41、图3的“父图,图1、图2和图3是图0的“子图”。父图中有几个加工,它就可以有几张子图,本例中图0有三个加工,所以它可以有三张子图,但也可能少于三张,因为父图中可能有些加工已足够简单,因而可以作为基本加工不再分解了。需要指出的是,分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”和“小说明”对图中的每个数据和加工给出解释。第三章需求分析和规格说明方法图3.13(a)第三章需求分析和规格说明方法图3-13(b)第三章需求分析和规格说明方法 3.3.4 由顶向下画分层数据流图由顶向下画分层数据流图 描绘分层数据流图按“由顶向下”的原则进行,本节从以下几方面讨论描绘中应

    42、注意的问题:1.编号;2.父图和子图的平衡;3.局部文件;4.分解的程度。1.编号编号 为了便于管理,需按以下规则为数据流图和其中的加工编号:1)子图的编号就是父图中相应加工的编号。2)子图中加工的编号由子图号、小数点、局部号连接而成。第三章需求分析和规格说明方法 顶层图只有一张,故不必编号,下一层的图可以编号为0,图中加工的编号就是0.l、0.2、0.3,通常我们删去小数点前面的0,所以这些加工的编号就是1、2、3。有了这样的规则,只要数一下子图编号的小数点数,就可知道这张子图位于哪一层;另外,根据编号就可知道某一张图的父图是哪一张,例如数据流图6.3.2的父图就是数据流图6.3。第三章需求

    43、分析和规格说明方法为简单起见,在一张图的内部,每个加工往往只用它们在这张图中的局部号表示,而不必再重复写出子图的编号(图3.1 4),但是在小说明中,仍需使用加工的完整编号,如图3.1 4中最左边一个加工在小说明中应注明编号是4.1(说明它是子图4中的第一个加工)。一套分层的数据流图可按编号次序用活页形式装订起来,形成一本便于查阅的资料。第三章需求分析和规格说明方法 2.父图和子图的平衡父图和子图的平衡 图3.1 5是父图(图)和它的一张子图(图4)。父图中的加工4被分解成子图中的五个加工。子图也是描述父图中的加工4,差别仅在于子图是详细的描述而父图是抽象的描述而已,所以子图的输入、输出数据流

    44、应该同父图中加工4的输入输出完全一致。第三章需求分析和规格说明方法 图 3.1 5第三章需求分析和规格说明方法 父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同,分层数据流图的这种特点称为“平衡”。更具体地说,“平衡”是指子图的所有输入数据流必须是父图中相应加工的输入,子图的所有输出数据流必须是父图中相应加工的输出。图3.1 5是平衡的,因为父图中加工4的输入、输出与子图中的输入、输出完全相同。图3.1 6的父图和子图是不平衡的,因为子图中没有输入数据流与父图中加工2的输入流M相对应,另外,子图的输出数据流s在父图中也没有出现。第三章需求分析和规格说明方法图 3.16 第三章需求分

    45、析和规格说明方法 再看图3.1 7的父图和子图平衡吗?从图上看,子图与父图中相应加工并不具有相同的输入和输出,但是如果从词典中查出:父图中称为“订货单”的数据流是由“客户”、“帐号”和“数量”三部分数据组成的,那么就可得出结论:这两张图是平衡的。第三章需求分析和规格说明方法 图 3.1 7第三章需求分析和规格说明方法 如果子图的输入输出数据流比父图中相应加工的输入输出表达得更详细,实际上就是在对“加工”和“数据”同时进行分解,由顶向下同时对加工和数据流作逐层分解是很自然的方式,所以是经常使用的,在这种情况下,检查“平衡”就必须借助词典来进行。考虑“平衡”时,可以忽略枝节性的数据流,如果图3.1

    46、 5中子图的加工4.3有一个表示出错的数据流,这两张图仍然是平衡的。第三章需求分析和规格说明方法 父图和子图必须平衡,这是分层数据流图的重要性质,平衡的分层图是可读可理解的,反之,如果父图和子图不平衡,这套数据流图就无法理解。第三章需求分析和规格说明方法3.局部文件局部文件 图3.1 8的两张数据流图是平衡的,但是子图中的文件ALPHA为什么在父图中没有画出呢?这是因为ALPHA是完全局部于加工4.3的,它并不是父图中各个加工之间的交界面,根据“抽象”原则,在画父图时,只需画出加工和加工之间的联系,而不必画出各个加工内部的细节,所以父图中不必画文件ALPHA,同理,数据流XXX、YYY也不必画

    47、出。第三章需求分析和规格说明方法 一个文件要到哪一层才画出来呢?其原则是:当文件被用作数据流图中某些加工之间的交界面时,这个文件就必须画出来,一旦文件作为数据流图中的一个独立成分画出来了,那么它同其他成分之间的联系也应同时表达出来,即应画出每个加工是读这个文件还是写这个文件。图3.1 8中,当加工4.3被分解成4.3.1、4.3.2和4.3.3三个加工时,文件ALPHA是加工4.3.1和4.3.3的交界面,所以图4.3中就应将它画出。这张图还需说明每个加工是如何使用这个文件的,这里加工4.3.1和4.3.3使用文件,而加工4.3.2不用文件;此外,数据流的方向还表示出加工4.3.1写文件而加工

    48、4.3.3读文件。第三章需求分析和规格说明方法 图 3.1 8 第三章需求分析和规格说明方法 4.分解的程度分解的程度 使用分层数据流图说明我们并不打算一下子把一个加工分解成它所有的基本加工。一张图中画出过多的加工是难以使人理解的,但是如果每次只是将一个加工分解成两个或三个加工,又可能需要过多的层次,这将从另一角度带来麻烦,一个加工每次分解成多少个子加工才合适呢?第三章需求分析和规格说明方法 一个简单的回答是“最多不要超过7个。这个数字“7”是由经验得出的,大量事实证明,人们能有效地同时处理7个或7个以下的问题,但当问题多于7个时,处理效果就会下降。当然这一点是不能机械地使用的,关键是要使数据

    49、流图易于理解,以下几条原则可供参考:1)分解应自然,概念上合理、清晰。2)只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层图的层数就可少些。3)一般说来,在上层可以分解得快些,而在下层则应分解得慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。第三章需求分析和规格说明方法 小结小结 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层则给出了从抽象到具体的逐步过渡。运用这一描述手段,我们能建立起一套可以由顶向下阅读的系统说明书。第三章需求分析和规格说明方法 在画分层数据流图时要注意以下几点:1)父图和子图

    50、的输入输出数据流要“平衡”。2)根据“抽象”原则,每张图只画出作为加工间交界面的文件和数据流,而不必画出加工内部的文件。3)如要了解某个加工内部的细节,可以阅读与这个加工的编号相同的一张图。4)一个加工一般最多分解成7个子加工。5)当每个加工都已足够简单时,分解就可结束。第三章需求分析和规格说明方法 3.3.5 实例实例运动会管理系统运动会管理系统 本节介绍一个实例运动会管理系统。组织一个大型运动会的工作过程如下:首先决定日期、地点、规模、设立哪些比赛项目、报名期限等,并作出一些规定,如每人最多可参加多少项目,每个项目每队最多可有多少人参加等。在报名结束后,要给每个运动员编号,统计每个项目有多

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《软件系统开发技术》课件第3章.ppt
    链接地址:https://www.163wenku.com/p-7938912.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库