- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课件第1章-软件工程学概述((第六版)(张海潘编著)
软 件 工 程;学习目的:;参考书:;成绩评定:
平时成绩包含:小论文、作业和考勤。 ;总目录:; 1.1 软件危机
1.2 软件工程
1.3 软件生命周期
1.4 软件过程;第1章 软件工程学概述;1.1 软件危机;对软件的认识:
1950:程序
1960:程序+文档(不包括管理文档)
1970:程序+文档+数据
1984:软件管理是过程管理,CMM1.0能力成熟度模型
1996:UML统一建模语言
;计算机系统4个不同的发展阶段:;计算机软件发展的4个阶段 ;1.1.1 软件危机的介绍;软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准确;
(2)用户对“已完成的”软件系统不满意的现象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
(7)软件开发生产率提??的速度,远远跟不上计算机应用迅速普及深入的趋势 。;1.1.2 产生软件危机的原因 ;(2)与软件开发与维护的方法不正确有关
忽视软件需求分析的重要性。对用户要求没有完整准确的认识就匆忙着手编写程序。越早开始写程序,完成它所需要用的时间往往越长。
认为软件开发就是写程序并设法使之运行。程序只是完整的软件产品的一个组成部分。一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。在软件开发的不同阶段进行修改需要付出的代价是很不相同的,见图1.1。;图1.1 引入同一变动付出的代价随时间变化的趋势;1.1.3 消除软件危机的途径 ;1.2 软件工程 1.2.1 软件工程的介绍 ;软件工程的代表性定义:
Fritz Bauer:软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。
IEEE:软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究。
计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。;软件工程的划代(无公认的定义):
①1970年末之前,传统软件工程,瀑布模型。
②1980年后,面向对象软件工程,面向对象语言以Smalltalk-80的出现为标志。
③1984年后,软件过程工程,掀起软件过程运动,1991年出现的CMM是典型代表。
④1990年后,构件工程,基于构件的软件开发方法,可重用的构件组装成新系统。;软件工程的本质特性:
软件工程关注于大型程序的构造
软件工程的中心课题是控制复杂性
软件经常变化
开发软件的效率非常重要
和谐地合作是开发软件的关键
软件必须有效地支持它的用户
在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品;1.2.2 软件工程的基本原理 ;1.2.3 软件工程方法学 ;软件工程方法学3要素:
方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;
工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境;如,CASE(Computer-Aided Software Engineering )工具
过程:需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。;1. 传统方法学(生命周期方法学或结构化范型)——强调自顶向下
采用结构化技术来完成软件;
划分为若干个阶段,然后顺序地完成每个阶段的任务;每个阶段的任务相对独立,而且比较简单,降低了整个软件开发工程的困难程度;
前一个阶段是后一个阶段的前提和基础,而后一阶段提出的解法更具体,细节更多;
每个阶段结束前必须从技术和管理两方面对这个阶段的开发成果进行严格的检查,通过之后这个阶段才算结束;保证质量,提高可维护性;
当软件规模庞大,或者的需求模糊或随时间而变化时,传统方法学往往不成功;维护起来仍然很困难。;2. 面向对象方法学——强调主动地多次反复迭代
面向对象方法:把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
面向对象方法学4个要点:
对象(object):融合了数据及在数据上的操作行为。
类(class):类是对具有相同数据和相同操作的一组相似对象的定义。
继承:按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。
消息:对象彼此间仅能通过发送消息互相联系。;面向对象方法学的优点:
面向对象方法学的尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程,保证了在各项开发活动之间的平滑过渡。
促进了软
文档评论(0)