(2.1)--01章 软件工程导论软件工程.ppt





《(2.1)--01章 软件工程导论软件工程.ppt》由会员分享,可在线阅读,更多相关《(2.1)--01章 软件工程导论软件工程.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1 1章章 软件工程学概述件工程学概述软件工程导论(第软件工程导论(第6版)版)教材:张海藩,牟永敏编著,清华大学出版社主讲:张贤坤,天津科技大学计算机科学与信息工程学院第第1 1章章 软件工程学概述软件工程学概述 1946年第1台计算机产生后计算机系统经历了4个不同的发展阶段,但是,软件已经成为限制计算机系统发展的瓶颈。为了更有效地开发与维护软件,软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科软软软软件工程学件工程学件工程学件工程学。主 要内 容1.1 软件危机软件危机1.2 软件工程软件工程1.3 软件生命周期软件生命周期1.4 软件过
2、程软件过程1.1.1 软件危机的介绍软件危机的介绍 在计算机软件的开发和维护过程中所遇到的一系列严重问题。1991年2月,伊拉克战争美国爱国者导弹在对抗伊拉克飞毛腿导弹时失利,28名美国士兵身亡,原因是导弹软件包含一个累加计时误差。软件危机的典型表现软件危机的典型表现1、对软件开发成本和进度的估计常常很不准确。2、用户对“已完成的”软件不满意现象经常发生。3、软件产品的质量往往靠不住。4、软件常常是不可维护的。软件危机的典型表现软件危机的典型表现5、软件通常没有适当的文档资料。6、软件成本在计算机系统总成本中所占的比例逐年上升。7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋
3、势。1.1.2 产生软件危机的原因产生软件危机的原因1软件不同于硬件,管理和控制软件开发过程相当困难。2软件不会被“用坏”,运行中错误可能是开发时引入且未被检测出来的错误。3不同于一般程序,软件规模大,且复杂性随着规模的增加呈指数上升。与软件本身特点有关与软件本身特点有关产生软件危机的原因产生软件危机的原因456与软件本身特点有关与软件本身特点有关对用户需要没有准确认识就匆忙编码是许多软件项目失败的主因之一。软件专业人员,采用错误的方法和技术可能是使软件问题发展成软件危机的主要原因。错误的认识和做法:忽视软件需求分析的重要性,轻视软件维护等 1只重视程序而忽视软件配置的其余成分的糊涂观念。2或
4、多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。3错误的认识和做法:忽视软件需求分析的重要性,轻视软件维护等。软件开发与维护的方法不正确有关软件开发与维护的方法不正确有关产生软件危机的原因产生软件危机的原因在软件开发的不同阶段进行修改需要付出的代价在软件开发的不同阶段进行修改需要付出的代价1.1.3 消除软件危机的途径消除软件危机的途径1首先应该对计算机软件有一个正确的认识。2充分认识到软件开发应该是各类人员协同配合,共同完成的工程项目。3推广使用成功的技术和方法,并且研究探索更好更有效的技术和方法。与软件本身特点有关与软件本身特点有关4应该开发和使用更好的软件工具
5、。本小节主要讲解了软件危机的定义、典型特征、产生的原因,并给出了消除软件危机的途径。本节小结本节小结主 要内 容1.1 软件危机软件危机1.2 软件工程软件工程1.3 软件生命周期软件生命周期1.4 软件过程软件过程1.2.1 软件工程的介绍软件工程的介绍 软件工程概述:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。软件工程的介绍软件工程的介绍1968年在第一届NATO会议上曾经给出了软件工程的一个早期定义:“
6、软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。软件具有的本质特性软件具有的本质特性软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键必须有效地支持它的用户两种背景的人创造产品这个特性与前两个特性紧密相关1.2.2 软件工程的基本原理软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实
7、行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组的人员应该少而精7、承认不断改进软件工程实践的必要性1、传统方法学传统方法学也称为生命周期方法学或结构化范型。采用结构化技术(结构化分析、结构化设计和结构化实现)完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。2、面向对象方法学与传统方法相反,面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。1.2.3 软件工程软件工程方法学方法学软件工程软件工程方法学方法学方法完成软件开发的各项任务的技术方法,回答“怎样做”的问题工具为运用方法而
8、提供的自动的或半自动的软件工程支撑环境过程为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤1.1.传统方法学传统方法学概念:概念:传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。软件工程软件工程方法学方法学软件工程软件工程方法学方法学传统方法学的特点方法学的特点:传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。每个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后
9、一阶段的开始标准。软件工程软件工程方法学方法学采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。目前,传统方法学仍然是人们在开发软件时使用得十分广泛的软件工程方法学。软件工程软件工程方法学方法学面向对象方法学:面向对象方法学:概念:概念:与传统方法相反,面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。四个要点四个要点把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。把所有对象都划分成类(class)。按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。对象彼此间仅能通过发送消息
10、互相联系。软件工程软件工程方法学方法学面向对象方法学基本原则:面向对象方法学基本原则:尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。软件工程软件工程方法学方法学面向面向对象方法学:象方法学:优点:点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。面向对象方法特有的继承性和多态性,进一步提高了面向对象软件的可重用性。1、软件工程定义2、软件具有的本质特性3、软件工程的基本原理4、软件工程方法学本节小结本节小结主 要内 容1.1
11、 软件危机软件危机1.2 软件工程软件工程1.3 软件生命周期软件生命周期1.4 软件过程软件过程1.3 软件生命周期软件生命周期 软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。软件生命周期软件生命周期软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作常称为系统分析,由系统分析员负责完成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。开发时期具体设计和实现在前一个时期定
12、义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。维护时期的主要任务是使软件持久地满足用户的需要。软件生命周期软件生命周期下面简要介绍软件生命周期每个阶段的基本任务01问题定义02可行性研究03 需求分析04总体设计本小节主要讲解了软件生命周期的定义和各阶段过程的内容。本节小结本节小结主 要内 容1.1 软件危机软件危机1.2 软件工程软件工程1.3 软件生命周期软件生命周期1.4 软件过程软件过程 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程描述为了开
13、发出客户需要的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎样(how)做这些事以实现某一个特定的具体目标。1.4 软件过程软件过程1.4.1 瀑布模型瀑布模型瀑布模型一直是唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。如图1.2所示为传统的瀑布模型。图1.2 传统的瀑布模型按照传统的瀑布模型开发软件,有下述的几个特点。a)a)阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性,包含两重两重含义:必须等前一阶段的工作完成之后,才能开始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2.1-01章 软件工程导论软件工程 2.1 01 软件工程 导论

限制150内