软件工程的可行性分析

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

1、什么是可行性分析?

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

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

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

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

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

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

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

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

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

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

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

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

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

系统流程图

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


 

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

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

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

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

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

数据流图(Data Flow Diagram)或DFD

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

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

数据流图的符号

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

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

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

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

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

数据流图的层次化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5.选择合适的解决方案

可行性矩阵模板示例:

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

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

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

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

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

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

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

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

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

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

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

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

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

可行性分析小结

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

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

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


http://chatgpt.dhexx.cn/article/a1OmZ9QT.shtml

相关文章

可行性分析与需求分析

目录 可行性分析 可行性分析目的: 经济可行性: 技术可行性: 社会可行性: 需求分析: 非功能需求: 需求分析常用的方法: 结构化分析方法: 结构化分析方法: 结构化分…

可行性分析报告-学生信息管理系统

1、引言 1.1编写目的 编写本可行性研究报告的目的是为了更好的管理学生们的学籍信息,了解学生们的相关情况,为管理学生学习和生活进行指导,为学校的统一管理系统奠定基础。通过对学生学籍管理系统项目进行一系列的详细调查研究,明…

技术可行性分析和经济可行性分析

第1关:技术可行性分析 任务描述 本关任务:根据相应的协同电子商务平台案例学习技术可行性分析的必要性以及撰写技术可行性报告部分的基本内容。 相关知识 为了完成本关任务,你需要掌握:1.技术可行性分析的必要性,2…

2020-10-23(SMC加密技术)

第一篇博客,写得不好还请多多谅解。 今日收获: 今天接触了SMC加密技术,代码一般般,也就自我解密代码这块我这个初学者难以想到。 代码奉上,静态没法查看 judge里面的东西,需要jdb或者ida动态调试这个文件&a…

智能安全加密芯片---ACL16

近日来,印巴冲突持续进行,国际情势日趋紧张,和平,安全是永恒不变的话题,而在半导体行业里,安全加密芯片的导入为很多产品保驾护航,免遭攻击与击破,为行业发展带来了巨大贡献。今天为…

加密技术应用

目录 密码学应用 VPN定义 L2TP VPN LAC自动拨号场景(Call-LNS) 密码学应用 数字信封 使用非对称密钥加密对称密钥,使用对称密钥加密数据。保证了数据传输的机密性,但是无法保证数据的完整性数字签名 采用Hash散列算法,…

单片机怎么加密?

一、打磨或更改芯片型号丝印 打磨或更改芯片型号丝印可以迷惑破解者,使破解者不知从何入手。当然,这是需要成本的,根据产品价格考虑是否需要打磨。 二、使用加密芯片 使用加密芯片的成本更加高,同时对于加密芯片可靠度无法掌握&a…

加密芯片在GCP系统的应用方案

物联网(IoT)设备正在迅速发展,越来越多的设备连接到互联网并与其他设备进行通信。这使得设备的安全变得更加重要,因为它们可能会暴露敏感的数据和功能。Google Cloud IoT Core(GCP)是一个完全托管的服务&am…

小米NFC手机复制加密IC门禁卡

几年没有发过任何文字信息了。闲来无事发一个NFC手机复制加密门禁卡的教程 思路: 第一步通过破解加密的门禁卡得到dump文件,获取卡号。修改dump文件只保留0扇区0块的内容也就是卡号,通过读卡器写入一张卡空白卡。这时就得到了一张未加密的白卡了。手机NFC可以模拟这张未加密…

加密技术简介

参考文章:信息加密技术简介 AES算法的详细介绍与实现 RSA非对称加密算法详解 1 加解密简介 加密的目的就是,不能让发送方和接收方以外的其他第三方明白两者之间传送的数据的意义。举个例子:上课,小明给小红传纸条,…

某IC卡加密方法初探

12345678910111213141516 A2695E0605960000000034000034002F16.30                 9A69630600960000000033000033003116.357E8D820605720000000031000031001116.66 0207F50D05F8000000002900002900A735.73 9473204E058C00000…

IC卡·一卡一密加密 动态数据防伪方案实现

一卡一密加密算法实现EncryptionOneCardOneKey 注:当前函数加密算法过于简单,只用于文档说明举例,用户在具体程序中应设计更加完善复杂的加密算法以保证系统安全性 /************************************************ 函数名称 &#xff…

单片机加密の硬件加密和软件加密

单片机的加密和解密是指在单片机的应用程序中对某些数据进行加密和解密操作,以保护数据的安全性和隐私性。单片机的加密和解密方式主要有硬件加密和软件加密两种方法。 一、硬件加密: 硬件加密是通过硬件电路实现的数据加密技术,其优点是安全…

“加密前行”-加密芯片在软件License中的应用

“ 在上篇文章中,我们介绍了在汽车应用中,软硬件加密技术在保护车辆数据和通信方面发挥着关键作用。 JokerEye,公众号:ADAS之眼 ADAS-“加密前行”:软硬件技术在汽车安全中的应用" 今天,我们将以实际的加密芯片案…

如何选择加密芯片以及加密芯片的工作原理

如何选择加密芯片: (1)安全性:不同加密芯片,主要却别在于所选单片机不一样,加密芯片开发人员不一样,加密方式实现的差异;只要加密芯片实现方式上没有很大漏洞,以及加密算…

IC芯片简介

IC芯片(Integrated Circuit Chip)是将大量的微电子元器件(晶体管、电阻、电容等)形成的集成电路放在一块塑基上,做成一块芯片。IC芯片包含晶圆芯片和封装芯片,相应 IC 芯片生产线由晶圆生产线和封装生产线两部分组成。 目录 1.IC芯…

硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理

前端时间有研究多款加密芯片,加密算法实现,以及破解可能,也有一些个人的观点,仅供参考; 一,加密芯片的来源及工作流程: 市面上的加密芯片,基本都是基于某款单片机,使用I…

什么是加密芯片?

加密芯片是对内部集成了各类对称与非对称算法,自身具有极高安全等级,可以保证内部存储的密钥和信息数据不会被非法读取与篡改的一类安全芯片的统称。在嵌入式行业应用广泛。它的前身就是水电气表等行业的ESAM模块,专门用于线路数据的加密传输…

加密芯片介绍 加密芯片选择(加密IC) 加密芯片原理

原文链接:https://blog.csdn.net/chengjian815/article/details/107516575 前端时间有研究多款加密芯片,加密算法实现,以及破解可能,也有一些个人的观点,仅供参考; 一,加密芯片的来源及工作流…

tesseract-ocr中文识别

Tesseract-OCR 是一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎。与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本…