- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课件之第1章_软件工程学概述(第五版)(张海潘编著)讲述
软 件 工 程
吴 迪
学习目的:
软件工程是计算机专业一门重要的专业课。
目的在于培养学生用工程化的原理及方法开发软件系统,把专业知识同实际项目结合起来,为将来从事计算机软件的开发及应用维护工作打下坚实的基础。
对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义。
参考书:
现代软件工程,张家浩,机械工业出版社
软件工程:实践者的研究方法,Roger S. pressman,郑人杰等译,机械工业出版社
软件工程导论学习辅导,张海藩,清华大学出版社
总目录:
第1章 软件工程学概述
第2章 可行性研究
第3章 需求分析
第4章 形式化说明技术
第5章 总体设计
第6章 详细设计
第7章 实现
第8章 维护
第9章 面向对象方法学引论
第10章 面向对象分析
第11章 面向对象设计
第12章 面向对象实现
第13章 软件项目管理
1.1 软件危机
1.2 软件工程
1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
第1章 软件工程学概述
软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
1.1 软件危机
计算机系统:是指适当的组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。
对软件的认识:
1950:程序
1960:程序+文档(不包括管理文档)
1970:程序+文档+数据
1984:软件管理是过程管理,CMM1.0能力成熟度模型
1996:UML统一建模语言
计算机系统4个不同的发展阶段:
时期
硬件
软件
早期时代
20世纪60年代中期以前
晶体管计算机
程序设计阶段
个体化生产
第二代
20世纪60年代中期到70年代中期
集成电路计算机
程序系统阶段
作坊式生产
软件危机出现
软件工程诞生
第三代
20世纪70年代中期到80年代中期
微处理器
个人计算机
软件工程阶段
工程化思想
分布式系统
第四代
20世纪80年代中期至今
面向对象阶段
硬件与软件综合
软件开发第四代技术
计算机软件发展的4个阶段
1.1.1 软件危机的介绍
软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。实际上,几乎所有软件都不同程度地存在这些问题。
软件危机包含下述两方面的问题:
如何开发软件,满足对软件日益增长的需求;
如何维护数量不断膨胀的已有软件。
软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准确;
(2)用户对“已完成的”软件系统不满意的现象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势 。
1.1.2 产生软件危机的原因
(1)与软件本身的特点有关
软件是逻辑部件。
软件不会被“用坏”,如果发现了错误,很可能是开发时期引入的问题。
软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
(2)与软件开发与维护的方法不正确有关
忽视软件需求分析的重要性。对用户要求没有完整准确的认识就匆忙着手编写程序。越早开始写程序,完成它所需要用的时间往往越长。
认为软件开发就是写程序并设法使之运行。程序只是完整的软件产品的一个组成部分。一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。在软件开发的不同阶段进行修改需要付出的代价是很不相同的,见图1.1。
图1.1 引入同一变动付出的代价随时间变化的趋势
轻视软件维护。维护是极端艰巨复杂的工作,需要花费很大代价。软件维护的费用占软件总费用的55%~70%。软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。
1.1.3 消除软件危机的途径
对计算机软件有正确的认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。
应该开发和使用更好的软件工具。
总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
1.2 软件工程 1.2.1 软件工程的介绍
软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来
文档评论(0)