下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章“行性研究我们在做任何工作以前,必须明确工作的性质、任务、制定完成任务的计划。显然完 成一个软件系统的开发,也应解决好类似的问题。明确软件开发系统的任务,完成任务的 价值,制定出完成任务的计划,是软件系统可行性研究的目的.2.1 可行性研究如果不限时间、不限资源、则任何研制项目都是可行的!然而在开发以计算机为基础的 系统时,需要用最小的代价,在尽可能短的时间内确定问题是否能够解决。这种可行性研 究的目的是确定我们所研究的问题是否值得去解,系统完成后所能带来的效益是否大到值 得投资开发这个系统的程度C可行性研究的实质就是要进行一次压缩,简化了的系统分析和设计的过程,也就是在 较高层次上以较
2、抽象方式进行系统分析和系统设计的过程,可行性研究应着重考虑如下五 个方面:1 .技术可行性。是指使用现有的技术能否实现这个系统。它包括开发风险一一在限制 条件范围内达到必需的功能与性能;资源配置一一指现有的技术人员是否胜任,开发系统 的软、硬件资源是否能如期得到;技术一一指现有的技术是否已发展到这样的水平,能够支 持系统的研制,2 .经济可行性。指新系统的经济效益能否超过开发成本。包括评价经济的合理性,权 衡支出的费用和收到的利益,正确估计开发费用以及最终从所开发的系统获得的收入和利 益。其中经济的合理性包括成本/效益分析,长期的总体的经营策略,对其他获利中心或获 禾产品的影响,开发工作需用资
3、的购置费用、潜在的市场等等C3 .运行可行性。指为新系统规定的运行方式是否可行。如果新系统是建立在原来已担 负其他任务的计算机系统上,就不能要求它在实时在线状态下运行,以免与原有的任务相 矛盾。4 .操作可行性。指系统的操作方式在这个用户组织内是否行得通。它包括人事政 策,科技政策和必要的管理拮施C5 .法律可行性。指新系统的开发是否会侵犯他人、集体或国家的利益,是否违反了国 家的法律,并由此而承担法律责任C可行性研究并不保证一个系统经济上明显合理、技术风险低,很少法律问题,而且不 存在其他合理方案。然而,我们之所以要进行可行性研究,其目的是对以后的行动方针提 出建议。如果问题没有可行的解,那
4、么分析员应该建议停止这项开发工程,以避免时间、 资源、人力和金钱的浪费。如果问题值得解,那么分析员应该推荐一个较好的解决方案, 并为工严制定一个初步计划C可行性研究需要的时间长短取决于系统的规模。一般来说,可行性研究的成本只是预 期工程总成本的510%11.1.2 川行性研先的步界1 .复查系统规模和目标。要仔细阅读和分析分析员在问题定义阶段书写的关于系统目 标和规模的报告书,确定报告书的内容,修改不确切的叙述,清晰地描述对目标系统的一 切限制和约束,确保分析员提交的报告书确实是用户要求 解决为回题2 .研究现有的系统。现有系统是信息的重要来源,现有系统要完成的工作,就是新系 统所必须具备的功
5、能。现有系统存在的缺点,新系统必须加以改进。现有系统所不具备的 功能,又是用户必须的,则新系统一定要预以增加。现有系统所需要的费用是新系统的一个 重要的投资依据。这样的调查研究,是了解一个陌生应用领域的最快方法。既可以使新系统脱胎 而生,又不全盘照抄。另外还要注意现有系统与其他系统之间的通信接口,这是新系统设计 的重要约束条件.:3 .导出新系统的高层逻辑模型。软件工程设计总是从现有的物理系统出发,导出现有 物理系统的逻辑模型;再以现有物理系统的逻辑模型为基础,设计出新系统的高层逻辑模 型;最后根据高层逻辑模型建造新的物理系统。依据新系统的功能和约束条件,我们可以 使用数据流图(DFD图)来描
6、绘数据在系统中流动和处理的情况,使用数据字典来定义系统中使用的数据,从而完成新.系统的逻辑模型,至物理系统采用系统流程图来表小C4 .重新定义问题。新系统的逻辑模型是否能满足用户的要求,分析员和用户应该一起 进行复审。复审以数据流图和数据字典为依据,对问题的定义、工程模型和目标进行审查。 如果有分岐和遗漏等问题,应立即进 仃改I -,上述可行性研究步骤实质上是一个循环,即定义系统目标一-复查系统目标和规模一 一研究现有系统一-设计新系统一-再定义系统目标。重复这个循环过程,直到提出的新 系统逻辑模型完至符合.系统廿标和规模为止C5 .提出供选择的方案。从系统的逻辑模型出发,以系统要求为目标,利
7、用在数据流图 上划分自动化边界的方法,我们可以提出若干种较高层次的物理解法供用户选择。针对多 种供选方案,用户应从如F二个方面进行筛选:(1)从技术角度排阴邛些不加.丈的方案;(2)从操作角度去掉那些操作方式或操作过程用户不能接受的方案:(3)从经济角度估算每个可能系统的成本/效益。一般来说,只有投资预计能带来利润 的系统才值得开发。只有在技术、操作经济等方面都可行的系统,我们才为其制定实现进度表。此进度表 不需要很详细,只是耍仙计生存周期每个阶段的工作量.6 .推荐建议方案。在对上一步提出的各种可行方案的分析、比较的基础上,向用户提 出推吞的方案,在推荐方案中应清整地表明(1)本项"
8、;的升发价%(2)推吞这个方案佗舟山;(3)划定实况或口的进.度表,7 .决策。使用部门的负责人根据经济实力及分析员在可行性研究阶段对开发此项工程 成本/效益ti机他分析结论,决定是否锌续这项升发.门匕8 .制定开发计划。分析员应为推荐的系统制定一份开发计划,它包括工程的进度、人 材资源的需求及使用、设备资源的需求及使用 (软、硬件工具)、估算生存周期每个阶段的 成本等,最后给出下一阶段(需求分析)的详细进度表和成本估计9 .书写文档提交审查。把上述可行性研究各个步骤的结果写成清晰的文档,请用户和 使用部门的负责人仔细审查,也可以召开论证会。论证会成员由用户、使用部门负责人及 有关方面的专家组
9、成,负责对提出的方案进行论证,最后由论证会成员签署意见,指明该 开发计划是否逋过.:1.1.3 2仃性令旺报小佗匕要内容1 .系统概述。是对问题的简单陈述,包括系统的开发目的、目标、业务对象和范围, 新系统和它的各子系统的功能与特性,新系统与当前系统的比较,所需资源以及费用和进 度的概况笑.:2 .可行性分析。这是报告的主体部分,包括新系统在经济上、技术上、操作上、运行法律上的可行性,以及对新系统的主客观条件的分析。若存在多种方案,则应对各种 方案进 行比较,指明推荐的方案.3 .限制。指对系统开发有影响的管理方面和技术方面的限制,包括项目的外部环境、 接设计与实现、资源、费用或进度等C4 .
10、费门,算软、便件费用,小定出费用限额并注叼-5 .拟定开发计划。它包括工程进度表,人员配备情况,资源配备情况,估算出每个阶 段内成本、豹火条件等.6 .一一意舞k分析,说明新系统拈杏可行,其结论分为以卜一次:叶进?(2)把迟进打飞(3)不能或不U铝进行.2.2 系统流程图系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描 绘系统里面的每个部件。包括程序、文件、数据库和各种表格、人工过程等。它表达了信 息在.系统各部件之间的流动恬况。请读者注意它与秆1产流程图之间的区别C2.2.1国家标准(GB1526-89)信息处理一一数据流程图、程序流程图、系统流程图、程序网 络图和
11、系统资源图的文件编制符号及约定为我们推荐了一套标准符号和使用约定。该标 准是与国际标准化组织公布的标准ISO5807-85 Information processing documentationsymbolsand conventions for data, program and system flowcharts, program network chartsand system resources charts 相一致。系统流程图含有 5种基本符号,如图2-1所 示。11种系统符号如图2-2所示片文件。通常表示打印输出,也可表示用打印终端输入数据。磁盘显示通信链路文档磁带联机存储人工输
12、入 人工操作 辅助操作磁带输入/输出,或表示一个磁带文件。表示任何种类的联机存储,包括磁盘、磁鼓、 海量存储器件等。软盘和磁盘输入/输出,也可表示存储在磁盘上的文 据库。磁鼓输入/输出,也可表示存储在磁鼓上的文 据库。CRT牛或数件或数终端或类似的显示部件,可用于输入或输出,也可既输入又输出0人工输入数据的脱机处理,例如,填写表格人工完成的处理,例如,会计在工资支票上使用设备进行的脱机操作。通过远程通信线路或链路传送数据。图2-2系统符号0签名。2.2.2 应用系统流程图 每个具体物理,是一种极好的设1二素可以更准确十工具,它有助于开发人员和用户交流信息,利用系统的 M1计成本和制定系统的开发
13、进度。下面通过例子.来说明系统流程图的使用C例 某工厂有一座零件仓库,仓库中现有各种零件的数量以及每种零件的库存量临界 值等数据记录在库存清单主文件中。当仓库中零件数量发生变化时,应及时修改库存清单 主文件。当某种零件的库存量少于它的库存量临界值时,则应报告给采购部门以便定货。规定每天向采购部门送一次定货报告。工厂使用一台微机处理更新库存清单主文件和产生定货报告的任务。仓库中的每一项 业务都通过CRT终端输入到计算机中。系统中的库存清单程序负责对事务进行处理,更新 存储在磁盘上的库存清单主文件,把必要的定货信息写在磁带上。每天由报告生成程序读 一次磁带,生成并打印出定货报告。如图 2-3麻示?
14、图中的箭头确定了信息流动的途径,对于复杂的系统,可以采用分层描述的方法来描 绘整个系统。用一张高层次的系统流程图描绘系统总体概貌,然后分别把每个关键功能扩 展到适当的详细程度,便于阅读者按照从抽象到具体的过程逐步深入地了解一个复杂系统。图2-3 库存清单系统的系统流程图K HT2.3 数据流图数据流图简称DFD(Data Flow Diagram)图,它是描述数据处理过程的有力工具。数据 流图从数据传送、加工的角度,以图形方式刻画数据处理系统的工作状况。数据流图描绘系统内逻辑模型,它是一种极好的通信工儿C2.3.1数据流图有四种基本符号,如图 2-4(a)所示。有六种附加符号,如图2-4(b)
15、所示。 数据的源点/终点表示该系统数据的外部来源或去处,不受系统控制,是系统以外的人或事 物。例如,仓库的管理员、工厂的采购员、供货单位、售票处等。也可以是另外一个数据 处理系统向该.系统提供数据或接收该系统向它发出的数据C加工(处理)并不一定是一个程序,它可以代表一系列程序,单个程序或者程序的一个 模块,也U以代表用穿孔机穿孔或口视检查数据正确性等人工处理过程C数据存储不是指数据保存的物理地点或物理存储介质,而是对数据存储的逻辑描述。 数据存储并不等同于一个文件,它可以表示一个文件,文件的一部分,数据库的元素或记 录的一部分等等。数据可以存储在磁盘、磁带、主存、微缩胶片等介质上。数据存储有四
16、 种形式,即把一个数据存入数据存储;用一个数据去修改数据存储中的数据;从数据存储 中读出一个数据:从数据存储中检索出一批数据C图2-4 数据流图的符号数据流表示数据在系统中的流动方向,一般分单向数据流和双向数据流两种。它可以由某一个外部项产牛也可以由某一个处施逻辑产牛.,述E以来自某一个数据存储°附加符号中的星号(*)表示数据流之间是“与”关系;加号(+)表示数据流之间是“或” 关.系;符号 表不只能从数据流中选一个(互斥关系)。2.3.2 .!应用I举例例1 一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需 要再次定货的零件。对于需要订货的零件列出其零件编号、零
17、件名称、定货数量、单价、 供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货。下面用软件工程的方法画出该系统的 数据流图。分析过和如卜:第一步首先确定系统的源点和终点,本题仓库管理员是数据的源点,采购员是数据的终点。其次是加工(处理),本婀应该完成定货系统这样一个功能.最后考虑数据流,事务需从仓库送到系统中,显然事务是一个数据流;系统要把定货报表送给采购部,定货报表也是一个数据流._依据以上三点我们画出定货系统的基本数据流图,如图2-5麻示:图2-5定货系统基本数据流图第二步首先将加工(处理)定货系统进行功能分解,变成事
18、务处理和产生报表两部分. 其次要考虑有关数据的存储问题,在本题中涉及到存储的信息有:库存清单、定货信息。依据图2-5和以上两点,我们画出定货系统功能级数据流图,见图 2-6质示图2-6定货系统功能级数据流图第三步将事务处理进一步分解为接收事务,更新库存清单、处理定货三部分。依据本分析和 图2-6我们可以画出定货系统功能分解后的数据流图。见图2-7所示。其中1.1、1.2、1.3是图2-6中功能1的分解编号。图2-7定货系统功能分解后的数据流图例2银行取款系统的数据流图(活期储蓄)。分析过和如卜:第一步源点和终点都是储户C加工(处理)足完成取款的功能。数据流甚取款单、存折、现款C_依据以上三点画
19、出银行取款系统的基本数据流图,如图2-8肝示,图2-8取款系统基本数据流图第二步取款工作实际上达由储户资格审查、登录、付款二部分组成C数据存储部分涉及储户的帐日和存折L数据的更新c依据图2-8及以上二点分析,我们可以画出取款系统的功能级数据流图,如图 2-9所不0图2-9取款系统功能级数据流图读者可以根据自己的需要,将图 2-9进一步细化,本书不再给出分解后的数据流图。例3病员监视系统的数据流图。该系统监视病房中的每个病人的重要病情信号,更 新及管理病人的病历,若出现问题立即通知护理人员,并且在需要时给出某一病人的有关 报告。分析过林如卜:第一步源点.来自病人本身或护士 C终点是护士,因为切报
20、告和告警信H应汇集到护士处.加工(处理)是病员您视系统C数据流包拈病情信号、报告、告警信息和要求报告.数据存储是指病员病历._依据以上分析,我们画出病员监视系统的基本数据流图,如图 2-10灰示、,图2-10病员监视系统基本数据流图第二步对系统分析后,划分出四种功能,即通过一个床边监视器实现本地监视,在护士办公 空实现中央监视,病人病历的更新,护士办公室提出报依据图2-10和以上分析,我们画出病员监视系统功能级数据流图,如图 2-11所示。图2-11病员监视系统功能级数据流图第三步将中央监视系统划分为四个处理部分,包括分解病员信号,检查是否超出界限,产生 告警信息,整理病员数据。依据图2-11
21、和本次功能分解,我们可以画出病员监视系统功能 分解后的数据流图,如图2-12日图2-12病员监视系统功能分解后的数据流图2.3.3 画数据流.图的.以川1 .陶定系统的源点和癸点,对啜据流国向于它是.系统的外号叽2 .确定系统的输入和输出数据流。随着加工 (处理)的细化,功能也就越来越具体,数 据流也就越来越多,输入和输出也会相应地增加,但要保持分解前后输入/输出数据流必须 相同。3 .用“自顶向下”的方法,逐层画出数据流图。每张数据流图中加工(处理)的个数不能超过9个.-4 .将必要的存储与加工(处理)相匹配:5 .在画数据流图时应避免线条交叉,必要时可使用重复的外部项(源点或终点)或数据存
22、储符J6"|出出砧及列外条件处理怙况,2.3.4 数据流.图的用途1 .作为交流信息的工具。系统分析人员把他对系统的认识或对目标系统的设想用数据 流图描绘出来,供有关人员审查确认。由于数据流图中使用的符号不含任何物理实现细节, 所以大多数用户都可以现解和评价它。2 .作为分析和设计的工具。分析员在研究现有的系统,描绘其功能时常用数据流图表 达他们对现有系统的认识,这种描绘方法形象、具体,它不同于系统流程图,使系统的功 能和实现每个功能的具体方案区别开来C3 .数据流图可以辅助物理系统的设计。在数据流图上依据不同处理的定时要求,可以 画出许多组自动化边界,每组自动化边界就是一个不同的物
23、理系统。例题 1中的图2-7, 由于自动化边界的划分方法不同, 产生了两种不同的物理系统,即批处理方式和联机方式, 见图2-13、2-14 所示、4 .数据流图对详细设计也有帮助,它是面向数据流设计 (SD)方法的基础 图2-13这种划分自动化边界的方法暗示以批量方式更新库存清单图2-14另一种划分|'|劫化边界的方法喑示以联机方式更新库存清单2.4数据卞典数据字典是对数据流图中包含的所有元素定义的集合,即对数据流图中出现的所有名 子(数据流、文件、数据单项、基本加工)进行定义。它的主要用途是供人们查阅对不了解条H的解释,在软件分析和设计过林中给人提供关数据的描述信息c数据流图和数据字
24、典共同构成系统的逻辑模型。数据流图描述了系统的“分解” ,它表 明系统由哪些部分组成。数据字典则为数据流图中出现的每一部分都给出“严格定义”,二者的行机配合,完整地描述了系统C2.4.1 数据字电的内容及定义方法一般来说,数据字典应该由如下四类元素组成,它们是数据流、文件、数据单项、基 本加工(处理)。在组成数据字典时,要注意避免冗余,遵循有关数据流向在数据流图中描 述,有关数据的组成在数据字典中描述, 有关数据的加工细节在数据字典中描述的三原则。 要尽量避免遗漏,如果确有遗漏发生,应该补充,这对于设计、编码、调试、维护会带来方便.同时应及时沟通,设法消除不一致性,减少别名的出现C1 .数据流
25、数据流通常有一个名字,它是由一组数据项组成的。数据流可以从加工流向加工,也 可以从源点流向加工,或从加工流向终点。数据流还可以从加工流向文件,或从文件流向 加工。任意两者之间可有一股或多股数据流,同一数据流图上不能有两股数据流同名。描 述数据流时,要用到卜述符号:二表示等价于(或定义为);+去小可;/ 表小或: ,i )1我小重复;() 表小选择:mn去小-界域.例如 运动员成绩=运动员号码+项目名+成绩+被记来课程=程名+教员+教材名+课程表课程表=星期几+第几节课+教室2 .文件文件是用来存储数据的,每个文件都有一个名子。文件的形式可以是数据库,也可以 是规定结构的数据组织。指向文件的数据
26、流可理解为写入文件,从文件引出的数据流可理俾为自文件中读出数据。在分层的数据流图中,文件一般局部上某一层或姑几层C例如 定期存款=帐号+户名+地址+款额+?期存期 r1 / 3 / 5 / 8 13 .数据单项数据单项是指不川.再分的数据项C例如帐号=000000999999学生=姓名+年龄+性别+班级4 .基本加工(处理)基本加工是加工的分量,是数据流图中不能再分解的加工。基本加工由基本加工的小 说明和相应的描述构成。小说明集中描述一个加工“做什么”,目前小说明一般用自然语言、 判定表和判定树来描述C(1) .用斜构亿比然出三疝述.小说小结构化自然语言是介于形式语言与自然语言之间的一种语言。
27、结构化自然语言的语法 通常分为内外两层,外层语法描述操作的控制结构一一顺序、选择、循环等,这些控制结 构将也各个操作连接起来:内层语法一般没有一限制1 0小说明的形式如卜:加_L编写:在数据流图中某个加_L的编号加工名:在数据流图中某个加工的.名字加_L逻辑:此加_L中实行的操作行关信息:执行此加工的条件例如 力一个加.为统计旧产的功定可写为:加工编号:3.4加工名:统计房产加工逻辑:KZK()读房产文件,按面积分类,统计已分和未分配的住房数,输出统 计表方关信息:方统计要求时执行此加_L(2)月判定表描述小说明判定表是用来描述一些不易用语言表达清楚的加工。它由条件类别、条件组合、操作、操作执
28、行四部分组成C例 某旅游预订票系统规定,在旅游旺季 7、8、9、12月份,如果订票数超过100张, 则优惠票价的20% 100张以下,优惠10%在旅游淡季,1至6月份、10、11月阿,若订 票数超过50张,则优惠25% 50张以下优惠10%判定表的一般形式如表2-1 .所小二表2-1 旅游预订票系统判定表(3) .用判定树描述小说明判定树本质上与判定表没什么两样,只不过它是图上表示法,更为人们熟悉和易于理 解,上面的预订票系统,用判定树表示见图 2-15肝示,图2-15旅游预订票系统的判定树基本加工(处理)可用语言、表格、图形等多种形式来描述,也可将它们组合起来使用。2.4.2 数据字归的.用
29、途数据字典是分析阶段的工具,它有助于分析员和用户之间的交流与通信,它可以消除 许多可能的误解与不一致性,是开发数据库系统的第一步。一般来说,中小规模的数据处 理系统建立一个人工的数据字典就够了,对于大规模的数据处理系统,则应建立一个自动 的数据字典。无论哪一种数据字典都应由专人管理,目的是保持其字典内容的一致与完整 性,通常数据字典力加卜五种用途C1 .按要求列表,从数据字典中检索出所需要的信息,具有列全表、摘要列表、专项列 表三种,2 .修改和补充数据流图。数据流图初步画好后,相应的数据字典也随着建立起来。随 着分析、设计的深入,修改和优化是再所难免的。对任何数据单项或数据结构,可通过数据字
30、典找出使用该内容的项进行必要的修改,一般不会出现遗漏.3 .可以由描述内容检索名称。若只知道一个数据单项的内容,而不知道它的名称,可 通过内容检索知其名C4 .保证一致性和完整性。根据数据字典,可以查出没有指明来源或去处的数据流,可 以查出没有指明数据存储的数据单项和没有指明所属数据流的数据单项,可以指明没有被 加工(处理)引用的数据单项,可以指明被加工(处理)引用而在输入数据流或输出数据流中未 曾出现的数据单项等5 .数据定义可以直接使用在编程上。用户可以使用数据字典中的数据定义,对程序里 的行关记录进行描述,帮助杷r;员进行程17设计.2.4.3 数据字归的文刖方法数据字典的实现方法方二种
31、,全人工过程,仝自动化过程和混合过程C1 .全人工过程 力每个要定义的名字证备一张旧片;(2)在卡片上注明其类型,即数据流、文件、数据单项、基本加工(处理)四种类型之一;(3)写名子的定义:(4)写该名子的艮池把性或限m;(5)招出力用:按 定打个排I加英文字母顺产或汉字H四多少等2 .全口动化过程此类字典一般容量较大,有专门的计算机程序来管理,该管理程序本身应具有如下功 能:(1)规定吃或的条廿格七 条H指数据流,文件,数甥单项等;(2)接受技理定格的字典条H的输入;(3) .其方自砧指这 如报告非法输?沿法知审复定义健试等;(4)其力编辑功能,对字归的条口能进行箱、删、收等;(5)能输出按
32、次豚的字典条H清单;(6)能产工名类查便报告二3 .合过科是将上述两种技术有机地结合在一起,形成数据字典的过程。其中字典的共性部分用 全自动化过程完成,字典的某些个性部分用全人工过程来完成。具体实现不详述。但全人 工过程一般适合于小系统,全自动化过程一般适合于大系统,混合过程一般适合于中等大 小内.系统城某些专门用途的系统C2.5 成本/效益分析开发一个系统实质上是一种投资,而投资的目的是为了在将来获得更大的经济效益。成本/效益分析从经济角度揭示了开发一个新系统是否划算,也为使用部门的负责人决策是否投资某项开发工程提供了依据C2.5.1 成本M计成本估计是一种不精确的方法,使用时应该用几种不同
33、的估计技术相互校验。下面介 绍一类成本估算技术1 .何因行技术是一种比较简单定量的估算方法,把开发每个软件功能的成本和实现这个功能需要用 的源杆代码仃数联系起来,若不历史数据作参考的注,这种方法还毡行效的C设T 软件成本:软件源代码行数;A每行嫄代旧的平均成本,则作T=A N其中a取决软件的复杂mm 贫太平.2.,任务分解技术把软件系统分解为若干个独立的任务,然后再分别估计每个单独开发任务的成本,最 后累加起来得到软件系统的总成本C设T 软件总成B-每个单独州友任苏的成如a余去d 则有:T= E a B(1)又C 完成每个单独任务所需的人力(月);D每人每月的平均工贫.则有B=C D(2)由和
34、(2)褥T=E a C D在典型环境下,各个阶段要使用的人力如表2-2肝示,3 .犷算模型采用经验公式来计算软件的成本已有许多种方法,但到目前为止还没有任何一种估算 模型能适用于所有各种软件和各种开发环境,而且大多数模型的一些经验数据都是从有限 的项目样本中得出的,因此仙.算模型必须审慎地使用.(1)军教方书大多数资源模型是根据过去的经验,并通过大量的统计和分析推导出来的。它们揭示 了在一定条件.卜资源花费和软件规模的内在关系C1)节态单空员拉态单变量模型的一般形式如卜:资源=C1(估计特点) eC2任务人力可行性研究5需求分析10设计25编码和单兀立以20综合测试及生:护40总计其中 资源一
35、一通常指人力、开发工作用 计算口也可以是工程期限,需要的人数或文100f需的工作量,以人 档数a等;表2-2典型环境下各个开发阶段需要使用人力的百分比/月或人/日、人/年为单位C1、C-经验数据:估计特点一一源代码行数例Doty在1977年发表的估算开发工作量的算法列在表 2-3中。表2-3估算开发工作量的算法应用范围目标码源代码表中M是开发所需要用的人力,包括分析、设计、编码、测试、调试等工作,以 月为单位计算;I 是估计的程序长度,单位以千条(或千行)计算,2)节态系变员单态多变量模型也根据历史数据导出的绎验公式,公式的典型形式为:资源二c11 - el - ec12+c21 - e2 -
36、 ec22+|其中ei 软彳的第i个招:点:ci1,ci2 与第i个特点亍关的经骁号数.3)动态窖变员是1979年putnam在软件开发生存期雷利(Rayleigh)曲线模型的基础上提出的SLIM商 业化成本估算模型。这类模型把资源需求看作是开发时间的函数,则有:L=Ck K1/3 - td 4/3(9-1)其中L 源代码行数:K开发所需用的人力,以人年为单位;td 开发,所一.用的时也以年为单位;Ck-技术水1-常数,它的典型值为:对于差的开发环境C k=2500对于好的开发环境C k=10000 对于优越的开发环境 C k=12500从方程(9-1) E以卿出开发所需要:的一作H2 K=l
37、! - Ck3 - td -44 ) IBM模型是由IBM公司的Waston和Felix在1977年总结了旧M联合系统中60个项目的数据而 得出来的估算公式:E=5.2 L0.91D=4.1 - L0.36=2.47 甘85S=0.54 - E16DOC=49 L1.01其中E 工作量,单位为人/月; D一一项H持续时向,单位为月; DOC一 I-J6的源代码行数从而有生产率L= EDD(;)29i=1DD W jX i其中Xi 取值为-1, 0, +1,取决于第i个因素对项H的影响什况;Wj.小权位,口体的计算为”Wj=0.5log10(PCi)其中 PCi 生产率比值,与第i个项目成本因素
38、:行关系,(2)株池Ll法本方法主要使用开发各类程序的标准生产率,估计开发工程的总工作量。标准生产率 根据以往的开发经验导出。主要从使用的程序设计语言,处理方式(批处理,实时处理),和峰难易秆度,技术人员水平和开发范围儿个方面来划分程,开发类型C使用标准值法估算开发工作量,首先需要确定程序的开发类型,并估计程序的规模。 为了使程序规模的估计值更接近实际值,可请若干名有经验的软件工程师分别作出估计。 每个人都应该估计程序的最小规模(a),最大规模(b)和最可能的规模(m),分别求出这三种 规模的平均值a-, b-和m-之后,再用下式计算程序规模的估计值L=a-+4m-+b-/6然后使用开发该类杆
39、序的标准生产率和适当的修止系数fi11算开发.I :作量工作量二修正系数x (程序长度/标准生产率)其中标准生产率的单位通常是每人日可开发的程序长度(源程序行数或目标指令条数),修正系数反映其他因素对开发工作量的影响,当考虑从需求分析直到测试的开发过程 时,它的算法是:修正系数=1+0.1n其中n是符合.卜.列条款的数1)目标.系统恬况修改文档不完备的程,需求中方不明硝的或尚未决定的内容.系统规模较大 工作带有试探性质(需多次试探),.系统接n不明确或接n复杂 联机实时系统(测试困难) 数据库需要复杂的安全措施2)口管珅和人员如成人用 中途改变攻廿管碑人 项目组不协调(人事关系不好) 新手域初
40、级人员比例较高 需要培训程,员,顶廿管理人没力数据处理经验,顶廿管理人没力应用领域经验,.系统分析员没力应用领域经验 .系统设计员没力应用领域绎验 杆年员没不应用领域绎验3) .用户恬沆 用户对计算机数据处理知之其少,.系统需娈在不同场合使用 系统需满足使用部门的标注或手续 使用部门提供的测试数据没经过验证 使用部门不同苣开发计划 开发过用中用户需求发生了变化 使用部门负送人变动4) ,发坏无恬况 现力.的操作系统功能不足 将.来预定使用的计算机尚未测,试 _L作场所分散 卡存和辅存受限制 计算机使田时间不能充分保障 计算机机房管理不善 _1?作中途中断(3) COCOMO4聿此模型是最精确的
41、成本估计方法之一,是由Boehmf 1981年出版的软件工程经济学 一书中提出的,命名为构造性成本模型 (Constructive Cost Model)。在这种模型中,软件 开发工作量表示成据估计应该开发的代码行数的非线性函数:MM=C 1 KLOC a nDD(;)15i=1DDf i KJYR (92)其中MM开发1作工,以人月为单位;C 1 模型条数;KLO-彷计代时如以,工行为”位;a模一型由数;f i成本因素,i=1至U 15。每个成本因素都根据它的重要程度和影响大小赋予一定数值,一般把成本因素划分成牛产因素、计算机因素、人员因素和改H因素等:卜面简单介绍主耍的成本因素©
42、1)牛产因素要求的软件可靠性(RELY)这个因素反映了为保证软件可靠性应作出的努力的大小。例如,软件复审的次数和正式和皮;正式应用旗品保9和配置管班过林的程.度:运行均间软件失效的影响C数据库规模(DATA)应该开发或集成到目标系统中的数据库的规模和复杂程度。应该考虑数据库设计、信息兀素的数廿、访问方法和查询技术等等C 软件产品复杂程度(CPLX)所开发的软件的逻辑和结构等方面的复杂程度C2)计算机因素 执行时间的约束(TIME)指软件需求中对程序执行时间限制的程度。一般说来,在实时应用和某些交互式系统 中公遇到时向约点问题,存储约束(STOR)对存放杆摩和数据时可以使用的存储容员的限制C环境
43、变更率(VIRT)软件外部环境(例如,计算机硬件、操作系统、数据库管理系统)在软件开发期间变动的撅率和范围.: 计算机换向时间(TURN)指一序设计环境的响应时间C3)人员因素系统分析员的能力(ACAP)分析员从事分析工作的经验和专门知识的多少C应用经验(AEXP)开发人员对他们面临的应用领域所具有的绎验的多少C程序员的能力(PCAP)和j r员在杆序设计方面口力的经验和专门知识的多少,环境知识(VEXP)开发人员对所用的软件开发妗境的绎验和专门知识的多少C语言知识(LEXP)开发人员对这个工两.项H选定的削不设计语言的绎验和专门知识的多少c4)项目因素 程序设计实践(MODP)在开发期间使用
44、现代程序设计技术(自顶向下程序设计方法论,自顶向下测试技术,结 构化编码方法,面向对象方法学等等)的门!L软件工具(TOOL)软件,杆每个步骤 U以使用的软件上文的多少C 进度约束(SCED)对,杆进度限制的杆.度,它影响应用软件工程技术的程度C5)其他因素 iii H经验表明,汇编语言或机器语言每条指令的成本,大约是高级程序设计语言每个源语 句成本的两倍.:大小,应用实时软件每条指令的成本大约是一般程序每条指令成本的5倍口软件类型操作系统每条指令的成本大约是应用程序或实用程序的2.5倍口经:验开发不熟悉的程序比开发熟悉的程序大约需要多付出50100%J苗动;文档数员经验表明,文档的成本大约占
45、软件开发总成本的10%.用户需求和开发尸、境的桓定程度这些是决定软件成本的市要因素,但是日前仄能卜:观地估计它(的影响.管许一这是非常用要的因素,但是目前也只能'E观地仙计它的影响.cocoMO型是层次型模型,按详细程度分成三级。最上层是对各种规模软件的宏观估 计模型;最下层是微观模型,它具有任务分解结构和一系列阶段敏感因子。下面简单介绍 中层COCOMO型软件开发项目可以分成组织式、半独立式和嵌入式三种模式。对组织式软件的要求通 常不苛刻,开发人员经验丰富,而且对软件的使用环境很熟悉(通常是为自己所在的组织开 发软件),程序规模一般不大(小于5万行代码)。例如,简单的商业数据处理系统
46、即属于组 织式。嵌入式软件需要在很强的约束条件下运行, 通常和某些硬设备紧密结合在一起(例如, 空中交通管理软件),对这类软件系统的要求通常十分苛刻。对半独立式软件的要求通常介于两类软件之间,但是这类软件的规模一般都比较大(可达30万行代码)。上述三种开发 模式的正常工作量方程列在表2-4中口所谓正常开发工作量也就是所有影响成本的因素都取正常值,即在 9-2式中f i=1(i=1,2,,15)如果某些因素不能取正常值,则需要把这些因素的实际值(称为工作量系数)乘以正常开发工作量,才能得出对系统实际开发工作量的正确估计。表 25中列出了影响软件开发成本的工作量系数表2-4正常开发工作量方程开发模式正常开发工作量组织式MM=3.2(KLOC)1.05半独立式MM=3.0(KLOC)1.12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 151-2026高压直流系统、静止无功补偿装置和柔性交流输电系统用换流器及其阀厅的防火措施
- 护理伦理困境与应对
- 湖南省常德市重点达标名校2026届初三下学期期末质量抽测数学试题试卷含解析
- 山东省新泰市西部联盟达标名校2025-2026学年初三下学期自测卷(一)数学试题含解析
- 2026年山东省商河县重点达标名校初三阶段性测试(二模)物理试题文试题含解析
- 福建省龙岩院附属中学2026届初三下质量检测试题(5月)物理试题含解析
- 2026年陕西省安康市汉滨初三教学质量检测试题(一模)物理试题试卷含解析
- 黑龙江省重点中学2026届初三周考数学试题四含解析
- 湖北省孝感市安陆市重点中学2026届初三第二次诊断性考试物理试题含解析
- 疼痛护理的持续质量改进:方法与案例
- 2026江苏南京市雨花台区征收拆迁安置办公室招聘编外人员3人笔试参考题库及答案解析
- 乐山市市中区2026年上半年公开招聘城市社区专职网格员(禁毒社工)(24人)笔试备考题库及答案解析
- 内部财务交叉检查制度
- 柔性传感器介绍
- 抖音直播营销案例分析
- 2025青岛国企社会招聘笔试题及答案解析
- 7s管理制度标准规范
- 2026年金融监管机构面试问题集含答案
- 血站安全教育培训课件
- 厂房拆除施工验收标准
- 农商行考试题及答案
评论
0/150
提交评论