《软件工程导论-可行性研究.pptx》由会员分享,可在线阅读,更多相关《软件工程导论-可行性研究.pptx(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程导论Software Engineering主讲:张虎主讲:张虎E-mail:1Chap02 Chap02 可行性研究可行性研究v可行性研究的任务可行性研究的任务v可行性研究过程可行性研究过程v系统流程图系统流程图v数据流图数据流图v数据字典数据字典(内容、方法、用途、实现)(内容、方法、用途、实现)v成本成本/效益分析效益分析(成本估计、分析方法)(成本估计、分析方法)可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究的目的不是解决问题,而是确定问题是否值得去解。解决;可行性研究的目的不
2、是解决问题,而是确定问题是否值得去解。22.1 2.1 可行性研究的任务可行性研究的任务u可行性研究实质上是要进行一次大大压缩简化了的系统分析可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程:系统分析和设计的过程:p 分析和澄清问题定义分析和澄清问题定义p 导出系统的逻辑模型探索系统实现方案:导出系统的逻辑模型探索系统实现方案:技术可行性:现有的技术技术可行性:现有的技术 经济可行性:开发成本经济可行性:开发成本 操作可行性:用户操作操作可行性:用户操作p实现进度实现
3、进度p可行性研究的成本:预期的工程总成本的可行性研究的成本:预期的工程总成本的51032.2 2.2 可行性研究的步骤可行性研究的步骤1.1.复查系统规模和目标复查系统规模和目标 2.2.研究目前正在使用的系统研究目前正在使用的系统3.3.导出新系统的高层逻辑模型导出新系统的高层逻辑模型4.4.重新定义问题重新定义问题5.5.导出和评价供选择的解法导出和评价供选择的解法6.6.推荐行动方针推荐行动方针7.7.草拟开发计划草拟开发计划8.8.书写文档提交审查书写文档提交审查4复查系统规模和目标复查系统规模和目标v对问题定义阶段书写的关于规模和目标的报告书进一步复查对问题定义阶段书写的关于规模和目
4、标的报告书进一步复查确认。改正报告书中的叙述模糊、不正确的地方。这个步骤确认。改正报告书中的叙述模糊、不正确的地方。这个步骤的工作,的工作,实质上是为了确保分析员正在解决的问题确实是要实质上是为了确保分析员正在解决的问题确实是要求他解决的问题求他解决的问题。进一步复查确认进一步复查确认进一步复查确认进一步复查确认“规模和目标报告书规模和目标报告书规模和目标报告书规模和目标报告书”5研究目前正在使用的系统研究目前正在使用的系统正在使用的系统的基本功能以及某些缺点正在使用的系统的基本功能以及某些缺点分析现有系统的文档资料和使用手册,实地考分析现有系统的文档资料和使用手册,实地考察现有系统察现有系统
5、描绘现有系统的高层系统流程图并确认描绘现有系统的高层系统流程图并确认记录现有系统的接口记录现有系统的接口6导出新系统的高层逻辑模型导出新系统的高层逻辑模型v设计过程通常总是从设计过程通常总是从现有的物理系统现有的物理系统出发,再参考现有系统出发,再参考现有系统的逻辑模型,设想的逻辑模型,设想目标系统的逻辑模型目标系统的逻辑模型,最后根据目标系统,最后根据目标系统的逻辑模型建造的逻辑模型建造新的物理系统新的物理系统。v使用使用数据流图数据流图,描绘数据在系统中流动和处理的情况,从而,描绘数据在系统中流动和处理的情况,从而概括地表达出对新系统的设想。概括地表达出对新系统的设想。v通常为了把新系统描
6、绘得更清晰准确,还应该有一个初步的通常为了把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据。数据字典,定义系统中使用的数据。v数据流图和数据字典共同定义了新系统的逻辑模型,以后可数据流图和数据字典共同定义了新系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。以从这个逻辑模型出发设计新系统。7重新定义问题重新定义问题v分析员应该和用户一起再次复查问题定义、工程规模和目标,分析员应该和用户一起再次复查问题定义、工程规模和目标,这次复查应该把数据流图和数据字典作为讨论的基础。这次复查应该把数据流图和数据字典作为讨论的基础。v可行性研究的前四个步骤实质上构成一个循环。可行
7、性研究的前四个步骤实质上构成一个循环。定义问题定义问题分析问题分析问题导出一个试探性的解导出一个试探性的解重新定义问题重新定义问题符合系统目标?符合系统目标?YN8导出和评价供选择的解法导出和评价供选择的解法v分析员应该从他建议的系统逻辑模型出发,导出若干个较高分析员应该从他建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。层次的(较抽象的)物理解法供比较和选择。1.1.从技术角度出发考虑解决问题的不同方案。例如,从技术角度出发考虑解决问题的不同方案。例如,2 24 4节中将举例说节中将举例说明在数据流图上划分不同的自动化边界明在数据流图上划分不同的自动化边界 2.
8、2.根据技术可行性的考虑初步排除一些不现实的系统。例如,如果要求根据技术可行性的考虑初步排除一些不现实的系统。例如,如果要求系统的响应时间不超过几秒钟,显然应该排除任何批处理方案。系统的响应时间不超过几秒钟,显然应该排除任何批处理方案。3.3.考虑操作方面的可行性。分析员应该根据使用部门处理事务的原则和考虑操作方面的可行性。分析员应该根据使用部门处理事务的原则和习惯检查技术上可行的那些方案,去掉其中从操作方式或操作过程的习惯检查技术上可行的那些方案,去掉其中从操作方式或操作过程的角度看用户不能接受的方案。角度看用户不能接受的方案。4.4.考虑经济方面的可行性。考虑经济方面的可行性。分析员应该估
9、计余下的每个可能的系统的开发成本和运行费用,并且估计分析员应该估计余下的每个可能的系统的开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。在这些估计数字的基础上,对每个可能的系统进行成本效益分析。(参在这些估计数字的基础上,对每个可能的系统进行成本效益分析。(参看看2 26 6节)节)v制定实现进度表。制定实现进度表。通常只需要估计生命周期每个阶段的工作量。通常只需要估计生命周期每个阶段的工作量。9推荐行动方针推荐行动方针v做出一个关键性的决定:是否继续进行这项开发工程。做出一个关键性的决定:是否
10、继续进行这项开发工程。v如果分析员认为值得继续进行这项开发工程,那么他应该选如果分析员认为值得继续进行这项开发工程,那么他应该选择一种最好的解法,并且说明选择这个解决方案的理由。择一种最好的解法,并且说明选择这个解决方案的理由。10草拟开发计划草拟开发计划v为推荐的系统草拟一份开发计划:为推荐的系统草拟一份开发计划:1.工程进度表工程进度表2.估计对各种开发人员和各种资源的需要情况。估计对各种开发人员和各种资源的需要情况。3.估计系统生命周期每个阶段的成本。估计系统生命周期每个阶段的成本。4.最后应该给出下一个阶段(需求分析)的详细进度表和最后应该给出下一个阶段(需求分析)的详细进度表和成本估
11、计。成本估计。11书写文档提交审查书写文档提交审查v写成清晰的文档,请用户和使用部门的负责人仔细审查写成清晰的文档,请用户和使用部门的负责人仔细审查。122.3 2.3 系统流程图系统流程图v系统流程图是描绘物理系统的传统工具。系统流程图是描绘物理系统的传统工具。v它的基本思想是用图形符号以黑盒子形式描绘系统它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,人里面的每个部件(程序,文件,数据库,表格,人工过程等等)。工过程等等)。v系统流程图表达的是信息在系统各部件之间流动的系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程
12、。情况,而不是对信息进行加工处理的控制过程。v尽管系统流程图使用的某些符号和尽管系统流程图使用的某些符号和程序流程图使程序流程图使用用的符号相同,但是它却是物理数据流程图而不是程的符号相同,但是它却是物理数据流程图而不是程序流程图。序流程图。2.3.1 2.3.1 符号符号13基本符号基本符号 v一个符号表示系统中的一个部件。一个符号表示系统中的一个部件。符号符号名名 称称说说 明明处理处理能能改改变变数数据据值值或或数数据据位位置置的的加加工工或或部部件件,例例如如,程程序、处理机、人工加工等都是处理。序、处理机、人工加工等都是处理。输入输出输入输出表表示示输输入入或或输输出出(或或既既输输
13、入入又又输输出出),是是一一个个广广义义的不指明具体设备的符号。的不指明具体设备的符号。连接连接指指出出转转到到图图的的另另一一部部分分或或从从图图的的另另一一部部分分转转来来,通通常在同一页上。常在同一页上。换页连接换页连接指出转到另一页图上或由另一页图转来。指出转到另一页图上或由另一页图转来。数据流数据流用来连接其他符号,指明数据流动方向。用来连接其他符号,指明数据流动方向。14系统符号系统符号 152.3.2 2.3.2 例子例子v某装配厂有一座存放零件的仓某装配厂有一座存放零件的仓库,仓库中现有的各种零件的库,仓库中现有的各种零件的数量以及每种零件的库存量数量以及每种零件的库存量临临界
14、值界值等数据记录在库存清单主等数据记录在库存清单主文件中。当仓库中零件数量有文件中。当仓库中零件数量有变化时,应该及时修改库存清变化时,应该及时修改库存清单主文件,如果那种零件的库单主文件,如果那种零件的库存量少于它的库存量临界值,存量少于它的库存量临界值,则应该报告给采购部门以便定则应该报告给采购部门以便定货,规定每天向采购部门送一货,规定每天向采购部门送一次定货报告。次定货报告。v习惯画法是使信息在图中从顶习惯画法是使信息在图中从顶向下,从左向右流动。向下,从左向右流动。系统流程图系统流程图162.3.3 2.3.3 分层分层v首先用一张高层次的系统流程图描绘系统总体概貌,表明系首先用一张
15、高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。统的关键功能。v然后分别把每个关键功能扩展到适当的详细程度,画在单独然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。的一页纸上。v这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。步深入地了解一个复杂的系统。172.4 数据流图1v数据流图描绘系统的逻辑模型,图中没有任数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中何具体的物理元素,只是描绘信息在系统中流动和处理的情况。流动和处理的情况。182.4 数据流图2v因
16、为数据流图是逻辑系统的图形表示,即使因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所不是专业的计算机技术人员也容易理解,所以是极好的通信工具。以是极好的通信工具。v此外,设计数据流图只需考虑系统必须完成此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很地实现这些功能,所以它也是软件设计的很好的出发点。好的出发点。19四种基本符号 v表示数据的源点或终点。表示数据的源点或终点。v表示变换数据的处理。表示变换数据的处理。v表示数据存储(静止数据)。表示数据存储(静止数据
17、)。v表示数据流,即特定数据的流动表示数据流,即特定数据的流动方向(流动数据)。方向(流动数据)。20三个附加符号 v*:*:表示数据之间是表示数据之间是“与与”关系。关系。v+:表示数据之间是:表示数据之间是“或或”关系。关系。v :表示数据之间是:表示数据之间是“互斥互斥”关系(只能从关系(只能从中选一个)。中选一个)。21说明v数据存储和数据流都是数据,仅仅所处的状数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。数据流是处于运动中的数据。22说明v有时数据的源点和终点相同。如果只用一个有时数据的源
18、点和终点相同。如果只用一个符号代表数据的源点和终点,则至少有两个符号代表数据的源点和终点,则至少有两个箭头和这个符号相连(一个进一个出,)可箭头和这个符号相连(一个进一个出,)可能其中一条箭头相当长,这将降低数据流图能其中一条箭头相当长,这将降低数据流图的清晰度,如果代表同一个事物的同样符号的清晰度,如果代表同一个事物的同样符号在图中出现在在图中出现在n n个地方,则在这个符号的一个个地方,则在这个符号的一个角上画角上画n-1n-1条短斜线做标记。条短斜线做标记。23说明v数据流与程序流程图中用箭头表示的控制流数据流与程序流程图中用箭头表示的控制流有本质不同,千万不要混淆。有本质不同,千万不要
19、混淆。v熟悉程序流程图的初学者在画数据流图时,熟悉程序流程图的初学者在画数据流图时,往往试图在数据流图中表现分支条件或循环,往往试图在数据流图中表现分支条件或循环,殊不知这样做将造成混乱,画不出正确的数殊不知这样做将造成混乱,画不出正确的数据流图。据流图。24说明v在数据流图中应该描绘所有可能的数据流向,在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。而不应该描绘出现某个数据流的条件。v数据流图的基本要点是描绘数据流图的基本要点是描绘“做什么做什么”而不而不考虑考虑“怎样做怎样做”。25例子v问题定义:一家工厂的采购部每天需要一张定货报问题定义:一家工厂的采购部每天需
20、要一张定货报表,报表按零件编号排序,表中列出所有需要再次表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的库称为事务,通过放在仓库中的CRTCRT终端把事务报告终端把事务报告给定货系统。当某个零件的库存数量少于库存量临给定货系统。当某个零件的库存数量少于库存量临界值时就应该再次定货。界值时就应该再次定货。26提取
21、数据流图的四种成分1 v“通过放在仓库中的通过放在仓库中的CRTCRT终端把事务报告给定货系统终端把事务报告给定货系统”仓库管理员是数据源点。仓库管理员是数据源点。v“采购部每天需要一张定货报表采购部每天需要一张定货报表”采购员是数采购员是数据终点。据终点。v“采购部需要报表采购部需要报表”用于产生报表的处理。用于产生报表的处理。v“事务的后果是改变零件库存量事务的后果是改变零件库存量”对事务进行对事务进行的加工的处理。的加工的处理。27提取数据流图的四种成分2v“系统把定货报表送给采购部系统把定货报表送给采购部”定货报表是一定货报表是一个数据流。个数据流。v“事务需要从仓库送到系统中事务需要
22、从仓库送到系统中”事务是一个数事务是一个数据流。据流。v“每当有一个事务发生时立即处理它,然而每天只每当有一个事务发生时立即处理它,然而每天只产生一次定货报表产生一次定货报表”应该有一个数据存储保存应该有一个数据存储保存产生定货报表的数据。产生定货报表的数据。v“当某个零件的库存数量少于库存量临界值时就应当某个零件的库存数量少于库存量临界值时就应该再次定货该再次定货”应该有一个数据存储保存库存清应该有一个数据存储保存库存清单数据。单数据。28数据流图的四种成分29定货系统的基本系统模型 仓库仓库 管理员管理员定货定货系统系统采购采购员员事务事务 定货报表定货报表 30定货系统的功能级数据流图
23、31把处理功能进一步分解后的数据流图 32注意1.1.当进一步分解将涉及如何具体地实现一个功当进一步分解将涉及如何具体地实现一个功能时就不应该再分解了。能时就不应该再分解了。v例如:为什么不进一步分解例如:为什么不进一步分解“产生报表产生报表”这这个功能呢?定货报表中需要的数据在存储的个功能呢?定货报表中需要的数据在存储的定货信息中全都有,产生报表只不过是按一定货信息中全都有,产生报表只不过是按一定顺序排列这些信息,再按一定格式打印出定顺序排列这些信息,再按一定格式打印出来。然而这些考虑纯属具体实现的细节,不来。然而这些考虑纯属具体实现的细节,不应该在数据流图中表现。应该在数据流图中表现。33
24、注意2.2.当对数据流图分层细化时必须保持信息连续当对数据流图分层细化时必须保持信息连续性。性。v也就是说,当把一个处理分解为一系列处理也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必时,分解前和分解后的输入输出数据流必须相同。须相同。34注意3.应该注意在图中对处理进行编号的方法。应该注意在图中对处理进行编号的方法。352.4.3 命名v数据流图中每个成分的命名是否恰当,直接数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。影响数据流图的可理解性。36为数据流(或数据存储)命名1.1.名字应代表整个数据流(或数据存储)的内名字应代表整个数据流(或数据存储
25、)的内容,而不是仅仅反映它的某些成分。容,而不是仅仅反映它的某些成分。2.2.不要使用空洞的、缺乏具体含义的名字(如:不要使用空洞的、缺乏具体含义的名字(如:“数据数据”、“信息信息”、“输入输入”等)。等)。3.3.如果在为数据流(或数据存储)起名字时遇如果在为数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解到了困难,则很可能是因为对数据流图分解不恰当造成的,应尝试重新分解,看是否能不恰当造成的,应尝试重新分解,看是否能克服这个困难。克服这个困难。37为处理命名11.1.通常先为数据流命名,然后再为与之相关联通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容
26、易,而且体现的处理命名。这样命名比较容易,而且体现了人类习惯的了人类习惯的“由表及里由表及里”的思考过程。的思考过程。2.2.名字应该反映整个处理的功能,而不是它的名字应该反映整个处理的功能,而不是它的一部分功能。一部分功能。3.3.名字最好由一个具体的及物动词,加上一个名字最好由一个具体的及物动词,加上一个具体的宾语组成。应该尽量避免使用具体的宾语组成。应该尽量避免使用“加工加工”、“处理处理”等空洞笼统的动词作名字。等空洞笼统的动词作名字。38为处理命名24.4.通常名字中仅包括一个动词,如果必须用两通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个个动词才能描述
27、整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。处理再分解成两个处理可能更恰当些。5.5.如果在为某个处理命名时遇到困难,则很可如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分能是发现了分解不当的迹象,应考虑重新分解。解。39为数据源点/终点命名v采用它们在问题域中习惯使用的名字(如采用它们在问题域中习惯使用的名字(如“采购员采购员”、“仓库管理员仓库管理员”等)等)402.4.4 用途11.1.画数据流图的基本目的是利用它作为交流信息的工画数据流图的基本目的是利用它作为交流信息的工具。具。2.2.数据流图的另一个主要用途是作为分析和设计的工数据流图的另一
28、个主要用途是作为分析和设计的工具。具。3.3.可以根据系统的逻辑模型考虑系统的物理实现。当可以根据系统的逻辑模型考虑系统的物理实现。当用数据流图辅助物理系统的设计时,以图中不同处用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不组自动化边界,每组自动化边界可能意味着一个不同的物理系统。同的物理系统。41例1v可以联机地接收事务并放入队列中,然而更可以联机地接收事务并放入队列中,然而更新库存清单、处理定货和产生报表以批量方新库存清单、处理定货和产生报表以批量方式进行。当然
29、,这种方案需要增加一个数据式进行。当然,这种方案需要增加一个数据存储以存放事务数据。存储以存放事务数据。42数据流图43例2v改变自动化边界,把处理改变自动化边界,把处理1 11 1、1 12 2和和1 13 3放在同一个边界内。放在同一个边界内。v这个系统将联机地接收事务、更新库存清单这个系统将联机地接收事务、更新库存清单和处理定货及输出定货信息;然而处理和处理定货及输出定货信息;然而处理2 2将以将以批量方式产生定货报表。批量方式产生定货报表。44数据流图452.4.4 用途24.4.数据流图对更详细的设计步骤也有帮助。数据流图对更详细的设计步骤也有帮助。v本书第五章将讲述从数据流图出发映
30、射出软本书第五章将讲述从数据流图出发映射出软件结构的方法件结构的方法面向数据流的设计方法。面向数据流的设计方法。462.5 2.5 数据字典数据字典v数据字典是关于数据的信息的集合,也就是数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。对数据流图中包含的所有元素的定义的集合。v数据流图和数据字典共同构成系统的逻辑模数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。没有数据流图数据字典也难于发挥作用。472.5.1 2.5.1 数据字典的内容数据字典的内容v一般说来,
31、数据字典应该由对下列四类元素的定义一般说来,数据字典应该由对下列四类元素的定义组成:组成:(1 1)数据流)数据流(2 2)数据流分量(即,数据元素)数据流分量(即,数据元素)(3 3)数据存储)数据存储(4 4)处理。)处理。v本书中数据字典将主要由对数据的定义组成。数据本书中数据字典将主要由对数据的定义组成。数据处理的定义用其它工具(如处理的定义用其它工具(如IPOIPO图或图或PDLPDL)描述更方)描述更方便。便。48数据字典中记录的数据元素的信息数据字典中记录的数据元素的信息 v一般信息:名字,别名,描述等。一般信息:名字,别名,描述等。v定义:数据类型,长度,结构等。定义:数据类型
32、,长度,结构等。v使用特点:值的范围,使用频率,使用方式使用特点:值的范围,使用频率,使用方式输输入入/输出输出/本地,条件值等。本地,条件值等。v控制信息:来源,用户,使用它的程序,改变权,控制信息:来源,用户,使用它的程序,改变权,使用权等。使用权等。v分组信息:父结构,从属结构,物理位置分组信息:父结构,从属结构,物理位置-记录、记录、文件和数据库等。文件和数据库等。49出现别名主要原因出现别名主要原因 v对对于于同同样样的的数数据据,不不同同的的用用户户使使用用了了不不同同的的名字;名字;v一一个个分分析析员员在在不不同同时时期期对对同同一一个个数数据据使使用用了了不同的名字;不同的名
33、字;v两个分析员分别分析同一个数据流时,使用两个分析员分别分析同一个数据流时,使用了不同的名字。了不同的名字。502.5.2 2.5.2 定义数据的方法定义数据的方法v数据字典中的定义就是对数据自顶向下的分数据字典中的定义就是对数据自顶向下的分解。解。v一般说来,当分解到不需要进一步定义,每一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。这种分解过程就完成了。51数据元素组成数据的方式数据元素组成数据的方式 1.1.顺序顺序即以确定次序连接两个或多个分量;即以确定次序连接两个或多个分量;2.2.选择选择
34、即从两个或多个可能的元素中选取一即从两个或多个可能的元素中选取一个;个;3.3.重复重复即把指定的分量重复零次或多次。即把指定的分量重复零次或多次。4.4.可选可选即一个分量是可有可无的(重复零次即一个分量是可有可无的(重复零次或一次)。或一次)。52符号符号1 1 v 意思是等价于(或定义为)意思是等价于(或定义为)v 意思是和(即,连接两个分量)意思是和(即,连接两个分量)v 意思是或(即,从方括弧内列出的若干个分量意思是或(即,从方括弧内列出的若干个分量中选择一个)中选择一个)53符号符号2 24.4.意思是重复(即,重复花括弧内的分量)意思是重复(即,重复花括弧内的分量)5.5.()(
35、)意思是可选(即,圆括弧里的分量可有可无)意思是可选(即,圆括弧里的分量可有可无)542.5.3 2.5.3 数据字典的用途数据字典的用途v数据字典最重要的用途是作为分析阶段的工数据字典最重要的用途是作为分析阶段的工具。具。v数据字典中包含的每个数据元素的控制信息数据字典中包含的每个数据元素的控制信息是很有价值的。容易估计改变一个数据将产是很有价值的。容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模生的影响,并且能对所有受影响的程序或模块作出相应的改变。块作出相应的改变。v最后,数据字典是开发数据库的第一步。最后,数据字典是开发数据库的第一步。552.5.4 2.5.4 数据字典
36、的实现数据字典的实现v三种途径:三种途径:1.1.全人工过程全人工过程2.2.全自动化过程(利用数据字典处理程序)全自动化过程(利用数据字典处理程序)3.3.混合过程(用正文编辑程序、报告生成程序混合过程(用正文编辑程序、报告生成程序等已有的使用程序帮助人工过程)等已有的使用程序帮助人工过程)56数据字典具有的特点数据字典具有的特点 1.1.通过名字能方便地查阅数据的定义。通过名字能方便地查阅数据的定义。2.2.没有冗余。没有冗余。3.3.尽量不重复在规格说明的其它组成部分中已尽量不重复在规格说明的其它组成部分中已经出现的信息。经出现的信息。4.4.容易更新和修改。容易更新和修改。5.5.能单
37、独处理描述每个数据元素的信息。能单独处理描述每个数据元素的信息。6.6.定义的书写方法简单方便而且严格。定义的书写方法简单方便而且严格。57数据字典的例子数据字典的例子1 1v名字:定货报表名字:定货报表v别名:定货信息别名:定货信息v描述:每天一次送给采购员的需要定货的零描述:每天一次送给采购员的需要定货的零件表件表v定义:定货报表定义:定货报表=零件编号零件编号+零件名称零件名称+定货数定货数量量+目前价格目前价格+主要供应者主要供应者+次要供应者次要供应者v位置:输出到打印机位置:输出到打印机58数据字典的例子数据字典的例子2 2v名字:零件编号名字:零件编号v别名:别名:v描述:唯一地
38、标识库存清单中一个特定零件描述:唯一地标识库存清单中一个特定零件的关键域的关键域v定义:零件编号定义:零件编号=8=8字符字符88v位置:定货报表、定货信息、库存清单位置:定货报表、定货信息、库存清单59数据字典的例子数据字典的例子3 3v名字:定货数量名字:定货数量v别名:别名:v描述:某个零件一次定货的数量描述:某个零件一次定货的数量v定义:定货数量定义:定货数量=1=1数字数字55v位置:定货报表、定货信息位置:定货报表、定货信息602.6 2.6 成本成本/效益分析效益分析v成本效益分析的目的成本效益分析的目的 要从经济角度分析开发一个特定的要从经济角度分析开发一个特定的新系统是否划算
39、,从而帮助使用部门负责人新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。正确地作出是否投资于这项开发工程的决定。612.6.1 2.6.1 成本估计成本估计v软件开发成本主要表现为人力消耗(乘以平软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。均工资则得到开发费用)。1.1.代码行技术代码行技术2.2.任务分解技术任务分解技术3.3.自动估计成本技术自动估计成本技术622.6.2 2.6.2 成本成本/效益分析的方法效益分析的方法v成本效益分析的第一步是估计开发成本、成本效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。运行费用和新系
40、统将带来的经济效益。v运行费用:系统的操作费用(操作员人数,运行费用:系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。工作时间,消耗的物资等等)和维护费用。v系统的经济效益:因使用新系统而增加的收系统的经济效益:因使用新系统而增加的收入加上使用新系统可以节省的运行费用。入加上使用新系统可以节省的运行费用。63相关概念相关概念1 11.1.货币的时间价值货币的时间价值v假设年利率为假设年利率为i i,如果现在存入,如果现在存入P P元,则元,则n n年年后可以得到的钱数为:后可以得到的钱数为:F FP P(1 1 i i)n n v反之,如果反之,如果n n年后能收入年后能收入
41、F F元钱,那么这些钱元钱,那么这些钱的现在价值是的现在价值是 P P F F(1 1 i i)n n 64相关概念相关概念2 22.2.投资回收期投资回收期v通常用投资回收期衡量一项开发工程的价值。通常用投资回收期衡量一项开发工程的价值。v所谓投资回收期就是使累计的经济效益等于所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。最初投资所需要的时间。65相关概念相关概念3 33.3.纯收入纯收入v衡量工程价值的另一项经济指标是工程的纯衡量工程价值的另一项经济指标是工程的纯收入。收入。v纯收入就是在整个生命周期之内系统的累计纯收入就是在整个生命周期之内系统的累计经济效益(折合成现在值)
42、与投资之差。经济效益(折合成现在值)与投资之差。66相关概念相关概念4 44.4.投资回收率投资回收率v把资金存入银行或贷给其他企业能够获得利把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少。类似地也息,通常用年利率衡量利息多少。类似地也可以计算投资回收率,用它衡量投资效益的可以计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数量工程的经济效益时,它是最重要的参考数据。据。67相关概念相关概念4 44.4.投资回收率投资回收率v计算公式:计算公式:P P F F1 1(1 1 j
43、 j)F F2 2(1 1 j j)2 2 F Fn n(1 1 j j)n nvP P是现在的投资额;是现在的投资额;F Fi i是第是第 i i年年底的效益(年年底的效益(i i 1 1,2 2,n n););n n是系统的使用寿命;是系统的使用寿命;j j是投资是投资回收率;回收率;v解出这个高阶代数方程即可求出投资回收率(假解出这个高阶代数方程即可求出投资回收率(假设系统寿命设系统寿命n n5 5)。)。682 27 7 小结小结-1-1v可行性研究目的是进一步探讨问题定义阶段所确定可行性研究目的是进一步探讨问题定义阶段所确定的问题是否有可行的解。的问题是否有可行的解。v过程过程1 1
44、、经过定义问题,分析问题,提出解法的反复过程,、经过定义问题,分析问题,提出解法的反复过程,最终提出一个符合系统目标的高层次的逻辑模型。最终提出一个符合系统目标的高层次的逻辑模型。2 2、然后根据系统的这个逻辑模型设想各种可能的物理然后根据系统的这个逻辑模型设想各种可能的物理系统,并且从技术、经济和操作等各方面分析这些物理系统,并且从技术、经济和操作等各方面分析这些物理系统的可行性。系统的可行性。3 3、最后,系统分析员提出一个推荐的行动方针,提交、最后,系统分析员提出一个推荐的行动方针,提交用户和使用部门负责人审查批准。用户和使用部门负责人审查批准。692 27 7 小结小结-2-2v系统流
45、程图实质上是物理数据流图,它描绘系统流程图实质上是物理数据流图,它描绘组成系统的主要物理元素以及信息在这些元组成系统的主要物理元素以及信息在这些元素间流动和处理的情况。素间流动和处理的情况。v数据流图的基本符号只有四种,它是描绘系数据流图的基本符号只有四种,它是描绘系统逻辑模型的极好工具。通常数据字典和数统逻辑模型的极好工具。通常数据字典和数据流图共同构成系统的逻辑模型。据流图共同构成系统的逻辑模型。v成本效益分析是可行性研究的一项重要内成本效益分析是可行性研究的一项重要内容容 70ThanksThanks!3/3/20063/3/2006NEXT CHAP03需求分析 作业:作业:P43 2
46、P43 2、5 571软件工程建模工具介绍软件工程建模工具介绍vROSE是直接从是直接从UML发展而诞生的设计工具,它的出现就是发展而诞生的设计工具,它的出现就是为了对为了对UML建模的支持,建模的支持,ROSE一开始没有对数据库端建模一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更
47、清晰,内部结构更加明来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。和数据库端的迭代不是很好。72软件工程建模工具介绍软件工程建模工具介绍vPowerDesigner原来是对数据库建模而发展起来的一种数据原来是对数据库建模而发展起来的一种数据库建模工具。直到库
48、建模工具。直到7.0版才开始对面向对象的开发的支持,版才开始对面向对象的开发的支持,后来又引入了对后来又引入了对UML的支持。但是由于的支持。但是由于PowerDesigner侧侧重不一样,所以它对数据库建模的支持很好,支持了能够看重不一样,所以它对数据库建模的支持很好,支持了能够看到的到的90%左右的数据库,对左右的数据库,对UML的建模使用到的各种图的支的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行持比较滞后。但是在最近得到加强。所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。如果开发的并不多,很多人都是用它来作为数据库的建模。如果使用使用U
49、ML分析,它的优点是生成代码时对分析,它的优点是生成代码时对Sybase的产品的产品PowerBuilder的支持很好(其它的支持很好(其它UML建模工具则没有或者建模工具则没有或者需要一定的插件),其他面向对象语言如需要一定的插件),其他面向对象语言如C+,Java,VB,C#等支持也不错。但是它好像继承了等支持也不错。但是它好像继承了Sybase公司的一公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。是有这样或那样的问题。73软件工程建模工具介绍软件工程建模工具介绍vVISIO原来仅仅是一种画图工具,能够
50、用来描述各种图形原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到(从电路图到房屋结构图),也是到VISIO2000才开始引进才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软件最能够用图形方式来表达各种商业图形用途的工具(对软件开发中的开发中的UML支持仅仅是其中很少的一部分)。它跟微软的支持仅仅是其中很少的一部分)。它跟微软的office产品的能够很好兼容。能够把图形直接复制或者内嵌产品的能够很好兼容。能够把图形直接复制或者内嵌到到WORD的文档中。但