软件工程导论课件之第1章软件工程学概述第五版张海潘编着.ppt
《软件工程导论课件之第1章软件工程学概述第五版张海潘编着.ppt》由会员分享,可在线阅读,更多相关《软件工程导论课件之第1章软件工程学概述第五版张海潘编着.ppt(67页珍藏版)》请在三一办公上搜索。
1、软 件 工 程,童红斌,学习目的:,软件工程是计算机专业一门重要的专业课。目的在于培养学生用工程化的原理及方法开发软件系统,把专业知识同实际项目结合起来,为将来从事计算机软件的开发及应用维护工作打下坚实的基础。对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义。,参考书:,现代软件工程,张家浩,机械工业出版社软件工程:实践者的研究方法,Roger S.pressman,郑人杰等译,机械工业出版社软件工程导论学习辅导,张海藩,清华大学出版社,成绩评定:平时成绩包含:小论文、作业和考勤。,总目录:,第1章 软件工程学概述第2章 可行性研究第3章 需求分析第4章 形式化说
2、明技术第5章 总体设计第6章 详细设计第7章 实现第8章 维护,第9章 面向对象方法学引论第10章 面向对象分析第11章 面向对象设计第12章 面向对象实现第13章 软件项目管理,1.1 软件危机 1.2 软件工程 1.3 软件生命周期 1.4 软件过程,第1章 软件工程学概述,第1章 软件工程学概述,软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。,1.1 软件危机,计算机系统:是指适当的组织在一起的一系列系
3、统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。,对软件的认识:1950:程序1960:程序+文档(不包括管理文档)1970:程序+文档+数据1984:软件管理是过程管理,CMM1.0能力成熟度模型1996:UML统一建模语言,计算机系统4个不同的发展阶段:,计算机软件发展的4个阶段,1.1.1 软件危机的介绍,软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。实际上,几乎所有软件都不同程度地存在这些问题。软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。,软件危机的
4、典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。,1.1.2 产生软件危机的原因,(1)与软件本身的特点有关软件是逻辑部件。软件不会被“用坏”,如果发现了错误,很可能是开发时期引入。软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。,(2)与软件开发与维护的方法不正确有关忽视软件需求分析的重要性。对用户要
5、求没有完整准确的认识就匆忙着手编写程序。越早开始写程序,完成它所需要用的时间往往越长。认为软件开发就是写程序并设法使之运行。程序只是完整的软件产品的一个组成部分。一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。在软件开发的不同阶段进行修改需要付出的代价是很不相同的,见图1.1。,图1.1 引入同一变动付出的代价随时间变化的趋势,轻视软件维护。维护是极端艰巨复杂的工作,需要花费很大代价。软件维护的费用占软件总费用的55%70%。软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。,1.1.3 消除软件危机的途径,对计算机软件有正确的认识。认识到软件开
6、发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。应该开发和使用更好的软件工具。总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。,1.2 软件工程 1.2.1 软件工程的介绍,软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。,软件工程的代表性定义:Fritz Bauer:软件工程是为了经济地获
7、得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。IEEE:软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究。计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。,软件工程的划代(无公认的定义):1970年末之前,传统软件工程,瀑布模型。1980年后,面向对象软件工程,面向对象语言以Smalltalk-80的出现为标志。1984年后,软件过程工程,掀起软件过程运动,1991年出现的CMM是典型代表。1990年后,构件工程,基于构件的软件
8、开发方法,可重用的构件组装成新系统。,软件工程的本质特性:软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品,1.2.2 软件工程的基本原理,用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性,1.2.3 软件工程方法学,软件工程包括技术和管理两方面的内容。管理:通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以
9、达到既定目标的过程。技术(软件工程方法学):通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。,软件工程方法学3要素:方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境;如,CASE(Computer-Aided Software Engineering)工具过程:需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,1.传统方法学(生命周期方法学或结构化范型)强调自顶向下采用结构化技术来完成软件;划分为若干个阶段,然后顺序地完成每个阶段的任
10、务;每个阶段的任务相对独立,而且比较简单,降低了整个软件开发工程的困难程度;前一个阶段是后一个阶段的前提和基础,而后一阶段提出的解法更具体,细节更多;每个阶段结束前必须从技术和管理两方面对这个阶段的开发成果进行严格的检查,通过之后这个阶段才算结束;保证质量,提高可维护性;当软件规模庞大,或者的需求模糊或随时间而变化时,传统方法学往往不成功;维护起来仍然很困难。,2.面向对象方法学强调主动地多次反复迭代面向对象方法:把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。面向对象方法学4个要点:对象(object):融合了数据及在数据上的操作行为。类(class
11、):类是对具有相同数据和相同操作的一组相似对象的定义。继承:按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。消息:对象彼此间仅能通过发送消息互相联系。,面向对象方法学的优点:面向对象方法学的尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程,保证了在各项开发活动之间的平滑过渡。促进了软件重用。最终的软件产品由许多较小的、基本上独立的对象组成,每个对象相当于一个微型程序,而且大多数对象都与现实世界中的实体相对应,降低了复杂性,提高了可理解性,简化了开发和维护工作。,软件四化:构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 课件 软件 工程学 概述 第五 版张海潘编着

链接地址:https://www.31ppt.com/p-5638669.html