李万龙2013秋软件工程第01章软件工程学概述v.ppt_第1页
李万龙2013秋软件工程第01章软件工程学概述v.ppt_第2页
李万龙2013秋软件工程第01章软件工程学概述v.ppt_第3页
李万龙2013秋软件工程第01章软件工程学概述v.ppt_第4页
李万龙2013秋软件工程第01章软件工程学概述v.ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

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章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,面向对象方法学,软件项目管理,结构化方法学,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,面向对象方法学,软件项目管理,结构化方法学,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,面向对象方法学,软件项目管理,结构化方法学,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,软件项目管理,结构化方法学,面向对象方法学,第8章 维 护,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,结构化方法学,结构法方法学,面向对象方法学,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,软件项目管理,后续课程 需求工程,第8章 维 护,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,软件项目管理,第8章 维 护,后续课程 软件建模与分析,第1章 软件工程学概述,第2章 可行性研究,第3章 需求分析,第4章 形式化说明技术,第5章 总体设计,第6章 详细设计,第7章 实现,第9章 面向对象方法学引论,第10章 面向对象分析,第11章 面向对象设计,第12章 面向对象实现,第13章 软件项目管理,软件工程概述,第8章 维 护,后续课程:软件项目管理,大象无形:软件的特点 适者生存:软件的发展与进化 道法自然:软件工程的基本原理 巧夺天工:软件工程 异曲同工:过程模型,主要内容,初识软件工程:由术语到学科,Software Engineering 是一个术语 是一门技术 是一门课程 是一个专业 是一个学科,是搞软件的人必须知道、了解、熟悉、掌握、运用、研究的东东。,初识软件工程:实践者之路,实践者之路 知道了解熟悉掌握运用研究,SE,研究,科学家,运用,架构师,工程师,掌握,技术员,熟悉,了解,知道,程序员,门外汉,初识软件工程:层次化技术,Software engineering layers 软件工程:一种层次化的技术 软件工程三要素:方法、工具、过程,初识软件工程:软件危机是软件工程诞生的导火索,计算机系统的发展,1.1 软件危机,计算机系统的发展历程:四个阶段,1.1 软件危机,计算机系统的发展历程:四个阶段,通用硬件相当普遍 主要应用于数值计算 很小的专门程序 用户就是程序员 设计在大脑中进行 文档只有程序清单,1.1 软件危机,计算机系统的发展历程:四个阶段,通用硬件相当普遍 主要应用于数值计算 很小的专门程序 用户就是程序员 设计在大脑中进行 文档只有程序清单,广泛使用软件产品 应用扩展到非数值计算领域 程序较大,数量急剧膨胀 软件作坊出现 适应性维护相当困难 软件危机爆发,1.1 软件危机,软件工程学科的诞生:1968年NATO会议,北约: 华约: 第三世界: 查找网络,1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,1.软件危机的定义 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 即:效率和质量的问题。,1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,2.软件危机的典型表现:7不 (1)不可预见:开发成本和进度估计不准。(软件无形) (2)不能交付:用户对“已完成的”软件系统不满意。(包办婚姻) (3)不满需求:软件质量往往靠不住。(不满足需求) (4)不可维护:软件常常是不可维护的。(文档不匹配) (5)不好文档:软件通常没有适当的文档资料。(轻视分析与设计) (6)不好赚钱:软件成本逐年上升。(劳动密集型) (7)不能匹配:软件开发生产率滞后于硬件和计算机应用普及的速度(硬件领先),1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,3.软件危机:人与神话中的场景,1.1 软件危机,1.1.1 软件危机的介绍:效率与质量的尖锐矛盾,4.软件危机:一组形象的漫画,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点 错误认识:软件就是程序、不用维护 方法落后:非工程化方法、结构化方法,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点 软件是逻辑部件,缺乏可见性 软件没有磨损,不会被用坏 软件规模庞大,复杂度指数上升,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件无刻不在、无处不在 软件普遍存在于各种硬件之中 软件深刻影响着人们日常生活 软件改变了社会以及生产方式,软件有许多类型 软件形成了产业 软件有许多负面效应 ,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件无刻不在、无处不在,What: 什么东西没有软件? Where:哪没有软件? When: 什么时候不使用软件? Why: 为什么不使用软件? Who: 谁不使用软件?,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件无刻不在、无处不在,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件深刻影响着人们日常生活,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件改变了社会以及生产方式,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件改变了社会以及生产方式,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件有许多类型,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件形成了产业,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件有许多负面效应,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,我们认识的软件:可以天方夜谭的话题,软件有许多负面效应,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,软件特点:与硬件截然不同的特点,软件是播撒梦想和收获噩梦的地方, 是一片恶魔与神仙相竞争的抽象而神秘的沼泽, 是一个狼人与银弹共存的矛盾世界。, ,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,错误认识: 忽视需求 重视程序 轻视维护 葵花宝典 英雄主义,1.1 软件危机,1.1.2 产生软件危机的原因:软件特点+错误认识+方法落后,方法落后: 无方法 结构化方法 面向对象方法 面向对象方法 模型驱动(MDA),1.1 软件危机,1.1.3 消除软件危机的途径:工程化=技术措施+管理措施,提高认识:软件=程序+文档+数据 工程思维:神秘技巧to工程项目 软件工具:不断开发、使用更好的工具 不断实践:发展中的软件工程,1.2 软件工程,1.2.1 软件工程的介绍:定义+SE的本质特性,软件工程定义1 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。,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 软件工程的介绍:定义+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方法,软件工程=管理,技术 管理:通过计划、组织和控制等一系列活动,合理地配置和使用资源,以达到既定目标的过程。 方法学(methodology)也称为范性(paradigm) 软件生命周期全过程中使用的一整套技术方法的集合。 方法学=阶段,技术方法 软件工程三要素:方法、工具、过程,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,1.传统方法学(结构化方法学) =结构化分析+结构化设计+结构化实现 阶段化、顺序化、文档化、标准化 要么面向行为,要么面向数据 是面向对象方法学的基础,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,2.面向对象方法学 OO:Object Oriented =OOA+OOD+OOP 迭代式、增量化、演化性、无缝化 主流的软件工程方法,1.2 软件工程,1.2.3 软件工程方法学:方法学+结构化方法+OO方法,2.面向对象方法学 OO:Object Oriented OO的四个要点: 对象(Object):问题域中被关心的人或事物 类(Class):对象的抽象,层次结构 继承(Inheritance):自动拥有父类的数据和操作 消息(Message):对象间相互通信的形式与内容,1.3 软件生命周期,软件生命周期=3个时期8个阶段,1.4软件过程,软件过程是一系列任务的框架,规定了完成各项任务的工作步骤。 软件过程规定了完成目标的who,when,what,how,软件过程,软件需求,软件产品,资源消耗 人员 时间 计算机硬件 计算机软件,1.4软件过程,ISO9000定义 使用资源键输入转化为输出的活动所构成的系统。,软件过程,软件需求,软件产品,资源消耗 人员 时间 计算机硬件 计算机软件,1.4软件过程,生命周期模型 生命周期各阶段及顺序关系。,瀑布模型 快速原型模型 RAD 增量模型 螺旋模型 喷泉模型 Rational统一过程 RUP 敏捷模型与极限编程(XP) 微软过程,生命周期模型种类,1.4软件过程,生命周期模型 生命周期各阶段及顺序关系。,1.4软件过程,1.4.1 瀑布模型,Royce于1970年提出 文档驱动 特点 1.阶段间具有顺序性和依赖性 2.推迟实现的观点 3.质量保证的观点,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 个 原型,计划下一阶段,各步骤的进度,累计费用,完整的螺旋模型,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)可以工作的软件胜过面面俱到的文

温馨提示

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

评论

0/150

提交评论