1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)

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

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

图解如下:

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第1张图片

问题二:
如何理解计算机系统工程?
计算机系统工程:一个问题求解活动
目的:揭示、分析所期望的功能、性能、接口和约束条件,并把它们分配到各个系统元素中去。
计算机的系统工程包括:硬件工程、软件工程、人机工程和数据库工程。
每一项工程的作用:明确和细化系统的功能和性能的范围和内容
产生一个能与其他系统元素适当集成的可操作的系统元素。

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

硬件工程: 

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第2张图片

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第3张图片

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第4张图片

软件工程:

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第5张图片

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第6张图片

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第7张图片

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

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

可通过回答以下问题协助完成系统分析过程 
系统的总体目标是什么?
系统所期望的功能和性能是什么?
系统的可靠性和质量要求是什么?
成本与进度限制如何?
有无软硬件制造和购买的需求?
有效的技术方案有哪些?
将来系统可能有哪些扩充?
问题四:
为什么要进行可行性分析?

答:因为有很多影响系统开发的因素。
如:时间因素、资源因素、成本和利润的因素、技术条件和能力的因素
进行可行性分析才能明确系统是否值得做,避免投资损失
即能否带来经济效益、企业效益或社会效益。
问题五:
如何进行可行性分析?

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)^n


2、投资回收期:
就是使累计的经济效益等于最初的投资费用所需的时间。
投资回收期越短,就能越快获得利润。 
设上例中的投资回收期为N,则:
(N-2)*8.29=20-17.85
N=2.259年

3、纯收入:
就是在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。
纯收入 > 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、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第8张图片

系统流程图
符号
示例
分层

 1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第9张图片

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第10张图片

1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)_第11张图片 

如果系统比较复杂,可以采用流程图分层次地描述系统。

高层的系统流程图描述系统总体概貌,定义其中的关键功能。

对每个关键功能再进一步扩展为独立的流程图。
系统分析总结

系统规格说明书
系统规格说明书描述了系统的功能和性能,以及管理该系统开发的一些限制条件。
这个规格说明书定义了每个被分配的系统元素,给软件开发人员指明了软件系统在整个计算机系统中的位置和作用,并用体系结构图描述了各子系统在整个大系统中所起到的作用,除此之外系统规格说明书还描述了系统的输入/输出(数据和控制)信息。 

 

你可能感兴趣的:(software,engineering)