软件工程概述课件_第1页
软件工程概述课件_第2页
软件工程概述课件_第3页
软件工程概述课件_第4页
软件工程概述课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程软件工程 主讲人:王玉林主讲人:王玉林 Email: 1 软件工程概述 v课程类别课程类别 必修课 v考试方式考试方式 闭卷 v成绩构成成绩构成 平时10%+期中20%+实验(包含项目)20%+ 期末50% v学时:学时: 32+16(信安)或48+16(软件) 2 软件工程概述 v教材教材 软件工程:共同演进的方法介绍 田文洪 王玉林 周俊临等人编著 机械工业出版社出版 说明:当前正在出版! v参考资料参考资料 软件工程实践者的研究方法 R.S.Pressman 机械工业出版社 An introduction to Software Engineering Ian Sommervil

2、le 机械工业出版社 3 软件工程概述 v 主要内容主要内容 介绍职业化、规范化的软件开发概念,原则,方法和 实践。包括介绍软件产品的特点;软件工程的历史发 展背景;软件过程模型;软件工程分析,设计和测试 等实践原则和方法;软件项目管理(计划,管理和控 制,风险,配置等)基本概念和方法 v 主要要求主要要求 通过本课程的学习,可使学生了解软件工程的基本知 识和方法,熟悉软件工程的各种环节(需求分析,设 计,编码,测试,部署等)。掌握软件工程传统经典 和现代高级的理论和方法,并能应用到实际的软件项 目开发中 4 软件工程概述 杨芙清院士提出的软件工程体系结构 5 软件工程概述 软件工程过程软件工

3、程过程 分析,设计,编码,测试(四分法)分析,设计,编码,测试(四分法) 背景,需求分析,过程模型,模型设计,计划,实施,测试,部署背景,需求分析,过程模型,模型设计,计划,实施,测试,部署 (主要阶段)主要阶段) 6 软件工程概述 软件工程知识体系软件工程知识体系 软件工程知识体系(软件工程知识体系(IEEE) 需求需求构建构建测试测试维护维护 配置配置 管理管理 过程过程 质量质量 工程工程 管理管理 工具工具 设计设计 7 软件工程概述 8 第一章第一章 软件工程简介软件工程简介 软件的相关知识介绍软件的相关知识介绍 1 软件工程的原则软件工程的原则 4 软件工程的相关课题软件工程的相关

4、课题 5 软件工程的概念软件工程的概念 3 软件危机软件危机 2 小结小结 6 9 本章学习目标本章学习目标 10 v软件定义:软件定义: 软件软件=程序程序+数据数据+文档文档 程序:按事先设计的功能和性能需求执行的指令序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料 11 软件的特征软件的特征 v软件是逻辑的,而不是物理的软件是逻辑的,而不是物理的 软件是开发的或者是工程化的,并不是制造的 软件开发环境对产品影响较大 软件开发时间和工作量难以估计 软件会多次修改 软件的开发进度几何没有客观衡量标准 软件测试困难 软件不会磨损和老化 软件维护易产生新的问

5、题 软件生产是简单的拷贝 12 软件双重作用软件双重作用 v软件是一种产品,也是开发其他软件产品的工具软件是一种产品,也是开发其他软件产品的工具 支持或直接提供系统所需的功能 控制(如操作系统)其他程序 改善通信(如,网络软件) 帮助开发其它软件(例如,软件开发工具) 许多其它功能 13 软件的分类软件的分类 u系统软件(操作系统)系统软件(操作系统) u应用软件应用软件(办公软件办公软件) u工程工程/科学软件科学软件 (Matlab, Maple) u嵌入式软件嵌入式软件 (iPod,iphone) u产品线软件产品线软件(Intel, Simens) uWeb 应用应用(Web appl

6、ications) u普适计算普适计算无线网络无线网络 u网络资源网络资源网络作为一个计算引擎网络作为一个计算引擎 u开放源码开放源码 (好事,也是一种潜在的祸根!好事,也是一种潜在的祸根!) u 网格计算网格计算/云计算云计算 14 软件的发展软件的发展 15 为什么发展如此之快为什么发展如此之快 v计算需求:软件必须适应新的计算环境或技术;计算需求:软件必须适应新的计算环境或技术; v业务要求:软件必须改善,以实现新的业务需求;业务要求:软件必须改善,以实现新的业务需求; v嵌入式需求:软件必须扩展,以满足和新一代系统嵌入式需求:软件必须扩展,以满足和新一代系统 或数据库之间的互操作性;或

7、数据库之间的互操作性; v架构需求:软件必须重新设计,使其在新的网络环架构需求:软件必须重新设计,使其在新的网络环 境是可用的。境是可用的。 16 软件技术面临的问题软件技术面临的问题 规模规模 越来越大 复杂性复杂性 越来越高 生产率生产率 要求越来越高 天才程序员? 17 在计算机软件的开发和维护过程中所遇到的一 系列严重问题。 软件危机软件危机 软件危机的具体表现:软件危机的具体表现: 开发成本和进度估计不准开发成本和进度估计不准 用户对用户对“已完成的已完成的”软件系统不满意软件系统不满意 软件质量往往靠不住软件质量往往靠不住 软件常常是不可维护的软件常常是不可维护的 软件通常没有适当

8、的文档资料软件通常没有适当的文档资料 软件成本逐年上升软件成本逐年上升 软件开发生产率滞后于硬件和计算机应用普及软件开发生产率滞后于硬件和计算机应用普及 硬件硬件/软件成本变化趋势软件成本变化趋势 18 软件技术进步落后于需求增长软件技术进步落后于需求增长 19 20 产生软件危机的原因产生软件危机的原因 v原因原因 客观:软件本身特点 逻辑部件 规模庞大 主观:不正确的开发方法 忽视需求分析 错误认为:软件开发=程序编写 轻视软件维护 21 缓解软件危机?缓解软件危机? 22 消除软件危机的途径消除软件危机的途径 v软件工程!软件工程! 对计算机软件有一个正确的认识对计算机软件有一个正确的认

9、识 (软件软件程序)程序) v 必须充分认识到软件开发不是某种个体劳动的神必须充分认识到软件开发不是某种个体劳动的神 秘技巧,而应该是一种组织良好、管理严密、各秘技巧,而应该是一种组织良好、管理严密、各 类人员协同配合、共同完成的工程项目。类人员协同配合、共同完成的工程项目。 v 推广使用在实践中总结出来的开发软件的成功技推广使用在实践中总结出来的开发软件的成功技 术和方法。术和方法。 开发和使用更好的软件工具。开发和使用更好的软件工具。 23 软件工程的定义软件工程的定义 IEEE计算机协会将软件工程定义为:(1) 应用系统化的、科学化的、定量的方法,来 开发、运行和维护软件,即,将工程应用

10、到 软件。(2)对(1)中各种方法的研究。 软件工程的目标是在给定的时间和预算内, 按照用户的需求,开发易修改、高效、可靠、 可维护、适应力强、可移动、可重用的软件 24 软件工程软件工程 一种层次化技术一种层次化技术 25 26 27 28 29 30 软件工程的软件工程的7个原则个原则 v B. W. Boehm于于1983年总结了开发软件的经验,提出了年总结了开发软件的经验,提出了 软件工程的软件工程的7条基本原理。这条基本原理。这7条原理被认为是确保软件产条原理被认为是确保软件产 品质量和开发效率的原理的最小集合,又是相互独立、缺品质量和开发效率的原理的最小集合,又是相互独立、缺 一不

11、可、相当完备的最小集合。一不可、相当完备的最小集合。 v 使用阶段性生命周期计划的管理使用阶段性生命周期计划的管理 v 进行连续的验证进行连续的验证 v 保证严格的产品控制保证严格的产品控制 v 使用现代编程工具使用现代编程工具/工程实践工程实践 v 保持清晰的责任分配保持清晰的责任分配 v 用更好更少的人用更好更少的人 保持过程改进保持过程改进 31 软件工程知识体系软件工程知识体系 32 软件知识体系及其关联软件知识体系及其关联 33 软件工程是一门交叉学科软件工程是一门交叉学科 计算机工程计算机工程 计算机科学 管理学管理学 数学 项目管理 质量科学质量科学 软件工程学 系统工程系统工程

12、 。 34 一些对软件工程的误解(一些对软件工程的误解(1) v M 代表误解,代表误解,R 代表现实。代表现实。 v 管理方面的误解管理方面的误解: M1: 我们已经有一本关于软件生产的标准和过程的书,这还 不能让我们学习到需要的知识吗? R1: 相比最新的大型主机,工作站和PC,这会使我们在做高 质量软件开发时花费得更多。 M2: 如果我们项目进度落后了,可以加入更多的程序员来赶 进度。 R2: 软件开发的机制和手工作业不一样。在一个延迟了的软件 项目中加入新的开发人员只会让它延迟更多。 M3: 如果我们将软件项目外包给第三方,我们就轻松了,让 那个公司去完成它吧。 R3: 如果组织管理方

13、不懂得如何从内部管理和控制软件项目, 即使将项目外包也无济于事。 35 一些对软件工程的误解(一些对软件工程的误解(2) v客户客户:由于用户不正确的期望,最后导致对开发人由于用户不正确的期望,最后导致对开发人 员的不满。员的不满。 M1: 对目标的一般陈述就足以开始编程,我们 可以今后再补充细节。 R1: 前期糟糕的项目需求定义,是导致软件失 败的主要原因。 M2: 项目需求的确在不断变化,但变化所产生的 影响是根据变化提出的时间不同而不同的。 36 需求变化的影响需求变化的影响 37 一些对软件工程的误解(一些对软件工程的误解(3) v实践者实践者: 软件从业者积累了软件从业者积累了50

14、年的编程文化。在年的编程文化。在 早期的软件开发中早期的软件开发中,编程被视为一种艺术形式。编程被视为一种艺术形式。 M1: 一旦我们编程完毕并成功运行,我们的工作就结束 了。 R1: “越早开始写代码,我们就会花费越长的时间去完 成它”。工业数据显示,软件开发60%-80%的精力将耗 费在软件首次提交给用户以后。 M2: 当我的程序运行之前,我没有办法评估它的质量。 R2: 一个最有效的软件质量保证机制应当在项目的正式 开始启动时可以通过技术报告体现。 38 M3: 唯一可交付的工作成果是一个成功运行的项目程序。 R3: 一个可运行的程序只是软件结构的一部分,它还包含 了许多其它因素。 M4

15、: 软件工程将会让我们去创建大量不必要的文档,并且 总是使我们的进度放慢。软件工程仅仅是文档而已。 R4: 软件工程并不是创建文档,而是创建质量。更好的质 量减少返工的概率。更少返工会让项目更早交付。所有的 文档都是提高团队沟通和质量所必须的。 39 软件工程职业道德和责任规范软件工程职业道德和责任规范 v公众公众:以公众利益为目标以公众利益为目标 v客户和雇主客户和雇主 :满足其最大利益:满足其最大利益 v产品:符合专业标准产品:符合专业标准 v判断:完整性和独立性判断:完整性和独立性 v管理:软件项目经理和领导人管理:软件项目经理和领导人 v专业:完整性和声誉专业:完整性和声誉 v同行:平等互助支持同行:平等互助支持 v自我:自我约束、自我激励自我:自我约束、自我激励 40 本章小结本章小结 软件工程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论