软件工程第二章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.推荐行动方针
通过仔细的成本/效益分析决定是否继续此开发工程。
7.草拟开发计划
制定工程进度表、估计对各类开发人员和各种资源的需要情况、 指明使用日期和时间段、估计系统生命周期每个阶段的成本、给 出需求分析的详细进度表和成本估计。
8.书写文档提交审查
是是否继续这项工程及是否接受分析员推荐的方案的资料。
练习题1:美国一家公司在1982年计划用FORTRAN语言 开发一个在VAX750计算机上运行的应用程序,估计这个 程序的长度为10 000条FROTRAN指令,如果平均每人每 天可以开发出10条FORTRAN指令,请问:
(1)开发这个应用程序将用多少人日?
(2)假设程序员的月平均工资为4000美元,每月按20个 工作日计算,这个软件的成本是多少美元?
100 000/(100 000+2000)=98%
第2章 可行性研究
本章要点:
可行性研究的任务、过程,系统流程图,数据流图, 数据字典,成本效益分析
本章难点:
系统流程图,数据流图,数据字典
所需时间:
4学时
传统的软件工程方法学采用结构化分析技术完成系 统分析(问题定义、可行性研究、需求分析)的任务
通过反复询问财务人员,可以知道现有的人工系统计算工资和 编制报表的流程如下:接到课时表和任务表后,首先审核这些数 据,然后把审核后的数据按教职工编号排序并抄到专用的表格上, 该表格预先印有教职工编号、姓名、职务、职称、基本工资、生 活补贴、书报费、交通费、洗理费等数据。接下来根据当月课时 数或完成承包任务情况,计算课时费和岗位津贴。算出每个人的 工资总额后,再计算应该扣除的个人所得税,应交纳的住房公积 金和保险费,最后算出每个人当月的实发工资数。把算出的上述 各项数据登记到前述的专用表格上,就得到了工资明细表。然后 对数据进行汇总,编制出各种财务报表,而工资表不过是简化的 工资明细表,它只包含工资明细表中的教职工编号、姓名和实发
工资3项内容。下图2系统流程图描绘了现有的人工工资支付系统 的工作流程。
教师 职工
课时表 任务表
审核数 据
审核后 的数据
排序
计算课
计算个人所 计算工资
时费
得税
总额
计算岗位
津贴
计算住房公 积金
计算保险 费
计算实发 工资
工资表
报表
编制报表
工资明细表
专用表格 银行
更新分类
帐
教师 职工
分类帐 会计
图2
必须请有关人士仔细审查系统流程图,有错误及时纠正,有遗漏
优秀的系统分析员还应该进一步考虑,用户面临的问题究竟是什 么。财务科长为什么想研究在自己的计算机上实现工资支付系统的
可能性呢?询问财务科长后得知,该校一直由会计人员计算工资 并编制财务报表,随着学校规模扩大工作量也越来越大。目前每 个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且 成本高。今后学校规模将进一步扩大,人工计算工资的成本还会 进一步提高。
因此,目标是寻找一种比较便宜的生成工资明细表和各种财 务报表的办法,并不一定必须在学校自己的计算机上实现工资支 付系统。财务科长提出的要求,实际上并没有描述应该解决的问 题,而是在建议一种解决问题的方案。这种解决方案可能是一个 好办法,分析员当然应该认真研究它,但是也还应该考虑其他可 能的解决方案,以便选出最好的方案。良好的问题定义应该明确 地描述实际问题,而不是隐含地描述解决问题的方案。
及时补充。 ③导出高层逻辑模型 系统流程图很好地描绘了具体的系统,但在这样的图中把“做什么
和“怎样做”这两类不同范畴的知识混在了一起,我们的目标不是 一成不变地复制现有的人工系统,而是开发一个完成同样功能的新 系统,因此,应这种描绘系统的逻辑功能。
删除图2中表示的有关具体实现方法的信息,把它抽象成图3。在这 张数据流图中用“事务数据”代表课时和任务表中包含的数据,用 “加工事务数据”笼统地代表计算课时费、岗位津贴、工资总额、 个人所得税、住房公积金、保险费、实发工资等一系列功能。这张 数据流图描绘的是系统高层逻辑模型,在可行性研究阶段还不需要 考虑完成“加工事务数据” 功能的具体算法,因此没必要把它分成 一系列更具体的数据处理功能。
为了请客户(会计科和学校校长)检验分析员对需要解决的问
题和项目规模的认识是否正确,以便在双方达成共识的基础上开发 出确实能满足用户实际需要的新系统,典型地,分析员用一份简短 的书面备忘录表达他对问题的认识,这份文档称为“关于系统规模 和目标的报告书”
关于工资支付系统规模和目标的报告书
项目名称:工资支付。 问题:目前计算工资和编制报表的费用太高。 项目目标:研究开发费用较低的新工资支付系统的可能性。 项目规模:开发成本应该不超过7.2万元(± 50%)。 初步设想:用学校自己的计算机系统生成工资明细表和财务报表。 可行性研究:为了更全面研究工资支付项目的可能性。建议进行
分析员应该考虑的另一个关键问题,是预期的项目规模。为 了改进工资支付系统最多可以花多少钱?虽然没人明确提出来, 但是肯定会有某个限度。应该考虑3个基本数字:目前计算工资所 花费的成本,新系统的开发成本和和运行费用。新系统的运行费 用必须低于目前的成本,而且节省的费用应该能使学校在一个合 理的期限内收回开发新系统的投资。
解:
(1)10 000/10=1000(人日) 开发这个应用程序大约需用1000个人日。(此处的工作量包括问题 定义、可行性研究、需求分析、总体设计、详细设计、编码和单元 测试、综合测试等各个开发阶段的工作量,而不仅仅是编程的工作 量。) (2)每月平均工作20天,故开发这个软件需要用
1000/20=50(人月) 每人每月的平均工资为4000美元,因此这个软件的成本大约为:
对每种可能的解决方案都应该仔细研究它的可行性,通常,至 少从三个方面研究每种解法的可行性: (1)技术可行性:使用原有的技术能实现这个问题吗: (2)经济可行性:这个系统的经济效益能超过它的开发成本吗? (3)操作可行性:这个系统的操作方式在该客户组织内行得通
吗?
根本任务:对以后的行动方针提出建议。
教师
课时表 任务表
工资支付系统
工资表 工资明细表
银行 教师
职工
职工
图1
处理工资事务的大致过程是,每月月末教师把他们当月实际授 课时数登记在课时表上,由个系汇总后交给财务科,职工把他们 当业完成承包任务的情况登记在任务表上,汇总后交给财务科。 两名会计根据这些原始数据计算每名教职工的工资,编制工资表、 工资明细表和财务报表。然后,把记有每名教职工工资总额的工 资表报送银行,由银行把钱打到每名职工的工资存折上,同时把 工资明细表发给每名教职工。
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(美元) 该软件的成本在总成本中所占的比例为
1.复查系统规模和目标
为了确保分析员正在解决的问题确实是要求他解决的问题。
2.研究目前正在使用的系统
了解现有系统能做什么,而不是怎样做这些工作。
3.导出新系统的高层Fra Baidu bibliotek辑模型
从逻辑模型出发设计新系统。
4.进一步定义问题
使提出的逻辑模型完全符合系统目标。
5.导出和评价供选择的解法
为每个在技术、操作和经济等方面都可行的系统制定实现进度表。
2.3 系统流程图
在进行可行性研究时,需要了解和分析现有的系统,并以概括 的形式表达对现有系统的认识;在可行性研究及设计阶段,需要把 设想的新系统逻辑模型转变成物理模型,因此必须描绘未来的物理 系统的概貌。
系统流程图是概括地描绘物理系统的传统工具,用图形符号以 黑盒子形式描绘组成系统的每个具体部件。系统流程图表达的是数 据在每个部件之间的流动情况,而不是对数据进行加工处理的控制 过程,因此,是物理数据流图而不是程序流程图。
①澄清系统规模和目标 为了确保一个正确的出发点着手进行可行性研究,首先通过访 问财务科长和校长进一步验证上一阶段写出的“关于工资支付系 统规模和目标的报告书”正确性。 通过访问分析员对人工计算工资存在的弊端有了更具体的认识, 并且了解到工资总数应该记入分类和日记帐,显然,新工资支付 系统不能忽略与分类帐系统的联系。 ② 研究现有的系统 了解任何应用领域的最快速有效的方法,可能都是研究现有的 系统。通过访问具体处理工资事务的两名会计,可以知道处理工 资事务的大致过程。开始时把工资支付系统先看作一个黑盒子, 下图1的系统流程图描绘了处理工资事务的大致过程。
大约历时两周的可行性研究。这个研究的成本不超过 4000元。
校长和财务科经过研究同意了上述报告书,可以对工资支付项目 进行更仔细的研究了。 (2)可行性研究
可行性研究是抽象和简化了的系统分析和设计的全过程,它的目 标是用最小代价尽快确定问题是否能够解决,以避免盲目投资开来 带来的巨大浪费。
本项目的的可行性研究过程由以下步骤组成:
在图3中处理框“更新分类帐”虽然不属于本系统应完成的功能, 但工资支付系统至少必须和“更新分类帐”所在的系统通信,因此 搞清它们之间的接口要点是很重要的。
在数据流图上直接注明关键的定时假设很有必要。在以后的设计中
将起到重要作用,也可增加及时发现和纠正误解的可能性。
结构化分析技术主要要点: 1.采用自顶向下功能分解的方法; 2.强调逻辑功能而不是实现功能的具体方法; 3.使用图形(最主要是数据流图)进行系统分析并 表达分析的结果。
2.1 可行性研究的任务
目的:用最小的代价在尽可能短的时间内研究并确定客户提出的
问题是否有行得通的解决办法。
必须分析几种主要的候选解法的利弊,从而判断原定的系统 目标和规模是否现实,系统完成后所能带来的效益是否大到值得 投资开发这个系统的程度。
练习题2:假设你在一所职业高中工作,负责该校信息系统的建设
与维护。财务科长请你研究用学校拥有的微型计算机生成工资名细
表和各种财务报表的可能性。
请详细描述你用结构化分析方法分析上述问题过程。
答:通常结构化分析过程包括问题定义、可行性研究和需求分析3 个阶段。这3个阶段的分析过程为: (1)问题定义
从何处着手解决财务科长提出的问题呢?立即开始考虑实现工资 支付系统的详细方案并动手编写程序,对技术人员无意是很有吸引 力的。但是,在这样的早期阶段就考虑具体的技术问题,却很可能 会使我们迷失前进的方向。会计部门(用户)并没有要求在学校自 己的计算机上实现工资支付系统,仅仅要求研究这样这样做的可能 性。后者是和前者很不相同的问题,它实际上是问,这样做预期将 获得的经济效益能超过开发这个系统的成本吗?也就是说,这样做 值得吗?
(若问题没有可行的解,分析员应建议停止开发工作,以避免时 间、资源、人力、金钱的浪费;若问题值得解决,分析员应推荐 一个较好的解决方案,并为系统制定一个初步的开发计划。)
需要时间:取决于工程的规模。
成本:预期的工程总成本的5%~10%
2.2 可行性研究的过程
可行性研究实质是要进行一次大大压缩和简化了的系统分析和 设计过程,也就是在较高层次上以较抽象的方式进行的系统分析和 设计过程。
目前,每个月由两名会计用半个月时间计算工资和编制报表, 一名会计每个月的工资和岗位津贴工约2000元,因此,每年为此项 工作花费的人工费约2.4万元。显然,任何新系统的运行费用也不 可能减少到小于零,因此,新系统每年最多可能获得的经济效益是 2.4万元。
为了每年能节省2.4万元投资多少钱是可以接受的呢?绝大多数 单位都希望在3年内收回投资,因此,7.2万元可能是投资额的一个 合理的上限值。虽然是一个很粗略的数字,但是它确实能使用户对 项目规模有一些了解。
(3)1982年VAX750计算机硬件价格约为125 000美元, 在那一年这个软件的成本在总成本中占多大比例?
(4)20年后,一台性能远远优于VAX750的微型计算机的 价格约为2000美元,这时软件开发生产率已提高到平均每 人可以开发出40条指令,而程序员的月平均工资也已涨到 8000美元。如果在2002年开发上述FORTRAN应用程序, 则该软件的成本在总成本中占多大比例?