软件工程课件之第1章-软件工程学概述(第6版)(张海潘编著).pptx
《软件工程课件之第1章-软件工程学概述(第6版)(张海潘编著).pptx》由会员分享,可在线阅读,更多相关《软件工程课件之第1章-软件工程学概述(第6版)(张海潘编著).pptx(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、为什么要学习这门课程软件开发与人才需求o现有模式o小作坊的、一人身兼多职o英雄式的软件开发o生产模式o大规模的软件生产,专业化o分工越来越细,团队合作开发o对人才的要求o除精通开发技术外o更需要软件工程意识和团队合作精神教程o软件工程导论(第6版)o张海藩等编著o清华大学出版社教学内容o软件工程概述(第1章)o可行性研究(第2章)o需求分析(第3章)o系统设计(第5章)o详细设计(第6章)o系统实现(第7章)o系统维护(第8章)教学内容o面向对象方法学引论(第9章)o面向对象分析(第10章)o面向对象设计(第11章)o面向对象实现(第12章)o软件项目管理(第13章)资源o 软件工程组织o 希
2、赛o 中国最大的开发者技术社区程序员刊物官方网站o 赛迪教育信息产业部电子教育与考试中心唯一指定软考远程辅导平台o 软件测试网软件工程概述内容o软件的定义和特点o软件危机o概况、原因和消除途径o软件工程介绍o概况、基本原理、软件工程方法学o软件生命周期o软件过程o瀑布模型、快速原型模型、增量模型、螺旋模型等软件o软件=程序?o IEEE Standard Glossary of Software Engineering Terminologyo计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。o程序:在运行时,能提供所希望的功能和性能的指令序列。o数据:使程序能够正确运行的数据结构o
3、文档:描述程序研发过程、方法及使用的文档软件中的文档o促进对软件的开发,管理和维护;o便于各种人员(用户,开发人员)的交流软件本质特性o复杂性o软件在规模上可能比任何由人类创造的其他实体都要复杂,复杂性是软件的本质特征o软件的复杂形是必要属性o大量的组合状态o丰富的结构和相互依赖性o良好的接口用以封装内部的复杂性o开发问题也会增加复杂性o高效率的代码通常是复杂的o重用通用化的组件意味着复杂的状态连接o复杂的代码难以维护,导致设计上的更复杂软件本质特性o复杂性oWindows95有1000万行代码oWindows2000有5000万行代码oExchange2000和Windows2000开发人员
4、结构软件本质特性o一致性o软件必须遵从人为的惯例并适应已有的技术和系统o软件必须遵循各种接口、协议和标准o有些情况下,兼容性是软件开发的目标o软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果。o许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。软件本质特性o可变性o软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。o所有成功的软件都会发生变更!o当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件;o功能扩展的压力主要来自那些喜
5、欢基本功能,又对软件提出了很多新用法的用户们。软件本质特性o可变性o软件退化软件本质特性o不可见性o软件是不可见的和无法可视化的o软件的客观存在不具有空间的形体特征o定义“需要做什么”成为软件开发的根本问题o人们一直试图使用不同的技术进行软件可视化o控制流程、数据流、依赖关系、UML、o这些技术仍然无法给出准确的、完整的描述o软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。软件分类o按工作方式划分o实时处理软件o分时软件o交互式软件o批处理软件软件分类o按功能划分o系统软件o与计算机硬件紧密配合
6、在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件o支撑软件o能协助用户开发软件的工具性软件,其中包括帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发的进程的工具o应用软件:o在特定领域内开发,为特定目的服务的一类软件软件分类o按规模(人力、时间、源程序行数)划分软件分类o按用途o通用软件o面向市场公开销售的独立运行系统。o例如:操作系统、数据库管理系统、字处理软件等。o定制软件o由客户委托,在合同约束下开发的软件o例如:网上书店、图书管理系统、空中交通管理系统等。软件的发展o计算机软件发展的三个时期o程序设计阶段(60年代中期之前)o硬件通用,软件专用;程序规模小
7、,编写者和使用者为同一人(同组人)。o程序系统阶段(60年代中期-70年代中期)o出现“软件作坊”、产品软件;“个体化”开发方法。o软件工程阶段(70年代中期之后)o软件开发成为一门新兴的工程学科软件工程。软件的发展o各阶段特点软件危机o概念o软件危机指的使软件开发和维护过程中遇到的一系列严重问题,包含两方面的问题:o如何开发软件,怎样满足对软件的日益增长的需求o如何维护数量不断膨胀的已有软件软件危机o软件危机的主要表现o对软件开发成本和进度的估计不准确o产品不符合用户的要求o软件质量不高、可靠性差o软件常常不可维护、错误难以改正o缺乏适当的文档资料o软件成本占系统总成本的比例逐年上升o软件开
8、发速度跟不上计算机发展速度软件危机o软件危机-开发成本高软件危机o软件技术进步落后于需求增长软件危机o产生软件危机的主要原因o客观:软件本身特点o逻辑部件,难以控制质量o规模庞大,结构复杂o主观:不正确的开发方法,落后的开发工具o忽视需求分析o错误认为:软件开发=程序编写o轻视软件维护软件危机o解决软件危机的途径o技术措施o使用更好的软件开发方法和开发工具o组织管理措施o软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。软件工程o指导计算机软件开发和维护的一门科学。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确
9、的管理技术和技术方法结合起来,以经济地开发出高质量的软件并有效维护。o产生o1968年,北大西洋公约组织(NATO),召开的有关计算机软件会议上正式提出“软件工程”术语。oIEEE 1993年定义软件工程(Software Engineer)软件工程本质特性o关注大型程序构造o中心课题:简化复杂性o变动成本控制o提高开发效率o和谐开发o软件必须有效支持用户o功能、性能和可用性o开发者和使用者来自不同文化背景o连接着的角色软件工程的基本原理o软件工程的 原则和信条o100多条oB.W.Boehm的7条基本原理软件工程的基本原理o用分阶段的生命周期计划严格管理o经统计表明,不成功的软件项目中有一半
10、左右是由于计划不周造成的。oBoehm认为,在软件的整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。软件工程的基本原理o坚持进行阶段评审o大部分错误是在编码之前造成的o错误发现与改正得越晚,所需付出的代价越高。o因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误软件工程的基本原理o实行严格的产品控制o在软件开发过程中不要随意改变需求,因为改变某项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科学的产品控制技术。o目前主要实行基准配置管理:基准配置是指经过阶段评审后的软件配置成分,如
11、各个阶段产生的文档或程序代码。o对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。软件工程的基本原理o采用现代程序设计技术o实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。o80年代及之前:结构化分析、设计技术o90年代:面向对象分析、设计技术软件工程的基本原理o结果应能清楚地审查o软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。o根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查软件工程的基本原理o开发小组的人员应该少而精o开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。o开发小组人员数
12、目的增加,使相互交流复杂、费用增加。软件工程的基本原理o承认不断改进软件工程实践的必要性o遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。o积极主动采纳新的软件技术,且不断总结经验。软件工程方法学o软件工程生命周期中采用的一整套技术方法的集合o传统方法学o面向对象方法学软件工程的三要素o过程(Process)o支持软件生命周期的所有活动o方法(Method)o为完成软件生命周期的一系列活动提供“怎么做”的技术o工具(Tool)o为“方法”提供一系列自动、半自动的软件支撑环境传统方法学o采用结构化技术完成软件开发的各项任务并使用适当的软件工具
13、或环境来支持技术的运用o把生命周期划分为若干个阶段,然后分阶段完成,前一阶段的技术标准是后一阶段的开始并分阶段审查结果面向对象方法学o既面向数据又面向行为的方法学o把对象作为融合数据和操作的统一软件构件o所有对象都划分类,类定义数据和操作o按父类子类关系,组成层次结构o对象间发送消息软件生命周期o软件从提出需求开始直到该软件报废为止的整个时期。o软件定义o问题定义、可行性研究、需求分析o软件开发o系统设计o总体设计、详细设计o系统实现o编码、单元测试o综合测试o软件维护软件生命周期o问题定义o做什么,问题性质、目标、规模o可行性研究o是否值得,是否能做o需求分析 -规格说明书(Specific
14、ation)o明确细致的确定做什么o系统逻辑模型o数据流图o数据字典o简要算法软件生命周期o概要设计o几种可能的方案和架构o模块化o详细设计o模块的细化功能描述o数据结构软件生命周期o编码与单元测试o综合测试o集成测试o按软件结构把模块组装测试o按规格说明书测试,由用户验收o维护o改正性o适应性,修改适应环境o完善性,功能完善o预防性软件过程o为了获得高质量软件所需完成的一系列任务框架,规定了完成各项任务的步骤o描述为了开发高质量的软件,什么人在什么时候做什么事以及怎样做。o使用资源将输入转化为输出的活动所构成的系统o软件开发过程应该明确定义以下元素:o过程中所执行的活动及其顺序关系。o每一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课件 软件 工程学 概述 张海潘 编著
限制150内