收藏 分享(赏)

李万龙 2013秋 软件工程 第01章 软件工程学概述 v2.ppt

上传人:scg750829 文档编号:8270156 上传时间:2019-06-17 格式:PPT 页数:72 大小:2.60MB
下载 相关 举报
李万龙  2013秋  软件工程     第01章   软件工程学概述 v2.ppt_第1页
第1页 / 共72页
李万龙  2013秋  软件工程     第01章   软件工程学概述 v2.ppt_第2页
第2页 / 共72页
李万龙  2013秋  软件工程     第01章   软件工程学概述 v2.ppt_第3页
第3页 / 共72页
李万龙  2013秋  软件工程     第01章   软件工程学概述 v2.ppt_第4页
第4页 / 共72页
李万龙  2013秋  软件工程     第01章   软件工程学概述 v2.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

1、Software Engineering CCUTSE2013,软件工程导论,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第8章 维 护,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,分析,设计,实现,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,

2、第12章 面向对象实现,第13章 软件项目管理,软件工程概述,面向对象方法学,软件项目管理,结构化方法学,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,面向对象方法学,软件项目管理,结构化方法学,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学

3、引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,面向对象方法学,软件项目管理,结构化方法学,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,软件项目管理,结构化方法学,面向对象方法学,第8章 维 护,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5

4、章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,结构化方法学,结构法方法学,面向对象方法学,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,软件项目管理,后续课程 需求工程,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3

5、章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,软件项目管理,第8章 维 护,后续课程 软件建模与分析,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,第8章 维 护,后续课程:软件项目管理,大象

6、无形:软件的特点 适者生存:软件的发展与进化 道法自然:软件工程的基本原理 巧夺天工:软件工程 异曲同工:过程模型,主要内容,初识软件工程:由术语到学科,Software Engineering 是一个术语 是一门技术 是一门课程 是一个专业 是一个学科,是搞软件的人必须知道、了解、熟悉、掌握、运用、研究的东东。,初识软件工程:实践者之路,实践者之路 知道了解熟悉掌握运用研究,SE,研究,科学家,运用,架构师,工程师,掌握,技术员,熟悉,了解,知道,程序员,门外汉,初识软件工程:层次化技术,Software engineering layers 软件工程:一种层次化的技术 软件工程三要素:方法

7、、工具、过程,初识软件工程:软件危机是软件工程诞生的导火索,计算机系统的发展,1.1 软件危机,计算机系统的发展历程:四个阶段,1.1 软件危机,计算机系统的发展历程:四个阶段,通用硬件相当普遍 主要应用于数值计算 很小的专门程序 用户就是程序员 设计在大脑中进行 文档只有程序清单,1.1 软件危机,计算机系统的发展历程:四个阶段,通用硬件相当普遍 主要应用于数值计算 很小的专门程序 用户就是程序员 设计在大脑中进行 文档只有程序清单,广泛使用软件产品 应用扩展到非数值计算领域 程序较大,数量急剧膨胀 软件作坊出现 适应性维护相当困难 软件危机爆发,1.1 软件危机,软件工程学科的诞生:196

8、8年NATO会议,北约: 华约: 第三世界:查找网络,1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,1.软件危机的定义软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 即:效率和质量的问题。,1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,2.软件危机的典型表现:7不(1)不可预见:开发成本和进度估计不准。(软件无形) (2)不能交付:用户对“已完成的”软件系统不满意。(包办婚姻) (3)不满需求:软件质量往往靠不住。(不满足需求) (4)不可维护:软件常常是不可维护的。(文档不匹配) (5)不好文档:软件通常没有适当的文档资料。(轻

9、视分析与设计) (6)不好赚钱:软件成本逐年上升。(劳动密集型) (7)不能匹配:软件开发生产率滞后于硬件和计算机应用普及的速度(硬件领先),1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,3.软件危机:人与神话中的场景,1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,4.软件危机:一组形象的漫画,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点 错误认识:软件就是程序、不用维护 方法落后:非工程化方法、结构化方法,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后

10、,软件特点:与硬件截然不同的特点 软件是逻辑部件,缺乏可见性 软件没有磨损,不会被用坏 软件规模庞大,复杂度指数上升,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件无刻不在、无处不在 软件普遍存在于各种硬件之中 软件深刻影响着人们日常生活 软件改变了社会以及生产方式,软件有许多类型 软件形成了产业 软件有许多负面效应 ,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件无刻不在、无处不在,

11、What: 什么东西没有软件? Where:哪没有软件? When: 什么时候不使用软件? Why: 为什么不使用软件? Who: 谁不使用软件?,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件无刻不在、无处不在,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件深刻影响着人们日常生活,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同

12、的特点,我们认识的软件:可以天方夜谭的话题,软件改变了社会以及生产方式,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件改变了社会以及生产方式,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件有许多类型,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件形成了产业,1.1 软件危机,1.1

13、.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件有许多负面效应,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件有许多负面效应,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,软件是播撒梦想和收获噩梦的地方, 是一片恶魔与神仙相竞争的抽象而神秘的沼泽, 是一个狼人与银弹共存的矛盾世界。, ,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+

14、错误认识+方法落后,错误认识: 忽视需求 重视程序 轻视维护 葵花宝典 英雄主义,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,方法落后: 无方法 结构化方法 面向对象方法 面向对象方法 模型驱动(MDA),1.1 软件危机,1.1.3 消除软件危机的途径:工程化=技术措施+管理措施,提高认识:软件=程序+文档+数据 工程思维:神秘技巧to工程项目 软件工具:不断开发、使用更好的工具 不断实践:发展中的软件工程,1.2 软件工程,1.2.1 软件工程的介绍:定义+SE的本质特性,软件工程定义1软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、

15、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。,1.2 软件工程,1.2.1 软件工程的介绍:定义+SE的本质特性,软件工程定义2(1968年NATO)软件工程就是为了经济地获得可靠地且能在世纪机器上有效地运行的软件,而建立和使用完善的工程原理。,1.2 软件工程,1.2.1 软件工程的介绍:定义+SE的本质特性,软件工程定义3(1993年IEEE) (1)把系统化的、规范的、可度量的途径应用与软件开发、运行和维护; (2)研究(1)中的途径。,1.2 软件工程,1.2.1 软件工程的介绍:定义+

16、SE的本质特性,软件工程的本质特性1.关注大型程序构造2.中心课题是控制复杂性3.软件经常变化4.开发软件的效率非常重要5.和谐地合作是开发软件的关键6.软件必须有效地支持它的用户7.开发者和使用者文化背景不同,1.2 软件工程,1.2.2 软件工程的基本原理:7条,1.用分阶段的生命周期计划进行严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精 7.承认不断改进软件工程实践的必要性,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,软件工程=管理,技术 管理:通过计划、组织和控制等一

17、系列活动,合理地配置和使用资源,以达到既定目标的过程。 方法学(methodology)也称为范性(paradigm) 软件生命周期全过程中使用的一整套技术方法的集合。 方法学=阶段,技术方法 软件工程三要素:方法、工具、过程,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,1.传统方法学(结构化方法学)=结构化分析+结构化设计+结构化实现阶段化、顺序化、文档化、标准化要么面向行为,要么面向数据是面向对象方法学的基础,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,2.面向对象方法学 OO:Object Oriented=OOA+OOD+

18、OOP迭代式、增量化、演化性、无缝化主流的软件工程方法,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,2.面向对象方法学 OO:Object OrientedOO的四个要点:对象(Object):问题域中被关心的人或事物类(Class):对象的抽象,层次结构继承(Inheritance):自动拥有父类的数据和操作消息(Message):对象间相互通信的形式与内容,1.3 软件生命周期,软件生命周期=3个时期8个阶段,1.4软件过程,软件过程是一系列任务的框架,规定了完成各项任务的工作步骤。 软件过程规定了完成目标的who,when,what,how,软件过程,软件

19、需求,软件产品,资源消耗人员时间计算机硬件计算机软件,1.4软件过程,ISO9000定义使用资源键输入转化为输出的活动所构成的系统。,软件过程,软件需求,软件产品,资源消耗人员时间计算机硬件计算机软件,1.4软件过程,生命周期模型生命周期各阶段及顺序关系。,瀑布模型 快速原型模型 RAD 增量模型 螺旋模型 喷泉模型 Rational统一过程 RUP 敏捷模型与极限编程(XP) 微软过程,生命周期模型种类,1.4软件过程,生命周期模型生命周期各阶段及顺序关系。,1.4软件过程,1.4.1 瀑布模型,Royce于1970年提出 文档驱动 特点1.阶段间具有顺序性和依赖性2.推迟实现的观点3.质量

20、保证的观点,1.4软件过程,1.4.1 瀑布模型,实际的瀑布模型 有反馈环 有迭代的意味,1.4软件过程,1.4.2 快速原型模型,综合测试,维护,实际的瀑布模型 有反馈环 有迭代的意味,1.4软件过程,1.4.2 快速原型模型,两个模型的比较,1.4软件过程,1.4.3 增量模型,1.4软件过程,1.4.3 增量模型,规格说明,设计,编码和集成,交付客户,规格说明,设计,编码和集成,交付客户,规格说明,设计,编码和集成,交付客户,构件1:,构件2:,构件n:,风险更大的增量模型,1.4软件过程,1.4.4 螺旋模型,简易的螺旋模型,1.4软件过程,1.4.4 螺旋模型,建造的 第 n 个 原

21、型,计划下一阶段,各步骤的进度,累计费用,完整的螺旋模型,1.4软件过程,1.4.5 喷泉模型,需求阶段,面向对象分析阶段,面向对象设计阶段,编码阶段,集成和测试阶段,运行状态,进一步开发,维护期,1.4软件过程,1.4.6 Rational统一过程,1.4软件过程,1.4.6 Rational统一过程,1.4 软件过程,1.4.7 敏捷过程与极限编程2001年2月17位著名的软件专家敏捷软件开发宣言,(1)个体和交互胜过过程和工具(2)可以工作的软件胜过面面俱到的文档(3)客户合作胜过合同谈判(4)响应变化胜过遵循计划根据上述价值观提出的软降过程统称为敏捷过程,其中最重要的是极限编程。,1.

22、4 软件过程,1.4.7 敏捷过程与极限编程(1)极限编程的有效实践,客户作为开发团队的成员 使用用户素材 短交付周期 验收测试 结对编程 测试驱动开发 集体所有,持续集成 可持续的开发速度 开放的工作空间 及时调整计划 简单的设计 重构 使用隐喻,1.4 软件过程,1.4.7 敏捷过程与极限编程(2)极限编程的整体开发过程,1.4 软件过程,1.4.7 敏捷过程与极限编程(3)XP迭代开发开发过程,1.4 软件过程,1.4.8 微软过程1.微软过程准则 (1)项目计划应该兼顾未来的不确定因素 (2)用有效的风险管理来减少不确定因素的影响 (3)经常生成并快速测试软件的过渡版本,从而提高产品的

23、稳定性和可预测性 (4)采用快速循环、递进的开发过程 (5)项目进度表应该具有较高的稳定性和权威性 (6)使用小型项目组并发地完成开发工作 (7)在项目早期把软件配置项基线化,项目后期则冻结产品 (8)使用原型验证概念,对项目进行早期论证 (9)把零缺陷作为追求的目标 (10)里程碑评审会的目的是改进工作,切忌相互指责,1.4 软件过程,1.4.8 微软过程2.微软软件生命周期,完成产品发布,项目目标 得到认可,完成产品设计,完成开发工作,准备好可发布版本,规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段,1.4 软件过程,1.4.8 微软过程3.微软过程模型,功能,时间,版本1,版本2,版本n,微软过程的生命周期模型,the END,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报