软件工程全册配套最完整精品课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程全册配套最完整精品课件.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 配套 完整 精品 课件
- 资源描述:
-
1、 2 课程的性质、目的与任务课程的性质、目的与任务 软件工程是本专业的一门必修课程软件工程是本专业的一门必修课程。 通过本课程的学习,使学生能从中了解软件开发的整个过通过本课程的学习,使学生能从中了解软件开发的整个过 程,掌握相关理论和指导思想。为了让学生真正得以实践程,掌握相关理论和指导思想。为了让学生真正得以实践 ,结合实际软件开发项目,让学生从问题定义开始,经过,结合实际软件开发项目,让学生从问题定义开始,经过 可行性研究、需求分析、概要设计、详细设计、编码直到可行性研究、需求分析、概要设计、详细设计、编码直到 最后要对自己开发的软件还要进行测试,这样一个软件开最后要对自己开发的软件还要
2、进行测试,这样一个软件开 发过程,从而使学生掌握软件开发的基本技能,培养团队发过程,从而使学生掌握软件开发的基本技能,培养团队 精神及勾通与协作能力,锻炼文档编写能力,提高独立的精神及勾通与协作能力,锻炼文档编写能力,提高独立的 工作能力,通过本课程的学习,为学生后期的毕业设计环工作能力,通过本课程的学习,为学生后期的毕业设计环 节奠定基础。节奠定基础。 3 课程主要内容课程主要内容 本课程比较全面、系统地介绍软件工本课程比较全面、系统地介绍软件工 程的概念、技术与方法学。程的概念、技术与方法学。 主要内容包括:软件工程概述、软件生主要内容包括:软件工程概述、软件生 存周期及软件需求分析、软件
3、设计方法、存周期及软件需求分析、软件设计方法、 软件测试技术等。软件测试技术等。 4 5 5 How do we learn? 1 1、注重对基本概念、原理和方法的理解。、注重对基本概念、原理和方法的理解。 2 2、通过不断的实践,提高应用知识解决实、通过不断的实践,提高应用知识解决实 际问题的能力。际问题的能力。 3 3、注重提高沟通能力和文档写作能力。、注重提高沟通能力和文档写作能力。 4 4、学会从专业的角度思考问题。、学会从专业的角度思考问题。 5 5、学习别人的经验。、学习别人的经验。 6 课程安排课程安排 1. 课程安排:课程安排: 课堂教学:(48学时) 课程设计:以开发小组为单
4、位进行(3-5人一组) (时间: 7-8节课 地点:J13-对应实验室) 2. 关于考试:关于考试: 笔试:80分,作业:10分,考勤:10分 7 教材教材 软件工程软件工程 钱乐秋,赵文耘,牛军钰编著 出版社 清华大学出版社 8 主要参考书和参考网站主要参考书和参考网站 软件工程软件工程方法与实践方法与实践. . 许家珆许家珆 主编主编. 电子工业出版社电子工业出版社 2007 软件工程软件工程实践者的研究方法实践者的研究方法. . Roger S.pressman著,黄柏素,梅著,黄柏素,梅 宏等译,机械工业出版社,宏等译,机械工业出版社,1999 实用软件工程实用软件工程. . 赵池龙编
5、著,电子工业出版社赵池龙编著,电子工业出版社 UMLUML面向对象技术与实践面向对象技术与实践. . 宋波等,宋波等, 科学出版社,科学出版社,2005 面向对象系统分析与设计面向对象系统分析与设计. . Joey George等著,龚晓庆等译,清华等著,龚晓庆等译,清华 大学出版社,大学出版社,2008 9 1 1 概概 述述 10 1. 软件?软件的特点?软件的分类?计算软件?软件的特点?软件的分类?计算 机软件的发展机软件的发展 2. 软件危机?表现?原因?克服的方法?软件危机?表现?原因?克服的方法? 3. 软件工程?七条基本原理?软件工程?七条基本原理? 4. 软件的生命周期?软件过
6、程?软件的生命周期?软件过程? 5. 软件过程模型?软件过程模型? 6. 软件开发方法软件开发方法 7. 软件工具与软件开发环境软件工具与软件开发环境 内容摘要内容摘要 11 1 软件软件 一、什么是软件?一、什么是软件? ComputerComputer:由硬件和软件组成。由硬件和软件组成。 硬件:硬件:是看得見、摸得着的电子机械设备块。是看得見、摸得着的电子机械设备块。 软件:软件:是依附在硬件上面的是依附在硬件上面的程序、数据和文档程序、数据和文档的集合,是指的集合,是指 挥控制计算机系统挥控制计算机系统( (包括硬件和软件包括硬件和软件) )工作的神经思维工作的神经思维 中枢。中枢。
7、如果将硬件比作人的身体,那么软件就相当于如果将硬件比作人的身体,那么软件就相当于 人的神经中枢和知识才能。人的神经中枢和知识才能。 12 软件软件 = = 程序程序 + + 数据数据 + + 文档文档 1.数据:数据:程序加工处理的对象。包括数据的表示、组织与程序加工处理的对象。包括数据的表示、组织与 存储。存储。 数据数据 = = 初始化数据初始化数据 + + 测试数据测试数据 2.文档文档(document) :开发、使用和维护程序所需的图:开发、使用和维护程序所需的图 文资料文资料 。 1 1)文档)文档 = = 开发文档开发文档 + + 管理文档管理文档 + + 用户文档。用户文档。
8、一、什么是软件?一、什么是软件? 计算机软件产品开发文件编制指南计算机软件产品开发文件编制指南GB 8567-88.doc 13 软件文档软件文档 用户文档用户文档 用户手册用户手册 操作手册操作手册 维护修改建议维护修改建议 软件需求(规格)说明书软件需求(规格)说明书 开发文档开发文档 项目开发计划项目开发计划 可行性研究报告可行性研究报告 软件需求(规格)说明书软件需求(规格)说明书 数据需求说明书数据需求说明书 概要设计说明书概要设计说明书 详细设计说明书详细设计说明书 管理文档管理文档 测试计划测试计划 项目开发计划项目开发计划 测试报告测试报告 开发进度月报开发进度月报 开发总结报
9、告开发总结报告 图图 软件文档分类软件文档分类 14 2 2)管理文档具有严格的时序关系:因为管理是一个过程。)管理文档具有严格的时序关系:因为管理是一个过程。 19741974年,美国人认识到软件需要管理。年,美国人认识到软件需要管理。 19841984年,美国人认识到软件管理是一个过程管理,或是一个年,美国人认识到软件管理是一个过程管理,或是一个 管理过程。管理过程。 19911991年,出现了软件过程能力成熟度模型年,出现了软件过程能力成熟度模型CMM (Capability CMM (Capability Maturity Model)Maturity Model)版。版。 3 3)开
10、发文档具有严格的层次关系:)开发文档具有严格的层次关系: (1)(1)目标程序目标程序覆盖覆盖源程序源程序; (2)(2)源程序源程序覆盖覆盖详细设计说明书详细设计说明书; (3)(3)详细设计说明书详细设计说明书覆盖覆盖概要设计说明书概要设计说明书; (4)(4)概要设计说明书概要设计说明书覆盖覆盖需求规格说明书需求规格说明书; (5)(5)需求规格说明书需求规格说明书覆盖覆盖用户需求报告用户需求报告; (6)(6)用户需求报告用户需求报告覆盖覆盖软件合同软件合同。 15 文档的作用文档的作用 (1)提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读)提高软件开发过程的能见度。把开
11、发过程中发生的事件以某种可阅读 的形式记录在文档中。管理人员可把这些记载下来的材料作为检查软件的形式记录在文档中。管理人员可把这些记载下来的材料作为检查软件 开发进度和开发质量的依据,实现对软件开发的工程管理。开发进度和开发质量的依据,实现对软件开发的工程管理。 (2)提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都)提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都 进行周密思考、并且可及早发现错误,便于及时加以纠正。进行周密思考、并且可及早发现错误,便于及时加以纠正。 (3)作为开发人员在一定阶段的工作成果和结束标志。)作为开发人员在一定阶段的工作成果和结束标志。 (
12、4)记录开发过程中有关信息,便于协调以后的软件开发、使用和维护。)记录开发过程中有关信息,便于协调以后的软件开发、使用和维护。 (5)提供对软件的运行、维护和培训的有关信息,便于管理人员、开发人)提供对软件的运行、维护和培训的有关信息,便于管理人员、开发人 员、操作人员、用户之间协作、交流和了解,使软件开发活动更科学有员、操作人员、用户之间协作、交流和了解,使软件开发活动更科学有 效。效。 (6)便于潜在用户了解软件的功能、性能等各项指标,为选购符合自己需)便于潜在用户了解软件的功能、性能等各项指标,为选购符合自己需 要的软件提供依据。要的软件提供依据。 16 软件文档的写作要求软件文档的写作
13、要求 (1)针对性:)针对性:分清读者,适应需求。 (2)精确性:)精确性:行文确切,避免多义。 (3)清晰性:)清晰性:力求简明,运用图表。 (4)完整性:)完整性:自成体系,避免引用。 (5)灵活性:)灵活性:大的扩展,小的合并。 (6)可追溯性:)可追溯性:逐步扩展,前后照应。 17 3.程序(程序(program) :能完成预定功能和性能的指令集合。能完成预定功能和性能的指令集合。 程序设计语言三种类型:程序设计语言三种类型: 1)机器语言、汇编语言:依赖于机器,面向机器)机器语言、汇编语言:依赖于机器,面向机器 2)高级语言:独立于机器,面向过程或面向对象)高级语言:独立于机器,面向
14、过程或面向对象 3)面向问题语言:独立于机器,非过程式语言()面向问题语言:独立于机器,非过程式语言(4GL) (1).(1).面向过程的程序面向过程的程序 = = 算法算法 + + 数据结构。数据结构。 (2).(2).面向对象的程序面向对象的程序 = = 对象对象 + + 消息。消息。 (3).(3).面向数据的程序面向数据的程序 = = 数据库表数据库表 + + 在表上的操作在表上的操作( (如存贮过程、触发如存贮过程、触发 器或视图器或视图) )。 (4).(4).面向构件的程序面向构件的程序 = = 构件构件 + + 构架。构架。 优秀的程序优秀的程序( (或模块或模块) ),必须满
15、足,必须满足“高内聚、低耦合高内聚、低耦合”的性质。所谓的性质。所谓 高内聚,就是程序高内聚,就是程序( (或模块或模块) )内部结构紧凑,凝聚力和向心力强。所内部结构紧凑,凝聚力和向心力强。所 谓低耦合,就是程序谓低耦合,就是程序( (或模块或模块) )之间彼此依赖关系很低。之间彼此依赖关系很低。 18 软件开发:软件开发:既非常艰苦(因为软件设计思想与开发工具不断更新),又 无限快乐(因为软件成果是人类智慧与艺术的结晶)。 从认识论的角度看软件开发:从认识论的角度看软件开发: 软件开发是对问题求解的过程,从认识论的角度看,整个软件开发 过程可归纳成两类活动交互循环迭代的过程。 1)对问题的
16、认识:对问题域存在的客观事物以及要解决的问题产生正确 的认识和理解。包括弄清楚事物的属性、行为及其彼此间的关系,并 找出解决问题的方法。 2)基于认识的描述:用一种语言把对问题域的认识描述出来,当然最终 的描述必须是用计算机语言。 3)软件开发的每个阶段都包括了认识和描述的活动 语言的鸿沟语言的鸿沟: 问题域和实现域采用的描述语言存在很大的差距,这种差距被称为 语言的鸿沟。实际就是认识和描述的鸿沟。从自然语言过渡到计算机 语言没有一种准确可靠的技术。 19 问题域 自然语言 实现域 计算机语言 语言的过渡(人) 语言的鸿沟语言的鸿沟 20 问题域 自然语言 计算机 机器语言 汇编语言 非OO高
17、级语言 OO高级语言 语言的鸿沟语言的鸿沟 21 4.软件和程序的区别软件和程序的区别 程序只是完整软件产品的一部分。程序只是完整软件产品的一部分。 编写程序只是软件开发过程数据中的一个阶段,一般编写程序只是软件开发过程数据中的一个阶段,一般 来说,其工作量仅仅是软件开发全部工作量的来说,其工作量仅仅是软件开发全部工作量的10 20 今天仍然有人认为:软件等于程序。这些人一上来就今天仍然有人认为:软件等于程序。这些人一上来就 写程序。写程序。Roger S.Pressman说:说:“越早开始写代码越早开始写代码 的人,就是越迟完成代码的人的人,就是越迟完成代码的人”。 对管理文档的全面认识,那
18、就更晚了。对管理文档的全面认识,那就更晚了。 22 1 软件软件 二、软件的特点二、软件的特点 抽象性:逻辑实体。可记录。但看不到(抽象性:逻辑实体。可记录。但看不到(Intangible),), 开发过程可视化程度低,开发结果难以直观表示。开发过程可视化程度低,开发结果难以直观表示。 可复制性:与开发成本相比,复制成本很低可复制性:与开发成本相比,复制成本很低 无折旧无折旧 受硬件制约受硬件制约 未完全摆脱手工工艺未完全摆脱手工工艺 开发费用高开发费用高 23 1 软件软件 三、软件分类三、软件分类 1.按适用范围分:按适用范围分: 定制软件(定制软件(Custom Software)()(
19、项目软件)项目软件):满足:满足 特定客户的特定需要的软件。例如网站、特定客户的特定需要的软件。例如网站、MIS系统等。系统等。 通用软件(通用软件(Generic Software)()(产品软件)产品软件):满足:满足 市场潜在客户的通用需求的商业成品软件。例如:市场潜在客户的通用需求的商业成品软件。例如: Office、Windows等等 24 2.按软件功能分:按软件功能分: 系统软件:管理计算机自身的资源、提高计算机系统软件:管理计算机自身的资源、提高计算机 的使用效率并为计算机用户提供各种服务的基础的使用效率并为计算机用户提供各种服务的基础 软件。系统软件与机器有关,是支撑其它应用
20、软软件。系统软件与机器有关,是支撑其它应用软 件运行的平台。例如件运行的平台。例如OS、DBMS等等 应用软件:解决某一具体领域的实际问题的软件。应用软件:解决某一具体领域的实际问题的软件。 种类繁多,例如科学和工程计算软件、种类繁多,例如科学和工程计算软件、CAD、 CAM、CAI、MIS、GIS、ERP、CRM、CASE 等等 支撑软件:支撑软件:协助用户开发的工具软件,如编辑协助用户开发的工具软件,如编辑 程序、程序库、图形软件包等。程序、程序库、图形软件包等。 25 3.按软件体系结构分按软件体系结构分 桌面软件:全部工作由在单一机器上的一个桌面软件:全部工作由在单一机器上的一个 软件
21、系统完成。软件系统完成。 分布式软件:由多个软件协调工作来完成任分布式软件:由多个软件协调工作来完成任 务。例如务。例如C/S、B/S软件软件 并行软件:基于多并行软件:基于多CPU环境能完成并行计算环境能完成并行计算 的软件的软件 26 4.按规模分:按规模分: (1) (1) 小型软件小型软件(1-5(1-5人年人年) ); (2) (2) 中型软件中型软件(5-50(5-50人年人年) ) (3) (3) 大型软件大型软件(50(50人年以上人年以上) )。 5.按工作方式分:按工作方式分: (1) (1) 实时软件;实时软件;(2) (2) 分时软件;分时软件;(3) (3) 交互式软
22、件;交互式软件; (4) (4) 批处理软件;批处理软件;(5) (5) 嵌入式软件嵌入式软件(Embedded Software):运行于特定硬件设备中的软件。例):运行于特定硬件设备中的软件。例 如:手机、汽车等中的软件。如:手机、汽车等中的软件。 27 1 软件软件 四、计算机软件发展的三个时期四、计算机软件发展的三个时期 1. 早期时代(早期时代(60年代中期之前)年代中期之前)程序设计阶段程序设计阶段 硬件通用,软件专用;程序规模小,编写者和使用者硬件通用,软件专用;程序规模小,编写者和使用者 为同一人(同组人)。为同一人(同组人)。 2. 第二代(第二代(60年代中期年代中期-70
23、年代中期)年代中期)程序系统阶段程序系统阶段 出现出现“软件作坊软件作坊”、产品软件;、产品软件;“个体化个体化”开发方法。开发方法。 3. 第三代(第三代(70年代中期之后)年代中期之后)软件工程阶段软件工程阶段 软件开发成为一门新兴的工程学科软件开发成为一门新兴的工程学科软件工程。软件工程。 28 计算机软件发展的三个时期及特点 程程序序设设计计 程程序序系系统统 软软件件工工程程 软软 件件 的的 范范 畴畴 程序程 序 及 说 明 书 产品软件(项目 软件) 主主 要要 程程 序序 设设计计语语言言 汇 编 及 机 器 语言 高级语言高级语言系统、 程序设计语言 软软 件件 工工 作作
24、 范范围围 程序编写包 括 设 计 和 测试 软件生存期 需需求求者者程 序 设 计 者 本人 少数用户市场用户 29 计算机软件发展的三个时期及特点 程程序序设设计计 程程序序系系统统 软软件件工工程程 维维护护 责责任任 者者 程序设计者开发小组专职维护人员 硬硬件件特特征征价 高 、 存 储 小 、 可 靠 性 差 降价;速度、 容 量 、 可 靠 性明显提高 向超高速、大容 量、微型化发展 软软件件特特征征完 全 不 受 重 视 软件技术的发展 不满足需要,出 现软件危机 开发技术有进步,但 未获得突破性进展, 软 件 危 机 未 完 全 摆 脱 30 一、软件危机的产生一、软件危机的
25、产生 2020世纪世纪6060年代中期以后,一些开发大型软件系统的要求提了出来。年代中期以后,一些开发大型软件系统的要求提了出来。 然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开 发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难 题。题。 遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控 制的局面,出现了所谓的制的局面,出现了所谓的“软件危机软件危机”。 例如例如: : 2 软件
展开阅读全文