软件工程的可行性分析

  • 什么是可行性分析?
  • 为什么要进行可行性分析?
  • 可行性分析的主要任务是什么?
  • 可行性分析有哪些主要过程?
  • 如何去评估提出的可行性方案?
  • 进行可行性分析时常用的工具有哪些?
  • 可行性分析报告的内容要求和写法说明

1、什么是可行性分析?

检查并确定是否值得为项目或产品投入时间、金钱和资源。这样的评估活动称为“可行性分析”。

2、为什么要进行可行性分析?

在软件项目开发过程中,只要资源和时间不受限制,几乎所有项目都是可行的。然而,由于受到资源和交付时间的限制,使得软件系统的开发变得越来越困难。因此,尽早对软件项目的可行性进行细致而谨慎的分析是十分必要的。

3、可行性分析的主要任务是什么?

记住:可行性分析的目的不是解决问题,而是确定问题是否可解并且是否值得去解。

4、可行性分析有哪些主要过程?如何去评估提出的可行性方案?进行可行性分析时常用的工具有哪些?可行性分析报告的内容要求和写法说明。

  1. 检查系统规模和目标,明确限制或约束条件
  2. 研究正在使用的系统
  3. 导出新系统的高层次逻辑模型
  4. 提出可行性解决方案并评估比较
  5. 选择合适的解决方案
  6. 撰写可行性分析报告并提交审查

1.检查系统规模和目标,明确限制或约束条件:

我们认为用户要的是否就是实际客户真正想要的。为此,

  • 访问客户关键业务人员。
  • 阅读和分析有关的资料。
  • 改正含糊或不确切的术语和叙述

2. 研究正在使用的系统:

了解现有系统存在的问题。只了解现有系统做什么,不去管怎么做。

采用工具:系统(业务)流程图

系统流程图

是一种极好的分析和设计工具,它有助于开发人员和用户交流,在可行性分析中,可以通过绘制系统(业务)流程图了解要开发的系统的大概的业务处理流程、范围和功能等。


软件工程的可行性分析_第1张图片

 软件工程的可行性分析_第2张图片

一个实验教学申请系统的例子如下:

  1. 任课老师根据课表创建实验教学申请,确定实验项目;
  2. 任课老师提交创建好的实验教学申请;
  3. 实验室管理人员根据实验室的使用情况,为任课老师安排实验室;
  4. 任课老师查看实验室编排结果。

软件工程的可行性分析_第3张图片

软件工程的可行性分析_第4张图片

3.导出新系统的高层次逻辑模型:

软件工程的可行性分析_第5张图片

应该告诉用户“What”,而不是“How”

使用工具:数据流图数据字典

数据流图(Data Flow Diagram)或DFD

是用来描述系统逻辑模型的一种图形工具。

数据流图从数据传递和处理的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

数据流图的符号

软件工程的可行性分析_第6张图片

数据流是数据在系统内传播的路径,由一组固定的数据项组成。除了与数据存储之间的数据流不用命名外,数据流名应该用名词或名词短语命名。

数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件或更新文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。

处理也称为数据加工,它对数据流进行某些操作或变换。每个处理也要有名字,通常用动词短语,简明地描述完成什么处理。在分层次的数据流图中,处理还应有编号。

外部实体是软件系统外部环境中的实体(包括人员、组织或其他软件系统),也称为数据源点或终点。一般只出现在数据流图的顶层图中。

数据流图举例:银行办理取款手续的数据流图:

软件工程的可行性分析_第7张图片

数据流图的层次化

在用数据流图来描述功能模型的时候,将某些复杂的处理进行分解的话,还可以得到更加详细的数据流图,这就是数据流图的层次化。

下图是一个用数据流图描述发行付款通知书的处理过程。

软件工程的可行性分析_第8张图片

其中「发行付款通知书」这个处理可以被分解成3个子处理和一个数据存储。

下图是付款通知书发行过程的详细的数据流图。

软件工程的可行性分析_第9张图片

上图中作为「销售(服务)合同」内部数据要素的「顾客ID」和「合同金额」被分解了。这样的数据构造,将用后述的数据字典来加以管理。

通常,在可行性分析阶段,为了掌握系统的大致(或概要)的数据流和处理过程,只画系统的顶层数据流图。

从第二层开始的详细数据流图在需求分析阶段来绘制。

数据字典(Data Dictionary  简称DD):

数据字典的作用是: 对于数据流图中出现的所有被命名的图形元素作为一个词条以字典的方式加以定义,使得每一个图形元素的名字都有一个确切的解释。

数据词典主要定义四类条目:

  1. 数据流
  2. 由数据流分解的数据元素
  3. 数据存储(文件或数据库表结构)
  4. 加工/处理。

不过,对加工或处理的定义用其他工具(如IPO或PDL等)描述更加方便,因此,通常情况下,数据字典将主要由对数据的定义组成。

数据字典与数据流图的关系:

  • 数据流图和数据字典共同构成系统的逻辑模型。没有数据字典的数据流图是不严格的,而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
  • 数据字典可为以后的数据文件/数据库设计打下基础。

4.提出可行性解决方案并评估比较

从系统高层次逻辑模型出发,探索若干种可供选择的系统实现方案,对每种方案都应该仔细研究它的可行性。 一般说来,至少应该从下述几个方面分析几种方案的可行性。

  • 技术可行性
  • 经济可行性
  • 操作可行性
  • 社会可行性

5.选择合适的解决方案

可行性矩阵模板示例:

软件工程的可行性分析_第10张图片

分析员必须提供建议的解决方案,以及其他解决方案。应说明为什么选择了建议的解决方案。可以使用可行性矩阵来说明。

可行性分析的结论通常是以下四种:

  1. 项目可行,可以立即开始实施。
  2. 需要推迟到某些条件(例如资金、人力、设备等)具备或成熟之后才能开始。
  3. 需要对开发目标进行某些修改之后才能开始进行。
  4. 不能进行或不必进行。例如因技术不成熟,经济上不合算或可能产生负面的社会影响等原因。这种情况下,分析员应该建议尽早终止项目计划,以免浪费人力、物力和财力。

6.撰写可行性分析报告并提交审查

可行性分析报告的内容要求及写法说明:

1.引言
  说明编写本文档的目的,项目的名称、背景,本文档用到的专业术语和参考资料等。

2.可行性分析的前提
  说明开发项目的功能、性能、基本要求和要达到的目标,各种限制条件、可行性分析方法和决定可行性的主要因素。

3.对现有系统的分析
  说明现有系统的处理流程和数据流程、工作负荷、各项费用的支出、所需各类专业技术人员和数量、所需各种设备,现有系统存在的问题。

4.所建设系统的可行性分析
  简要说明所建设系统的处理流程和数据流程,与现有系统比较的优越性,采用所建议系统对用户的影响, 对各种设备、现有软件、开发环境和运行环境的影响, 对经费支出的影响,对技术可行性的评价。

5.所建设系统的经济可行性分析
   说明所建设系统的各种支出、各种效益、收益/投资比,资金回收周期。

6.社会因素的可行性分析
   说明法律因素对合同责任、侵犯专利权和侵犯版权等问题的分析,说明用户使用可行性是否满足用户行政管理,工作制度等要求。

7.其他可选方案
  说明其他可选方案,并说明未被推荐的理由。

8.结论意见
   说明项目是否能开发,还需要什么条件才能被开发, 对项目目标有何变动等。

可行性分析小结

  • 可行性分析探讨软件定义阶段所确定的问题是否有可行的解。在对问题正确定义的基础上,通过分析问题,导出试探性的解决方案,然后检查并修正问题定义,再次分析问题,改进提出的解决方案……。
  • 经过定义问题、分析问题、提出解决方案的反复过程,最终提出一个符合系统目标的高层次的逻辑模型。
  • 然后根据系统的这个逻辑模型设想各种可能的物理系统,并且从技术、经济、操作和社会等方面评估这些物理系统的可行性。
  • 最后,系统分析员提出一个推荐的可行的行动方针,提交用户和客户组织负责人审查批准。
  • 实际上,可行性分析的过程就是一个简化了的系统分析与设计过程。

如果想了解需求分析可以看看这篇文章: 

软件工程的需求分析_软件工程需求分析_不学无术BruceYoung的博客-CSDN博客什么是需求? 什么是软件需求?什么是需求分析? 为什么要做需求分析?需求分析做什么? 需求分析怎么做?如何获取用户需求? 常用的获取需求的方法有哪些?结构化需求分析方法的步骤、方法和常用工具?各种工具的作用是什么? 什么是数据规范化?什么是需求规格说明? 需求规格说明撰写什么内容? 为什么描述需求规格说明比较困难? 谁负责编写需求规格说明书? 谁使用需求规格说明书? 好的需求规格说明应满足什么条件?...https://blog.csdn.net/qq_59125846/article/details/125373799 

你可能感兴趣的:(软件工程,1024程序员节)