- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章清华大学计算机软件技术及应用基础电子教案
第4章 软件工程 4.1 软件工程概述 4.2 软件工程模式 4.3 软件生存周期 4.4 面向对象的设计 4.5 软件维护 习题4 在信息社会中,信息的获取、处理、交流和决策都需要大量高质量的计算机软件,人们对计算机软件的品种、数量、功能、质量、成本和开发时间等提出越来越高的要求。软件功能越强、使用越方便,开发出来的软件就越复杂、越庞大,人们的软件开发能力越显得力不从心,以致软件开发计划一拖再拖,成本失去控制,软件质量不能保证。为了扭转这种被动局面,自20世纪60年代后期,人们开始重视软件的开发、工具和环境的研究,并取得了重要的成果。 4.1 软件工程概述 1.软件的发展 自从1946年第一台计算机问世以来,就有了程序的概念。软件伴随计算机技术的发展经历了程序设计、软件和软件工程三个不同的时代。 1.程序设计时代(1946年~1955年) 这个时代的计算机硬件特点是:逻辑电路由电子管组成,内存容量小,运行速度慢,系统稳定性很差。这一时期系统设计与实现是以硬件为中心,编程处于从属地位。只有程序和程序设计的概念,程序设计的工具是机器语言、汇编语言、服务性程序。计算机的应用主要限于科学计算,程序规模小,结构简单。程序设计方法追求编程技巧,追求效率高、内存省。编制的程序不易阅读、理解和修改,维护困难。 2.软件时代(1955年~1970年) 这个时代硬件已广泛采用晶体管和小规模集成电路,计算机内存容量增大,运算速度加快,运行稳定性高。计算机产量急剧上升,程序需求量猛增,造成软件人员奇缺。这时已提出软件概念,使用第二代语言如FORTRAN、ALGOL、COBOL等编译系统。操作系统实用化,数据库处于试验阶段;计算机的应用扩大到数据处理及过程控制等领域;各种系统及应用软件规模越来越大,结构也更加复杂。然而程序设计方法和软件开发技术没有重大突破,仍靠个人的“技艺”。使得软件产品开发的复杂需求与软件开发技术的能力之间产生尖锐的矛盾,从而产生所谓的“软件危机”。 · 3.软件工程时代(1970年现在) 60年代后期,传统的软件开发方法不能适应大型软件的生产,而导致软件危机。人们想到用工程化的方法来生产软件,把注意力集中到软件开发的方法、技术和原理上。从此软件生产开始进入软件工程时代。 在软件设计方面,提出新的程序设计方法:自顶向下,逐步求精的结构化程序设计方法、模块化设计方法等。人们把这些称为首批原理,也称为第一代软件技术。在1972年到1975年,提出软件生存周期模型,把注意力集中到软件测试方面,提出了若干新的软件测试技术、测试方法、测试原理以及软件确认和验证的理论,这些称为第二代软件技术。虽然已提出了上述的若干方法技术,但仍没有彻底解决描述和表达软件的需求分析的问题。 因此,1976年至1980年开始提出了若干处理需求定义方面的技术,这些称为第三代软件技术。80年代后,人们开始把软件工程各阶段的工具集成到一起,形成软件开发环境,更有效地支持软件开发的工程化,使软件产品质量和可靠性得到提高。 2. 软件危机 1)软件危机产生的原因 随着社会对计算机应用的需求的增长,软件系统规模越来越庞大,生产难度和生产成本越来越高。软件量需求剧增,软件生产成本高,质量没有可靠的保证,软件开发的生产率低等等因素构成软件生产的恶性循环。软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现“软件危机”。 软件危机主要表现在,软件开发进度难以预测;软件开发成本难以控制;用户对软件产品的功能要求难以满足;软件产品的质量无法保证,系统中的错误难以消除;软件产品难以维护;软件缺少适当的文档资料;软件开发生产率的提高速度,难以满足社会需求的增长率。 ①开发人员和用户之间的矛盾。开发人员在还没有准确、完整地了解用户的实际需求后就急于编程;用户在开发初期,由于各种原因往往不能准确地提出需求描述。 ②大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。 ③缺乏有力的方法学和工具方面的支持,过分依靠程序设计人员的技巧和创造性。重编程,轻需求分析;重开发,轻维护;重程序,轻文档。这样做的后果就是在软件系统中“埋藏”了许多故障隐患,直接危害着系统的可靠性和稳定性。 2)解决软件危机的途径 分析了软件危机的原因后,人们开始探索用工程的方法进行软件生产的可能性,即用工程的概念、原理、技术和方法进行软件的开发、管理、维护和更新。于是,计算机科学技术的一个领域---“软件工程”诞生了。 3.软件工程 1)软件工程的定义 什么是“软件工程”?1983年IEEE给出的定义为:“软件工程是开发、运行、维护和修复软件的系统方法”,其中,“软件”的定义为:计算机程序、方法、规则、
文档评论(0)