软件工程导论- 课件_第1页
软件工程导论- 课件_第2页
软件工程导论- 课件_第3页
软件工程导论- 课件_第4页
软件工程导论- 课件_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

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

文档简介

软件工程导论

SoftwareEngineering主讲:吕晓华E-mail:bowen995@1 软件工程导论

SoftwareEngineering主讲Chap02可行性研究可行性研究的任务可行性研究过程系统流程图数据流图数据字典(内容、方法、用途、实现)成本/效益分析(成本估计、分析方法)可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究的目的不是解决问题,而是确定问题是否值得去解。

2Chap02可行性研究可行性研究的任务可行性研究的目的就2.1可行性研究的任务可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程:分析和澄清问题定义导出系统的逻辑模型-探索系统实现方案:

技术可行性:现有的技术经济可行性:开发成本操作可行性:用户操作实现进度可行性研究的成本:预期的工程总成本的5%~10%32.1可行性研究的任务可行性研究实质上是要进行一次大大压缩2.2可行性研究的步骤复查系统规模和目标研究目前正在使用的系统导出新系统的高层逻辑模型重新定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查42.2可行性研究的步骤复查系统规模和目标4复查系统规模和目标对问题定义阶段书写的关于规模和目标的报告书进一步复查确认。改正报告书中的叙述模糊、不正确的地方。这个步骤的工作,实质上是为了确保分析员正在解决的问题确实是要求他解决的问题。进一步复查确认“规模和目标报告书”5复查系统规模和目标对问题定义阶段书写的关于规模和目标的报告书研究目前正在使用的系统正在使用的系统的基本功能以及某些缺点分析现有系统的文档资料和使用手册,实地考察现有系统描绘现有系统的高层系统流程图并确认记录现有系统的接口6研究目前正在使用的系统正在使用的系统的基本功能以及某些缺点6导出新系统的高层逻辑模型设计过程通常总是从现有的物理系统出发,再参考现有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统。使用数据流图,描绘数据在系统中流动和处理的情况,从而概括地表达出对新系统的设想。通常为了把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据。数据流图和数据字典共同定义了新系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。7导出新系统的高层逻辑模型设计过程通常总是从现有的物理系统出发重新定义问题分析员应该和用户一起再次复查问题定义、工程规模和目标,这次复查应该把数据流图和数据字典作为讨论的基础。可行性研究的前四个步骤实质上构成一个循环。

定义问题分析问题导出一个试探性的解重新定义问题符合系统目标?YN8重新定义问题分析员应该和用户一起再次复查问题定义、工程规模和导出和评价供选择的解法分析员应该从他建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。从技术角度出发考虑解决问题的不同方案。例如,2.4节中将举例说明在数据流图上划分不同的自动化边界根据技术可行性的考虑初步排除一些不现实的系统。例如,如果要求系统的响应时间不超过几秒钟,显然应该排除任何批处理方案。考虑操作方面的可行性。分析员应该根据使用部门处理事务的原则和习惯检查技术上可行的那些方案,去掉其中从操作方式或操作过程的角度看用户不能接受的方案。考虑经济方面的可行性。分析员应该估计余下的每个可能的系统的开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。在这些估计数字的基础上,对每个可能的系统进行成本/效益分析。(参看2.6节)制定实现进度表。通常只需要估计生命周期每个阶段的工作量。9导出和评价供选择的解法分析员应该从他建议的系统逻辑模型出发,推荐行动方针做出一个关键性的决定:是否继续进行这项开发工程。如果分析员认为值得继续进行这项开发工程,那么他应该选择一种最好的解法,并且说明选择这个解决方案的理由。10推荐行动方针做出一个关键性的决定:是否继续进行这项开发工程。草拟开发计划为推荐的系统草拟一份开发计划:工程进度表估计对各种开发人员和各种资源的需要情况。估计系统生命周期每个阶段的成本。最后应该给出下一个阶段(需求分析)的详细进度表和成本估计。11草拟开发计划为推荐的系统草拟一份开发计划:11书写文档提交审查写成清晰的文档,请用户和使用部门的负责人仔细审查。12书写文档提交审查写成清晰的文档,请用户和使用部门的负责人仔细2.3系统流程图系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,人工过程等等)。系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程。尽管系统流程图使用的某些符号和程序流程图中用的符号相同,但是它却是物理数据流程图而不是程序流程图。2.3.1符号132.3系统流程图系统流程图是描绘物理系统的传统工具。2.基本符号

一个符号表示系统中的一个部件。

符号名

称说

明处理能改变数据值或数据位置的加工或部件,例如,程序、处理机、人工加工等都是处理。输入/输出表示输入或输出(或既输入又输出),是一个广义的不指明具体设备的符号。连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上。换页连接指出转到另一页图上或由另一页图转来。

数据流用来连接其他符号,指明数据流动方向。14基本符号一个符号表示系统中的一个部件。符号名称说系统符号

15系统符号152.3.2例子某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。习惯画法是使信息在图中从顶向下,从左向右流动。系统流程图162.3.2例子某装配厂有一座存放零件的仓库,仓库中现有的各2.3.3分层首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。提示:下一节--2.4数据流图172.3.3分层首先用一张高层次的系统流程图描绘系统总体概貌2.4数据流图-1数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。182.4数据流图-1数据流图描绘系统的逻辑模型,图中没有任2.4数据流图-2因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。192.4数据流图-2因为数据流图是逻辑系统的图形表示,即使四种基本符号表示数据的源点或终点。表示变换数据的处理。表示数据存储(静止数据)。表示数据流,即特定数据的流动方向(流动数据)。20四种基本符号表示数据的源点或终点。20三个附加符号*:表示数据之间是“与”关系。+:表示数据之间是“或”关系。:表示数据之间是“互斥”关系(只能从中选一个)。21三个附加符号*:表示数据之间是“与”关系。21说明数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。22说明数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是说明有时数据的源点和终点相同。如果只用一个符号代表数据的源点和终点,则至少有两个箭头和这个符号相连(一个进一个出,)可能其中一条箭头相当长,这将降低数据流图的清晰度,如果代表同一个事物的同样符号在图中出现在n个地方,则在这个符号的一个角上画n-1条短斜线做标记。23说明有时数据的源点和终点相同。如果只用一个符号代表数据的源点说明数据流与程序流程图中用箭头表示的控制流有本质不同,千万不要混淆。熟悉程序流程图的初学者在画数据流图时,往往试图在数据流图中表现分支条件或循环,殊不知这样做将造成混乱,画不出正确的数据流图。24说明数据流与程序流程图中用箭头表示的控制流有本质不同,千万不说明在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。25说明在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现例子问题定义:一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某个零件的库存数量少于库存量临界值时就应该再次定货。26例子问题定义:一家工厂的采购部每天需要一张定货报表,报表按零提取数据流图的四种成分-1

“通过放在仓库中的CRT终端把事务报告给定货系统”——仓库管理员是数据源点。“采购部每天需要一张定货报表”——采购员是数据终点。“采购部需要报表”——用于产生报表的处理。“事务的后果是改变零件库存量”——对事务进行的加工的处理。27提取数据流图的四种成分-1“通过放在仓库中的CRT终端把事提取数据流图的四种成分-2“系统把定货报表送给采购部”——定货报表是一个数据流。“事务需要从仓库送到系统中”——事务是一个数据流。“每当有一个事务发生时立即处理它,然而每天只产生一次定货报表”——应该有一个数据存储保存产生定货报表的数据。“当某个零件的库存数量少于库存量临界值时就应该再次定货”——应该有一个数据存储保存库存清单数据。28提取数据流图的四种成分-2“系统把定货报表送给采购部”——数据流图的四种成分29数据流图的四种成分29定货系统的基本系统模型仓库管理员定货系统采购员事务定货报表

30定货系统的基本系统模型仓库定货采购员事务定货报表3定货系统的功能级数据流图31定货系统的功能级数据流图31把处理功能进一步分解后的数据流图32把处理功能进一步分解后的数据流图32注意当进一步分解将涉及如何具体地实现一个功能时就不应该再分解了。例如:为什么不进一步分解“产生报表”这个功能呢?定货报表中需要的数据在存储的定货信息中全都有,产生报表只不过是按一定顺序排列这些信息,再按一定格式打印出来。然而这些考虑纯属具体实现的细节,不应该在数据流图中表现。33注意当进一步分解将涉及如何具体地实现一个功能时就不应该再分解注意当对数据流图分层细化时必须保持信息连续性。也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。34注意当对数据流图分层细化时必须保持信息连续性。34注意应该注意在图中对处理进行编号的方法。35注意应该注意在图中对处理进行编号的方法。352.4.3命名数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。362.4.3命名数据流图中每个成分的命名是否恰当,直接影响为数据流(或数据存储)命名名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。不要使用空洞的、缺乏具体含义的名字(如:“数据”、“信息”、“输入”等)。如果在为数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应尝试重新分解,看是否能克服这个困难。37为数据流(或数据存储)命名名字应代表整个数据流(或数据存储)为处理命名-1通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。名字应该反映整个处理的功能,而不是它的一部分功能。名字最好由一个具体的及物动词,加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。38为处理命名-1通常先为数据流命名,然后再为与之相关联的处理命为处理命名-2通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。39为处理命名-2通常名字中仅包括一个动词,如果必须用两个动词才为数据源点/终点命名采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员”等)40为数据源点/终点命名采用它们在问题域中习惯使用的名字(如“采2.4.4用途-1画数据流图的基本目的是利用它作为交流信息的工具。数据流图的另一个主要用途是作为分析和设计的工具。可以根据系统的逻辑模型考虑系统的物理实现。当用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统。412.4.4用途-1画数据流图的基本目的是利用它作为交流信例1可以联机地接收事务并放入队列中,然而更新库存清单、处理定货和产生报表以批量方式进行。当然,这种方案需要增加一个数据存储以存放事务数据。42例1可以联机地接收事务并放入队列中,然而更新库存清单、处理定数据流图43数据流图43例2改变自动化边界,把处理1.1、1.2和1.3放在同一个边界内。这个系统将联机地接收事务、更新库存清单和处理定货及输出定货信息;然而处理2将以批量方式产生定货报表。44例2改变自动化边界,把处理1.1、1.2和1.3放在同一个边数据流图45数据流图452.4.4用途-2数据流图对更详细的设计步骤也有帮助。本书第五章将讲述从数据流图出发映射出软件结构的方法——面向数据流的设计方法。462.4.4用途-2数据流图对更详细的设计步骤也有帮助。42.5数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。472.5数据字典数据字典是关于数据的信息的集合,也就是对数2.5.1数据字典的内容一般说来,数据字典应该由对下列四类元素的定义组成:(1)数据流(2)数据流分量(即,数据元素)(3)数据存储(4)处理。本书中数据字典将主要由对数据的定义组成。数据处理的定义用其它工具(如IPO图或PDL)描述更方便。482.5.1数据字典的内容一般说来,数据字典应该由对下列四数据字典中记录的数据元素的信息一般信息:名字,别名,描述等。定义:数据类型,长度,结构等。使用特点:值的范围,使用频率,使用方式——输入/输出/本地,条件值等。控制信息:来源,用户,使用它的程序,改变权,使用权等。分组信息:父结构,从属结构,物理位置----记录、文件和数据库等。49数据字典中记录的数据元素的信息一般信息:名字,别名,描述等出现别名主要原因对于同样的数据,不同的用户使用了不同的名字;一个分析员在不同时期对同一个数据使用了不同的名字;两个分析员分别分析同一个数据流时,使用了不同的名字。50出现别名主要原因对于同样的数据,不同的用户使用了不同的名字2.5.2定义数据的方法数据字典中的定义就是对数据自顶向下的分解。一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。512.5.2定义数据的方法数据字典中的定义就是对数据自顶向数据元素组成数据的方式顺序 即以确定次序连接两个或多个分量;选择 即从两个或多个可能的元素中选取一个;重复 即把指定的分量重复零次或多次。可选

即一个分量是可有可无的(重复零次或一次)。52数据元素组成数据的方式顺序 即以确定次序连接两个或多个分量符号-1

=意思是等价于(或定义为)+意思是和(即,连接两个分量)[]意思是或(即,从方括弧内列出的若干个分量中选择一个)53符号-1=意思是等价于(或定义为)53符号-2{}意思是重复(即,重复花括弧内的分量)()意思是可选(即,圆括弧里的分量可有可无)54符号-2{}意思是重复(即,重复花括弧内的分量)542.5.3数据字典的用途数据字典最重要的用途是作为分析阶段的工具。数据字典中包含的每个数据元素的控制信息是很有价值的。容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块作出相应的改变。最后,数据字典是开发数据库的第一步。552.5.3数据字典的用途数据字典最重要的用途是作为分析阶2.5.4数据字典的实现三种途径:全人工过程全自动化过程(利用数据字典处理程序)混合过程(用正文编辑程序、报告生成程序等已有的使用程序帮助人工过程)562.5.4数据字典的实现三种途径:56数据字典具有的特点通过名字能方便地查阅数据的定义。没有冗余。尽量不重复在规格说明的其它组成部分中已经出现的信息。容易更新和修改。能单独处理描述每个数据元素的信息。定义的书写方法简单方便而且严格。57数据字典具有的特点通过名字能方便地查阅数据的定义。57数据字典的例子-1名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:输出到打印机58数据字典的例子-1名字:定货报表58数据字典的例子-2名字:零件编号别名:描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8{字符}8位置:定货报表、定货信息、库存清单59数据字典的例子-2名字:零件编号59数据字典的例子-3名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1{数字}5位置:定货报表、定货信息60数据字典的例子-3名字:定货数量602.6成本/效益分析成本/效益分析的目的要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。

612.6成本/效益分析成本/效益分析的目的612.6.1成本估计软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。代码行技术任务分解技术自动估计成本技术622.6.1成本估计软件开发成本主要表现为人力消耗(乘以平2.6.2成本/效益分析的方法成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。运行费用:系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。系统的经济效益:因使用新系统而增加的收入加上使用新系统可以节省的运行费用。632.6.2成本/效益分析的方法成本/效益分析的第一步是估相关概念-1货币的时间价值假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:F=P(1+i)n反之,如果n年后能收入F元钱,那么这些钱的现在价值是P=F/(1+i)n64相关概念-1货币的时间价值64相关概念-2投资回收期通常用投资回收期衡量一项开发工程的价值。所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。65相关概念-2投资回收期65相关概念-3纯收入衡量工程价值的另一项经济指标是工程的纯收入。纯收入就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。66相关概念-3纯收入66相关概念-4投资回收率把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少。类似地也可以计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。67相关概念-4投资回收率67相关概念-4投资回收率计算公式:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)nP是现在的投资额;Fi是第i年年底的效益(i=1,2,…,n);n是系统的使用寿命;j是投资回收率;解出这个高阶代数方程即可求出投资回收率(假设系统寿命n=5)。68相关概念-4投资回收率682.7小结-1可行性研究目的是进一步探讨问题定义阶段所确定的问题是否有可行的解。过程

1、经过定义问题,分析问题,提出解法的反复过程,最终提出一个符合系统目标的高层次的逻辑模型。 2、然后根据系统的这个逻辑模型设想各种可能的物理系统,并且从技术、经济和操作等各方面分析这些物理系统的可行性。 3、最后,系统分析员提出一个推荐的行动方针,提交用户和使用部门负责人审查批准。

692.7小结-1可行性研究目的是进一步探讨问题定义阶段2.7小结-2系统流程图实质上是物理数据流图,它描绘组成系统的主要物理元素以及信息在这些元素间流动和处理的情况。数据流图的基本符号只有四种,它是描绘系统逻辑模型的极好工具。通常数据字典和数据流图共同构成系统的逻辑模型。成本/效益分析是可行性研究的一项重要内容702.7小结-2系统流程图实质上是物理数据流图,它描绘Thanks!9/13/2004NEXTCHAP03需求分析作业:P434、571Thanks!NEXTCHAP03需求分析作业:P

软件工程导论

SoftwareEngineering主讲:吕晓华E-mail:bowen995@72 软件工程导论

SoftwareEngineering主讲Chap02可行性研究可行性研究的任务可行性研究过程系统流程图数据流图数据字典(内容、方法、用途、实现)成本/效益分析(成本估计、分析方法)可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究的目的不是解决问题,而是确定问题是否值得去解。

73Chap02可行性研究可行性研究的任务可行性研究的目的就2.1可行性研究的任务可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程:分析和澄清问题定义导出系统的逻辑模型-探索系统实现方案:

技术可行性:现有的技术经济可行性:开发成本操作可行性:用户操作实现进度可行性研究的成本:预期的工程总成本的5%~10%742.1可行性研究的任务可行性研究实质上是要进行一次大大压缩2.2可行性研究的步骤复查系统规模和目标研究目前正在使用的系统导出新系统的高层逻辑模型重新定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查752.2可行性研究的步骤复查系统规模和目标4复查系统规模和目标对问题定义阶段书写的关于规模和目标的报告书进一步复查确认。改正报告书中的叙述模糊、不正确的地方。这个步骤的工作,实质上是为了确保分析员正在解决的问题确实是要求他解决的问题。进一步复查确认“规模和目标报告书”76复查系统规模和目标对问题定义阶段书写的关于规模和目标的报告书研究目前正在使用的系统正在使用的系统的基本功能以及某些缺点分析现有系统的文档资料和使用手册,实地考察现有系统描绘现有系统的高层系统流程图并确认记录现有系统的接口77研究目前正在使用的系统正在使用的系统的基本功能以及某些缺点6导出新系统的高层逻辑模型设计过程通常总是从现有的物理系统出发,再参考现有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统。使用数据流图,描绘数据在系统中流动和处理的情况,从而概括地表达出对新系统的设想。通常为了把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据。数据流图和数据字典共同定义了新系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。78导出新系统的高层逻辑模型设计过程通常总是从现有的物理系统出发重新定义问题分析员应该和用户一起再次复查问题定义、工程规模和目标,这次复查应该把数据流图和数据字典作为讨论的基础。可行性研究的前四个步骤实质上构成一个循环。

定义问题分析问题导出一个试探性的解重新定义问题符合系统目标?YN79重新定义问题分析员应该和用户一起再次复查问题定义、工程规模和导出和评价供选择的解法分析员应该从他建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。从技术角度出发考虑解决问题的不同方案。例如,2.4节中将举例说明在数据流图上划分不同的自动化边界根据技术可行性的考虑初步排除一些不现实的系统。例如,如果要求系统的响应时间不超过几秒钟,显然应该排除任何批处理方案。考虑操作方面的可行性。分析员应该根据使用部门处理事务的原则和习惯检查技术上可行的那些方案,去掉其中从操作方式或操作过程的角度看用户不能接受的方案。考虑经济方面的可行性。分析员应该估计余下的每个可能的系统的开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。在这些估计数字的基础上,对每个可能的系统进行成本/效益分析。(参看2.6节)制定实现进度表。通常只需要估计生命周期每个阶段的工作量。80导出和评价供选择的解法分析员应该从他建议的系统逻辑模型出发,推荐行动方针做出一个关键性的决定:是否继续进行这项开发工程。如果分析员认为值得继续进行这项开发工程,那么他应该选择一种最好的解法,并且说明选择这个解决方案的理由。81推荐行动方针做出一个关键性的决定:是否继续进行这项开发工程。草拟开发计划为推荐的系统草拟一份开发计划:工程进度表估计对各种开发人员和各种资源的需要情况。估计系统生命周期每个阶段的成本。最后应该给出下一个阶段(需求分析)的详细进度表和成本估计。82草拟开发计划为推荐的系统草拟一份开发计划:11书写文档提交审查写成清晰的文档,请用户和使用部门的负责人仔细审查。83书写文档提交审查写成清晰的文档,请用户和使用部门的负责人仔细2.3系统流程图系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,人工过程等等)。系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程。尽管系统流程图使用的某些符号和程序流程图中用的符号相同,但是它却是物理数据流程图而不是程序流程图。2.3.1符号842.3系统流程图系统流程图是描绘物理系统的传统工具。2.基本符号

一个符号表示系统中的一个部件。

符号名

称说

明处理能改变数据值或数据位置的加工或部件,例如,程序、处理机、人工加工等都是处理。输入/输出表示输入或输出(或既输入又输出),是一个广义的不指明具体设备的符号。连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上。换页连接指出转到另一页图上或由另一页图转来。

数据流用来连接其他符号,指明数据流动方向。85基本符号一个符号表示系统中的一个部件。符号名称说系统符号

86系统符号152.3.2例子某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。习惯画法是使信息在图中从顶向下,从左向右流动。系统流程图872.3.2例子某装配厂有一座存放零件的仓库,仓库中现有的各2.3.3分层首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。提示:下一节--2.4数据流图882.3.3分层首先用一张高层次的系统流程图描绘系统总体概貌2.4数据流图-1数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。892.4数据流图-1数据流图描绘系统的逻辑模型,图中没有任2.4数据流图-2因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。902.4数据流图-2因为数据流图是逻辑系统的图形表示,即使四种基本符号表示数据的源点或终点。表示变换数据的处理。表示数据存储(静止数据)。表示数据流,即特定数据的流动方向(流动数据)。91四种基本符号表示数据的源点或终点。20三个附加符号*:表示数据之间是“与”关系。+:表示数据之间是“或”关系。:表示数据之间是“互斥”关系(只能从中选一个)。92三个附加符号*:表示数据之间是“与”关系。21说明数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。93说明数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是说明有时数据的源点和终点相同。如果只用一个符号代表数据的源点和终点,则至少有两个箭头和这个符号相连(一个进一个出,)可能其中一条箭头相当长,这将降低数据流图的清晰度,如果代表同一个事物的同样符号在图中出现在n个地方,则在这个符号的一个角上画n-1条短斜线做标记。94说明有时数据的源点和终点相同。如果只用一个符号代表数据的源点说明数据流与程序流程图中用箭头表示的控制流有本质不同,千万不要混淆。熟悉程序流程图的初学者在画数据流图时,往往试图在数据流图中表现分支条件或循环,殊不知这样做将造成混乱,画不出正确的数据流图。95说明数据流与程序流程图中用箭头表示的控制流有本质不同,千万不说明在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。96说明在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现例子问题定义:一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某个零件的库存数量少于库存量临界值时就应该再次定货。97例子问题定义:一家工厂的采购部每天需要一张定货报表,报表按零提取数据流图的四种成分-1

“通过放在仓库中的CRT终端把事务报告给定货系统”——仓库管理员是数据源点。“采购部每天需要一张定货报表”——采购员是数据终点。“采购部需要报表”——用于产生报表的处理。“事务的后果是改变零件库存量”——对事务进行的加工的处理。98提取数据流图的四种成分-1“通过放在仓库中的CRT终端把事提取数据流图的四种成分-2“系统把定货报表送给采购部”——定货报表是一个数据流。“事务需要从仓库送到系统中”——事务是一个数据流。“每当有一个事务发生时立即处理它,然而每天只产生一次定货报表”——应该有一个数据存储保存产生定货报表的数据。“当某个零件的库存数量少于库存量临界值时就应该再次定货”——应该有一个数据存储保存库存清单数据。99提取数据流图的四种成分-2“系统把定货报表送给采购部”——数据流图的四种成分100数据流图的四种成分29定货系统的基本系统模型仓库管理员定货系统采购员事务定货报表

101定货系统的基本系统模型仓库定货采购员事务定货报表3定货系统的功能级数据流图102定货系统的功能级数据流图31把处理功能进一步分解后的数据流图103把处理功能进一步分解后的数据流图32注意当进一步分解将涉及如何具体地实现一个功能时就不应该再分解了。例如:为什么不进一步分解“产生报表”这个功能呢?定货报表中需要的数据在存储的定货信息中全都有,产生报表只不过是按一定顺序排列这些信息,再按一定格式打印出来。然而这些考虑纯属具体实现的细节,不应该在数据流图中表现。104注意当进一步分解将涉及如何具体地实现一个功能时就不应该再分解注意当对数据流图分层细化时必须保持信息连续性。也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。105注意当对数据流图分层细化时必须保持信息连续性。34注意应该注意在图中对处理进行编号的方法。106注意应该注意在图中对处理进行编号的方法。352.4.3命名数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。1072.4.3命名数据流图中每个成分的命名是否恰当,直接影响为数据流(或数据存储)命名名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。不要使用空洞的、缺乏具体含义的名字(如:“数据”、“信息”、“输入”等)。如果在为数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应尝试重新分解,看是否能克服这个困难。108为数据流(或数据存储)命名名字应代表整个数据流(或数据存储)为处理命名-1通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。名字应该反映整个处理的功能,而不是它的一部分功能。名字最好由一个具体的及物动词,加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。109为处理命名-1通常先为数据流命名,然后再为与之相关联的处理命为处理命名-2通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。110为处理命名-2通常名字中仅包括一个动词,如果必须用两个动词才为数据源点/终点命名采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员”等)111为数据源点/终点命名采用它们在问题域中习惯使用的名字(如“采2.4.4用途-1画数据流图的基本目的是利用它作为交流信息的工具。数据流图的另一个主要用途是作为分析和设计的工具。可以根据系统的逻辑模型考虑系统的物理实现。当用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统。1122.4.4用途-1画数据流图的基本目的是利用它作为交流信例1可以联机地接收事务并放入队列中,然而更新库存清单、处理定货和产生报表以批量方式进行。当然,这种方案需要增加一个数据存储以存放事务数据。113例1可以联机地接收事务并放入队列中,然而更新库存清单、处理定数据流图114数据流图43例2改变自动化边界,把处理1.1、1.2和1.3放在同一个边界内。这个系统将联机地接收事务、更新库存清单和处理定货及输出定货信息;然而处理2将以批量方式产生定货报表。115例2改变自动化边界,把处理1.1、1.2和1.3放在同一个边数据流图116数据流图452.4.4用途-2数据流图对更详细的设计步骤也有帮助。本书第五章将讲述从数据流图出发映射出软件结构的方法——面向数据流的设计方法。1172.4.4用途-2数据流图对更详细的设计步骤也有帮助。42.5数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。1182.5数据字典数据字典是关于数据的信息的集合,也就是对数2.5.1数据字典的内容一般说来,数据字典应该由对下列四类元素的定义组成:(1)数据流(2)数据流分量(即,数据元素)(3)数据存储(4)处理。本书中数据字典将主要由对数据的定义组成。数据处理的定义用其它工具(如IPO图或PDL)描述更方便。1192.5.1数据字典的内容一般说来,数据字典应该由对下列四数据字典中记录的数据元素的信息一般信息:名字,别名,描述等。定义:数据类型,长度,结构等。使用特点:值的范围,使用频率,使用方式——输入/输出/本地,条件值等。控制信息:来源,用户,使用它的程序,改变权,使用权等。分组信息:父结构,从属结构,物理位置----记录、文件和数据库等。120数据字典中记录的数据元素的信息一般信息:名字,别名,描述等出现别名主要原因对于同样的数据,不同的用户使用了不同的名字;一个分析员在不同时期对同一个数据使用了不同的名字;两个分析员分别分析同一个数据流时,使用了不同的名字。121出现别名主要原因对于同样的数据,不同的用户使用了不同的名字2.5.2定义数据的方法数据字典中的定义就是对数据自顶向下的分解。一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。1222.5.2定义数据的方法数据字典中的定义就是对数据自顶向数据元素组成数据的方式顺序 即以确定次序连接两个或多个分量;选择 即从两个或多个可能的元素中选取一个;重复 即把指定的分量重复零次或多次。可选

即一个分量是可有可无的(重复零次或一次)。123数据元素组成数据的方式顺序 即以确定次序连接两个或多个分量符号-1

=意思是等价于(或定义为)+意思是和(即,连接两个分量)[]意思是或(即,从方括弧内列出的若干个分量中选择一个)124符号-1=意思是等价于(或定义为)53符号-2{}意思是重复(即,重复花括弧内的分量)()意思是可选(即,圆括弧里的分量可有可无)125符号-2{}意思是重复(即,重复花括弧内的分量)542.5.3数据字典的用途数据字典最重要的用途是作为分析阶段的工具。数据字典中包含的每个数据元素的控制信息是很有价值的。容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块作出相应的改变。最后,数据字典是开发数据库的第一步。1262.5.3数据字典的用途数据字典最重要的用途是作为分析阶2.5.4数据字典的实现三种途径:全人工过程全自动化过程(利用数据字典处理程序)混合过程(用正文编辑程序、报告生成程序等已有的使用程序帮助人工过程)1272.5.4数据字典的实现三种途径:56数据字典具有的特点通过名字能方便地查阅数据的定义。没有冗余。尽量不重复在规格说明的其它组成部分中已经出现的信息。容易更新和修改。能单独处理描述每个数据元素

温馨提示

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

评论

0/150

提交评论