软件工程 可行性分析与需求分析

article/2025/9/22 0:40:59

参考链接:
(1)【必看!!!】系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)
https://blog.csdn.net/qq_38262266/article/details/86588707
(2)软工之可行性分析和需求分析
https://blog.csdn.net/boniesunshine/article/details/48573379

软工即用科学,工程的思想来开发软件,大体分为设计前,设计中,和设计后三个阶段。
在设计前就是要分析定位好这个软件“能做吗?做什么?”的问题。好比说我要说我要盖一座楼,首先我要分析一下资金,技术,时间工期,地皮,政策等条件允许吗?盖好这个楼我能赚多少钱?如果这些条件我都满足并且楼盖好后我能赚钱那就干。然后考虑干什么呢?我这楼是供用户居住的还是商场?除了供居住外,有没有电梯?可供使用多少年?防震多少级?等。

一、理解

问题一:如何理解计算机系统?
元素的集合或排列(软件+硬件+人员+文档+数据库+过程)
这些元素被组织在一起,以便通过处理(输入)外部信息完成某些预定的目标(输出)。

元素如下:

  • 软件:指程序、数据结构和相关文档。
  • 硬件:指提供计算能力的电子设备和提供外部功能的机电设备(传感器、马达等)。
  • 人员:指使用硬件和软件的用户和其他人员。
  • 文档:指手册、表格和其他表示系统使用和操作的描述性信息。
  • 数据库:指系统所具有的信息模型,是系统中对信息具有存取功能的一个主要部分。
  • 过程:指定义每一种系统元素的特定使用步骤或使用环境。

图解如下:
在这里插入图片描述

问题二:如何理解计算机系统工程?
计算机系统工程:一个问题求解活动。

  • 目的:揭示、分析所期望的功能、性能、接口和约束条件,并把它们分配到各个系统元素中去。

计算机的系统工程包括:硬件工程、软件工程、人机工程和数据库工程。

  • 每一项工程的作用:明确和细化系统的功能和性能的范围和内容,产生一个能与其他系统元素适当集成的可操作的系统元素。

图解:硬件工程和软件工程

硬件工程软件工程
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

问题三:理解了计算机系统和基于计算机系统的工程,那么系统分析的目标是什么?

  • 识别用户要求;
  • 进行技术分析并进行评价;
  • 把功能分配给系统元素;
  • 建立成本和进度限制;
  • 生成系统规格说明(包括软件和硬件)。

可通过回答以下问题协助完成系统分析过程

  • 系统的总体目标是什么?
  • 系统所期望的功能和性能是什么?
  • 系统的可靠性和质量要求是什么?
  • 有无软硬件制造和购买的需求?
  • 有效的技术方案有哪些?
  • 将来系统可能有哪些扩充?

问题四:为什么要进行可行性分析?

答:因为有很多影响系统开发的因素。

  • 如:时间因素、资源因素、成本和利润的因素、技术条件和能力的因素.
  • 进行可行性分析才能明确系统是否值得做,避免投资损失。即能否带来经济效益、企业效益或社会效益。

问题五:如何进行可行性分析?

1、确定问题域、概要的分析和研究、初步确定项目的规模、约束和限制条件。
2、针对问题域中的关键和核心问题进行简要的需求分析,抽象出问题域的逻辑结构,并构建逻辑模型。
3、从逻辑模型出发,通过小规模的设计和技术实现论证,探索出若干种可供选择的解决方案,并对每种方案进行可行性方面的论证。

可行性分析主要集中在以下四个方面:

  • 经济可行性分析
  • 技术可行分析
  • 法律可行性分析
  • 实施方案的选择
经济可行性:
软件开发为何要进行经济方面的分析?
软件开发需要有投资,有投资就需要有收益。
目的是从经济角度评价一个新项目是否可行、是否划算,从而帮助投资人或者用户正确地做出是否投资于这个项目的开发决策。 如何进行经济可行性的分析?
成本/效益分析是对软件的开发成本和可能取得的效益进行权衡比较。 
短期/长远利益分析而是从另一种角度来评价成本和效益之间的关系。 估算软件成本的方法?
1、代码行技术
每行代码的成本×代码行数;
代码行数:根据经验和历史数据估计;
每行代码成本:根据软件复杂度和开发人员工资估计;
2、功能点技术
以软件功能作为测量依据;功能点测量法;
3、任务分解技术
将整个开发过程分解为几个独立的任务;评估每个任务的成本,再求和得到整个系统的成本;
每个任务成本=每人月平均成本×人月数;1、经验估算模型
根据以往经验总结出软件成本估算模型,软件规模(例如LOC)作为模型的输入;
不同的项目需要对模型参数进行相应调整;
2、COCOMO模型
Barry Boehm在《软件工程经济学》中介绍的软件估算模型,称为COCOMO(Constructive Cost MOdel)
该模型为分层模型,分为基本模型、中级模型和高级模型。 
3、软件方程式:多变量模型软件的其他成本估算:
除了以上主要的软件开发成本之外,还必须考虑支撑软件开发所必需的市场、销售和行政等项的开支,
根据经验有如下内容需要考虑:
办公室房租、现场开发住宿费等。
办公用品,如桌、椅、书柜、照明电器、空调等。
计算机、打印机、网络等硬件设备。
电话、传真等通讯设备以及通讯费用。
资料费。
办公消耗,如水电费、打印复印费等。
行政人员的工资。
差旅费、国内外出差补贴等。
做市场调查、可行性分析、需求分析的交际费用。
公司人员培训费用。
产品宣传费用。如果用Internet作宣传,则要考虑建设Web站点的费用。 
软件开发的效益度量
1、货币的时间价值:
由于任何软件项目大都是投资在前,取得效益在后,因此要考虑到货币的时间价值。
设年利率为i,现存入P元,若计复利则 n年后货币价值为:F = P(1+i)^n
反之,若n年能收入F元,那么这些钱的现值是: P = F/(1+i)^n2、投资回收期:
就是使累计的经济效益等于最初的投资费用所需的时间。
投资回收期越短,就能越快获得利润。 
设上例中的投资回收期为N,则:
(N-2)*8.29=20-17.85
N=2.2593、纯收入:
就是在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。
纯收入 > 0 说明值得投资
纯收入 = 0  等于把资金存入银行
纯收入 < 0 说明不值得投资
上例中的纯收入为:41.563-20=21.563万元4、投资回收率:
设想把数量等于投资额的资金存入银行,每年年底从银行回收的钱等于系统每年预期可以获得的效益,在时间等于系统寿命时,正好把在银行中的存款全部取完。这个假想的年利率就等于投资回收率。
P = F1/(1+j) + F2/(1+j)2 + … +Fn/(1+J)n
其中,P是现在的投资额;Fi是第i年年底的效益(i=1,2,…,n);n是系统的使用寿命,j是投资回收率。
技术可行性分析:主要考虑以下几项内容:
开发风险:在给定的限制范围内,能否设计出系统,并实现必须的功能和性能?
资源可用性:是否有充足的熟练技术人员可以支配?其他必要的资源(软件和硬件)对建造系统可用么?
技术条件:相关的技术条件是否能够支持系统的开发?最终得出一个在技术层面上的决策基础:可行,还是不可行!Blanchard和Fabrycky定义了在系统的技术可行性分析中使用建模方法的一组标准: 
能动态地表示系统的配置并能进行评估,要求配置项很容易理解和操纵、并且与现实操作足够接近。
模型应该尽可能全面的包括所有相关的因素,并且应体现结果的可重复性。
模型应该关注那些关键问题的因素,并且抑制和回避那些不重要的因素。
模型设计应该足够简单,以允许快速实现。
模型设计应该易于修改和/或扩展。【系统体系结构建模】
1、构建系统级体系结构
每个基于计算机的系统可用输入-处理-输出(IPO)的结构来为信息的变换和处理建模
再附加经常使用的用户界面处理和维护自测试处理特性,构成了系统体系结构模板。
通过创建一个系统结构模型,为后期的需求分析和设计奠定了基础,同时也是技术可行性分析建模的主要方法。最高层的系统体系结构叫做体系结构语境图ACD。
语境图建立了待实现系统与系统运行环境之间的信息边界:	
定义了系统使用信息的所有外部生产者;
系统创建消息的所有外部消费者;
所有通过界面通信或完成维护和自测的实体;2、系统结构的规格说明定义
结构图的规格说明(ADS)给出了每个子系统的信息、各个子系统之间的信息流以及每个子系统的“系统模块描述”。 
规格说明还可能具有一个“结构词典”,即在规格说明中出现的每一个信息项的清单,以及每个信息项的说明。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、思维导图

(1)可行性分析
可行性分析就是要确定我们要开发这个软件要解决什么问题,达到什么要求,我们是否能达到这个要求,总之,能干否?
在这个过程中重要的是导出新的逻辑模型,确定问题,提出可行性方案,一般是2到3个方案,关于资金的方案和关于技术的方案是最主要的,然后提出我们的建议并附上开发计划让用户参考,最后书写文档。
工程理清了剩下的就是用什么样的方法来进行,还有用户最关心的一部分,就是成本和收益。
在这里插入图片描述
在可行性分析这一部分主要用到的方法就是数据流图和系统流程图。然后就是用恰当的方法来估计成本和效益。货币的时间价值,投资回报率我们之前解除过,应该不陌生。
在这里插入图片描述
(2)需求分析
需求分析就是要确定干什么,要实现什么功能,然后把功能由顶向下,逐步细化的分解,抽象成小功能,然后逐步实现。这个阶段还要把逻辑模型做出来,对数据的类型等定义好。之后就是用什么方法,具体经历什么过程。
在这里插入图片描述
过程简单来说就是找出问题,分析问题,形成需求规格说明书,然后进行需求分析评审和用户共同完成。
在这里插入图片描述


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

相关文章

可行性研究报告

1.引言 目前&#xff0c;随着学生自主学习意识的不断提高&#xff0c;课堂上的知识已经满足不了他们&#xff0c;需要借助网络化来开阔眼界&#xff0c;增长见识&#xff1b;其次也需要为紧张的学习生活缓解压力&#xff0c;放松心情&#xff1b;最后也为同学们提供了一个面向世…

软件工程的可行性分析

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

可行性分析与需求分析

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

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

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

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

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

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

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

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

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

加密技术应用

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

单片机怎么加密?

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

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

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

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

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

加密技术简介

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

某IC卡加密方法初探

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

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

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

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

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

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

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

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

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

IC芯片简介

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

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

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

什么是加密芯片?

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