软件工程-可行性分析课件_第1页
软件工程-可行性分析课件_第2页
软件工程-可行性分析课件_第3页
软件工程-可行性分析课件_第4页
软件工程-可行性分析课件_第5页
已阅读5页,还剩185页未读 继续免费阅读

下载本文档

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

文档简介

第二章可行性研究2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析第二章可行性研究2.1可行性研究的任务1可行性研究开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。可行性研究开发一个基于计算机的系统通常都受到资源(人力、财力2开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN问题的定义与可性行研究Who

为谁设计,用户是谁?What

要解决哪些问题?Why

为什么要解决这些问题

有用的软件

3W开始问题定义可性行研究可行否?项目实施计划终止项目的建议Y3可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。可行性研究目的:4可行性研究的目的说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。

(GB8567-88《计算机软件产品开发文件编制指南》)可行性研究的目的说明该软件开发项目的实现在技术上、经济52.1可行性研究的任务GB8566-88《计算机软件开发规范》中指出:

可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”可行性研究的最根本任务是:对以后的行动方针提出建议。2.1可行性研究的任务GB8566-88《计算机软件6可行性研究的内容(1)技术可行性(2)经济可行性(3)操作可行性(4)社会可行性(法律可行性)(5)抉择可行性研究的内容(1)技术可行性7经济可行性度量系统解决方案的性能价格比。考虑的问题:成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡经济可行性度量系统解决方案的性能价格比。8技术可行性分析技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。技术可行性分析通常包括风险分析、资源分析和技术分析。技术可行性分析技术可行性主要根据系统的功能、性能、约束条件等9风险分析:分析在给定的约束条件下设计和实现系统的风险。采用不成熟的技术可能造成技术风险人员流动可能给项目带来风险成本和人员估算不合理造成的预算风险风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险。风险分析:分析在给定的约束条件下设计和实现系统的风险。10资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境。例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取,那么从资源角度看,可以认为具备设计和实现系统的条件。资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资11技术分析:分析当前的科学技术是否支持系统开发的各项活动。在技术分析过程中,分析员收集系统的性能、可靠性、可维护性和生产率方面的信息,分析实现系统功能、性能所需的技术、方法、算法或过程,从技术角度分析可能存在的风险,以及这些技术问题对成本的影响。技术可行性分析时通常需进行系统建模,必要时可建造原型和进行系统模拟技术分析:分析当前的科学技术是否支持系统开发的各项活动。12社会可行性(法律可行性)

开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题。社会可行性(法律可行性)开发项目是否会在社会上或政治上13法律可行性分析研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题。1990年我国颁布了《中华人民共和国著作权法》,其中将计算机软件作为著作权法的保护对象。1991年国务院颁布了《计算机软件保护条例》。这两个法律文件是法律可行性分析的主要依据。法律可行性分析研究系统开发过程中可能涉及到的合同、侵权、责任14操作可行性用户使用可能性时间进度可行性组织和文化上的可行性操作可行性用户使用可能性15方案的选择和折衷一个基于计算机的系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择。方案评估的依据是待开发系统的功能、性能、成本、开发时间、采用的技术、设备、风险以及对开发人员的要求等。由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约。如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等。因此,在必要时应进行折衷。方案的选择和折衷一个基于计算机的系统可以有多个可行的实现方案16可行性分析的结论可以立即开始进行需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行需要对开发目标进行某些修改之后才能开始进行因为某种原因(如,技术不成熟、经济上不合算等)不能进行可行性分析的结论可以立即开始进行172.2可行性研究过程1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查2.2可行性研究过程1.复查系统规模和目标182.3系统流程图系统流程图是概括地描绘物理系统的传统工具。作用:以概括的形式描述现有的和未来的系统。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。2.3系统流程图系统流程图是概括地描绘物理系统的传统工具19基本符号

----以概括的方式抽象地描绘一个实际系统所用符号基本符号

----以概括的方式抽象地描绘一个实际系统20

---具体地描绘一个物理系统所用符号系统符号---具体地描绘一个物理系统所用符号21举例----计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库举例----计算机售书系统流程图结束学生购书发票到书库22

2.4

数据流图DFD----DataFlowDiagram

是分析员和用户沟通的工具,是设计的出发点一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。数据流图从数据传递和加工的角度出发,刻画数据流从输入到输出的移动和变换过程。由于它能够清晰地反映系统必须完成的逻辑功能,所以它已经成为需求分析阶段中功能建模最常用的工具。2.4数据流图DFD----DataFlow23

数据流图四种基本符号数据加工(数据变换)数据源点或终点(外部实体)数据流数据存储文件或或或数据流图四种基本符号数据加工(数据变换)数据源点或终24图5工资计算系统的顶层(0层)数据流图返回图5工资计算系统的顶层(0层)数据流图返回25

1.数据的源点或终点数据的源点或终点用于反映数据流图与外部实体之间的联系,表示图中的输入数据来自哪里或处理结果送向何处。如图中的人事部门、后勤部门是工资系统中数据的源点,而职工和银行则是工资系统中数据的终点。1.数据的源点或终点26

2.数据流数据流是数据在系统中(包括数据处理之间、数据处理和数据存储之间以及数据处理和数据的源点或终点之间)的传送通道,数据流符号的箭头指明了数据的流动方向。如图中的出勤表、业绩表、水电扣款表、工资条及工资存款清单等均为数据流。在数据流图中,除了连接加工和数据存储的数据流以外,其他的数据流在图中都对应一个惟一的名字。2.数据流27

3.加工加工也称为数据处理,是对系统中的数据流进行的某些操作或变换。图中每个加工都要有对应的名称,最常见的名称是由一个表明具体动作的动词和一个表明处理对象的名词构成的,如计算应发工资、打印工资清单等。

4.数据存储在数据流图中用于保存数据的数据文件被称为数据存储,它可以是数据库文件或任何其他形式的数据组织。流向数据存储的数据流可理解为向文件写入数据或对文件进行查询,流出数据存储的数据流可理解为从文件中读取数据或得到查询结果。3.加工28数据流与加工之间的关系在数据流图中,可以有两个以上的数据流进入同一个加工,也可以有两个以上的数据流从同一个加工中流出,这样的多个数据流之间往往存在一定的关系。为了表示这些数据流之间的关系,需要在数据流图中给这些数据流对应的加工加上一定的标记符号。在下表中列出了加工中常见的几种关系的表示方法。(表中以从加工流入或流出两个数据流为例)。数据流与加工之间的关系29数据流图几种附加符号数据流图几种附加符号30数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采31面对复杂的系统----分层描绘首先用一张高层次的数据流图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。面对复杂的系统----分层描绘首先用一张高层次的数32数据流模型的建立方法

对于一个复杂的系统来说,可能存在着几十个甚至成百上千个加工,若要在一个数据流图中清楚地描述出整个系统加工的过程是很困难的,而采用对数据流图进行分层的方法则可以很好地解决这个问题。按照结构化分析方法中“自顶向下,逐步分解”的思想,可以先将整个系统看作是一个加工,它的输入数据和输出数据表明了系统和外部环境的接口,从而首先画出系统的顶层数据流图。数据流模型的建立方法33为了能够清楚地表明系统加工的详细过程,接着从顶层数据流图出发,逐层地对系统进行分解。每分解一次,系统中加工的数量就随之增加,每个加工的功能描述也越来越具体。重复这种分解,直至得到系统的底层数据流图。底层数据流图中的所有加工都应是不可再分解的、最简单的“原子加工”。通过分解过程中得到的这一组分层数据流图(由顶层、中间层和底层数据流图共同构成)就可以十分清晰地描述出整个系统所有加工的详细情况。为了能够清楚地表明系统加工的详细过程,接着从顶层数据流图出发34分层的数据流图分层的数据流图35下面以某单位工资管理系统为例,来介绍一下分层数据流模型的建立方法。1.建立顶层数据流图任何系统的顶层数据流图都只有一个,用于反映目标系统所要实现的功能及与外部环境的接口。顶层数据流图中只有一个代表整个系统的加工,数据的源点和终点对应着系统的外部实体,表明了系统输入数据的来源和输出数据的去向。工资管理系统的顶层数据流图如图5所示。下面以某单位工资管理系统为例,来介绍一下分层数据流模36

2.数据流图的分层细化首先按照系统的功能,对顶层数据流图进行分解,生成第一层数据流图。如例子中的工资计算系统可划分为计算工资、打印工资清单和工资转存三个加工。其中,计算工资完成单位职工工资计算,生成工资清单的功能;打印工资清单完成工资条的打印功能;工资转存完成生成职工工资存款清单并将其发送到银行的功能。对划分得到的加工应进行编号,此外,在标出数据流和划分加工的同时,还要在图中画出涉及的数据存储。2.数据流图的分层细化37图6工资计算系统第一层数据流图图6工资计算系统第一层数据流图38对第一层数据流图中的加工继续分解,则可得到第二层数据流图,如图7所示。若数据流图中的加工还可继续细化,则重复以上分解过程,直到获得系统的底层数据流图。工资计算系统的第三层数据流图如图8所示。对第一层数据流图中的加工继续分解,则可得到第二层数据39图7工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图图7工资计算系统的第二层数据流图40图8工资计算系统的第三层数据流图图8工资计算系统的第三层数据流图41建立数据流模型的原则建立数据流模型要遵循以下的原则:(1)每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。(2)数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。(3)对数据流图中某个加工进行细化生成的下层数据流图,称为其上层图的子图。应保证分层数据流图中任意对应的父图和子图的输入/输出数据保持一致。

建立数据流模型的原则42(4)在数据流图中,应按照层次给每个加工编号,用于表明该加工所处的层次及上、下层的父图与子图的关系。编号的规则为:顶层加工不用编号;第二层加工的编号为1,2,…,n;第三层加工的编号为1.1,1.2,…,2.1,…,n.1,n.2,…等,依次类推。如编号1.2表明该加工处于第三层数据流图中,序号为2,该图是对上层数据流图中编号为1的加工进行细化得到的子图。(5)在父图中不要出现子图中涉及的局部数据存储文件。通常除底层数据流图中需标明所有数据存储外,为了保持画面的整洁,各中间层数据流图只需显示处于加工之间的接口文件即可。(4)在数据流图中,应按照层次给每个加工编号,用于43(6)数据流图只能由四种基本符号组成,是实际业务流程的客观映象,用于说明系统应该“做什么”,而不需要指明系统“如何做”。(7)数据流图的分解速度应保持适中。通常一个加工每次可分解为2~4个子加工,最多不要超过七个,因为过快的分解会增加用户对系统模型理解的难度。

(6)数据流图只能由四种基本符号组成,是实际业务流程44.便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;

---用一组图代替一张总图,方便用户及

软件开发人员阅读。分层DFD图的优点.便于实现.便于使用---采用逐步细化的扩展方法,45举例1、电梯控制系统(见书P71-74)2、学生购买教材系统举例1、电梯控制系统(见书P71-74)46画数据流图的步骤1、先找出系统的数据源点与终点。(它们是外部实体,由它们来确定系统与外界的接口)

2、是画顶层图。通常把整个系统当作一个大的加工,并标明系统的输入与输出,以及数据的源点与终点。系统从学生接受购书单,经处理后把领书单返回给学生,使学生可凭领书单到书库领书。对脱销的教材,系统则用缺书单的形式通知给书库;新书进库后也由书库将进书通知返回给系统。

3、画分层DFD图:把系统分解为销售和采购两大加工。如图所示,显然,外部项学生应与销售子系统联系,保管员应与采购子系统联系。且两个子系统之间也存在两项数据联系:其一是缺书登记表,由销售子系统把脱销的教材传给采购子系统;其二是进书通知,直接由采购子系统将教材入库信息通知销售子系统。同时,对于销售子系统来说,它还需要对教材存量表进行操作,即对售出的教材要在原存量中减去售出的数量,而对于新购的教材还要写到教材存量表中,所以该文件执行的读写操作,应用双箭头表示。学生教材购销系统购书单领书单缺书单进书通知保管员第1

层外部实体外部实体进书通知1销售购书单领书单学生缺书单进书通知2采购保管员第2

层教材存量表F1缺书登记表F2画数据流图的步骤1、先找出系统的数据源点与终点。47 继续分解,就可以获得第三层的数据流图。我们可以从第1层的销售子系统扩展而成: 继续分解,就可以获得第三层的数据流图。我们可以从第1层的销48教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2

层补售书单第3层教材存量表F1缺书登记表F2

F1书号单价数量各班用书表F3售书登记表F4审查有效性时,首先要核对购书单上的内容是否与学生用书表F3相符,还要通过售书登记F4检查学生已否购买过这些教材。若发现购书单中有学生不用或买重了的教材,便发出无效书单。只有将通过了审查的教材保留在有效构书单中。开发票加工符号,按购书单的内容查对教材存量表(F1),把可供应的教材写入发票,在F4中登记后开领书单并发给学生。对数量不足或全缺的教材写入暂缺书单并登记到缺书登记表(F2)中,等待接到进书通知后再补售给学生。补售的手续及数据流图和第一次购书相同。请大家注意,在上一层DFD中,采购是系统内部的一个加工符号,但本图却是处于销售子系统之外的一个外部实体。从图中可以看出,该销售子系统将被分解为5个子加工,编号从1.1----1.5,涉及到4个数据文件,分别用F1—F4来表示。外部项教材销售子系统无效书单购书单1.31.21.11.41491销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层第3

层缺书单2.3修改教材库存和待购量销售进书通知进书通知保管员教材存量表F1待购教材表F5教材一览表F6由销售子系统建立起来的缺书登记表,首先按书号汇总后登入待购教材表,然后再按出版社分别统计制成缺书单并送给书库保管员作为采购教材的依据。另外,在汇总缺书要再次核查教材存量表,而且,分出版社统计时还要参阅教材一览表,从该文件中可以知道这些缺书是何处出版的。新书入库后,要及时修改教材存量表和待购教材表中的有关教材数量,同时把进书信息通知销售子系统,使销售人员能通知缺书的学生补售教材。2.2按出版社统计缺书2.1按书号汇总缺书缺书登记表F2采购子系统

1购书单领书单缺书单进书通知2进书通知缺书登记表教材存量表学50

从图中可以看出,该采购子系统将被分解为3个子加工,编号从2.1----2.3,涉及到4个数据文件,分别用F1,F2和F5,F6。以上三层、4张的DFD图,一起组成了教材购销系统的分层DFD图。从分析中大家可以得知,愈到下层,加工愈细。第三层就有8个加工。大都是足够简单的---基本加工,可以不用再进行分解了。从图中可以看出,该采购子系统将被分解为3个子加工51

1)

为数据流(或数据存储)命名(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。画分层DFD的指导原则1.注意数据流图中成分的命名1)为数据流(或数据存储)命名画分层DFD的指导原则522)

为处理命名(1)通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。(4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。画分层DFD的指导原则1.注意数据流图中成分的命名2)为处理命名画分层DFD的指导原则53画分层DFD的指导原则2.注意父图和子图的平衡:所谓的平衡,就是指父图和子图的输入和输出数据应分别保持一致。

发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图画分层DFD的指导原则发票1.3领书单(a)父图1.54

画分层DFD的指导原则3.区分局部文件和局部外部项1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统

第2层第3

层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2局部外部项局部文件画分层DFD的指导原则1购书单领书单缺书单进书通知2进55画分层DFD的指导原则

4.掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。5.遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推。画分层DFD的指导原则4.掌握分解的速度一562.5数据字典

----DD(DataDictionary)

数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。数据字典的任务是:对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。2.5数据字典

--57数据字典的内容一般说来,数据字典应该由下列4类元素的定义组成:(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理数据字典的内容一般说来,数据字典应该由58数据流名:说明:简要介绍作用,即它产生的原因和结果。数据流来源:即该数据流来自何方。数据流去向:去向何处。数据流组成:数据结构。每个数据量流通量:数据量、流通量。(1)数据流词条的描述

数据流名:发票说明:用作学生已付书款的依据数据流来源:来自加工“审查并开发票”数据流去向:流向加工“开领书单”。数据流组成:学号+姓名+书号+单价/总价+书费合计审查并开发票发票购书单

数据流名:(1)数据流词条的描述数据流名59数据元素名:类型:数字(离散值、连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构

(2)

数据元素词条的描述

年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4金额=“00000000.01”..“999999999.99”……数据元素名:(2)数据元素词条的描述年60(3)数据文件词条的描述

数据文件名:简述:存放的是什么数据。输入数据:输出数据:数据文件组成:数据结构。存储方式:顺序,直接,关键码。存取频率:

…审查并开发票学生发票购书单各班学生用书表教材存量表(3)数据文件词条的描述数据文件名:审查61

加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:取值范围:相关的数据元素及数据结构

…(4)

加工逻辑词条的描述

1.3审查并开发票学生发票购书单各班学生用书表教材存量表加工名:(4)加工逻辑词条的描述1.362

名称:外部实体名简要描述:什么外部实体有关数据流:数目:(5)外部实体词条描述

1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员名称:外部实体名(5)外部实体词条描述63数据字典定义符号符号含义例子

=被定义为+与[]x=a+b,则表示x

由a和

b

组成x=[a,b],则表示x

由a或由

b

组成{}或重复x={a},则表示x

由0个或多个a组成()可选

表示在两个*

之间的内容为词条的注释m{}n重复x=3{a}8,则表示x中至少出现3次a,最多出现8次*…*注释符

x=(a),则表示a在x中出现,也可不出现数据字典定义符号符号含义例子64例:存折格式例:存折格式65日期(年月日)摘要支出存入余额操作复核户名:所号:帐号:开户日:性质:印密:存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}20户名=2{字母}24所号=“001”..“999”帐号=“00000001”..“99999999”开户日=年+月+日性质=“1”..“6”注:“1”表示普通户,…“6”表示工资户等印密=“0”注:印密在存折上不显示存取行=日期+(摘要)+支出+存入+余额+操作+复核日期=年+月+日年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4支出=金额金额=“00000000.01”..“999999999.99”……日期(年月日)摘要支出存入余额操作复核户名:所号:帐号:开66数据字典的建立1.建立数据字典的方法(1)手工建立。分别将数据字典中每一个条目按照规定的格式写在卡片上,由专人负责管理和维护。为了便于查找,通常可将卡片分类,按条目的名称或编号进行排序。(2)自动建立。利用现有的数据字典建立程序,通过按照指定格式输入各类条目的内容,由计算机自动建立相应的数据字典。且通常这类工具软件还能够对建立好的数据字典进行完整性、一致性检查,以及进行日常的管理和维护工作。如由美国密执安大学开发的PSL/PSA系统就是这类软件的杰出代表。数据字典的建立672.建立数据字典的原则(1)所有定义必须严密、精确,不能存在二义性。(2)书写格式应简洁且严格。(3)应可方便地实现对所需条目的按名查阅。(4)应便于修改和更新。2.建立数据字典的原则68注:加工说明

----(ProcessSpecification)

加工说明是:对DFD中每个加工给予说明。它是从系统功能的角度对DFD作出了注解,与DD一样是DFD必不可缺少的辅助资料。PS注:加工说明----(ProcessSpecific69加工说明组成输入数据加工逻辑输出数据加工说明描述工具结构化语言判定表判定树

描述把输入数据流变换为输出数据流的加工过程,是加工说明的主体。加工说明组成输入加工输出加工说明描述工具结构化判定判定70对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。加工逻辑说明对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。加工71自然语言+结构化形式(1)结构化语言选择结构如果<条件><策略>

If<condition><policy>如果<条件>

则<策略1>

否则<策略2>情况1<条件><策略1>…

…情况n<条件><策略n>If<condition>

then<policy1>Otherwise<policy2>case1<condition><policy1>…

…casen<condition><policyn>循环结构对

…,<策略>重复以下<策略>直至<条件>Foreach…,<policy>Repeatthefollowing:<policy>Until<condition>自然语言+结构化形式(1)结构化语言选如果<条件>If72商店业务处理系统中“检查发货单”if发货单金额超过$500thenif欠款超过了60天then

在偿还欠款前不予批准

else(欠款未超期)发批准书,发货单

else(发货单金额未超过$500)

if欠款超过60天then

发批准书,发货单及赊欠报告

else(欠款未超期)发批准书,发货单

商店业务处理系统中“检查发货单”if发货单金额超过$50073(2)判定表如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适(2)判定表如果数据流图的加工需要依赖于多个逻辑条件的取值,74以“检查发货单”为例以“检查发货单”为例75(3)判定树判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。检查发货单金额>$500金额$500欠款>60天不发出批准书欠款60天发出批准书、发货单欠款>60天发出批准书、发货单及赊欠报告欠款60天发出批准书、发货单(3)判定树判定树也是用来表达加工逻辑的一种工具。有时侯它比762.6成本/效益分析

成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。2.6成本/效益分析成本/效益分析的目的:77

2.6.1

成本估计----人力成本估计软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。估算技术:

1.代码行技术

2.任务分解技术3.自动估计成本技术2.6.1成本估计----人力成本估计78代码行技术根据经验和历史数据估计实现一个功能需要的源程序行数,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。代码行技术是比较简单的定量估算方法。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。具体计算方法见10.2.1

章节代码行技术根据经验和历史数据估计实现一个功能需要的源79任务分解技术首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。具体计算方法见10.2.1章节

任务分解技术首先把软件开发工程分解为若干个相对独立的80自动估计成本技术

采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。自动估计成本技术采用自动估计成本的软件工具可以812.6.2成本/效益分析的方法成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益,然后从经济角度判断这个系统是否值得投资。运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等)和维护费用。系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。2.6.2成本/效益分析的方法成本/效益分析的第一步是822.6.2成本/效益分析的方法注意:总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。2.6.2成本/效益分析的方法注意:83成本/效益分析使用的几个概念货币的时间价值投资回收期纯收入投资回收率成本/效益分析使用的几个概念货币的时间价值84效益经济效益包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。在进行成本效益分析时通常只统计五年内的经济效益。社会效益指使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等),通常社会效益只能定性地估计。经济效益通常可用货币的时间价值、投资回收期和纯收入来度量。效益85货币的时间价值设:当前金额为P,年利率为i,n年后的金额为F,则计算时,累计经济效益应折合成当前金额例如,一个基于计算机的系统使用后,每年产生的经济效益为10万,如果年利率为5%,那么,五年内该系统的累计经济效益是43.2948万,而不是50万。货币的时间价值86投资回收期:累计的经济效益正好等于投资数(成本)所需的时间。纯收入:累计经济效益–投资数当纯收入大于零时,该工程值得投资开发当纯收入小于零时,该工程不值得投资(除非它有明显的社会效益)当纯收入等于零时,通常也不值得投资显然,纯收入越大越好。投资回收期:累计的经济效益正好等于投资数(成本)所需的时间。87举例

12345

年6040200成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期---------成本及效益分析图举例123488例:假设购置一套应用软件投资20万元,预计可使用5年,每年直接经济效益9.6万元,年利率为5%,试计算投入/产出比。解:考虑到货币的时间价值,5年的总体收入应当逐年按照上式计算,并非为恒定的9.6万元。1~5年中,每年的收入折算到当前的数据如表所示。软件工程-可行性分析89表货币的时间价值年份将来收益/万元(1+i)n当前收益累计的当前收益19.61.059.14299.142929.61.10258.707517.851339.61.15768.292826.143249.61.21557.897934.041159.61.27637.521941.5630表货币的时间价值年份将来收益/万元(1+i)n当前收益累90根据上表所列数据,本软件投入/产出比为41.5630/20=2.0785(2)投资回收期:根据上例,两年后收入17.8513万元,尚欠2.15万元没有收回成本,在第三年还需要:2.15/26.1432=0.259(年),故投资回收期为2.259年。(3)纯收入:根据上面的计算结果,5年纯收入为41.5630-20=21.5630万元这相当于比较一个待投入的软件项目可能获取的利润和将20万元存入银行所取得的效益。只有当纯收入大于0时,开发软件才有真正的效益。根据上表所列数据,本软件投入/产出比为91

可行性研究报告的编写

GB8567-88《计算机软件产品开发文件编制指南》可行性研究报告的编写

GB8567-88《计算机92可行性研究报告的编写1引言

1.1编写目的

1.2背景

1.3定义

1.4参考资料2可行性研究的前提

2.1要求

2.2目标

2.3条件、假定和限制

2.4进行可行性研究的方法

2.5评价尺度可行性研究报告的编写1引言2可行性研究的前提93可行性研究报告的编写3对现有系统的分析

3.1数据流程和处理流程

3.2工作负荷

3.3费用开支

3.4人员

3.5设备

3.6局限性4所建议的系统

4.1对所建议系统的说明

4.2数据流程和处理流程

4.3改进之处

4.4影响

4.5局限性

4.6技术条件方面的可行性可行性研究报告的编写3对现有系统的分析4所建议的系统94可行性研究报告的编写5可选择的其它系统方案

5.1可选择的其它系统15.2可选择的其它系统2

......6投资及收益分析

6.1支出

6.2收益

6.3收益/投资比

6.4投资回收周期

6.5敏感性分析7社会条件方面的可行性

7.1法律方面的可行性

7.2使用方面的可行性可行性研究报告的编写5可选择的其它系统方案6投资及收益分95第二章可行性研究2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析第二章可行性研究2.1可行性研究的任务96可行性研究开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。可行性研究开发一个基于计算机的系统通常都受到资源(人力、财力97开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN问题的定义与可性行研究Who

为谁设计,用户是谁?What

要解决哪些问题?Why

为什么要解决这些问题

有用的软件

3W开始问题定义可性行研究可行否?项目实施计划终止项目的建议Y98可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。可行性研究目的:99可行性研究的目的说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。

(GB8567-88《计算机软件产品开发文件编制指南》)可行性研究的目的说明该软件开发项目的实现在技术上、经济1002.1可行性研究的任务GB8566-88《计算机软件开发规范》中指出:

可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”可行性研究的最根本任务是:对以后的行动方针提出建议。2.1可行性研究的任务GB8566-88《计算机软件101可行性研究的内容(1)技术可行性(2)经济可行性(3)操作可行性(4)社会可行性(法律可行性)(5)抉择可行性研究的内容(1)技术可行性102经济可行性度量系统解决方案的性能价格比。考虑的问题:成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡经济可行性度量系统解决方案的性能价格比。103技术可行性分析技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。技术可行性分析通常包括风险分析、资源分析和技术分析。技术可行性分析技术可行性主要根据系统的功能、性能、约束条件等104风险分析:分析在给定的约束条件下设计和实现系统的风险。采用不成熟的技术可能造成技术风险人员流动可能给项目带来风险成本和人员估算不合理造成的预算风险风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险。风险分析:分析在给定的约束条件下设计和实现系统的风险。105资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境。例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取,那么从资源角度看,可以认为具备设计和实现系统的条件。资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资106技术分析:分析当前的科学技术是否支持系统开发的各项活动。在技术分析过程中,分析员收集系统的性能、可靠性、可维护性和生产率方面的信息,分析实现系统功能、性能所需的技术、方法、算法或过程,从技术角度分析可能存在的风险,以及这些技术问题对成本的影响。技术可行性分析时通常需进行系统建模,必要时可建造原型和进行系统模拟技术分析:分析当前的科学技术是否支持系统开发的各项活动。107社会可行性(法律可行性)

开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题。社会可行性(法律可行性)开发项目是否会在社会上或政治上108法律可行性分析研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题。1990年我国颁布了《中华人民共和国著作权法》,其中将计算机软件作为著作权法的保护对象。1991年国务院颁布了《计算机软件保护条例》。这两个法律文件是法律可行性分析的主要依据。法律可行性分析研究系统开发过程中可能涉及到的合同、侵权、责任109操作可行性用户使用可能性时间进度可行性组织和文化上的可行性操作可行性用户使用可能性110方案的选择和折衷一个基于计算机的系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择。方案评估的依据是待开发系统的功能、性能、成本、开发时间、采用的技术、设备、风险以及对开发人员的要求等。由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约。如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等。因此,在必要时应进行折衷。方案的选择和折衷一个基于计算机的系统可以有多个可行的实现方案111可行性分析的结论可以立即开始进行需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行需要对开发目标进行某些修改之后才能开始进行因为某种原因(如,技术不成熟、经济上不合算等)不能进行可行性分析的结论可以立即开始进行1122.2可行性研究过程1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查2.2可行性研究过程1.复查系统规模和目标1132.3系统流程图系统流程图是概括地描绘物理系统的传统工具。作用:以概括的形式描述现有的和未来的系统。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。2.3系统流程图系统流程图是概括地描绘物理系统的传统工具114基本符号

----以概括的方式抽象地描绘一个实际系统所用符号基本符号

----以概括的方式抽象地描绘一个实际系统115

---具体地描绘一个物理系统所用符号系统符号---具体地描绘一个物理系统所用符号116举例----计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库举例----计算机售书系统流程图结束学生购书发票到书库117

2.4

数据流图DFD----DataFlowDiagram

是分析员和用户沟通的工具,是设计的出发点一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。数据流图从数据传递和加工的角度出发,刻画数据流从输入到输出的移动和变换过程。由于它能够清晰地反映系统必须完成的逻辑功能,所以它已经成为需求分析阶段中功能建模最常用的工具。2.4数据流图DFD----DataFlow118

数据流图四种基本符号数据加工(数据变换)数据源点或终点(外部实体)数据流数据存储文件或或或数据流图四种基本符号数据加工(数据变换)数据源点或终119图5工资计算系统的顶层(0层)数据流图返回图5工资计算系统的顶层(0层)数据流图返回120

1.数据的源点或终点数据的源点或终点用于反映数据流图与外部实体之间的联系,表示图中的输入数据来自哪里或处理结果送向何处。如图中的人事部门、后勤部门是工资系统中数据的源点,而职工和银行则是工资系统中数据的终点。1.数据的源点或终点121

2.数据流数据流是数据在系统中(包括数据处理之间、数据处理和数据存储之间以及数据处理和数据的源点或终点之间)的传送通道,数据流符号的箭头指明了数据的流动方向。如图中的出勤表、业绩表、水电扣款表、工资条及工资存款清单等均为数据流。在数据流图中,除了连接加工和数据存储的数据流以外,其他的数据流在图中都对应一个惟一的名字。2.数据流122

3.加工加工也称为数据处理,是对系统中的数据流进行的某些操作或变换。图中每个加工都要有对应的名称,最常见的名称是由一个表明具体动作的动词和一个表明处理对象的名词构成的,如计算应发工资、打印工资清单等。

4.数据存储在数据流图中用于保存数据的数据文件被称为数据存储,它可以是数据库文件或任何其他形式的数据组织。流向数据存储的数据流可理解为向文件写入数据或对文件进行查询,流出数据存储的数据流可理解为从文件中读取数据或得到查询结果。3.加工123数据流与加工之间的关系在数据流图中,可以有两个以上的数据流进入同一个加工,也可以有两个以上的数据流从同一个加工中流出,这样的多个数据流之间往往存在一定的关系。为了表示这些数据流之间的关系,需要在数据流图中给这些数据流对应的加工加上一定的标记符号。在下表中列出了加工中常见的几种关系的表示方法。(表中以从加工流入或流出两个数据流为例)。数据流与加工之间的关系124数据流图几种附加符号数据流图几种附加符号125数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采126面对复杂的系统----分层描绘首先用一张高层次的数据流图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。面对复杂的系统----分层描绘首先用一张高层次的数127数据流模型的建立方法

对于一个复杂的系统来说,可能存在着几十个甚至成百上千个加工,若要在一个数据流图中清楚地描述出整个系统加工的过程是很困难的,而采用对数据流图进行分层的方法则可以很好地解决这个问题。按照结构化分析方法中“自顶向下,逐步分解”的思想,可以先将整个系统看作是一个加工,它的输入数据和输出数据表明了系统和外部环境的接口,从而首先画出系统的顶层数据流图。数据流模型的建立方法128为了能够清楚地表明系统加工的详细过程,接着从顶层数据流图出发,逐层地对系统进行分解。每分解一次,系统中加工的数量就随之增加,每个加工的功能描述也越来越具体。重复这种分解,直至得到系统的底层数据流图。底层数据流图中的所有加工都应是不可再分解的、最简单的“原子加工”。通过分解过程中得到的这一组分层数据流图(由顶层、中间层和底层数据流图共同构成)就可以十分清晰地描述出整个系统所有加工的详细情况。为了能够清楚地表明系统加工的详细过程,接着从顶层数据流图出发129分层的数据流图分层的数据流图130下面以某单位工资管理系统为例,来介绍一下分层数据流模型的建立方法。1.建立顶层数据流图任何系统的顶层数据流图都只有一个,用于反映目标系统所要实现的功能及与外部环境的接口。顶层数据流图中只有一个代表整个系统的加工,数据的源点和终点对应着系统的外部实体,表明了系统输入数据的来源和输出数据的去向。工资管理系统的顶层数据流图如图5所示。下面以某单位工资管理系统为例,来介绍一下分层数据流模131

2.数据流图的分层细化首先按照系统的功能,对顶层数据流图进行分解,生成第一层数据流图。如例子中的工资计算系统可划分为计算工资、打印工资清单和工资转存三个加工。其中,计算工资完成单位职工工资计算,生成工资清单的功能;打印工资清单完成工资条的打印功能;工资转存完成生成职工工资存款清单并将其发送到银行的功能。对划分得到的加工应进行编号,此外,在标出数据流和划分加工的同时,还要在图中画出涉及的数据存储。2.数据流图的分层细化132图6工资计算系统第一层数据流图图6工资计算系统第一层数据流图133对第一层数据流图中的加工继续分解,则可得到第二层数据流图,如图7所示。若数据流图中的加工还可继续细化,则重复以上分解过程,直到获得系统的底层数据流图。工资计算系统的第三层数据流图如图8所示。对第一层数据流图中的加工继续分解,则可得到第二层数据134图7工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图图7工资计算系统的第二层数据流图135图8工资计算系统的第三层数据流图图8工资计算系统的第三层数据流图136建立数据流模型的原则建立数据流模型要遵循以下的原则:(1)每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。(2)数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。(3)对数据流图中某个加工进行细化生成的下层数据流图,称为其上层图的子图。应保证分层数据流图中任意对应的父图和子图的输入/输出数据保持一致。

建立数据流模型的原则137(4)在数据流图中,应按照层次给每个加工编号,用于表明该加工所处的层次及上、下层的父图与子图的关系。编号的规则为:顶层加工不用编号;第二层加工的编号为1,2,…,n;第三层加工的编号为1.1,1.2,…,2.1,…,n.1,n.2,…等,依次类推。如编号1.2表明该加工处于第三层数据流图中,序号为2,该图是对上层数据流图中编号为1的加工进行细化得到的子图。(5)在父图中不要出现子图中涉及的局部数据存储文件。通常除底层数据流图中需标明所有数据存储外,为了保持画面的整洁,各中间层数据流图只需显示处于加工之间的接口文件即可。(4)在数据流图中,应按照层次给每个加工编号,用于138(6)数据流图只能由四种基本符号组成,是实际业务流程的客观映象,用于说明系统应该“做什么”,而不需要指明系统“如何做”。(7)数据流图的分解速度应保持适中。通常一个加工每次可分解为2~4个子加工,最多不要超过七个,因为过快的分解会增加用户对系统模型理解的难度。

(6)数据流图只能由四种基本符号组成,是实际业务流程139.便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;

---用一组图代替一张总图,方便用户及

软件开发人员阅读。分层DFD图的优点.便于实现.便于使用---采用逐步细化的扩展方法,140举例1、电梯控制系统(见书P71-74)2、学生购买教材系统举例1、电梯控制系统(见书P71-74)141画数据流图的步骤1、先找出系统的数据源点与终点。(它们是外部实体,由它们来确定系统与外界的接口)

2、是画顶层图。通常把整个系统当作一个大的加工,并标明系统的输入与输出,以及数据的源点与终点。系统从学生接受购书单,经处理后把领书单返回给学生,使学生可凭领书单到书库领书。对脱销的教材,系统则用缺书单的形式通知给书库;新书进库后也由书库将进书通知返回给系统。

3、画分层DFD图:把系统分解为销售和采购两大加工。如图所示,显然,外部项学生应与销售子系统联系,保管员应与采购子系统联系。且两个子系统之间也存在两项数据联系:其一是缺书登记表,由销售子系统把脱销的教材传给采购子系统;其二是进书通知,直接由采购子系统将教材入库信息通知销售子系统。同时,对于销售子系统来说,它还需要对教材存量表进行操作,即对售出的教材要在原存量中减去售出的数量,而对于新购的教材还要写到教材存量表中,所以该文件执行的读写操作,应用双箭头表示。学生教材购销系统购书单领书单缺书单进书通知保管员第1

层外部实体外部实体进书通知1销售购书单领书单学生缺书单进书通知2采购保管员第2

层教材存量表F1缺书登记表F2画数据流图的步骤1、先找出系统的数据源点与终点。142 继续分解,就可以获得第三层的数据流图。我们可以从第1层的销售子系统扩展而成: 继续分解,就可以获得第三层的数据流图。我们可以从第1层的销143教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2

层补售书单第3层教材存量表F1缺书登记表F2

F1书号单价数量各班用书表F3售书登记表F4审查有效性时,首先要核对购书单上的内容是否与学生用书表F3相符,还要通过售书登记F4检查学生已否购买过这些教材。若发现购书单中有学生不用或买重了的教材,便发出无效书单。只有将通过了审查的教材保留在有效构书单中。开发票加工符号,按购书单的内容查对教材存量表(F1),把可供应的教材写入发票,在F4中登记后开领书单并发给学生。对数量不足或全缺的教材写入暂缺书单并登记到缺书登记表(F2)中,等待接到进书通知后再补售给学生。补售的手续及数据流图和第一次购书相同。请大家注意,在上一层DFD中,采购是系统内部的一个加工符号,但本图却是处于销售子系统之外的一个外部实体。从图中可以看出,该销售子系统将被分解为5个子加工,编号从1.1----1.5,涉及到4个数据文件,分别用F1—F4来表示。外部项教材销售子系统无效书单购书单1.31.21.11.411441销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层第3

层缺书单2.3修改教材库存和待购量销售进书通知进书通知保管员教材存量表F1待购教材表F5教材一览表F6由销售子系统建立起来的缺书登记表,首先按书号汇总后登入待购教材表,然后再按出版社分别统计制成缺书单并送给书库保管员作为采购教材的依据。另外,在汇总缺书要再次核查教材存量表,而且,分出版社统计时还要参阅教材一览表,从该文件中可以知道这些缺书是何处出版的。新书入库后,要及时修改教材存量表和待购教材表中的有关教材数量,同时把进书信息通知销售子系统,使销售人员能通知缺书的学生补售教材。2.2按出版社统计缺书2.1按书号汇总缺书缺书登记表F2采购子系统

1购书单领书单缺书单进书通知2进书通知缺书登记表教材存量表学145

从图中可以看出,该采购子系统将被分解为3个子加工,编号从2.1----2.3,涉及到4个数据文件,分别用F1,F2和F5,F6。以上三层、4张的DFD图,一起组成了教材购销系统的分层DFD图。从分析中大家可以得知,愈到下层,加工愈细。第三层就有8个加工。大都是足够简单的---基本加工,可以不用再进行分解了。从图中可以看出,该采购子系统将被分解为3个子加工146

1)

为数据流(或数据存储)命名(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。画分层DFD的指导原则1.注意数据流图中成分的命名1)为数据流(或数据存储)命名画分层DFD的指导原则1472)

为处理命名(1)通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。(4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。画分层DFD的指导原则1.注意数据流图中成分的命名2)为处理命名画分层DFD的指导原则148画分层DFD的指导原则2.注意父图和子图的平衡:所谓的平衡,就是指父图和子图的输入和输出数据应分别保持一致。

发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图画分层DFD的指导原则发票1.3领书单(a)父图1.149

画分层DFD的指导原则3.区分局部文件和局部外部项1销售购书单领书单缺书单进书通知2采购进书通知

温馨提示

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

评论

0/150

提交评论