软件工程的基本概念与原理.ppt

上传人:本田雅阁 文档编号:2161004 上传时间:2019-02-24 格式:PPT 页数:61 大小:1.07MB
返回 下载 相关 举报
软件工程的基本概念与原理.ppt_第1页
第1页 / 共61页
软件工程的基本概念与原理.ppt_第2页
第2页 / 共61页
软件工程的基本概念与原理.ppt_第3页
第3页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程的基本概念与原理.ppt》由会员分享,可在线阅读,更多相关《软件工程的基本概念与原理.ppt(61页珍藏版)》请在三一文库上搜索。

1、软件工程,陶华亭 主编 清华大学出版社,主讲:文明瑶 电话:13926193258(683258) 邮箱:,Page 2,理论课教学任务,第1章 软件工程的基本概念与原理 第2章 软件开发过程 第3章 软件项目管理 第4章 可行性分析与初步计划 第5章 需求分析 第6章 总体设计 第7章 详细设计 第8章 软件实现 第9章 软件维护,第10章 从结构化到面向对象 第11章 面向对象的需求获取 第12章 面向对象的分析与设计 第13章 面向对象的测试,Page 3,实践课教学任务,XXXX系统 可行性分析报告和软件开发计划 需求分析说明书 交互设计文档 概要设计和详细设计说明书 程序源代码 打包

2、的安装文件,软件工程的基本概念与原理,第1章,Page 5,软件工程与编程,软件工程,编程,是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程; 考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护。,单纯的代码编写 是软件工程发展的前身 是软件工程中占据很少时间和空间的一部分,Page 6,知识点,软件工程学科的诞生 软件工程的基本概念和原理 其它,Page 7,1.1.1 软件的特点,软件程序文档(数据),程序是能够完成预定功能和性能的可执行的计算机指令序列,数据是使程序能适当处理的信息,具有相应的数据结构,文档是与软件开发、使用和维护有关

3、的图文材料,什么是软件?,Page 8,逻辑产品、无形、脑力劳动的结果,以程序和文档的形式体现,保存在特殊介质上,被计算机执行才能体现出它的功能和作用; 软件生产成本集中在研制阶段; 软件不会被用坏、不存在磨损和消耗,但会过时; 是脑力创造的结果,还未完全摆脱手工开发方式,大部分是”定做”; 软件生产与维护费用不断增加;,Page 9,Page 10,Page 11,1.1.2 软件生产的发展,程序设计时代(46年-56年),程序系统时代(56年-68年),软件工程时代(68年以后),80年代后网络迅速普及, 强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网格计算、虚拟

4、组织。,Page 12,程序设计时代(46年-56年),个体手工方式; 低级语言、编程效率低、难,编程是聪明人的事; 追求编程技巧和程序运行效率; 代码不规范,不易读,不易维护; 只重视编码,不重视设计和文档; 硬件资源紧缺;,Page 13,作坊式小团队开发; 出现高级语言,编程效率有所提高; 追求写代码技巧,但提出了结构化程序设计方法; 软件复杂性增加,需求增加,但软件开发方法和软件项目管理技术跟不上,开发速度慢,与计算机硬件发展速度拉大距离; 软件数量猛增,但质量差,可维护性差,维护成本急剧增加; 上述矛盾越来越显著,最终导致了软件危机;,程序系统时代(56年-68年),Page 14,

5、软件工程学科诞生,引入了“工程化”思想; 结构化和面向对象的方法成熟; 使用数据库、开发工具、开发环境、网络、分布式技术开发软件; 软件开发技术有了很大进步,但没有突破性,软件价格不断上升,没有完全摆脱软件危机;,软件工程时代(68年以后),Page 15,1.1.3 软件危机,人月神话焦油坑F.D.Brooks,史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。,Page 16,(1)硬件生产率大幅提高 如今,计算机的发展已进

6、入一个新的历史阶段;硬件产品已系列化、标准化,“即插即用“。硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。生产能力过剩。,Page 17,(2)软件生产随规模增大复杂度增大 以美国宇航局的软件系统为例: 1963年 水星计划系统 200万条指令 1967年 双子星座计划系统 400万条指令 1973年 阿波罗计划系统 1000万条指令 1979年 哥伦比亚航天飞机系统 4000万条指令,Page 18,Windows95有1000万行代码 Windows2000有5000万行代码 Exchange2000和 Windows2000开发人员结构:,400

7、0人生产一年的任务是否能以400人生产10年来完成?,Page 19,(3)软件生产率很低 伴随计算机的普及,整个社会对计算机应用的需求越来越大。但软件的生产却还沿用“手工作坊“的生产方式,人工编程生产。生产效率仅提高了几倍。生产能力极其低下。,Page 20,(4)硬、软件供需失衡 社会大量需求,生产成本高,生产过程控制复杂,生产效率低等等因素构成软件生产的恶性循环。,Page 21,(5)矛盾引发“软件危机“ 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 为了研究、解决软件危机,诞生了一门新兴学科-软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、

8、解决软件危机。,Page 22,Page 23,Page 24,消除 “软件就是程序”的错误观念。 软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 成功的软件开发技术和方法。 软件工具和软件工程支撑环境。 提高软件工程管理水平。 重视文档的重要性。,Page 25,1.1.4 软件工程诞生,软件危机促使软件工程学科诞生; 借鉴硬件生产的“工程化”思想,1968年,北大西洋公约组织提出了“软件工程”的概念,主张“用工程化思想来开发软件”。,Page 26,知识点,软件工程学科的诞生 软件工程的基本概念和原理 其它,Page 27,1.2

9、.1 软件工程的定义,Fritz Bauer在NATO会议上给出的定义:,将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。,软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的一系列好的工程化原则。,IEEE【IEE83】给出的软件工程定义:,软件工程是开发、运行、维护和修复软件的系统方法。,IEEE【IEE93】给出了一个更加综合的定义:,Page 28,软件工程是用科学知识、技术、原理来定义、开发、维护软件的一门学科。 概括地说,软件工程是指导软件开发和维护的一门工程学科。,Page 29,软件开发技术: 软件开发方法学 软

10、件开发过程 软件工具和软件工程环境 软件工程管理: 软件管理学 软件经济学 软件心理学,软件工程学科的根本要求:采用工程的概念、原理、技术和方法来开发与维护软件,把好的管理技术和开发技术方法结合起来,追求可靠性、可维护性、满足用户需求、高的开发效率。,软件工程的性质: 综合性、交叉性学科,Page 30,1.2.2 软件工程面临的问题,需求问题 质量问题(可靠性可维护性可移植性等) 生产效率(重用是为了提高效率) 费用,Page 31,1.2.3 软件工程的目标,运用工程化思想组织与管理软件项目,采用科学的管理方法、开发方法及工具,提高软件开发效率,保证软件质量,提高软件的可靠性和可维护性,在

11、合理的工期内生产出能够满足用户需求的软件产品。,Page 32,软件工程三要素:方法、工具和过程,工具,方法,过程,质量焦点,Software engineering layers,Page 33,1.2.5 软件工程的基本原理,7条原理,Page 34,经统计表明,不成功的软件项目中有一半左右是由于计划不周造成的。 Boehm认为,在软件的整个生存周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。,Page 35,大部分错误是在编码之前造成的。 错误发现与改正得越晚,所需付出的代价越高。 因此,在每个阶段都进行严格的评审,以便尽早发

12、现在软件开发过程的错误,Page 36,在软件开发过程中不要随意改变需求,因为改变某项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科学的产品控制技术。 目前主要实行基准配置管理:基准配置是指经过阶段评审后的软件配置成分,如各个阶段产生的文档或程序代码。 对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。,Page 37,实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。 80年代及之前:结构化分析、设计技术 90年代:面向对象分析、设计技术,Page 38,软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。 根据软件开发

13、项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查。,Page 39,开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。 开发小组人员数目的增加,使相互交流复杂、费用增加。,Page 40,遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。 积极主动采纳新的软件技术,且不断总结经验。,Page 41,补充:二八原理,Page 42,1.2.4 软件生存周期,软件生命周期(Software Life Cycle)是从软件开发需求被提出,启动可行性分析开始,经历软件开发过程,直到软件被开发出来、投入使用

14、,最终被淘汰为止的整个时间。,Page 43,Page 44,Page 45,1. 问题定义阶段,用户提出一个软件开发需求以后,分析师首先要明确软件的实现目标、规模及类型:如它是数据处理问题还是实时控制问题,是科学计算问题还是人工智能问题等。,Page 46,2. 可行性研究,基本任务:“对于上一个阶段所确定的问题有行得通的解决办法吗?” 经济可行性、技术可行性、法律可行性、不同方案。 结束标准:提出关于问题性质、工程目标和规模的问题定义书面报告;提出可行性研究报告。,Page 47,3. 需求分析,基本任务:“为了解决这个问题,目标系统必须做什么?” 确定系统必须具有的功能和性能,系统要求的

15、运行环境,并且预测系统发展的前景。 结束标准:软件需求规格说明书(specification),Page 48,4. 总体设计(概要设计),基本任务:“概括地说,应如何解决这个问题?” 设计出实现目标系统的几种可能的方案。推荐一个最佳方案。 结束标准:概要设计文档。,Page 49,基本任务:“应该怎样具体地实现这个系统呢?” 结束标准:设计出程序的详细规格说明。,5. 详细设计,Page 50,6. 编码,基本任务:写出正确的容易理解、容易维护的程序模块 结束标准:以某种程序设计语言表示的源程序清单。,Page 51,7. 测试(单元测试和综合测试),基本任务:在设计测试用例的基础上检验软件

16、的各个组成部分是否达到预定的要求。 结束标准:软件合格,能交付用户使用。,Page 52,8. 软件维护,基本任务:使系统持久地满足用户的需要。 改正性维护,适应性维护,完善性维护,预防性维护,注:实践中,软件开发并不总是按照以上顺序执行,各个阶段通常重叠交叉。,Page 53,知识点,软件工程学科的诞生 软件工程的基本概念和原理 其它,Page 54,其它,面向过程方法(结构化方法),面向数据结构方法,1,2,面向对象方法,原型法,3,4,Page 55,结构是指系统内各组成要素之间的相互联系、相互作用的框架。 指导思想:自顶向下、逐步求精。 基本原则:功能分解与抽象。 针对不同的开发活动,

17、有结构化分析、结构化设计、结构化编程和结构化测试等。,Page 56,起源: 面向对象编程语言 OOP(面向对象编程)-OOD(面向对象设计)+OOA(面向对象分析)-OOM(面向对象的软件开发方法) 面向对象方法的开发步骤: 1)从问题陈述入手,构造系统模型(对象模型 )。 2)逐层分解成各级子系统。,Page 57,付出较低的开发成本,1,达到要求的软件功能,2,取得较好的软件性能,3,开发的软件易于移植,4,需要较低的维护费用,5,能按时完成开发工作,及时交付使用,6,Page 58,软件是逻辑产品而不是实物产品 软件的功能依赖于硬件和软件的运行环境以及人们对它的操作 软件设计的复杂性 软件特征(功能的多样性、实现的多样性、能见度低、软件结构合理性差) 智力密集及知识产权保护,Page 59,立足于系统的整体。 讲授系统分析、系统设计、测试及维护的理论和方法。 构筑一个软件系统,实践软件开发全过程。,Page 60,转变对软件的认识: 转变思维定式:,Page 61,The end Thank you,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1