《软件工程第二章.ppt》由会员分享,可在线阅读,更多相关《软件工程第二章.ppt(42页珍藏版)》请在优知文库上搜索。
1、练习题练习题1:美国一家公司在美国一家公司在1982年计划用年计划用FORTRAN语言语言开发一个在开发一个在VAX750计算机上运行的应用程序,估计这个计算机上运行的应用程序,估计这个程序的长度为程序的长度为10 000条条FROTRAN指令,如果平均每人每指令,如果平均每人每天可以开发出天可以开发出10条条FORTRAN指令,请问:指令,请问:(1)开发这个应用程序将用多少人日?)开发这个应用程序将用多少人日?(2)假设程序员的月平均工资为)假设程序员的月平均工资为4000美元,每月按美元,每月按20个个工作日计算,这个软件的成本是多少美元?工作日计算,这个软件的成本是多少美元?(3)19
2、82年年VAX750计算机硬件价格约为计算机硬件价格约为125 000美元,美元,在那一年这个软件的成本在总成本中占多大比例?在那一年这个软件的成本在总成本中占多大比例?(4)20年后,一台性能远远优于年后,一台性能远远优于VAX750的微型计算机的的微型计算机的价格约为价格约为2000美元,这时软件开发生产率已提高到平均每美元,这时软件开发生产率已提高到平均每人可以开发出人可以开发出40条指令,而程序员的月平均工资也已涨到条指令,而程序员的月平均工资也已涨到8000美元。如果在美元。如果在2002年开发上述年开发上述FORTRAN应用程序,应用程序,则该软件的成本在总成本中占多大比例?则该软
3、件的成本在总成本中占多大比例? 解解: (1)10 000/10=1000(人日)(人日) 开发这个应用程序大约需用开发这个应用程序大约需用1000个人日。(此处的工作量包括问题个人日。(此处的工作量包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试等各个开发阶段的工作量,而不仅仅是编程的工作测试、综合测试等各个开发阶段的工作量,而不仅仅是编程的工作量。)量。)(2)每月平均工作)每月平均工作20天,故开发这个软件需要用天,故开发这个软件需要用 1000/20=50(人月)(人月)每人每月的平均工资为每人每
4、月的平均工资为4000美元,因此这个软件的成本大约为:美元,因此这个软件的成本大约为: 504000=200 000(美元)(美元)(3)软件成本与硬件成本之和为计算机系统的总成本。这个软件)软件成本与硬件成本之和为计算机系统的总成本。这个软件的成本在总成本中所占的比例为:的成本在总成本中所占的比例为: 200 000/(200 000+125 000)=61.5%(4)在)在2002年开发这个应用程序所需的工作量为年开发这个应用程序所需的工作量为 10 000/(40 20)=12.5(人月)(人月)这个软件的成本大约为这个软件的成本大约为12.5 8000=100 000(美元)(美元)该
5、软件的成本在总成本中所占的比例为该软件的成本在总成本中所占的比例为 100 000/(100 000+2000)=98%本章要点:本章要点: 可行性研究的任务、过程,系统流程图,数据流图,可行性研究的任务、过程,系统流程图,数据流图,数据字典,成本效益分析数据字典,成本效益分析本章难点:本章难点: 系统流程图,数据流图,数据字典系统流程图,数据流图,数据字典 所需时间:所需时间: 4学时学时目的:目的:用最小的代价在尽可能短的时间内研究并确定客户提出的用最小的代价在尽可能短的时间内研究并确定客户提出的 问题是否有行得通的解决办法。问题是否有行得通的解决办法。 必须分析几种主要的候选解法的利弊,
6、从而判断原定的系统必须分析几种主要的候选解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。投资开发这个系统的程度。 对每种可能的解决方案都应该仔细研究它的可行性,通常,至对每种可能的解决方案都应该仔细研究它的可行性,通常,至少从三个方面研究每种解法的可行性:少从三个方面研究每种解法的可行性: (1)技术可行性:)技术可行性:使用原有的技术能实现这个问题吗:使用原有的技术能实现这个问题吗: (2)经济可行性:)经济可行性:这个系统的经济效益能超过它的开发成本吗?这个系统的经济效益能
7、超过它的开发成本吗? (3)操作可行性:)操作可行性:这个系统的操作方式在该客户组织内行得通这个系统的操作方式在该客户组织内行得通 吗?吗? 根本任务:根本任务:对以后的行动方针提出建议。对以后的行动方针提出建议。 (若问题没有可行的解,分析员应建议停止开发工作,以避免时(若问题没有可行的解,分析员应建议停止开发工作,以避免时间、资源、人力、金钱的浪费;若问题值得解决,分析员应推荐间、资源、人力、金钱的浪费;若问题值得解决,分析员应推荐一个较好的解决方案,并为系统制定一个初步的开发计划。)一个较好的解决方案,并为系统制定一个初步的开发计划。)需要时间:需要时间:取决于工程的规模。取决于工程的规
8、模。成本:成本:预期的工程总成本的预期的工程总成本的5%10% 可行性研究实质是要进行一次大大压缩和简化了的系统分析和可行性研究实质是要进行一次大大压缩和简化了的系统分析和设计过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程。设计过程。 在进行可行性研究时,需要了解和分析现有的系统,并以概括在进行可行性研究时,需要了解和分析现有的系统,并以概括的形式表达对现有系统的认识;在可行性研究及设计阶段,需要把的形式表达对现有系统的认识;在可行性研究及设计阶段,需要把设想的新系统逻辑模型转变成物理模型,因此必须描绘未来的物理设想的新
9、系统逻辑模型转变成物理模型,因此必须描绘未来的物理系统的概貌。系统的概貌。 系统流程图是概括地描绘物理系统的传统工具,用图形符号以系统流程图是概括地描绘物理系统的传统工具,用图形符号以黑盒子形式描绘组成系统的每个具体部件。系统流程图表达的是数黑盒子形式描绘组成系统的每个具体部件。系统流程图表达的是数据在每个部件之间的流动情况,而不是对数据进行加工处理的控制据在每个部件之间的流动情况,而不是对数据进行加工处理的控制过程,因此,是物理数据流图而不是程序流程图。过程,因此,是物理数据流图而不是程序流程图。练习题练习题2:假设你在一所职业高中工作,负责该校信息系统的建设假设你在一所职业高中工作,负责该
10、校信息系统的建设与维护。财务科长请你研究用学校拥有的微型计算机生成工资名细与维护。财务科长请你研究用学校拥有的微型计算机生成工资名细表和各种财务报表的可能性。表和各种财务报表的可能性。请详细描述你用结构化分析方法分析上述问题过程。请详细描述你用结构化分析方法分析上述问题过程。可能性呢?询问财务科长后得知,该校一直由会计人员计算工资可能性呢?询问财务科长后得知,该校一直由会计人员计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。目前每并编制财务报表,随着学校规模扩大工作量也越来越大。目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且个月都需要两名会计紧张工作半个月才能完成,不
11、仅效率低而且成本高。今后学校规模将进一步扩大,人工计算工资的成本还会成本高。今后学校规模将进一步扩大,人工计算工资的成本还会进一步提高。进一步提高。 因此,目标是寻找一种比较便宜的生成工资明细表和各种财因此,目标是寻找一种比较便宜的生成工资明细表和各种财务报表的办法,并不一定必须在学校自己的计算机上实现工资支务报表的办法,并不一定必须在学校自己的计算机上实现工资支付系统。财务科长提出的要求,实际上并没有描述应该解决的问付系统。财务科长提出的要求,实际上并没有描述应该解决的问题,而是在建议一种解决问题的方案。这种解决方案可能是一个题,而是在建议一种解决问题的方案。这种解决方案可能是一个好办法,分
12、析员当然应该认真研究它,但是也还应该考虑其他可好办法,分析员当然应该认真研究它,但是也还应该考虑其他可能的解决方案,以便选出最好的方案。良好的问题定义应该明确能的解决方案,以便选出最好的方案。良好的问题定义应该明确地描述实际问题,而不是隐含地描述解决问题的方案。地描述实际问题,而不是隐含地描述解决问题的方案。 分析员应该考虑的另一个关键问题,是预期的项目规模。为分析员应该考虑的另一个关键问题,是预期的项目规模。为了改进工资支付系统最多可以花多少钱?虽然没人明确提出来,了改进工资支付系统最多可以花多少钱?虽然没人明确提出来,但是肯定会有某个限度。应该考虑但是肯定会有某个限度。应该考虑3个基本数字
13、:目前计算工资所个基本数字:目前计算工资所花费的成本,新系统的开发成本和和运行费用。新系统的运行费花费的成本,新系统的开发成本和和运行费用。新系统的运行费用必须低于目前的成本,而且节省的费用应该能使学校在一个合用必须低于目前的成本,而且节省的费用应该能使学校在一个合理的期限内收回开发新系统的投资。理的期限内收回开发新系统的投资。项目名称:项目名称:工资支付。工资支付。问题:目前计算工资和编制报表的费用太高。问题:目前计算工资和编制报表的费用太高。项目目标:研究开发费用较低的新工资支付系统的可能性。项目目标:研究开发费用较低的新工资支付系统的可能性。项目规模:开发成本应该不超过项目规模:开发成本
14、应该不超过7.2万元(万元( 50%)。)。初步设想:用学校自己的计算机系统生成工资明细表和财务报表。初步设想:用学校自己的计算机系统生成工资明细表和财务报表。可行性研究:为了更全面研究工资支付项目的可能性。建议进行可行性研究:为了更全面研究工资支付项目的可能性。建议进行 大约历时两周的可行性研究。这个研究的成本不超过大约历时两周的可行性研究。这个研究的成本不超过 4000元。元。”处理处理运行频率运行频率12345每月一次每月一次每月一次每月一次每月一次每月一次每月一次每月一次每月一次每月一次开发成本开发成本 人力(人力(4人月,人月,8000/人月)人月) 3.2万元万元 购买硬件购买硬件
15、 1.0万元万元 总计总计 4.2万元万元新系统的运行费用新系统的运行费用 人力和物资(人力和物资(250元元/月)月) 0.3万元万元/年年 维护维护 0.1万元万元 总计总计 0.4万元万元现有系统的运行费用现有系统的运行费用 2.4万元万元/年年每年节省的费用每年节省的费用 2.0万元万元 年年 节省节省 现在值(以现在值(以5%计算)计算) 累计现在值累计现在值 1 20 000元元 19 047.62元元 19 047.62元元 2 20 000元元 18 181.82元元 37 229.44元元 3 20 000元元 17 241.38元元 54 470.82元元 投资回收期投资回
16、收期 2.28年年 纯收入纯收入 12 470.82元元 阶段阶段 需用的时间(月)需用的时间(月) 可行性研究可行性研究 0.5 需求分析需求分析 1.0 概要设计概要设计 0.5 详细设计详细设计 1.0 实现实现 2.0 总计总计 5.0定义定义 是一种图形化技术,描绘信息流和数据从流入移动到输出的过程是一种图形化技术,描绘信息流和数据从流入移动到输出的过程中所经受的变换。中所经受的变换。数据流图是系统逻辑功能的图形表示,图中没有任何具体的物理数据流图是系统逻辑功能的图形表示,图中没有任何具体的物理部件,仅描绘数据在软件中流动和被处理的逻辑过程,不懂计算部件,仅描绘数据在软件中流动和被处理的逻辑过程,不懂计算机技术的人也容易理解它,因此是分析员与用户之间极好的通信机技术的人也容易理解它,因此是分析员与用户之间极好的通信工具。工具。设计数据流图时只需考虑系统必须完成的基本逻辑功能,不需考设计数据流图时只需考虑系统必须完成的基本逻辑功能,不需考虑如何具体实现这些功能。虑如何具体实现这些功能。数据输入的源点或数据输出的汇点数据输入的源点或数据输出的汇点 对数据的加工、变形、处理后产生输