可行性研究
一、可行性研究的任务
目的:可行性研究的目的不是解决问题,而是确定问题是否值得去解决,用最小的代价在尽可能短的时间内确定问题是否能够得到解决。。
◼技术可行性:现有技术能实现吗?
◼经济可行性:经济效益能超过开发成本吗?
◼操作可行性:操作方式在组织内行得通吗?
◼社会可行性: 从法律、社会效益
步骤:
①首先需要进一步分析和澄清问题定义
②导出系统的逻辑模型(抽象)
③确定方案
二、可行性研究过程
典型的可行性研究过程有下述一些步骤:
2.1 复查系统规模和目标(问题定义)
分析员访问关键人员,仔细阅读和分析有关的材料,以便对问题定义阶段书写的关于规模和目标的报告书进一步复查确认,改正含糊或不确切的叙述,清晰地描述对目标系统的一切限制和约束。确保分析员正在解决的问题确实是要求他解决的问题。
问题定义阶段:系统分析员扼要写出关于问题性质、工程目标和工程规模的书面报告,并应该得到客户的确认
2.2 研究目前正在使用的系统
分析员应该画出描绘现有系统的高层系统流程图,并请有关人员检验他对现有系统的认识是否正确。
2.3 导出新系统的高层逻辑模型
数据流图和数据字典共同定义了新系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。
通过前一步的工作,分析员对目标系统应该具有的基本功能和所受的约束已有一定了解,能够使用数据流图,描绘数据在系统中流动和处理的情况,从而概括地表达出他对新系统的设想。
通常为了把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据。
2.4 进一步定义问题
新系统的逻辑模型实质上表达了分析员对新系统必须做什么的看法。分析员应该和用户一起再次复查问题定义、工程规模和目标,这次复查应该把数据流图和数据字典作为讨论的基础。
可行性研究的前4个步骤实质上构成一个循环:
- 分析员定义问题,分析这个问题,导出一个试探性的解;
- 在此基础上再次定义问题,再一次分析这个问题,修改这个解;
- 继续这个循环过程,直到提出的逻辑模型完全符合系统目标。
2.5 导出和评价供选择的解法(方案)
从建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。
- 把技术上行不通的解法去掉之后,就剩下了一组技术上可行的方案。
- 去掉其中从行业操作方式、操作过程和行业标准和习惯的角度看用户不能接受的方案。
- 应该考虑经济方面的可行性。对每个可能的系统进行成本/效益分析
- 最后为每个在技术、操作和经济等方面都可行的系统制定实现进度表
2.6 推荐行动方针
根据可行性研究结果应该做出的一个关键性决定是:是否继续进行这项开发工程。
如果分析员认为值得继续进行这项开发工程,那么他应该选择一种最好的解法,并且说明选择这个解决方案的理由。
2.7 草拟开发计划
- 制定工程进度表
- 估计对各类开发人员和各种资源的需要情况
- 应该指明什么时候使用以及使用多长时间。
- 此外还应该估计系统生命周期每个阶段的成本。
- 最后应该给出下一个阶段(需求分析)的详细进度表和成本估计。
2.8 书写文档提交审查
应该把上述可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。
三、可行性分析的结论
可行性分析的结论可以是以下四种:
(1)项目可行,可以立即开始执行;
(2)需要推迟到某些条件(例如资金、人力、设备等)具备或成熟之后才能开始;
(3)需要对开发目标进行某些修改之后才能开始进行或部分可行;
(4)不能进行或不必进行;例如因技术不成熟,经济上不合算或可能产生负面的社会影响等原因,这种情况下,分析员应该建议尽早终止项目计划,以免浪费人力、物力和财力。
可行性分析报告:
可行性分析结束后,要写出可行性分析报告,提交有关专家论证和上级主管部门批准。
可行性报告是软件可行性分析的证据,它包含管理层决策是否进行项目所需的所有信息和各种备选方案。
四、可行性分析的工具
4.1 系统流程图
4.1.1 系统流程图概述
系统流程图是概括地描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过
程等)。
系统流程图&程序流程图
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。
4.1.2 系统流程图符号
当以概括的方式抽象地描绘一个实际系统时,使用如下符号:
当需要更具体地描绘一个物理系统时还需要使用:
4.1.3 系统流程图分层思想
面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。
- 首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。
- 然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。
4.2 数据流图
4.2.1 数据流图概述
数据流图是系统逻辑功能的图形表示
是用来描述系统逻辑模型的一种图形工具。 数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程
设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。
4.2.2 数据流图符号
数据流图有四种基本符号:
- 正方形(或立方体)表示数据的源点或终点;
- 圆角矩形(或圆形)代表变换数据的处理;
- 开口矩形(或两条平行横线)代表数据存储;
- 箭头表示数据流,即特定数据的流动方向。
4.2.3 数据流图注意事项
- 数据存储和数据流都是数据:
仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。 - 通常在数据流图中忽略出错处理
也忽略了控制信息,也不包括诸如打开或关闭文件之类的内务处理。 - 数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。
- 处理代表同一个事物的相同符号需要重复或多个箭头;有时数据存储也需要重复,以增加数据流图的清晰程度。
- 注意父图和子图的平衡
当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。
4.2.4 数据流图步骤
-
第一步:可以从问题描述中提取数据流图的4种成分:
① 首先考虑数据的源点和终点,② 处理,③ 数据流,④ 数据存储。 -
第二步:对于上述的定货系统可以画出基本系统顶层模型。
-
第三步:应该把基本系统模型细化,描绘系统的主要功能。
-
第四步:接下来应该对功能级数据流图中描绘的系统主要功能进一步细化,维护流程图的层次结构。
4.2.5 数据流图的用途
- 画数据流图的基本目的是利用它作为交流信息的工具。
- 数据流图的另一个主要用途是作为分析和设计的工具。
- 分层次地描绘系统的功能。
4.3 数据字典
4.3.1数据字典概述
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。
数据字典的任务是: 对于数据流图中出现的所有被 命名的图形元素在字典中作为一个词条加以定义,使得 每一个图形元素的名字都有一个确切的解释。
4.3.2 数据字典的内容
一般说来,数据字典应该由对下列4类元素的定义组成:
(1) 数据流
(2) 数据流分量(即数据元素)
(3) 数据存储
(4) 处理
对数据处理的定义用其他工具(如IPO图或PDL)描述更方便,因此数据字典将主要由对数据的定义组成,这样做可以使数据字典的内容更单纯,形式更统一。
4.3.3 定义数据的方法
定义就是自顶向下的分解,所以数据字典中的定义就是对数据自顶向下的分解。
定义绝大多数复杂事物的方法,都是用被定义事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。
(1) 顺序 即以确定次序连接两个或多个分量;A+B
(2) 选择 即从两个或多个可能的元素中选取一个;[A|B]
(3) 重复 即把指定的分量重复零次或多次。x{A}y
(4) 可选 即一个分量是可有可无的(重复零次或一次)。(A)
(5) 注释:*
(6) 定义为:’='S(等价于)
4.3.4 数据字典的用途
① 给数据一个严格的定义。
② 数据字典最重要的用途是作为分析阶段的工具。
③ 很有助于改进的通信,消除许多可能的误解。
④ 数据字典是开发数据库的第一步,是开发数据库最坚实的基础,而且是很有价值的一步。