- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章软件工程的回顾.doc
第一章 软件工程的回顾
§1 分析法的演变与软件工程
软件工程是伴随计算机软件系统开发而形成并逐步完善的一个独立的工程学科。自1968年北大西洋公约组织(NATO)的计算机科学家正式提出了“软件工程”(Software Engineering)的术语,并为之制定了一个设计软件程序的标准化的步骤框架以来,围绕软件工程内部的各种具体技术手段和方法的研究工作一直就没有停止过。所有这一切研究都是为了寻找出能够开发适应不同的应用环境的高质量、高可靠、高安全、高效率、长寿命、高可维护、低成本的软件系统的技术和实施方法。这当中具有系统分析和设计套路的知名方法就有数十种。但在面向对象的分析与设计方法问世之前,几乎所有的系统分析和设计方法都有一个相同的特点:以软件系统所处理的数据为核心,归纳、分析处理的每个步骤,最终建立系统的分析和设计模型。因而被统称为面向过程的分析方法。本书主要是以二十世纪八十年代中期以后逐渐流行起来的面向对象的分析和设计方法为重点,论述其主要的思维方法,并将之与传统的面向过程的分析方法进行适当的比较。由于面向对象的分析和设计方法并非独立于传统的面向过程的分析方法而发展起来的,而是在总结面向过程的分析方法在工程实践中的成功和失败的经验、教训的基础上继承、提炼其可用成份后逐步形成的。所以,对于根本没有系统学习过软件工程的读者,有必要对软件工程的概要内容进行补充性的学习,以利于读者能够迅速接受面向对象的分析和设计方法的思维模式。但由于软件工程的学科内容十分庞大,不可能全面展开,只能兼顾面向对象分析与设计方法对其继承的程度有所侧重。本章内容正是基于这样的思考而专门安排的。
§1.1 软件工程的形成
最初的计算机程序设计完全是专业人员的个人行为,根本没有什么设计规范和设计方法的约束。由各种分散的、无规则的分析与设计方法最终形成有规范的软件工程则经历了计算机诞生的最初二十多年连续的演变历程。
一.六十年代中期以前的发展
这个时期由于计算机的CPU运算速度低、存储容量小,程序从分析、设计、使用到维护大都由一个人完成(研发的软件系统的部门既是开发方也是受益方)。此时,设计者只是注意在编程时要如何节省存储单元,提高运算速度,并没有十分详尽的系统分析、设计文档。因此,这一阶段的程序设计又被称为代码设计阶段。
二.六十年代中期至七十年代中期
由于集成电路的出现,计算机CPU的运算速度和存储容量都成倍提高,从而使计算机可以受理的计算或信息处理的能力都大为提高。这时的程序设计量已不是一个人可以承受的,从而出现了多个人分工合作开发软件的局面。甚至也已出现了由“软件作坊”设计出来的可以作为商品出售的小型、专用的软件程序。商业化的介入必然导致软件开发成本核算的经济管理的出现。这时人们发现一个花费巨额人力、物力和财力开发出来的软件,可能由于存在一些不适应用户要求的小问题而导致滞销乃至失败。而当开发人员打算修改这些小问题时,却又发现这个修改工作量与问题不成比例,可能需要再花费巨大的人财物的投入才能将问题解决。最典型的例子要算IBM公司的OS/360系统了。这就是被人们称之为的“软件危机”现象。此时,人们开始期望能有一种标准化的软件设计规范来实现软件程序设计上“多、快、好、省”的目标。
三.七十年代中期到八十年代中期
随着这一时期大规模集成电路的发展,计算机中软件设计的投资所占的比例越来越高。到1985年,美国公布的统计资料显示,当时的软件投资已占到计算机系统总投资的90%。这时的软件用户需求不断提高,开发周期日益缩短,软件的生存周期也随之缩短。因此一旦出现决策失误,软件开发商的损失将是非常巨大的。因而这段时期的软件工程出现了许多配套的、有详细设计规范、设计步骤文档和描述标准。在这些标准中便具体地定义了多种软件开发的方法。
§1.2 软件危机的出现
软件危机较为准确的定义是计算机软件在开发和维护时所遇到的所有问题的总和。因而解决软件危机就要解决如何在最小的成本投入的前提下使所开发的软件可以不断地满足人们日益增长的各种需求和如何能够尽可能降低维护工作量这两个主要问题。
一.软件危机的主要表现形式
⒈ 不可预计的开发成本和开发进度
随着软件的应用领域的不断扩大,做为软件的开发、设计人员大多并不熟悉和了解该软件的应用领域。如果开发人员与用户之间的信息交流不够或理解偏差,都会导致所开发出来的软件产品存在大量问题,以至于进度不能如期完成。
⒉ 软件产品的质量差
由于对于软件质量没有一套明确的评估标准,尤其是没有一套诸如工程监理制那样的质量评估体系对软件的每个开发步骤实施质量监督,因而对软件产品的质量好、坏评价常常是随意的。
⒊ 可维护性差
一个软件在应用一段时间后发现问题而需要修改时,开发方由于没有开发时的任何文档说明而陷入困境。这种
文档评论(0)