软件工程导论——第二章——可行性研究

本文详细介绍了软件工程中可行性研究的目的、任务和过程,强调了其在确定问题解决可能性中的关键作用。同时,讲解了系统流程图、数据流图(DFD)及其相关符号,以及数据字典的定义、内容和用途。此外,重点阐述了成本/效益分析的目的、方法,用于评估新系统开发的经济合理性。通过成本估计和效益计算,帮助决策者确定是否投资开发项目。
摘要由CSDN通过智能技术生成

软件工程导论——第二章

1、可行性研究的目的

并非任何问题都有简单明显的解决办法,事实上, 许多问题不可能在预订的系统规模或时间期限之内解决。如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无畏的浪费,可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能解决。

2、可行性研究的任务

  1. 对以后的行动方针提出建议。(看是否有可行解,没有就停止该工程,值得解,就推荐一个较好的解决方案,并制定初步的计划)
  2. 必须分析几种主要的候选法的利弊,从而判定原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度
  3. 对每种可能的解决方案都应该仔细研究它的可行性,通常从下述三个方面研究美中解决方案的可行性:
    1. 技术可行性:使用现有的技术能否实现这个系统;
    2. 经济可行性:这个系统的经济效益是否超过它的开发成本;
    3. 操作可行性:这个系统的操作方式在该客户组织内是否行得通;

3、可行性研究的过程

可行性研究的一般步骤:

  1. 复查系统规模和目标(确保分析员正在解决的问题确实是他要解决的问题)
  2. 研究目前正在使用的系统
  3. 导出新系统的高层逻辑模型
  4. 进一步定义问题
  5. 导出和评价供选择的解法
  6. 推荐行动方针
  7. 草拟开发计划
  8. 书写文档提交审查

4、系统流程图

1、定义

系统流程图是概括地描述物理系统的传统工具

2、基本思想

用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。程序流程图表达的是数据在系统各部件之间的流动的情况,而不是对数据进行加工处理的控制过程,因此,尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物流数据流图而不是程序流程图

3、符号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、数据流图(DFD)

1、定义

数据流图(DFD)是一种图形化技术。它描绘信息流数据从输入移动到输出的过程所经受的变换.

2、特点

  • 数据流图没有具体的物理部件,只是描绘数据在软件中流动和被处理的逻辑过程。
  • 数据流图是系统逻辑功能的图形表示,是分析员和用户之间极好的通信工具。
  • 设计师只需考虑系统必须完成的基本逻辑功能,不考虑怎么具体地实现这些功能。

3、符号

  • 正方形(或立方体):表示数据的源点和终点
  • 圆角矩形(会圆形):代表变换数据的处理
  • 开口矩形(或两条平行线):代表数据存储
  • 箭头:表示数据流,即特定数据的流动方向

其中*表述数据流之间是与关系;+表示或关系,

4、 注意事项

  • 在数据流图中应该描绘所有的数据流向,而不应该出现某个数据流的文件
  • 一个处理框可以代表一系列程序,单个程序或程序的一个模块
  • 一个数据存储可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等
  • 数据存储是处于静止状态的数据,数据流是处于运动中的数据
  • 通常在数据流图中忽略出错的处理
  • 表示数据的源点和终点相同的方法是再重复画一个同样的符号表示数据的终点
  • 代表同一事务的符号出现n个地方,在这个符号的角上画(n-1)条短斜线做标记

6、数据字典

1、定义:

数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。它的租用是在软件分析和设计的过程中给人提供关于数据的描述信息。

2、意义:

数据流图和数据字典公共构成系统的逻辑模型,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难以发挥作用。只有数据流图和对数据流图中的每个元素的精确定义放在一起,才能共同构成系统的规格说明。

3、内容:

  1. 数据流
  2. 数据流分量,即数据元素
  3. 数据存储
  4. 处理

4、数据元素的别名就是该元素的其他等价的名字,出现别名的原因:

  1. 对于同样的数据,不同的用户用了不同的名字
  2. 一个分析员在不同使其对同一个数据使用了不同的名字
  3. 两个分析员分别分析同一个数据流时,使用了不同的名字

注意:虽然应该尽量减少出现别名,但是不可能完全消除别名

5、定义数据的方法

定义绝大多数复杂事物的方法,都是用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。
(1)数据元素组成数据的方式
①顺序即以确定次序连接两个或多个分量;

②选择即从两个或多个可能的元素中选取一个;

③重复即把指定的分量重复零次或多次;

④可选即一个分量是可有可无的(重复零次或一次)。

(2)数据元素组成数据的符号表示
①=意思是等价于(或定义为);②+意思是和(即连接两个分量);

③门]意思是或(即从方括弧内列出的若干个分量中选择一个);

④│意思是隔开供选择的分量;
⑤{}意思是重复(即重复花括弧内的分量);
⑥()意思是可选(即圆括弧里的分量可有可无)。
⑦使用上限和下限进一步注释表示重复的花括弧,例如: 51{A}和1{A}5含义相同。

6、数据字典的用途

  1. 作为分析阶段的工具
  2. 数据字典中包含的每个数据元素的控制信息是很有价值的
  3. 数据字典是开发数据库的第一步,而且是很有价值的一步

7、成本/效益分析

1、目的

成本/效益分析的目的是从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确的做出是否投资于这项开发工程的决定。

2、成本估计的方法

  1. 代码行技术
    代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。根据经验和历史数据估计实现一个功能需要的源程序行数。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。
  2. 任务分解技术
    1. 方法步骤:
      1. 把软件开发工程分解为若干个相对独立的任务
      2. 分别估计每个单独的开发任务的成本,先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本
      3. 最后累加起来得出软件开发工程的总成本
    2. 划分规则
      最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。
  3. 自动估计成本技术
    采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。

3、成本/效益的分析方法

1、方法步骤
  1. 估计开发成本、运行费用和新系统将带来的经济效益
    1. 运行费用取决于系统的操作费用和维护费用
    2. 系统的经济效益等于因使用新系统而增加的输入加上新系统可以节省的运行费用
    3. 在进行成本/效益分析时一律假设生命周期为5年
  2. 比较新系统的开发成本和经济效益,以便从经济角度判断这个系统是否值得投资。但是,投资是现在进行的,效益是将来的,不能简单地比较成本和效益,应该考虑货币的时间价值。
2、影响经济效益的因素:
  1. 货币的时间价值

    通常用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入Р元,则n年后可以得到的钱数为;
    F=P(1+i) ^ n
    这也就是Р元钱在n年后的价值。反之,如果n年后能收入F元钱,那么这些钱的现在价值是:
    P=F/(1+i) ^ n

  2. 投资回收期

  3. 纯收入

  4. 投资回收率

  5. 计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。
    P= F/(1+j)1+F2/(1+j)2+…+F。/(1+j^n
    其中,Р是现在的投资额;F是第i年年底的效益(i=1,2,…,n);n是系统的使用寿命; j是投资回收率。n一般取5

  1. 计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。
    P= F/(1+j)1+F2/(1+j)2+…+F。/(1+j^n
    其中,Р是现在的投资额;F是第i年年底的效益(i=1,2,…,n);n是系统的使用寿命; j是投资回收率。n一般取5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

允谦呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值