02系统工程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1系统工程软件工程(SoftwareEngineering)2内容摘要1.基于计算机的系统2.系统工程的任务3.成本/效益分析4.可行性分析3•所谓基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合或排列。•组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程(Procedure)1.基于计算机的系统4系统元素•软件—指计算机程序、数据结构和相关的工作产品,以实现所需要的逻辑方法、规程或控制•硬件—指提供计算能力的电子设备、支持数据流的互连设备(如网络交换器、电信设备)和提供外部世界功能的电子机械设备(如传感器、马达等)•人员—指硬件和软件的用户和操作者•数据库—指通过软件访问并持久存储的大型的有组织的信息集合。•文档—指描绘系统的使用和/或操作的描述性信息(如模型、规格说明、联机帮助文件、Web站点)。•规程(procedures)—指定义每个系统元素的特定使用或系统所处的过程性语境的步骤。5内容摘要1.基于计算机的系统2.系统工程的任务3.成本/效益分析4.可行性分析62.系统工程的任务计算机系统工程是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。(1)识别用户的要求标识系统的功能和性能范围,确定系统的功能、性能、约束和接口。72.系统工程的任务(2)系统建模和模拟通常可考虑建立如下模型:•硬件系统模型:描述基于计算机系统中的硬件(包括计算机、受系统控制的其它硬件设备等)配置、通信协议、拓扑结构、以及确保基于计算机系统的安全性、可靠性、性能等要求的措施。•软件系统模型:描述各软件子系统的功能、性能等要求,它们在硬件系统中的部署情况,以及软件子系统之间的交互。•人机接口模型:描述人如何与基于计算机的系统进行交互,包括用户环境、用户的活动、人机交互的语法和语义等。•数据模型:描述基于计算机的系统使用了哪些数据库管理系统,如果使用多个数据库管理系统,还应描述它们之间的数据转换方式,必要时可给出主要的数据结构。系统模型通常可用图形描述,并加以相应的文字说明。必要时,在系统建模后可构造原型,进行系统模拟,以分析所建的模型能否满足整个基于计算机的系统的要求。82.系统工程的任务(3)成本估算及进度安排对将开发的基于计算机的系统进行成本估算,并作出进度安排。(4)可行性分析从经济、技术、法律等方面分析所给出的解决方案是否可行,通常只有当解决方案可行并有一定的经济效益和/或社会效益时才开始真正的基于计算机的系统的开发。(5)生成系统规格说明9内容摘要1.基于计算机的系统2.系统工程的任务3.成本/效益分析4.可行性分析103.成本/效益分析•成本估算是可行性分析的重要依据,也是软件管理的重要内容,直接影响到软件开发的风险。•成本/效益分析的目的是从经济角度评价开发一个新项目是否可行、是否划算,从而帮助使用部门的负责人正确地作出是否投资于这项开发的决定。•成本/效益分析首先估算待开发系统的成本,然后与可能取得的收益进行比较与权衡。113.成本/效益分析•基于计算机系统的成本主要由4部分组成:①购置硬件、软件(如数据库管理系统、第三方开发的构件等)和设备(如传感器等)的费用。②系统开发费用。③系统安装、运行和维护费用。④人员培训费用。•在可行性研究阶段只能对上述费用所构成的成本进行估算。其中软件开发成本可用估算方法进行估算。在系统开发完毕并交付用户运行后,即可统计出实际开发成本。12效益经济效益包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。在进行成本效益分析时通常只统计五年内的经济效益。社会效益指使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等),通常社会效益只能定性地估计。经济效益通常可用货币的时间价值、投资回收期和纯收入来度量。13软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价,即主要是人的劳动的消耗。因此,软件产品开发成本的计算方法不同于其他物理产品的成本的计算。软件产品不存在重复制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。因此软件成本估算,应以软件计划、需求分析、设计、编码到测试的软件开发全过程所花费的代价为依据。另外,必须注意,对于一个大型项目,由于其项目的复杂度,成本估算并不是一件简单的事,必须建立相应的估算模型,按照一定的方法、技术来进行估算。3.成本/效益分析3.成本/效益分析3.1影响成本估算的因素3.2软件成本估计技术3.3效益度量的方法14153.1影响成本估算的因素项目开发的成本受项目的特点、规模等多种因素的制约,尤其是其中的软件要素的开发成本在可行性研究阶段很难准确估算。为了正确进行成本估算,首先要了解影响成本估算的主要因素:1)软件人员的业务水平软件人员的素质、经验、掌握知识的不同,在工作中表现出很大的差异。2)软件开发技术水平指开发方法、工具、语言等,技术水平越高,效率越高。3)软件可靠性要求一般可靠性要求愈高,成本愈高。4)软件产品的规模及复杂度复杂性:应用程序,实用程序,系统程序分别由低到高排列。规模:按YOURDON分类法将软件产品的规模分为微型,小型,中型,大型,超大型,极大型。16类别参加人数研制期限产品规模(源代码行)微型11–4周500小型11–6月1000–2000中型2-51–2年5000–50000大型5-202–3年50000–500000超大型100-10004–5年1000000极大型2000-50005–10年1000000–10000000微型可不做严格的系统分析和设计,在开发过程中应用软件工程的方法。小型如数值计算或数据处理问题,程序往往是独立的,与其他程序无接口,应按标准化技术开发。中型如应用程序及系统程序,存在软件人员之间,软件人员与用户之间的密切联系、协调配合。应严格按照软件工程方法开发。大型编译程序、小型分时系统、应用软件包、实时控制系统等。必须采取统一标准,严格复审,但由于软件规模庞大,开发过程可能出现不可预知的问题。甚大型如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统等。子项目间有复杂的接口,若无软件工程方法支持,开发工作不可想象。极大型如大型军事指挥系统、弹道防御系统等,这类系统极少见,更加复杂。173.2软件成本估计技术1)成本估算步骤:规模------工作量----时间(进度)---成本Cost=人月数*元/人月工作量E=f(s)s-----规模Cost=LOC*¥/LOC182)规模度量(sizemeasurement)软件开发项目规模度量是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。常用估算技术有很多种,如:•代码行(LOC:linesofcode)、•功能点分析(FPA:functionpointsanalysis)、•特征点(featurepoint)、•对象点(objectpoint)、•3-D功能点(3-Dfunctionpoints)、•德尔菲法(Delphitechnique)、•COCOMO模型、•模糊逻辑(fuzzylogic)、•标准构件法(standardcomponent)等3.2软件成本估计技术193)常用的估算方法:基于已经完成的类似项目进行估算,这是一种常用的也是有效的估算方法基于分解技术进行估算•问题分解是将一个复杂问题分解成若干个小问题,通过对小问题的估算得到复杂问题的估算•过程分解指先根据软件开发过程中的活动(分析、设计、编码、测试等)进行估算,然后得到整个项目的估算值。基于经验估算模型的估算。典型的经验估算模型有IBM估算模型、CoCoMo模型和Putnam模型。上述方法可以组合使用以提高估算的精度3.2软件成本估计技术20软件成本的估算量源代码行(LOC)机器指令行/非机器语言的执行步骤开发工作量人月(PM)人年(PY)人日(PD)软件生产率LOC/PM¥/LOC¥/PM软件开发时间4)成本估算模型3.2软件成本估计技术21其中:ai—估计的最小行数bi—估计的最大行数mi—最可能的行数1专家估算模型即源代码行估算模型(Deiphi技术)由Rand公司提出的Deiphi技术,是由n位专家进行成本估算。每位专家根据系统规格说明书,反复讨论给出ai、bi及mi的值,并按照下式反复估算源代码的期望值Li,期望中值L。将估算的源代码行数,乘以根据经验推算的每行源代码所需成本,即为该软件的成本。4)成本估算模型ai+4mi+bi61nLi=L=niiL1222IBM估算模型1977年由Waiston和Felix总结了IBM联合系统分部(FSD)负责的60个项目的数据,利用最小二乘法拟合,得到如下估算公式:工作量:E=5.2*L(PM)项目持续时间:D=4.1*L(月)人员需要量:S=0.54*E(人)文档数:DOC=49*L(页)其中:L_源代码行,以千行计。IBM估算模型是一种静态单变量模型,它利用已估算的结果,如源代码行,来估算各种资源的需求量.但IBM估算模型不是一种通用模型,因此应用中应根据具体实际情况调整模型中的参数.233Putnam估算模型3134L=CkKtdPutnam估算模型是一种动态多变量模型,是根据一些大型项目中工作量的分布情况推导出来的。其中:L—源代码行,K—所需工作量(PY)td—开发时间,CK—技术水平常数其值与开发环境有关。(差:2500-2000,正常:10000-8000,好:12500-14000)LCktd334K=Ck的典型值开发环境开发环境举例:差:没有系统的开发方法,缺乏文档和复审好:有合适的系统的开发方法,有充分的文档和复审优:有自动的开发工具和技术25COCOMO模型(ConstructiveCostModel)由TRW公司开发,是由Boehm提出的结构型成本估算模型,其特点是精确、易用。是一种层次模型,按照其详细程度分为三级:即基本的COCOMO模型、中间的COCOMO模型和详细的COCOMO模型。该模型主要对工作量MM(单位:PM)和进度TDEP(单位:月)进行估算。模型中考虑到估算量与开发环境有关,将开发项目分为三类:4COCOMO模型26组织型(Organic)规模5万行,较简单,开发人员对产品目标理解充分,经验丰富,对软件开发环境熟悉。大多数应用软件及老的操作系统、编译系统属此类。嵌入型(Embedded)软件、硬件关系紧密,操作有限制条件,对接口、数据结构,算法要求较高。如大型复杂的事务处理系统,大型、超大型的操作系统,军事指挥系统,航天控制系统等半独立型(Semidetached)对项目要求界于上述两者之间,规模复杂度中等。如新操作系统,大型数据库,生产控制等软件属此类。4COCOMO模型27Ealckloc=①基本的COCOMO模型(静态单变量模型)其中:E—工作量(PM),KLOC—估计的源代码行Cl—模型系数,a—模型指数.Cl、a取决于开发项目的模式为组织型、半独立型或嵌入型。下表是根据63个项目的数据统计结果,按照基本的COCOMO模型估算的工作量和进度。28②中间的COCOMO模型进一步考虑了15种影响软件工作量的因素,更加合理的估算软件工作量和进度。151Ealiicklocf其中:fi—成本因素包括(见下页表):产品因素(可靠性,数据库规模,软件复杂度)计算机因素(时间约束,存储约束,环境变更率,计算机换向时间)人员因素(系统分析员能力、经验,程序员能力,开发人员环境知识,程序时间语言知识)项目工程因素(设计技术,软件工具,进度限制约束)2930③详细的COCOMO模型估算公式与中间CoCoMo模型相同,并按分层、分阶段的形式给出其工作量影响因素fi分级表。313.3效益度量的方法1)货币的时间价值指同样数量的货币随时间的不同具有不同的价值。货币的时间价值通常用利率的形式表示。假设年利率为

1 / 65
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功