当前位置:网站首页>软件工程导论——第二章——可行性研究
软件工程导论——第二章——可行性研究
2022-06-24 06:52:00 【允谦呀】
软件工程导论——第二章
文章目录
1、可行性研究的目的
并非任何问题都有简单明显的解决办法,事实上, 许多问题不可能在预订的系统规模或时间期限之内解决。如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无畏的浪费,可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能解决。
2、可行性研究的任务
- 对以后的行动方针提出建议。(看是否有可行解,没有就停止该工程,值得解,就推荐一个较好的解决方案,并制定初步的计划)
- 必须分析几种主要的候选法的利弊,从而判定原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度
- 对每种可能的解决方案都应该仔细研究它的可行性,通常从下述三个方面研究美中解决方案的可行性:
- 技术可行性:使用现有的技术能否实现这个系统;
- 经济可行性:这个系统的经济效益是否超过它的开发成本;
- 操作可行性:这个系统的操作方式在该客户组织内是否行得通;
3、可行性研究的过程
可行性研究的一般步骤:
- 复查系统规模和目标(确保分析员正在解决的问题确实是他要解决的问题)
- 研究目前正在使用的系统
- 导出新系统的高层逻辑模型
- 进一步定义问题
- 导出和评价供选择的解法
- 推荐行动方针
- 草拟开发计划
- 书写文档提交审查
4、系统流程图
1、定义
系统流程图是概括地描述物理系统的传统工具
2、基本思想
用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。程序流程图表达的是数据在系统各部件之间的流动的情况,而不是对数据进行加工处理的控制过程,因此,尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物流数据流图而不是程序流程图
3、符号



5、数据流图(DFD)
1、定义
数据流图(DFD)是一种图形化技术。它描绘信息流和数据从输入移动到输出的过程所经受的变换.
2、特点
- 数据流图没有具体的物理部件,只是描绘数据在软件中流动和被处理的逻辑过程。
- 数据流图是系统逻辑功能的图形表示,是分析员和用户之间极好的通信工具。
- 设计师只需考虑系统必须完成的基本逻辑功能,不考虑怎么具体地实现这些功能。
3、符号
- 正方形(或立方体):表示数据的源点和终点
- 圆角矩形(会圆形):代表变换数据的处理
- 开口矩形(或两条平行线):代表数据存储
- 箭头:表示数据流,即特定数据的流动方向
其中*表述数据流之间是与关系;+表示或关系,
4、 注意事项
- 在数据流图中应该描绘所有的数据流向,而不应该出现某个数据流的文件
- 一个处理框可以代表一系列程序,单个程序或程序的一个模块
- 一个数据存储可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等
- 数据存储是处于静止状态的数据,数据流是处于运动中的数据
- 通常在数据流图中忽略出错的处理
- 表示数据的源点和终点相同的方法是再重复画一个同样的符号表示数据的终点
- 代表同一事务的符号出现n个地方,在这个符号的角上画(n-1)条短斜线做标记
6、数据字典
1、定义:
数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。它的租用是在软件分析和设计的过程中给人提供关于数据的描述信息。
2、意义:
数据流图和数据字典公共构成系统的逻辑模型,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难以发挥作用。只有数据流图和对数据流图中的每个元素的精确定义放在一起,才能共同构成系统的规格说明。
3、内容:
- 数据流
- 数据流分量,即数据元素
- 数据存储
- 处理
4、数据元素的别名就是该元素的其他等价的名字,出现别名的原因:
- 对于同样的数据,不同的用户用了不同的名字
- 一个分析员在不同使其对同一个数据使用了不同的名字
- 两个分析员分别分析同一个数据流时,使用了不同的名字
注意:虽然应该尽量减少出现别名,但是不可能完全消除别名
5、定义数据的方法
定义绝大多数复杂事物的方法,都是用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。
(1)数据元素组成数据的方式
①顺序即以确定次序连接两个或多个分量;
②选择即从两个或多个可能的元素中选取一个;
③重复即把指定的分量重复零次或多次;
④可选即一个分量是可有可无的(重复零次或一次)。
(2)数据元素组成数据的符号表示
①=意思是等价于(或定义为);②+意思是和(即连接两个分量);
③门]意思是或(即从方括弧内列出的若干个分量中选择一个);
④│意思是隔开供选择的分量;
⑤{}意思是重复(即重复花括弧内的分量);
⑥()意思是可选(即圆括弧里的分量可有可无)。
⑦使用上限和下限进一步注释表示重复的花括弧,例如: 51{A}和1{A}5含义相同。
6、数据字典的用途
- 作为分析阶段的工具
- 数据字典中包含的每个数据元素的控制信息是很有价值的
- 数据字典是开发数据库的第一步,而且是很有价值的一步
7、成本/效益分析
1、目的
成本/效益分析的目的是从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确的做出是否投资于这项开发工程的决定。
2、成本估计的方法
- 代码行技术
代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。根据经验和历史数据估计实现一个功能需要的源程序行数。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。 - 任务分解技术
- 方法步骤:
- 把软件开发工程分解为若干个相对独立的任务
- 分别估计每个单独的开发任务的成本,先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本
- 最后累加起来得出软件开发工程的总成本
- 划分规则
最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。
- 方法步骤:
- 自动估计成本技术
采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。
3、成本/效益的分析方法
1、方法步骤
- 估计开发成本、运行费用和新系统将带来的经济效益
- 运行费用取决于系统的操作费用和维护费用
- 系统的经济效益等于因使用新系统而增加的输入加上新系统可以节省的运行费用
- 在进行成本/效益分析时一律假设生命周期为5年
- 比较新系统的开发成本和经济效益,以便从经济角度判断这个系统是否值得投资。但是,投资是现在进行的,效益是将来的,不能简单地比较成本和效益,应该考虑货币的时间价值。
2、影响经济效益的因素:
货币的时间价值
通常用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入Р元,则n年后可以得到的钱数为;
F=P(1+i) ^ n
这也就是Р元钱在n年后的价值。反之,如果n年后能收入F元钱,那么这些钱的现在价值是:
P=F/(1+i) ^ n投资回收期
纯收入
投资回收率
计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。
P= F/(1+j)1+F2/(1+j)2+…+F。/(1+j^n
其中,Р是现在的投资额;F是第i年年底的效益(i=1,2,…,n);n是系统的使用寿命; j是投资回收率。n一般取5
率
- 计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。
P= F/(1+j)1+F2/(1+j)2+…+F。/(1+j^n
其中,Р是现在的投资额;F是第i年年底的效益(i=1,2,…,n);n是系统的使用寿命; j是投资回收率。n一般取5
边栏推荐
- 单片机STM32F103RB,BLDC直流电机控制器设计,原理图、源码和电路方案
- Explain the input attribute in PHP (hide the read-only restriction)
- 宝塔面板安装php7.2安装phalcon3.3.2
- 5-if语句(选择结构)
- 运行npm run eject报错解决方法
- Latest news of awtk: new usage of grid control
- POM configuration provided and test
- Review of postgraduate English final exam
- Graphmae - - lecture rapide des documents
- Signature analysis of app x-zse-96 in a Q & a community
猜你喜欢

保留一位小数和保留两位小数

研究生英语期末考试复习

exness:鲍威尔坚持抗通胀承诺,指出衰退是可能的

The monthly salary of two years after graduation is 36K. It's not difficult to say

鸿蒙os开发三

Cloud development who is the source code of undercover applet

Keep one decimal place and two decimal places

SVN实测常用操作-记录操作大全

Review of postgraduate English final exam

AWTK 最新动态:Grid 控件新用法
随机推荐
[run the script framework in Django and store the data in the database]
Jenkins is too old try it? Cloud native ci/cd Tekton
鸿蒙开发四
ImportError: cannot import name ‘process_ pdf‘ from ‘pdfminer. Pdfinterp 'error completely resolved
Duilib display memory picture
decltype用法介绍
Chapter 2 line graph of canvas
Moonwell Artemis现已上线Moonbeam Network
Oracle advanced SQL qualified query
[data update] Xunwei comprehensively upgraded NPU development data based on 3568 development board
Baidu map, coordinate inversion, picking coordinate position
报错“Computation failed in `stat_summary_hex()`”
Signature analysis of app x-zse-96 in a Q & a community
Graphmae - - lecture rapide des documents
Do you still have the opportunity to become a machine learning engineer without professional background?
Part 2: drawing a window
Gossip: what happened to 3aC?
The monthly salary of two years after graduation is 36K. It's not difficult to say
Practice of opengauss database on CentOS, configuration
Chapter 3: drawing triangles