书签 分享 收藏 举报 版权申诉 / 81
上传文档赚钱

类型软件工程第1章课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3219313
  • 上传时间:2022-08-07
  • 格式:PPT
  • 页数:81
  • 大小:606.68KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《软件工程第1章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件工程 课件
    资源描述:

    1、 软件工程导论软件工程导论(第第5 5版版)前言前言软件工程是计算机专业的一门重要的专业基础课,软件工程是计算机专业的一门重要的专业基础课,它对于培养学生的软件素质,提高学生的它对于培养学生的软件素质,提高学生的软件开发软件开发能力能力与软件与软件项目管理能力项目管理能力具有重要的意义。具有重要的意义。1995年,年,Standish Group针对系统开发成功的研针对系统开发成功的研究表明,所有的开发项目中有究表明,所有的开发项目中有32%的项目在它们结的项目在它们结束之前被中止。此外多于一半的软件项目花费的成束之前被中止。此外多于一半的软件项目花费的成本相当于原来预算的本相当于原来预算的2

    2、倍。倍。只有只有42%的软件项目完成时达到了预期的范围和的软件项目完成时达到了预期的范围和功能,事实上,许多系统只完成了部分预期的需求。功能,事实上,许多系统只完成了部分预期的需求。因此,软件的开发是一个很困难的活动,要求很因此,软件的开发是一个很困难的活动,要求很仔细的计划和执行。仔细的计划和执行。软件工程就是在这样的背景下,由许多计算机科软件工程就是在这样的背景下,由许多计算机科学家经过多方面的探索和总结而成形的,目前发展学家经过多方面的探索和总结而成形的,目前发展十分迅速。十分迅速。课程的主要内容有:课程的主要内容有:介绍软件的基本概念和软件工程的目标,通过对介绍软件的基本概念和软件工程

    3、的目标,通过对传统的面向过程的软件开发方法和面向对象的软件传统的面向过程的软件开发方法和面向对象的软件开发方法的介绍,使学生掌握开发高质量软件的方开发方法的介绍,使学生掌握开发高质量软件的方法;法;通过对软件开发过程和过程管理技术的学习,使通过对软件开发过程和过程管理技术的学习,使学生了解如何进行软件质量的度量和管理,怎样进学生了解如何进行软件质量的度量和管理,怎样进行质量保证活动,从而能够有效地策划和管理软件行质量保证活动,从而能够有效地策划和管理软件开发活动。开发活动。管理的思想,工程的方法管理的思想,工程的方法 重点内容重点内容1.软件工程概念与软件工程的基本要素;软件工程概念与软件工程

    4、的基本要素;2.软件开发活动以及在这些活动中经常使用的系软件开发活动以及在这些活动中经常使用的系统定义技术、软件设计技术、程序设计技术和统定义技术、软件设计技术、程序设计技术和软件测试技术;软件测试技术;3.软件开发范型以及在软件开发中典型的软件开软件开发范型以及在软件开发中典型的软件开发模型;发模型;4.软件过程及分类;软件过程及分类;5.软件工程管理以及软件规模估算、项目成本估软件工程管理以及软件规模估算、项目成本估算、软件复杂性度量等技术;算、软件复杂性度量等技术;6.软件质量、质量特征以及软件质量保证;软件质量、质量特征以及软件质量保证;7.能力成熟度模型(能力成熟度模型(CMM)。课

    5、程教材课程教材软件工程导论(第软件工程导论(第5版)版)张海藩张海藩 清华大学出版社清华大学出版社参考教材:参考教材:实用软件工程(第二版)实用软件工程(第二版)郑人杰郑人杰 殷人昆殷人昆 陶永雷陶永雷 清华大学出版社清华大学出版社软件工程实验与课程设计指导软件工程实验与课程设计指导 王华王华 周丽娟周丽娟 谭小慧谭小慧 电子工业出版社电子工业出版社课程考核要求课程考核要求u课上认真听讲课上认真听讲u课后认真总结课后认真总结u高质量完成课程设计高质量完成课程设计总总 目目 录(录(1)第第1章章 软件工程学概述软件工程学概述第第2章章 可行性研究可行性研究第第3章章 需求分析需求分析第第4章章

    6、 形式化说明技术形式化说明技术*第第5章章 总体设计总体设计第第6章章 详细设计详细设计第第7章章 实现实现总总 目目 录(录(2)第第8章章 维护维护第第9章章 面向对象方法学引论面向对象方法学引论第第10章章 面向对象分析面向对象分析第第11章章 面向对象设计面向对象设计*第第12章章 面向对象实现面向对象实现*第第13章章 软件项目管理软件项目管理 第第14章章 UML概述概述第第1章章 软件工程学概述软件工程学概述1.1 软件危机软件危机1.2 软件工程软件工程1.3 软件生命周期软件生命周期1.4 软件过程软件过程1.5 小结小结国家计算机软件著作权保护条例国家计算机软件著作权保护条

    7、例 第二条本条例所称计算机软件第二条本条例所称计算机软件(以下简称软件以下简称软件),是指计,是指计算机程序及其有关文档。算机程序及其有关文档。第三条本条例下列用语的含义:第三条本条例下列用语的含义:(一一)计算机程序,是指为了得到某种结果而可以由计算计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序者符号化语句序列。同一计算机程序的源程序和目标程序为同

    8、一作品。为同一作品。(二二)文档,是指用来描述程序的内容、组成、设计、功文档,是指用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法的文字资料和图能规格、开发情况、测试结果及使用方法的文字资料和图表等,如程序设计说明书、流程图、用户手册等。表等,如程序设计说明书、流程图、用户手册等。软件工程发展的起因:软件工程发展的起因:“软件危机软件危机”为了更有效地开发与维护软件,软件工作者在为了更有效地开发与维护软件,软件工作者在20世世纪纪60年代后期开始认真研究消除软件危机的途径,年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科从而逐渐形成了一门新兴的工程

    9、学科计算机软计算机软件工程学件工程学(通常简称为软件工程通常简称为软件工程)。在计算机系统发展的早期时代在计算机系统发展的早期时代(20世纪世纪60年代中期年代中期以前以前):除了程序清单之外,没有其他文档资料保存下来。除了程序清单之外,没有其他文档资料保存下来。从从20世纪世纪60年代中期到年代中期到70年代中期:年代中期:这个时期的一个重要特征是出现了这个时期的一个重要特征是出现了“软件作坊软件作坊”,广泛使用产品软件,软件难以维护。广泛使用产品软件,软件难以维护。由此产生了由此产生了软件危机软件危机1.1 软件危机软件危机1968年北大西洋公约组织的计算机科学家在联邦德年北大西洋公约组织

    10、的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了上正式提出并使用了“软件工程软件工程”这个名词,一门这个名词,一门新兴的新兴的工程学科工程学科就此诞生了!就此诞生了!软件危机是指在计算机软件的开发和维护过程中所软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。都不同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题

    11、:如何概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。护数量不断膨胀的已有软件。1.1.1 软件危机的介绍软件危机的介绍(1)对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。(2)用户对用户对“已完成的已完成的”软件系统不满意的现象经软件系统不满意的现象经常发生。常发生。(3)软件产品的质量往往靠不住。软件产品的质量往往靠不住。(4)软件常常是不可维护的。软件常常是不可维护的。(5)软件通常没有适当的文档资料。软件通常没有适当的文档资料。(6)软件成本在

    12、计算机系统总成本中所占的比例逐软件成本在计算机系统总成本中所占的比例逐年上升。年上升。(7)软件开发生产率提高的速度,远远跟不上计算软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。机应用迅速普及深入的趋势。在软件开发和维护的过程中存在这么多严重问题,在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。开发与维护的方法不正确有关。1.1.2 产生软件危机的原因产生软件危机的原因人们在开发和使用计算机系统的长期实践中,也确人们在开发和使用计算机系统的长期实践中,也确实积累和

    13、总结出了许多成功的经验。如果坚持不懈实积累和总结出了许多成功的经验。如果坚持不懈地使用经过实践考验证明是正确的方法,许多困难地使用经过实践考验证明是正确的方法,许多困难是完全可以克服的。是完全可以克服的。目前相当多的软件专业人员对软件开发和维护还有目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。危机的主要原因。事实上,对用户要求没有完整准确的认识就匆忙着事实上,对用户要求没有完整准确的认识就匆忙着手编写程序是

    14、许多软件开发工程失败的主要原因之手编写程序是许多软件开发工程失败的主要原因之一。事实上,越早开始写程序,完成它所需要用的一。事实上,越早开始写程序,完成它所需要用的时间往往越长。时间往往越长。软件生命周期软件生命周期一个软件从定义、开发、使用和维护,直到最终被一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。这个漫长的时期称为生命周期。图图1.1 引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势统计数据表明,实际上用于软件维护的费用占软件统计数据表明,实际上

    15、用于软件维护的费用占软件总费用的总费用的55%70%。软件工程学的一个重要目标。软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。就是提高软件的可维护性,减少软件维护的代价。为了消除软件危机,首先应该对计算机软件有一个为了消除软件危机,首先应该对计算机软件有一个正确的认识。一个软件必须由一个完整的配置组成,正确的认识。一个软件必须由一个完整的配置组成,事实上,软件是程序、数据及相关文档的完整集合。事实上,软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数指令

    16、序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图据结构;文档是开发、使用和维护程序所需要的图文资料。文资料。1983年年IEEE为软件下的定义是:计算机程序、方为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。序时所必需的数据。1.1.3 消除软件危机的途径消除软件危机的途径必须充分认识到软件开发不是某种个体劳动的神秘必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工

    17、程项目。员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功应该推广使用在实践中总结出来的开发软件的成功的技术和方法。的技术和方法。应该开发和使用更好的软件工具。应该开发和使用更好的软件工具。软件工程正是从管理和技术两方面研究如何更好地软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。开发和维护计算机软件的一门新兴学科。概括地说,软件工程是指导计算机软件开发和维护概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正方法

    18、来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。护它,这就是软件工程。人们曾经给软件工程下过许多定义,下面给出两个人们曾经给软件工程下过许多定义,下面给出两个典型的定义。典型的定义。1.2 软件工程软件工程 1.2.1 软件工程的介绍软件工程的介绍1968年在第一届年在第一届NATO会议上曾经给出了软件工程会议上曾经给出了软件工程的一个早期定义:的一个早期定义:“软件工程就是为了经济地获得软件工程就是为了经

    19、济地获得可靠的且能在实际机器上有效地运行的软件,而建可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。立和使用完善的工程原理。”这个定义不仅指出了这个定义不仅指出了软件工程的目标是经济地开发出高质量的软件,而软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并且强调了软件工程是一门工程学科,它应该建立并使用完善的工程原理。使用完善的工程原理。1993年年IEEE进一步给出了一个更全面更具体的定进一步给出了一个更全面更具体的定义:义:“软件工程是:软件工程是:把系统的、规范的、可度把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,

    20、也就量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;是把工程应用于软件;研究研究中提到的途径。中提到的途径。”虽然软件工程的不同定义使用了不同词句,强调虽然软件工程的不同定义使用了不同词句,强调重点也有差异,但是人们普遍认为软件工程具有重点也有差异,但是人们普遍认为软件工程具有下述的本质特性:下述的本质特性:1.软件工程关注于大型程序的构造软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性3.软件经常变化软件经常变化4.开发软件的效率非常重要开发软件的效率非常重要5.和谐地合作是开发软件的关键和谐地合作是开发软件的关键6.软件必须有效地

    21、支持它的用户软件必须有效地支持它的用户7.在软件工程领域中是由具有一种文化背景的人在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品替具有另一种文化背景的人创造产品自从自从1968年在联邦德国召开的国际会议上正式提出年在联邦德国召开的国际会议上正式提出并使用了并使用了“软件工程软件工程”这个术语以来,研究软件工这个术语以来,研究软件工程的专家学者们陆续提出了程的专家学者们陆续提出了100多条关于软件工程多条关于软件工程的准则或的准则或“信条信条”。著名的软件工程专家。著名的软件工程专家B.W.Boehm综合这些学者们的意见并总结了综合这些学者们的意见并总结了TRW公司多年

    22、开发软件的经验,于公司多年开发软件的经验,于1983年在一篇论文中年在一篇论文中提出了软件工程的提出了软件工程的7条基本原理。他认为这条基本原理。他认为这7条原理条原理是确保软件产品质量和开发效率的原理的最小集合。是确保软件产品质量和开发效率的原理的最小集合。1.2.2 软件工程的基本原理软件工程的基本原理 这这7条原理是互相独立的,其中任意条原理是互相独立的,其中任意6条原理的条原理的组合都不能代替另一条原理,因此,它们是缺组合都不能代替另一条原理,因此,它们是缺一不可的最小集合,然而这一不可的最小集合,然而这7条原理又是相当完条原理又是相当完备的。备的。1.用分阶段的生命周期计划严格管理用

    23、分阶段的生命周期计划严格管理2.坚持进行阶段评审坚持进行阶段评审3.实行严格的产品控制实行严格的产品控制4.采用现代程序设计技术采用现代程序设计技术5.结果应能清楚地审查结果应能清楚地审查6.开发小组的人员应该少而精开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性 软件工程的目标与原则软件工程的目标与原则软件工程需要解决的问题:软件工程需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率和软件成本、软件可靠性、软件维护、软件生产率和软件复用。软件复用。软件工程需要达到的基本目标:软件工程需要达到的基本目标:付出较低的开发成本付出较低的开发成本

    24、达到要求的软件功能达到要求的软件功能 取得较好的软件性能取得较好的软件性能 开发的软件易于移植开发的软件易于移植 需要较低的维护费用需要较低的维护费用 能按时完成开发、及时交付使用能按时完成开发、及时交付使用 软件工程原则软件工程原则在软件开发过程中必须遵循的软件工程原则有:在软件开发过程中必须遵循的软件工程原则有:1 1、抽象与自顶向下、逐层细化抽象与自顶向下、逐层细化 采用分层抽象采用分层抽象的方法,有效控制软件开发的复杂性。的方法,有效控制软件开发的复杂性。2 2、模块化模块化 把问题分解为若干较小的较易解决把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。的模块,有助于信息隐

    25、蔽和抽象。3 3、信息隐蔽和数据封装信息隐蔽和数据封装 将模块中的软件设计将模块中的软件设计决策封装在模块内部,使得模块实现与使用分离,决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。有助于控制修改局部化。4 4、局部化局部化 在一个物理模块内集中逻辑上相互在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的关联的计算机资源,促使聚合具有特定目的的事物。事物。5 5、一致性一致性 整个软件系统的模块使用一致的设整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致计策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的一致性、系统规格说明

    26、性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。与系统行为的一致性。6 6、完备性完备性 软件系统中不丢失任何成分。软件系统中不丢失任何成分。7 7、可验证性可验证性 系统分解应当遵循易检查、易测系统分解应当遵循易检查、易测试和易评审的原则,以便保证系统的正确性。试和易评审的原则,以便保证系统的正确性。软件工程包括技术和管理两方面的内容,是技术与软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。所谓管理就是通过计划、组织和控制等一系列活动,所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过

    27、合理地配置和使用各种资源,以达到既定目标的过程。程。通常把在软件生命周期全过程中使用的一整套技术通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学方法的集合称为方法学(methodology),也称为范型,也称为范型(paradigm)。在软件工程领域中,这两个术语的含。在软件工程领域中,这两个术语的含义基本相同。义基本相同。1.2.3 软件工程方法学软件工程方法学软件工程方法学包含软件工程方法学包含3个要素:个要素:方法、工具和过程方法、工具和过程其中,方法是完成软件开发的各项任务的技术方法,其中,方法是完成软件开发的各项任务的技术方法,回答回答“怎样做怎样做”的问题;工具是为

    28、运用方法而提供的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学,分别是目前使用得最广泛的软件工程方法学,分别是传统传统方法学方法学和和面向对象方法学面向对象方法学。软件工程的层次软件工程的层次1.传统方法学传统方法学传统方法学也称为生命周期方法学或结构化范型。传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术它采用结构化技术(

    29、结构化分析、结构化设计和结结构化分析、结构化设计和结构化实现构化实现)来完成软件开发的各项任务,并使用适来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。分为若干个阶段,然后顺序地完成每个阶段的任务。采用这种方法学开发软件的时候,从对问题的抽象采用这种方法学开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段一个阶段地进行开发。逻辑分析开始,一个阶段一个阶段地进行开发。把软件生命周期划分成若

    30、干个阶段,每个阶段的任把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度;作,从而降低了整个软件开发工程的困难程度;在软件生命周期的每个阶段都采用科学的管理技术在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,这就使软件开发工程的全过程和良好的技术方法,这就使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。特别是提高了软件的可维护性。总之,采用生命周期方法学可以大大提高软件开

    31、发总之,采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。的成功率,软件开发的生产率也能明显提高。2.面向对象方法学面向对象方法学当软件规模庞大,或者对软件的需求是模糊的或会当软件规模庞大,或者对软件的需求是模糊的或会随时间而变化的时候,使用传统方法学开发软件往随时间而变化的时候,使用传统方法学开发软件往往不成功,此外,使用传统方法学开发出的软件,往不成功,此外,使用传统方法学开发出的软件,维护起来仍然很困难。维护起来仍然很困难。概括地说,面向对象方法学具有下述概括地说,面向对象方法学具有下述4个要点。个要点。(1)把对象把对象(object)作为融合了数据及在数据

    32、上的操作为融合了数据及在数据上的操作行为的统一的软件构件。作行为的统一的软件构件。(2)把所有对象都划分成类把所有对象都划分成类(class)。(3)按照父类按照父类(或称为基类或称为基类)与子类与子类(或称为派生类或称为派生类)的的关系,把若干个相关类组成一个层次结构的系统关系,把若干个相关类组成一个层次结构的系统(也称为类等级也称为类等级)。(4)对象彼此间仅能通过发送消息互相联系。对象彼此间仅能通过发送消息互相联系。面向对象方法学的优点:面向对象方法学的优点:面向对象方法学的出发点和基本原则,是尽量模拟面向对象方法学的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法与过程

    33、尽人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。可能接近人类认识世界解决问题的方法与过程。用面向对象方法学开发软件的过程,是一个主动地用面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程。多次反复迭代的演化过程。面向对象范型的另一个重要优点是促进了软件重用。面向对象范型的另一个重要优点是促进了软件重用。软件生命周期由软件生命周期由软件定义、软件开发和运行维护软件定义、软件开发和运行维护(也称为软件维护也称为软件维护)3个时期组成。个时期组成。软件定义时期的任务是:软件定义时期的任务是:确定软件开发工程必须确定软件开发工程必须完成的总目标;确

    34、定工程的可行性;导出实现工程完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进完成该项工程需要的资源和成本,并且制定工程进度表。软件定义时期通常进一步划分成度表。软件定义时期通常进一步划分成3个阶段,个阶段,即问题定义、可行性研究和需求分析。即问题定义、可行性研究和需求分析。1.3 软件生命周期软件生命周期开发时期具体设计和实现在前一个时期定义的软件,开发时期具体设计和实现在前一个时期定义的软件,它通常由下述它通常由下述4个阶段组成:总体设计,详细设计,个阶段组成:总体

    35、设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。为系统设计,后两个阶段又称为系统实现。维护时期的主要任务是使软件持久地满足用户的需维护时期的主要任务是使软件持久地满足用户的需要。通常对维护时期不再进一步划分阶段,但是每要。通常对维护时期不再进一步划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义一次维护活动本质上都是一次压缩和简化了的定义和开发过程。和开发过程。软件生命周期每个阶段的基本任务。软件生命周期每个阶段的基本任务。1.问题定义问题定义2.可行性研究可行性研究3.需求分析需求分析4.

    36、总体设计总体设计5.详细设计详细设计6.编码和单元测试编码和单元测试7.综合测试综合测试8.软件维护软件维护软件过程是为了获得高质量软件所需要完成的一系软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。列任务的框架,它规定了完成各项任务的工作步骤。过程定义了运用方法的顺序、应该交付的文档资料、过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。以及标志软件开发各个阶段任务完成的里程碑。通常使用生命周期模型简洁地描述软件过程。通常

    37、使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命周期划分成哪些阶段及生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。各个阶段的执行顺序,因此,也称为过程模型。1.4 软件过程软件过程在在20世纪世纪80年代之前,瀑布模型一直是惟一被广泛年代之前,瀑布模型一直是惟一被广泛采用的生命周期模型,现在它仍然是软件工程中应采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工程方法学的软用得最广泛的过程模型。传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。件过程,基本上可以用瀑布模型来描述。1.4.1 瀑布模型瀑布模型图图

    38、1.2 传统的瀑布模型传统的瀑布模型图图1.3 实际的瀑布模型实际的瀑布模型瀑布模型有许多优点:可强迫开发人员采用规范的瀑布模型有许多优点:可强迫开发人员采用规范的方法(例如,结构化技术);方法(例如,结构化技术);严格地规定了每个严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。品都必须经过质量保证小组的仔细验证。各个阶段产生的文档是维护软件产品时必不可少的,各个阶段产生的文档是维护软件产品时必不可少的,没有文档的软件几乎是不可能维护的。瀑布模型的没有文档的软件几乎是不可能维护的。瀑布模型的成功在很大程

    39、度上是由于它基本上是一种文档驱动成功在很大程度上是由于它基本上是一种文档驱动的模型。的模型。由于瀑布模型几乎完全依赖于书面的规格说明,很由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户可能导致最终开发出的软件产品不能真正满足用户的需要。的需要。所谓快速原型是快速建立起来的可以在计算机上运所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。成的功能的一个子集。快速原型模型的第一步是快速建立一个能反映用户快速原型模型的第一步是快速建立一个能反映用户主要需求的原

    40、型系统,让用户在计算机上试用它,主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通过实践来了解目标系统的概貌。1.4.2 快速原型模型快速原型模型图图1.4 快速原型模型快速原型模型(1)原型系统已经通过与用户交互而得到验证,原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。说明文档的错误而进行较大的返工。(2)开发人员通过建立原型系统已经学到了许多开发人员通过建立原型系统已

    41、经学到了许多东西东西,在设计和编码阶段发生错误的可能性也比,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。所犯错误的可能性。软件产品一旦交付给用户使用之后,维护便开始了。软件产品一旦交付给用户使用之后,维护便开始了。根据所需完成的维护工作种类的不同,可能需要返根据所需完成的维护工作种类的不同,可能需要返回到需求分析、规格说明、设计或编码等不同阶段。回到需求分析、规格说明、设计或编码等不同阶段。增量模型也称为渐增模型,使用增量模型开发软件增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一

    42、系列的增量构件来设计、编时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。构成,并且能够完成特定的功能。把软件产品分解成增量构件时,必须遵守的约束条把软件产品分解成增量构件时,必须遵守的约束条件是,当把新构件集成到现有软件中时,所形成的件是,当把新构件集成到现有软件中时,所形成的产品必须是可测试的。产品必须是可测试的。能在较短时间内向用户提交可完成部分工作的产品,能在较短时间内向用户提交可完成部分工作的产品,是增量模型的一个优点。是增量模型的一个优点。1.4.3 增量模型增量模型图图

    43、1.5 增量模型增量模型增量模型的另一个优点是,逐步增加产品功能可以增量模型的另一个优点是,逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。少一个全新的软件可能给客户组织带来的冲击。使用增量模型的软件体系结构必须是开放的。使用增量模型的软件体系结构必须是开放的。从某种意义上说,增量模型本身是自相矛盾的。从某种意义上说,增量模型本身是自相矛盾的。图图1.6 风险更大的增量模型风险更大的增量模型螺旋模型的基本思想是,使用原型及其他方法来尽螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解

    44、这种模型的一个简便方法,是把量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快它看作在每个阶段之前都增加了风险分析过程的快速原型模型。速原型模型。1.4.4 螺旋模型螺旋模型图图1.7 简化的螺旋模型简化的螺旋模型图图1.8 完整的螺旋模型完整的螺旋模型螺旋模型主要适用于内部开发的大规模软件项目。螺旋模型主要适用于内部开发的大规模软件项目。如果进行风险分析的费用接近整个项目的经费预算,如果进行风险分析的费用接近整个项目的经费预算,则风险分析是不可行的。事实上,项目越大,风险则风险分析是不可行的。事实上,项目越大,风险也越大,因此,进行风险分析的必要性也越大

    45、。此也越大,因此,进行风险分析的必要性也越大。此外,只有内部开发的项目,才能在风险过大时方便外,只有内部开发的项目,才能在风险过大时方便地中止项目。地中止项目。螺旋模型的主要优势在于,它是风险驱动的,但是,螺旋模型的主要优势在于,它是风险驱动的,但是,这也可能是它的一个弱点。除非软件开发人员具有这也可能是它的一个弱点。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。开发人员可能还认为一切正常。使用面向对象方法学开发软件时

    46、,工作重点应该放使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。这种方法在开发的早期在生命周期中的分析阶段。这种方法在开发的早期阶段定义了一系列面向问题的对象,并且在整个开阶段定义了一系列面向问题的对象,并且在整个开发过程中不断充实和扩充这些对象,对生命周期各发过程中不断充实和扩充这些对象,对生命周期各阶段的区分就不明显了。阶段的区分就不明显了。喷泉模型是典型的面向对象的软件过程模型。喷泉模型是典型的面向对象的软件过程模型。1.4.5 喷泉模型喷泉模型图图1.9 喷泉模型喷泉模型 分析阶段得到的对象模型也适用于设计阶段和分析阶段得到的对象模型也适用于设计阶段和 实现阶段,整

    47、个开发过程是实现阶段,整个开发过程是“无缝无缝”连接的,很容连接的,很容易实现各个开发步骤的多次反复迭代,达到认识的易实现各个开发步骤的多次反复迭代,达到认识的 逐步深化。逐步深化。Rational统一过程(统一过程(Rational Unified Process,RUP)是由是由Rational软件公司推出的软件公司推出的 一种完整的软件过程。一种完整的软件过程。1、最佳实践、最佳实践(1)迭代式开发)迭代式开发(2)管理需求)管理需求(3)使用基于构件的体系结构)使用基于构件的体系结构(4)可视化建模)可视化建模(5)验证软件质量)验证软件质量(6)控制软件变更)控制软件变更1.4.6

    48、Rational统一过程统一过程2、RUP软件开发生命周期软件开发生命周期在在RUP中,软件开发生命周期根据时间和中,软件开发生命周期根据时间和RUP的核的核心工作流划分为二维空间。横轴表示项目的时间维,心工作流划分为二维空间。横轴表示项目的时间维,纵轴代表核心工作流。纵轴代表核心工作流。RUP中有中有9个核心工作流,分为个核心工作流,分为6个核心过程工作个核心过程工作流(流(C ore Process Workflows)和)和3个核心支持工个核心支持工作流(作流(Core Supporting Workflows)。)。9个核心工作流在项目中轮流被使用,在每一次迭个核心工作流在项目中轮流被

    49、使用,在每一次迭代中以不同的重点和强度重复。代中以不同的重点和强度重复。单击此处编辑母版标题样式单击此处编辑母版标题样式 单击此处编辑母版副标题样式单击此处编辑母版副标题样式图图1.10 RUP软件开发生命周期软件开发生命周期单击此处编辑母版标题样式单击此处编辑母版标题样式 单击此处编辑母版副标题样式单击此处编辑母版副标题样式(1)RUP的核心工作流的核心工作流 1.商业建模(商业建模(Business Modeling)2.需求分析(需求分析(Requirements)3.分析与设计(分析与设计(Analysis and Design)4.实现(实现(Implementation)5.测试(

    50、测试(Test)6.配置(配置(Deployment)7.设置和变更管理(设置和变更管理(Configuration and Change Management)8.项目管理(项目管理(Project Management)9.环境(环境(Environment)单击此处编辑母版标题样式单击此处编辑母版标题样式 单击此处编辑母版副标题样式单击此处编辑母版副标题样式(2)RUP的四个阶段的四个阶段RUP包括以下几个阶段:包括以下几个阶段:起始阶段起始阶段 细化阶段细化阶段 构建阶段构建阶段 交付阶段交付阶段每个阶段结束于一个主要的里程碑(每个阶段结束于一个主要的里程碑(Major Milesto

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:软件工程第1章课件.ppt
    链接地址:https://www.163wenku.com/p-3219313.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库