可行性研究

可行性研究的目的:
    
用最小的代价在尽可能短的时间内确定问题是否能够解决和是否值得解决    不是解决问题,而是确定问题是否值得去解决

可行性研究的任务:

    1)分析和澄清问题(现实与期望的距离)定义;
    2)分析员应该导出系统的逻辑模型;
    3)探索若干种可供选择的主要解法(即系统解决方案);
    4)研究每种解法的可行性,给出选择建议

从以下方面研究可行性:

    1)技术可行性:对要开发项目的功能、 性能和限制条件进行分析, 确定在现有的资源条件下,技术风险有多大,项目是否能实现, 这些即为技术可行性研究的内容。 这里的资源包括已有的或可以搞到的硬件、 软件资源, 现有技术人员的技术水平和已有的工作基础等

    2)经济可行性:进行开发成本的估算以及了解取得效益的评估, 确定要开发的项目是否值得投资开发,这些即为经济可行性研究的内容对于大多数系统,一般衡量经济上是否合算,应考虑一个“ 底线 “ ,经济可行性研究范围较广,包括成本 — 效益分析, 长期公司经营策略, 开发所需的成本和资源,潜在的市场前景等

    3)操作可行性:有时还要研究社会可行性问题,研究要开发的项目是否存在任何侵犯、妨碍等责任问题。社会可行性所涉及的范围也 比较广,它包括合同、责任、 侵权和其他一些技术人员常常不了解的陷阱等

必要时有法律、社会效益等方面


可行性研究的步骤:循环1-4 反复过程、逐步求精  确认新系统的逻辑模型

1. 复查系统规模和目标(用户数量)
2. 研究目前正在使用的系统 (旧系统的功能、费用、文档资料、使用手册、与其他系统的接口等)
3. 导出新系统的高层逻辑模型
4. 进一步定义问题
5. 导出和评价供选择的解法 (提出解法(不唯一)、评价解法)
6. 推荐行动方针(方案)
7. 草拟开发计划书
8. 写文档提交审查

系统流程图:物理模型

定义:概括地描绘物理系统的传统工具,习惯画法是使信息从图中从顶向下或者从左向右流动

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

可行性研究

可行性研究

可行性研究


数据流图:逻辑模型

定义:数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程所经受的变换(处理),常作为分析员与用户之间极好的通信工具

可行性研究

数据流图元素命名提醒:

1)数据流命名时应注意的问题

1. 名字应代表整个数据流(数据存储)的内容,而不是仅仅反映它的某些成分;
2. 不要使用空洞的、缺乏具体含义的名字(数据、信息、输入等);
3. 在为某个数据流(或数据存储)起名字时遇到了困难, 则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解

2)为数据处理命名时应注意的问题

1. 通常先为数据流命名,然后再为与之相关联的处理命名(由表及里)
2. 名字应该反映整个处理的功能,而不是它的一部分功能
3. 名字最好由一个具体的及物动词加上一个具体的宾语组成(及物动词+宾语
4. 通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。 5. 如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。

数据字典:逻辑模型

定义:数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合

组成:1.数据流 2.数据流分量(数据元素) 3.数据储存 4.数据处理(IPO图或者PDL)

数据元素的别名:该元素的其他等价的名字(虽然应该尽量减少出现别名,但是不可能完全消除别名)

出现别名主要有下述3个原因:

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

数字字典的用途:
    数据字典最重要的用途是作为分析阶段的工具
    数据字典中包含的每个数据元素的控制信息是很有价值的
    数据字典是开发数据库的第一步,而且是很有价值的一步

由数据元素组成数据的方式只有下述3种基本类型:

1.顺序:即以确定次序连接两个或多个分量。
2.选择:即从两个或多个可能的元素中选取一个。
3.重复:即把指定的分量重复零次或多次。
4.可选:即一个分量是可有可无的

=   意思是等价于(或定义为);
+   意思是和(即连接两个分量);
[] 意思是或(即从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;
{}   意思是重复(即重复花括弧内的分量);
()   意思是可选(即圆括弧里的分量可有可无)

例子:某程序设计语言规定,用户说明的标识符是长度不超过8个字节的字符串,其中的一个字符必须是字母字符,随后的字符既可以是数字字符也可以是字母字符。
那么标识符的定义可以为
                    标识符=字母字符+字母数字串
                    字母数字串=0{字母或数字}7
                    字母或数字=[字母字符 | 数字字符]



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

成本估计:软件开发成本主要表现在人力消耗(乘以平均工资得到开发费用)

成本估算技术:
1.代码行技术:经验和历史数据(开发类似工程)
2.任务分解技术:是按开发阶段划分任务。 典型环境下各个开发阶段需要使用的人力的百分比大致如下表所示:
可行性研究
3.自动估计成本技术:采用相关自动估计成本的软件工具,以有长期搜集的大量历史数据为基础,并有良好的数据库支持

成本/效益分析的方法:
1.货币的时间价值
2.投资的回收期
3.纯收入
4.投资回收率