系统需求分析及可行性分析_第1页
系统需求分析及可行性分析_第2页
系统需求分析及可行性分析_第3页
系统需求分析及可行性分析_第4页
系统需求分析及可行性分析_第5页
已阅读5页,还剩38页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 系统需求分析及可行性分析系统需求分析及可行性分析 System Requirements Analysis & Feasibility study3.1 计算机的系统工程 Hardware engineering 硬件工程 Software engineering 软件工程 Human engineering Database engineering 数据库工程人类工程人类工程 an applied science that coordinates the design of devices, systems, and physical working condition

2、s with the capacities and requirements of the worker. 研究人与机器及环境之间相互关系研究人与机器及环境之间相互关系, ,寻求最大限度地发挥寻求最大限度地发挥人的能力和提高工作效率的科学。由数学、力学、物理学、人的能力和提高工作效率的科学。由数学、力学、物理学、生理学、解剖学、生物力学、生物物理学、卫生学、心理生理学、解剖学、生物力学、生物物理学、卫生学、心理学、社会学、人类学等多种学科相互渗透形成的学科。学、社会学、人类学等多种学科相互渗透形成的学科。人类工程活动是人类工程建设的总称,如堤坝、公路、铁人类工程活动是人类工程建设的总称,如堤坝

3、、公路、铁道的修建、工程建筑、城市建设、水资源和矿产资源开采、道的修建、工程建筑、城市建设、水资源和矿产资源开采、工业排污等。它们都是在地质环境中进行的。在人类工程工业排污等。它们都是在地质环境中进行的。在人类工程活动超过环境容量时,势必产生环境工程地质问题。如地活动超过环境容量时,势必产生环境工程地质问题。如地面塌陷与沉降、地裂缝等,造成对工程和环境的危害与损面塌陷与沉降、地裂缝等,造成对工程和环境的危害与损失。如不及时监测和适当治理,则将导致更大的损失失。如不及时监测和适当治理,则将导致更大的损失 Human engineeringComputer system基于计算机系统的系统元素基于

4、计算机系统的系统元素过程过程process系统系统system人人human硬件硬件hardware软件软件software文档文档files数据库数据库database输入输入input输出输出output/sysengr/whatis/whatis.htmlSystems Engineering is an interdisciplinary process that ensures that the customers needs are satisfied throughout a systems entire life cycle.

5、This process is comprised of the following seven tasks. 1. State the problem. Stating the problem is the most important systems engineering task. It entails identifying customers, understanding customer needs, establishing the need for change, discovering requirements and defining system functions.

6、2. Investigate alternatives. Alternatives are investigated and evaluated based on performance, cost and risk. 3. Model the system. Running models clarifies requirements, reveals bottlenecks and fragmented activities, reduces cost and exposes duplication of efforts. 4. Integrate. Integration means de

7、signing interfaces and bringing system elements together so they work as a whole. This requires extensive communication and coordination. 5. Launch the system. Launching the system means running the system and producing outputs - making the system do what it was intended to do. 6. Assess performance

8、. Performance is assessed using evaluation criteria, technical performance measures and measures - measurement is the key. If you cannot measure it, you cannot control it. If you cannot control it, you cannot improve it. 7. Re-evaluation. Re-evaluation should be a continual and iterative process wit

9、h many parallel loops. Systems analysis is the study of sets of interacting entities, including computer systems analysis. This field is closely related to requirements analysis or operations research. It is also an explicit formal inquiry carried out to help someone (referred to as the decision mak

10、er) identify a better course of action and make a better decision than he might otherwise have made.Systems Analysis 系统分析系统分析 软件开发的前期,由系统分析师作的一项任务。软件开发的前期,由系统分析师作的一项任务。The processes of investigation and analysis into the feasibility of potential computer applications and the design, implementation a

11、nd review of computer-based system. 3.2 可行性分析可行性分析 Feasibility Analysis 通过对项目的主要内容和配套条件,如市场需求、通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目

12、是否值得投资和影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具的一种综合性的系统分析方法。可行性分析应具有预见性、公正性、可靠性、科学性的特点。有预见性、公正性、可靠性、科学性的特点。 经济可行性 技术可行性 法律可行性 方案的选择可行性分析主要集中在如下可行性分析主要集中在如下 4 方面方面成本估算技术成本估算技术 Technique on the cost estimationl.代码行技术代码行技术(简称简称 LOC Lines Of Code 技术技术) 代码行技术是

13、比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据来估计实现一个功能需要的源程序行数。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。 代码行技术估算步骤如下代码行技术估算步骤如下: 1)确定功能:将项目功能反复分解到足够细,直到可以对为实现该功能所需要的源代码行数做出可靠的估算为止。 2)算出各子功能代码行数的平均值:首先根据经验和历史数据对每个子功能估计其程序规模的大小,即最小规模 a,最大规模 b 和最可能的规模 m,然后用下式计算出该子功能源代码的行数的平均值Le: Le = 64bma3)确定各子功能的代

14、码行成本和生产率确定各子功能的代码行成本和生产率:代码行成本指生产一:代码行成本指生产一条有效代码需要的花费条有效代码需要的花费(用元行表示用元行表示),生产率指每个人一个,生产率指每个人一个月所能生产的有效源代码行数月所能生产的有效源代码行数(用行人月表示用行人月表示),根据历史提,根据历史提供数据和开发人员工资率就可以估算出每行代码的成本。同样,供数据和开发人员工资率就可以估算出每行代码的成本。同样,凭经验和开发人员的技术水平、软件复杂程度等因素可以估算凭经验和开发人员的技术水平、软件复杂程度等因素可以估算出软件生产率。出软件生产率。4)计算各子功能的成本和人力计算各子功能的成本和人力(工

15、作量工作量):每个子功能的成本等:每个子功能的成本等于其代码行平均值乘以其代码行成本。每个子功能的人力等于于其代码行平均值乘以其代码行成本。每个子功能的人力等于其代码行平均值除以其生产率。其代码行平均值除以其生产率。5)计算该项目的总代码行数、总成本和总工作量计算该项目的总代码行数、总成本和总工作量 表表2.1是用代码行技术来估算开发一个图形软件包成本的是用代码行技术来估算开发一个图形软件包成本的例子。假设该软件包有四个主要功能,即用户接口控制、例子。假设该软件包有四个主要功能,即用户接口控制、二维几何分析、计算机图形显示、外部设备控制二维几何分析、计算机图形显示、外部设备控制(见表中见表中第

16、一列第一列)。实现每个子功能所需要的代码行数。实现每个子功能所需要的代码行数Le(见表中第见表中第二列二列)是由已知的是由已知的a,m,b代入代码行平均值公式计算而代入代码行平均值公式计算而得的。表中第三列是生产率,第四列是每行代码的成得的。表中第三列是生产率,第四列是每行代码的成本第五列成本和第六列人力都是计算而得的。本第五列成本和第六列人力都是计算而得的。 由表由表2.1中可知,开发图形软件包所需代码行总数是:中可知,开发图形软件包所需代码行总数是: L=14 81015 000行行 总成本:总成本: 3O9 180元元=3O9 00O元元 总人力:总人力: 71.772(人月人月) 2.

17、 任务估算技术任务估算技术 通常按开发阶段划分任务。典型环境下各个开发阶段需要使用的人力的百分比大致如图2.7所示。 这种方法实际上是一种任务分析技术,它首先把软件开发工程分解为若干个相对独立的任务,再分别估计每个单独开发任务的成本,最后累加起来得出软件开发工程的总成本。在估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。下面仍以图形软件包为例,用任务估算技术来估算其开发成下面仍以图形软件包为例,用任务估算技术来估算其开发成本本(见表见表 2.2所示所示)。 5)计算该项目的总代码行数、总成本和总工作量计算该项目的总代码行数

18、、总成本和总工作量 表表2.1是用代码行技术来估算开发一个图形软件包成本的是用代码行技术来估算开发一个图形软件包成本的例子。假设该软件包有四个主要功能,即用户接口控制、例子。假设该软件包有四个主要功能,即用户接口控制、二维几何分析、计算机图形显示、外部设备控制二维几何分析、计算机图形显示、外部设备控制(见表中见表中第一列第一列)。实现每个子功能所需要的代码行数。实现每个子功能所需要的代码行数Le(见表中第见表中第二列二列)是由已知的是由已知的a,m,b代入代码行平均值公式计算而代入代码行平均值公式计算而得的。表中第三列是生产率,第四列是每行代码的成得的。表中第三列是生产率,第四列是每行代码的成

19、本第五列成本和第六列人力都是计算而得的。本第五列成本和第六列人力都是计算而得的。 由表 2.2可知,用任务估算技术得到图形软件包的开发总成本是 339 95O元,取整千位得 340 000元,总人力是76个人月。然后把代码行技术和任务估算技术所得到的结果进行比较,计算出其总成本和总人力的相对误差为: 总成本: 总人力: 一般约定若相对误差在士20以内被认为估算基本正确,当然误差越小越好。若误差相差太大,则说明估算不正确,需重新进行估算 。COCOMO 模型模型 所谓所谓COCOMO模型就是模型就是Boehm 提出的提出的 构造性成本模型构造性成本模型(Constructive Cost Mod

20、el)。在这种模型中,软件开发工作。在这种模型中,软件开发工作量被表示成估计的代码行数的非线性函数:量被表示成估计的代码行数的非线性函数: 其中:其中:MM是开发工作量是开发工作量(以人月为单位以人月为单位); C1是模型系数;是模型系数; KLOC是估计的代码行数是估计的代码行数(以千行为单位以千行为单位); 是模型指数;是模型指数; fi (i = 1到到 15)是成本因素。是成本因素。 MM=C1KLOCni 1fi每个成本因素都根据它的重要程度和影响大小赋予一每个成本因素都根据它的重要程度和影响大小赋予一定数值。成本因素可以划分成生产因素、计算机因素、定数值。成本因素可以划分成生产因素

21、、计算机因素、人员因素和项目工程因素等。人员因素和项目工程因素等。 生产因素生产因素包括要求的软件可靠性(RELY)、数据库规模(DATA)和软件产品的复杂程度(CPLX)。 计算机因素计算机因素包括执行时间的约束(TlME)、存储约束(STOR)、环境变更率(VIRT)和计算机换向时间(TURT)。 人员因素人员因素指系统分析员的能力(ACAP)和应用经验(AEXP)、程序员的能力(PCAP)、开发人员的环境知识(VEXP)和对选定的程序设计语言的知识(LEXP)。 项目因素项目因素包括程序设计实践(MODP)、使用的软件工具(TOOL)、对工程进度限制和约束(SCED)。 COCOMO模型

22、是层次型模型,按详细程度分成三级:上层、模型是层次型模型,按详细程度分成三级:上层、中层和下层。软件开发项目可以分成组织式、半独立式和嵌中层和下层。软件开发项目可以分成组织式、半独立式和嵌入式三种模式。对组织式软件的要求通常不苛刻,开发人员入式三种模式。对组织式软件的要求通常不苛刻,开发人员经验丰富,对软件的使用环境很熟悉,程序的规模一般不大。经验丰富,对软件的使用环境很熟悉,程序的规模一般不大。嵌入式软件的要求通常十分苛刻,需要在很强的约束条件下嵌入式软件的要求通常十分苛刻,需要在很强的约束条件下运行。对半独立式软件的要求通常介于上述两类软件之间,运行。对半独立式软件的要求通常介于上述两类软

23、件之间,但这类软件的规模一般都比较大。但这类软件的规模一般都比较大。 开发模式 正常开发工作量 组织式 MM = 3.2(KLOC)1.05 半独立式 MM = 3.0(KLOC)1.12 嵌入式 MM = 2.8(KLOC)1.20 所谓正常开发工作量也就是所有影响成本的因素都取正常值,所谓正常开发工作量也就是所有影响成本的因素都取正常值,即在即在 COCOMO模型方程式中的模型方程式中的 fi = 1 (i=1,2,15) 如果某些因素不能取正常值,则需要把这些因素的实际值如果某些因素不能取正常值,则需要把这些因素的实际值(称为工作量系数称为工作量系数)乘以正常开发工作量,才能得出对系统实

24、乘以正常开发工作量,才能得出对系统实际开发工作量的正确估计。际开发工作量的正确估计。表表2.4列出了影响软件开发成本的工作量系数,不仅可以估列出了影响软件开发成本的工作量系数,不仅可以估算软件开发的实际成本,还可以分析、比较不同开发条件的算软件开发的实际成本,还可以分析、比较不同开发条件的成本和效益,从而能够制定出正确的开发方针。成本和效益,从而能够制定出正确的开发方针。 复利复利 compound rate, compound interest, interest on interest。F = P(1+i)n 年利息为年利息为 i, 现存入现存入 P 元,元, n 年后货币价值为年后货币价

25、值为 FP = niF)1( n 年能收入年能收入 F 元,这些钱的现值是元,这些钱的现值是:年年Future Future ValueValue万元万元(1+i)n1+i)ncurrent current ValueValue万元万元accumulated accumulated present present valuevalue万元万元19.61.0500 9.1429 9.1429 29.61.1025 8.7075 17.8503 39.61.1576 8.2928 26.1432 49.61.2155 7.8979 34.0411 59.61.2763 7.5219 41.5630

26、 花花20万元购买一套计算机辅助开发工具来代替人工设计工万元购买一套计算机辅助开发工具来代替人工设计工作,每年估计可节约作,每年估计可节约 9.6 万元。若该软件的生命周期为万元。若该软件的生命周期为 5 年,利率是年,利率是 5% , 则则 5 年可节约总开支多收万元?年可节约总开支多收万元?5 年可节约总开支年可节约总开支 41.5630 万元万元投资回收期:投资回收期:2 + (20-17.8503)/8.2928 = 2.259 年年纯收入:纯收入:41.5630-20=21.56 万元万元货币的时间价值货币的时间价值将来值将来值现在值现在值积累的现在值积累的现在值将来值将来值 Fut

27、ure value现在值现在值 Current value 投资回收期投资回收期 investment recovery period 纯收入纯收入 net income投资回收率把数量等于投资额的资金存入银行,每年年底从银行回收的钱等于等于系统可以获得的效益,在时间等于系统寿命时,正好把银行中的存款全部取完。P = + +jF1122)1(jFnnjF)1( P : 现在的投资额; Fi : 第 i 年年底的效益(i = 1,2,n);n : 系统的使用寿命;j: 投资回收率传送带分类系统传送带分类系统(a convey line sorting system,CLSS)的软件。的软件。 技

28、术可行性分析技术可行性分析Technique Feasibility Analysis 开发风险 资源可用性 技术条件Hatley & PirbhaiIPO “输入输入 处理(加工)处理(加工)- 输出输出”p用户界面用户界面p输入输入p系统过程和控制系统过程和控制p输出输出p维护和自测试维护和自测试体系结构语境图体系结构语境图 ACD输入处理输入处理用户用户 接口接口 处理处理输出处理输出处理维护和维护和自测自测过程和过程和控制控制传送带分类系统传送带分类系统 conveyor line sorting system CLSSCLSS的AFDArchitecture Flow Dia

29、gram体系结构流程图体系结构流程图conveyor line sorting system 传送带分类系统传送带分类系统AFD的扩展 最初的AFD中的每个圆角矩形又可被扩展为另一个专门描述它的体系结构模板。 每个子系统的说明描述和在子系统间流动的所有数据的定义构成了系统规约的重要元素 。 体系结构流程图体系结构流程图3.3.3 分配与权衡3.4 系统流程图本节内容:3.4.1 符号3.4.2 示例3.4.3 分层3.4.1 符号3.4.2 示例3.4.3 分层 如果系统比较复杂,可以采用流程图分层次地描述系统。 高层的系统流程图描述系统总体概貌,定义其中的关键功能。 对每个关键功能再进一步扩

30、展为独立的流程图。3.5 系统分析总结 本节内容: 3.5.1 系统规格说明书 3.5.2 可行性分析报告3.5.1 系统规格说明书 系统规格说明书描述了系统的功能和性能,以及管理该系统开发的一些限制条件。这个规格说明书定义了每个被分配的系统元素,给软件开发人员指明了软件系统在整个计算机系统中的位置和作用,并用体系结构图描述了各子系统在整个大系统中所起到的作用,除此之外系统规格说明书还描述了系统的输入/输出(数据和控制)信息。 3.5.2 可行性分析报告report on feasibility analysis英文单词“待确定”(to be determined,TBD)缺陷(gap)可行性研究的一般程序可行性研究的一般程序1. 机会研究(又称为立项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论