软件工程实验内容
- 格式:doc
- 大小:603.00 KB
- 文档页数:41
传统软件工程实验内容
项目- 1 软件项目计划
本项目学习目标
本项目是传统软件工程的计划阶段。通过本项目的学习,使学生理解系统所要解决的问题并给出系统定义,掌握可行性研究的内容和步骤,在掌握系统流程图建立技术的基础上画出系统流程图,在经济可行性分析的基础上培养学生掌握成本/效益分析的能力。
阅读本项目后,应具备如下能力:
弄清系统所要解决的问题并给出系统定义
认识到可行性研究的必要性
能准确阐述可行性研究的内容
熟练掌握可行性研究的步骤
掌握系统流程图建立的技术并能画出系统流程图
熟练掌握成本/效益分析的能力
本项目学习要点
系统目标与范围的说明
可行性研究的内容与步骤
成本效益分析
撰写可行性研究报告
任务1 问题定义
需解决的主要问题
你知道软件开发第一个阶段最主要的任务是什么吗?那就是要弄清用户需要计算机解决问题的根本所在,以及项目所需的资源和经费。你知道具体这阶段完成后要生成一个什么样的文档及怎么书写这个文档吗?完成本任务后你自然就知道了。
任务目标
学生能独立撰写系统目标与范围的说明书。
完成任务的途径
通过一个教材购销系统的简单实例,来说明如何给出系统的需求陈述,并通过这一实例的系统目标与范围的说明书来阐述这一文档的书写方法。问题定义(Problem Definition)是计划时期的第一个阶段。其目的是弄清用户需要计算机解决的问题根本所在,以及项目所需的资源和经费。该阶段的主要任务是在向用户调查的基础上,编写一个叫做“系统目标与范围的说明”(Statement of Scope and Objectives)的文档。这个说明经用户同意后,就可作为下一步工作—— 可行性研究的依据。上述说明书中的第2、3两项是密切相关的,只有清楚地了解当前工作中存在的问题,才能深刻理解用户对新系统的目标。多数用户因受到计算机知识的限制,难于准确和恰如其分地提出新系统的目标。为了弥补这一不足,分析员除要认真听取用户代表的介绍外,还应通过阅读资料、现场观察、甚至亲自参加操作等方法,尽快弄清要解决问题的领域和环境,避免因一知半解,把次要和表面的问题误作为用户要解决的根本问题。项目范围应指出解决这一项目所需的投资范围。在问题定义阶段,对投资的估计当然是粗略的,但至少能使用户心中有数。在可行性研究阶段,对项目的目标与范围还允许修改。说明书应由用户和分析员共同审查,并对含糊不清及分析员理解错误的地方逐项进行修改。如果用户和分析员一致同意说明书的内容,且同意把工作继续下去,就可以转入下一个阶段—— 可行性研究了。
任务2 可行性研究
你知道一个项目是不是值得开发应该从哪些方面进行研究吗?要想进行这些可行性研究就得先研究当前系统的工作流程,你知道要建立什么模型吗?要从经济上可行就得进行成本效益分析,那么如何进行分析呢?可行性研究的步骤是什么呢?要想知道这些就必须得完成此任务。
需解决的主要问题
可行性研究的重要意义
系统流程图
成本效率分析
可行性研究的内容与方法
可行性研究的步骤及相关技术
任务目标
熟知可行性研究的重要性。
完成任务的途径
通过身边的例子来说明软件开发可行性研究的重要性,同时提出可行性研究有经济可行性、组织上的可行性、社会可行性、法律可行性及进度计划的可行性等研究。
活动1 可行性研究的重要性
可行性研究是抽象和简化了的系统分析和设计的全过程,它的目标是用最小代价尽快确定问题是否能够解决,以避免盲目投资带来的巨大浪费。
无论做任何一件事情都要进行可行性研究,如是没有研究可行性就盲目地去做,那么事情成功的可能性就难以预料。
例如,对于孩子的培养问题,家长不能擅自给孩子定方向,如让孩子唱歌,可孩子不具备这个天赋,即使下再大的功夫最终也还是以失败而告终,这是技术可行性不充分;有的人认为做买卖能赚钱,拿着自己家仅有的生活费去做买卖,可到头来血本未归,这也说明了技术上是不可行的。有人想发财,认为贩毒能赚钱,结果蹲进了监狱做了牢,这在法律上是不可行的;有人认为某个项目能赚钱,就是缺少资金支持,结果虽说有能力、有技术赚到钱,但没有钱也做不成,这在经济上是不可行的。社会上出现了许多不合理或是不和谐的事情,如果制定一条法律,对于违反法律的人要给予严惩,但这可能会造成运行上的不可行。对于一个软件也是如此,如要开发一个软件也一定要研究其经济上的可行性,软件开发需要多少投资,多长时间能收回成本,最后能取得多少经济效益,是我们在开发这个软件前必须要考虑的问题。此外还要研究技术上的可行性、组织上的可行性、社会可行性、法律可行性及进度计划的可行性等。 活动2 系统流程图
活动内容
系统流程图的概念
系统流程图使用的图形符号
系统流程图的作用
系统流程图的正确画法举例
活动目标
学生能正确地画出系统流程图
1. 系统流程图的概念
系统流程图是用来描述系统物理模型的一种传统工具。在进行可行性研究时需要了解和分析现有的系统,并以概括的形式表达对现有系统的认识。系统流程图的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,人工过程等),表达的是部件的信息流程。
2. 系统流程图的作用
系统流程图的作用可以概括如下:
(1)建立系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作进一步分析的依据。
(2)系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。
(3)系统分析员可直接在系统流程图上模拟出可以实现计算机处理的部分。
(4)可利用系统流程图来分析业务流程的合理性。
== 活动小结==
主要阐述了系统流程图的概念,系统流程图在软件开发中的位置及重要作用,它所使用的图形符号,它是建立当前系统物理模型的主要工具,在传统的软件开发方法中,通过当前系统的系统流程图可以导出软件需求分析的数据流图,从而建立主要的分析模型。
活动3 成本-效益分析
活动内容
在可行性分析过程中,最为重要的是经济可行性,而经济可行性的研究中最为重要的是进行成本效益分析,本活动就是为解决此问题展开的。
活动目标
学生能够对一个要开发的软件进行成本估计,再进行收益的分析,最后给出成本——效益分析。
学生能独立完成软件成本估计、投资回收期的计算、投资回收率的计算及纯收入的计算。
完成活动的途径
首先提出系统成本的估计方法,说明系统成本包括有形成本和无形成本两部分,然后进行软件开发成本的估计,接下来进行效益分析,最后给出投资回收期、投资回收率及纯收入的计算。 1. 系统成本
通过估计新系统所需的成本和可能产生的效益,便可从经济上衡量这个项目的开发价值。这一分析在可行性研究中占有重要的地位。
系统成本包括开发成本,同时也包括运行维护成本。后者包括使用中的物资消耗,占用的操作和维护人员数量,以及围绕这一项目的人员训练等费用。在计划时期,对成本的计算只能是估计值。估算的方法在本活动中给出。
2. 软件成本估计
为了使开发项目能够在规定时间内完成且不超过预算,成本估计和管理是关键。成本估计是软件费用管理的核心,也是软件工程管理中最困难、最易出错的问题之一。1974年,wolverton把成本估计方法分为5种,在Boehm在他的著作中,进一步把它们分为7种。本书把主要的成本估计方法归并为“自顶向下估计”、“自底向上估计”和“算法模型(algorithmic
model)估计”三类,下文将依次介绍前两种方法并举例加以说明,对于第三种方法将在项目-10中介绍。
成本估计使用的方法
R.W.Wolverton B.W.Boehm
自顶向下成本估计
自底向上成本估计
相似与差异估计法
比率估计法
标准值估计法 自顶向下成本估计
自底向上成本估计
类别估计
专家判断
算法模型估计
Parkinson法
削价取胜法
(1)自顶向下成本估计
这类方法着眼于软件的整体。首先估算出总的开发成本,然后在项目内部进行成本分配。因这类估计通常仅由少数上层(技术与管理)人员参加,所以属于“专家判断”的性质。这些专家依靠从前的经验,把将要开发的软件与过去开发过的软件进行“类比”,借以估计新的开发所需要的工作量和成本。
自顶向下估计的缺点是,对开发中某些局部的问题或特殊困难容易低估,甚至没有考虑到。如果所开发的软件缺乏可以借鉴的经验,在估计时就可能出现较大的误差。
当参加估计的专家人数较多时,可采用特尔斐(Delphi)法来汇集他们的意见。特尔斐法的传统作法是:把系统定义文件或规格说明发给各位专家,各自单独进行成本估计,填入成本估计表。然后由协调人综合专家意见,将摘要通知大家,并开始新的一轮估计。这种估计要反复多次,直到专家们的意见接近一致为止。
特尔斐法的指导思想是:①用各自填表代替相互讨论。这样既避免了对立意见的直接交锋,又可保持各专家独立发表意见;②对个别专家与众不同的估计,协调人应单独与之讨论,并请他说明理由。也有人主张,对于重大的分歧,必要时可召集专家们开会讨论,但不要公开对立双方的姓名。
(2)自底向上成本估计
与自顶向下估计相反,自底向上估计不是从整体开始,而是从一个个任务单元开始,其具体作法是,先将开发任务分解为许多子任务,子任务又分成子子任务,直到每一任务单元的内容都足够明确为止。然后把各个任务单元的成本估计出来,汇合成项目的总成本。由于各任务单元的成本可交给该任务的开发人员去估计,得出的结果通常比较实际。
这种方法也有缺点。由于具体工作人员往往只注意到自己范围内的工作,对综合测试、质量管理和项目管理等涉及全局的花费可能估计不足,甚至完全忽视。因此,就会有可能使成本估计偏低。
(3)算法模型估计
算法模型就是资源模型,是成本估计的又一有效工具。由于任何资源模型都是根据历史数据导出的,所以比较客观,计算结果的重复性也好,即不论什么时候使用模型,都能得出同样的结果。
算法模型估计的关键是要选好适用的模型。模型估计法常与自顶向下估计或自底向上估计结合使用。这部分内容将在项目-10中讨论。
3. 货币的时间价值计算
分析员在进行成本/效益分析的时候必须认识到,投资是现在进行的,效益是将来获得的。因此,不能简单地比较成本和效益,应该考虑货币的时间价值。
通常用利率的形式表示货币的时间价值。假设年利率为λ,如果存入银行P元,则n年后可以得到的钱数为:
nPF1
这也就是P元钱在n年后的价值。反之,如果n年后能收入F元钱,那么这些钱的现在价值是:
nFP1/
4. 投资回收期与投资回收率的计算
投资回收期是衡量一个开发工程价值的经济指标。投资回收期就是积累的经济效益等于最初的投资所需要的时间。投资回收期越短,就能越快获得利润。因此,这项工程也就越值得投资。
5. 纯收入的计算
工程的纯收入是衡量工程价值的另一项经济指标。纯收入就是在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。
活动4 可行性研究的内容
活动内容:
主要讲述软件开发的投资必要性、技术可行性、组织可行性、经济可行性、社会可行性、开发方案的可行性和法律上的可行性