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

上传人:M****1 文档编号:571287285 上传时间:2024-08-09 格式:PPT 页数:61 大小:1.07MB
返回 下载 相关 举报
软件工程的基本概念与原理.ppt_第1页
第1页 / 共61页
软件工程的基本概念与原理.ppt_第2页
第2页 / 共61页
软件工程的基本概念与原理.ppt_第3页
第3页 / 共61页
软件工程的基本概念与原理.ppt_第4页
第4页 / 共61页
软件工程的基本概念与原理.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

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

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

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

3、档是与软件开发、使用和维护发、使用和维护有关的图文材料有关的图文材料什么是软件?Page n逻辑产品、无形、脑力劳动的结果,以程序和文档的形式体现,保存在特殊介质上,被计算机执行才能体现出它的功能和作用;n软件生产成本集中在研制阶段;n软件不会被用坏、不存在磨损和消耗,但会过时;n是脑力创造的结果,还未完全摆脱手工开发方式,大部分是”定做”;n软件生产与维护费用不断增加;软件的特殊性软件的特殊性Page 修改点图1-3 实际的软件故障曲线图故障率时间由于副作用造成故障率的提高软件软件的维护曲线Page Page 1.1.2 软件生产的发展8080年代后网络迅速普及年代后网络迅速普及, , 强大

4、的桌面系统、面向对象技术、专家强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网格计算、虚拟组织。系统、人工智能、神经网络、并行计算、网格计算、虚拟组织。Page n程序设计时代(46年-56年)个体手工方式;低级语言、编程效率低、难,编程是聪明人的事;追求编程技巧和程序运行效率;代码不规范,不易读,不易维护;只重视编码,不重视设计和文档;硬件资源紧缺;Page 作坊式小团队开发;出现高级语言,编程效率有所提高;追求写代码技巧,但提出了结构化程序设计方法;软件复杂性增加,需求增加,但软件开发方法和软件项目管理技术跟不上,开发速度慢,与计算机硬件发展速度拉大距离;软件数量猛

5、增,但质量差,可维护性差,维护成本急剧增加;上述矛盾越来越显著,最终导致了软件危机;n程序系统时代(56年-68年)Page 软件工程学科诞生,引入了“工程化”思想;结构化和面向对象的方法成熟;使用数据库、开发工具、开发环境、网络、分布式技术开发软件;软件开发技术有了很大进步,但没有突破性,软件价格不断上升,没有完全摆脱软件危机;n软件工程时代(68年以后)Page 1.1.3 软件危机人月神话焦油坑F.D.Brooks史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的

6、技巧,能够挣脱束缚,它们最后都沉到了坑底。Page (1)硬件生产率大幅提高如今,计算机的发展已进入一个新的历史阶段;硬件产品已系列化、标准化,即插即用。硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。生产能力过剩。1.软件软件危机产生的原因Page (2)软件生产随规模增大复杂度增大以美国宇航局的软件系统为例:1963年 水星计划系统 200万条指令1967年 双子星座计划系统 400万条指令1973年 阿波罗计划系统 1000万条指令1979年 哥伦比亚航天飞机系统 4000万条指令Page Windows95有1000万行代码Windows2000

7、有5000万行代码Exchange2000和 Windows2000开发人员结构:Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人4000人生产一年的任务是否能以400人生产10年来完成?Page (3)软件生产率很低伴随计算机的普及,整个社会对计算机应用的需求越来越大。但软件的生产却还沿用手工作坊的生产方式,人工编程生产。生产效率仅提高了几倍。生产能力极其低下。Page (4)硬、软件供需失衡社会大量需求,生产成本高,生产过程控制复杂,生产效率低等等因素构成软件生产的恶性循环。Page (5)矛盾引发软件危机软件危

8、机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。为了研究、解决软件危机,诞生了一门新兴学科-软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机。Page 经费超预算,项目一再拖延;1开发的软件不能满足用户要求;2软件可维护性差;3软件可靠性差;4软件通常没有适当的文档资料;5软件成本的比例逐年上升;6软件产品“供不应求”;72.软件软件危机的表现Page Page n消除 “软件就是程序”的错误观念。n软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。n成功的软件开发技术和方法。n软件工具和软件

9、工程支撑环境。n提高软件工程管理水平。n重视文档的重要性。 3.消除软件消除软件危机的途径Page 1.1.4 软件工程诞生n软件危机促使软件工程学科诞生;n借鉴硬件生产的“工程化”思想,1968年,北大西洋公约组织提出了“软件工程”的概念,主张“用工程化思想来开发软件”。Page 知识点n软件工程学科的诞生n软件工程的基本概念和原理n其它Page 1.2.1 软件工程的定义Fritz Bauer在NATO会议上给出的定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的一系列

10、好的工程化原则。IEEE【IEE83】给出的软件工程定义:软件工程是开发、运行、维护和修复软件的系统方法。IEEE【IEE93】给出了一个更加综合的定义:Page n软件工程是用科学知识、技术、原理来定义、开发、维护软件的一门学科。n概括地说,软件工程是指导软件开发和维护的一门工程学科。Page u软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 u软件工程管理:软件管理学 软件经济学 软件心理学n软件工程学科的根本要求:采用工程的概念、原理、技术和方法来开发与维护软件,把好的管理技术和开发技术方法结合起来,追求可靠性、可维护性、满足用户需求、高的开发效率。软件工程的性质:综

11、合性、交叉性学科Page 1.2.2 软件工程面临的问题n需求问题n质量问题(可靠性可维护性可移植性等)n生产效率(重用是为了提高效率)n费用Page 1.2.3 软件工程的目标n运用工程化思想组织与管理软件项目,采用科学的管理方法、开发方法及工具,提高软件开发效率,保证软件质量,提高软件的可靠性和可维护性,在合理的工期内生产出能够满足用户需求的软件产品。Page n软件工程三要素:方法、工具和过程工具方法过程质量焦点Software engineering layersPage 1.2.5 软件工程的基本原理7条原理采用现代程序设计技术开发小组成员少而精可以清楚地审查结果承认不断改进软件工程

12、实践的必要性用分阶段的生存周期计划严格管理实行严格的产品控制坚持进行阶段评审Page n经统计表明,不成功的软件项目中有一半左右是由于计划不周造成的。nBoehm认为,在软件的整个生存周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。用用分分阶阶段段的的生生存存周周期期计计划划严严格格管管理理Page n大部分错误是在编码之前造成的。n错误发现与改正得越晚,所需付出的代价越高。n因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误坚坚持持进进行行阶阶段段评评审审Page n在软件开发过程中不要随意改变需求,因为改变某项需

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

14、规定开发组织的责任和产品标准,使所得的结果能够清楚地审查。结结果果应应能能清清楚楚地地审审查查Page n开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。n开发小组人员数目的增加,使相互交流复杂、费用增加。开开发发小小组组成成员员少少而而精精Page n遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。n积极主动采纳新的软件技术,且不断总结经验。承承认认不不断断改改进进软软件件工工程程实实践践的的必必要要性性Page 补充:二八原理Page 1.2.4 软件生存周期n软件生命周期(Software Life Cycle)是从软

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

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

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

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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号