实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述

上传人:E**** 文档编号:89501129 上传时间:2019-05-26 格式:PPT 页数:132 大小:952KB
返回 下载 相关 举报
实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述_第1页
第1页 / 共132页
实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述_第2页
第2页 / 共132页
实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述_第3页
第3页 / 共132页
实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述_第4页
第4页 / 共132页
实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述》由会员分享,可在线阅读,更多相关《实用软件工程教程 教学课件 ppt 作者 陈雄峰 第1章 软件工程概述(132页珍藏版)》请在金锄头文库上搜索。

1、实用软件工程教程,陈雄峰,总学时:51学时(讲授/理论51学时,上机/课外实践30学时) 先修课程:程序设计语言,数据结构,离散数学,数据库原理,操作系统等 教学方式:授课课程设计(课外),(一)本课程地位、性质和任务 软件工程是必修课,计算机科学的一个重要分支,软件工程通常包括软件开发方法学,软件经济学,软件管理和支撑环境等方面的内容。主要讲述建造软件系统的方法,技术,流程,工具,规范等。即通过研究新的软件开发方法,改进程序结构,革新软件生产工具和生产方式,以及关于软件可靠性技术的研究,更有效更经济地开发软件产品,促进软件生产的过程化和软件产品的商品化。 是为了使学生掌握软件工程的基本概念和

2、基础理论知识,达到熟练地运用各种实用开发方法和基本技术方法;了解软件工程各领域的发展动向;从事各种类型软件项目的工程化开发。是为了培养具有独立工作能力的高素质高水平的软件人才。 (二)课程教学的基本要求 本课程要求学生通过学习达到如下要求: (1)掌握软件工程的基本概念,基本原理,基本方法和基本实现技术。 (2)能运用软件工程的基本技术方法和开发上具,独立承当软件项目开发,设计和管理。 (3)了解本领域出现的新概念,新技术和新方法,达到进一步提高自己的理论水平和实践能力。 (4)了解软件开发过程应遵循的流程,准则,标准和规范。,第一部分 软件工程基础 (14章) 第二部分 软件工程过程与方法(

3、510章),实用软件工程教程,第一部分 软件工程基础 第1章 软件工程概述,教学要点:本章首先介绍软件工程产生的背景、软件的基本概念、软件工程的定义及其要素,而后围绕软件工程中的过程、方法和工具三要素进一步介绍软件过程与软件生命周期、软件工程方法学和软件开发工具与环境的主要含义,以使学习者对软件工程有一个较全面的基本认识和和理解。 重点掌握:软件、软件三要素和软件工程化的含义。,第一部分 软件工程基础 第1章 软件工程概述,1.1 软件工程产生背景 软件由计算机程序、数据及文档组成。 软件是当它被执行时提供所希望功能和性能的计算机程序,以及使得程序能够适当地操作信息的数据结构和描述程序的操作使

4、用的文档。 软件与硬件、数据库、人、过程等共同构成计算机系统。 在软件开发过程中出现了一些问题,通常统称为软件危机。,1.1 软件工程产生背景,1968年由NATO (北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念。,1.1.1软件特点及分类,1.软件的特点 抽象性 软件生产无明显制造过程 无磨损性 对计算机硬件依赖性 软件的手工开发方式 软件本身复杂性 软件的高成本,信息的内容和确定性决定了一个 软件应用的特性。 软件种类可以从六个方面进行划分: 按功能分类 应用软件 系统软件 支撑软件,2.软件的分类,按规模分类,按工作方式分类 分

5、时软件 实时软件 交互式软件 批处理式软件,按服务对象分类 项目软件 产品软件 按使用频度分类 一次性使用软件 频繁使用软件 按失效影响分类 高可靠性软件 一般可靠性软件 。,每一类软件在管理方面要求程度不同,1.1.2 软件危机,然而,要成功开发一个软件并不容易,31%,53%,16%,成功,不成功但可以改正,完全失败,成功的标准:,用户在用 用户可很容易做完要做的事 失败软件的最大问题: 开发人员写出的东西达不到用户要求(人的问题.技术问题)。,软件的发展阶段,早期 第二阶段 第三阶段 第四阶段 面向批处理 多用户 分布式系统 强大的桌面系统 有限的分布 实时 嵌入“智能” 面向对象技术

6、自定义软件 数据库 低成本硬件 专家系统 软件产品 消费者的影响 人工神经网络 并行计算 网络计算机,1950,1960,1970,1980,1990,2000,软件开发过程中出现的问题统称为软件危机。 软件危机的主要特征 软件开发周期大大超过规定日期; 软件开发成本严重超标; 软件质量难于保证。 产生软件危机的主要原因: 软件本身的复杂性。 开发过程的随意性。,复杂性举例: Windows95有1000万行代码 Windows2000有5000万行代码 Exchange2000和 Windows2000开发人员结构,生产率举例: 改正一个问题需付出的代价,需 求 分 析,结构设计,详细设计,

7、编码,集成测试,系统测试,现场,改正一个问题的估计费用,改正一个问题估计的工作量,20,200,2000,1000,5.0,2.5,0.05,0.5,(美元),(人天),处在十字路口的中国软件产业,主权大国必须建立基于自主技术的、完整的软件产业体系。 软件本国提供率:中国1/3左右,美国97% “印度模式”还是“中国模式” 软件人才结构不合理,缺乏中高级软件人才,软件人员缺乏软件工程化的概念。,1.2 软件工程的要素,1.2.1 软件工程的定义 (1)Fritz Bauer在NATO会议上给出的定义: “软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(

8、方法)。”,1.2.1 软件工程的定义,(2)IEEE【IEE83】给出的软件工程定义: “软件工程是开发、运行、维护和修复软件的系统方法。”,1.2.1 软件工程的定义,(3)IEEE【IEE93】给出了一个更加综合的定义: “将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”,1.2.1 软件工程的定义,(4) 计算机科学技术百科全书中的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量、降低成本为目的。,软件工程定义的要点,软件工程是一门交叉学科,软件工程的主要研究内容 1.软件开发技术:

9、软件开发方法学 软件开发过程 软件工具和软件工程环境 2.软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的, 随着人们对软件系统的研制开发和生产的理解。 应用发展的眼光看待它。,软件工程发展趋势,软件平台网络化 方法对象化 系统构件化 产品家族化 开发工程化 过程规范化 生产规模化 竞争国际化,1.2.2 软件工程三要素,软件工程因软件危机而产生; 要彻底解决软件危机的出路在于软件开发的工程化和标准化。,软件工程化 软件工程化就是把软件工程理论应用到软件开发组织中,以改进软件产品开发的时间(T)、质量(Q)、成本(C)、服务(S)。通过在整个软件开发组织中建

10、立有序的、有限步骤的、符合规则的过程,达到提高软件开发质量,缩短软件开发周期等目的。其核心工作就是软件开发过程的工程化,即对过程活动的整体规划并有效实施。,软件工程标准化,一个软件项目开发需要多层次、不同分工的人员互相配合,开发项目的各个阶段和各个部分之间也有许多联系和衔接问题,如何把这些错综复杂的关系协调好,需要一系列的统一的约束和规定,也就是说需要软件工程标准化。 软件工程标准包括产品标准、过程标准和记法标准三个方面。将在第2章中具体介绍如何实现标准化和工程化。,软件工程化的两个明显特点:,强调规范化 强调文档化,软件工程三要素,过程:软件过程的方法和工具综合起来以达到合理、高效地进行软件

11、开发的目的。过程定义了方法的使用顺序、应交付的文档资料、为保证质量和协调变化所需要的管理以及软件开发各个阶段的里程碑。 方法:为软件开发提供“如何做”的技术,包括了多方面的技术,如项目计划与估算、系统需求分析、系统总体结构设计、数据结构与算法设计、编码、测试以及维护等一系列技术。软件工程方法通常采用某种特殊的语言或图形的表达方法及一套质量保证标准。 工具:为软件工程方法提供自动化或半自动化的软件支撑环境和工具。目前有许多工具被集成起来,使得一种工具产生的信息可以为其它工具所使用,这样建立起一种称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发

12、过程信息的工程数据库组合起来而形成一个软件工程环境。,软件工程 一种层次化技术,工具,方法,过程,质量焦点,软件工程的层次,四个层次的关系: 关注质量是根本出发点,软件过程是整个体系的基础,是各种方法和工具的粘合剂。方法包括管理方法和技术方法,提供如何完成过程活动的指南和准则。工具使得过程利于方法自动化或半自动化,从而提高工程效率。,软件工程的基本原理有: 按软件生存期分阶段制定计划并认真实施; 坚持进行阶段评审; 坚持严格的产品控制; 使用现代程序设计技术; 明确责任,使得工作结果能够得到清楚的审查; 用人少而精; 不断改进开发过程。 到现在为止还是被认为是确保软件产品质量和开发效率的原理的

13、最小集合,其它的100多条原理都可以有这7条基本原理任意组合蕴含或派生。,1.2.3 软件工程原理与原则,软件工程知识结构,2001年5月ISO/IEC JTC 1(ISO和IEC的第一联合技术委员会)发布了 SWEBOK指南V0.95(试用版) (Guide to the Software Engineering Body of Knowledge,简称SWEBOK) SWEBOK把软件工程学科的主体知识分为10个知识领域。,软件工程知识结构,软件需求 软件设计 软件构造 软件测试 软件维护 软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量,“软件工程”课程与其它软件专

14、业课的区别,(1) 立足于系统的整体。 (2) 讲授系统分析、系统设计、 测试及维护的理论和方法。 (3) 构筑一个软件系统,实践 软件开发全过程。,“软件工程”课程教学与实践的目标,转变对软件的认识: 上升 程序 系统 转变思维定式: 上升 程序员 系统工程师 (系统分析员) 工程化训练,系统分析员的地位,用户,分析员,程序员,“一个好的工业,应有一套 良好的标准来配套”,软件的工业化生产过程应具备的特点: 明确的工作步骤 详细具体的规范化文档 明确的质量评价标准,在软件开发过程中必须遵循的软件工程原则有: 抽象与自顶向下、逐层细化 信息隐蔽和数据封装 模块化 局部化 确定性 一致性和标准化

15、 完备性和可验证性,1.3 软件过程与软件生命周期,1.3.1 软件过程的概念,ISO 9000定义:软件过程是把输入转化为输出的一组彼此相关的资源和活动。 从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。,软件过程是软件生存期中的一系列相关软件工程活动的集合,活动是任务的集合。任务是将输入变换为输出的操作。 活动的执行可以是顺序的,重复的,并行的、嵌套的。 每一个软件过程又是由一组工作任务、项目里程碑、软件工程产品和交付物以及质量保证点等组成。,软件工程过程定义了: 方法使用的顺序、

16、 要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑 软件工程过程包含四种基本的过程活动: Plan 软件规格说明 Do 软件开发 Check 软件确认 Action 软件演进,1.软件过程构造 首先建立一个公共过程框架,其中定义了少量可用于所有软件项目的框架活动; 再给出各个框架活动的任务集合,使得框架活动能够适合于项目的特点和项目组的需求。 最后是保护伞活动,如软件质量保证、软件配置管理以及测量等,它们独立于任何一个框架活动并将贯穿于整个过程。,1.3.2 软件过程的构造,软件过程模型,软件过程基本框架,软件过程的模型,软件工程过程模型的选择基于项目和应用的特点、采用的方法和工具、要求的控制和需交付的产品。,软件过程的分类 (IS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号