软件工程课件.ppt_第1页
软件工程课件.ppt_第2页
软件工程课件.ppt_第3页
软件工程课件.ppt_第4页
软件工程课件.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

软 件 工 程, 教材 (Text Book) 软件工程导论(第四版) 张海藩 编著 清华大学出版社, 参考书目 (Reference) 软件工程 面向21世纪课程教材 齐治昌 编著 高等教育出版社 现代软件工程 陈松乔 编著 北方交通大学出版社,本课程的地位: 计算机学科的专业必修课,先修课程: 程序设计语言、数据结构、数据库,总学时: 45学时,课程评分方法 (Grading Policies) 期末总成绩 (100) = 平时作业 (15%) + 课堂出勤 ( 5%) + 期末考试成绩(80%),软件工程的研究范围,软件开发技术 研究开发方法、开发过程、开发工具和开发环境,软件开发管理 研究软件管理学、软件经济学、软件心理学,教学目的,本门课程主要是软件工程的入门介绍,着重从实现的角度讲述建造软件系统的方法、技术、流程、工具、规范等。目的是掌握软件工程的基本概念、基本原理及实用的开发方法和技术,并了解软件工程各领域的发展动向。,第一章 软件危机与软件工程,主要内容,软件危机 软件工程 软件生命周期 软件过程,需要重点掌握的:,软件工程的基本原理 软件生命周期,1.1 软件危机,软件: 是程序、数据及相关文档的完整集合。,软件发展的三个阶段: 1. 程序设计时代(50-60年代) 2. 程序系统时代(60-70年代),3. 软件工程时代(1968至现在),111 软件危机的介绍,软件危机: 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。,包括两方面: 一是如何开发软件,以满足对软件的日益增长的需求; 二是如何维护数量不断膨胀的已有软件。,软件危机的主要表现,1. 对软件开发成本和进度的估计不准确。 2. 软件质量、可靠性差,用户难以满意。 3. 缺乏文档,软件可维护性差。 4. 软件开发生产率低下,产品供不应求。 5. 软件产品成本昂贵。,112 产生软件危机的原因,1软件是逻辑部件,开发管理困难 2软件的规模庞大,结构复杂 3软件开发技术、工具落后 4采用错误的开发方法,软件生命周期:,指一个软件从定义、开发、使用和维护,直到被最终废弃所经历的漫长时期。,后期引入的变动所付出的代价比早期引入相同变动所付出的代价高2-3个数量级。,113 解决软件危机的途径,解决软件危机的途径: 采用软件工程的方法,从管理和技术两个方面考虑,既要有技术措施(方法、工具)又要有必要的组织管理措施。, 要消除软件就是程序的错误观念; 要认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目; 要使用经过时间检验确实为成功的开发技术和方法,并采用更先进的开发工具。,12 软件工程,概括的说,软件工程是指导计算机软件开发和维护的一门工程学科。 即:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。,121 软件工程的介绍,软件工程的特性,1关注于大型程序(系统)的构造 2中心课题是控制复杂性 3软件经常变化 4开发软件的效率非常重要 5和谐的合作是开发软件的关键 6软件必须有效的支持它的用户 7由不同文化背景的人创造产品,1用分阶段的生命周期计划严格管理 2坚持阶段评审 3实行严格的产品控制 4采用现代化程序设计技术 5结果应能清楚地审查 6开发小组的人员应该少而精 7承认不断改进软件工程实践的必要性,122 软件工程的基本原理,三个要素:方法、工具、过程 方法:完成各项任务的技术方法。 工具:为运用方法而提供的支撑环境。 过程:完成一系列任务的框架(工作步骤)。,122 软件工程方法学,目前使用最广泛的软件工程方法学为: 传统方法学(结构化范型、生命周期方法学) 面向对象方法学(面向对象范型),(1)采用结构化技术完成软件开发的各项任务。 包括:SA、SD 、SP方法。 (结构化分析 、设计 、程序设计) (2)把软件生命周期划分为若干阶段,按顺序完成个阶段的任务。 (3)每个阶段的开始和结束都有严格的标准。 (4)每个阶段结束之前必须进行严格的技术审查和管理复审。,1传统方法学的4个要点,结构化方法认为:系统是由一些功能的相互联系、相互作用而形成。,所以,结构化方法是围绕实现处理功能的“过程”来构造系统,因此特别适合能预先指定系统开发需求的项目。 优点:简单实用、技术成熟、应用广泛。 缺点:对于规模庞大、需求模糊且随时间变化的项目,难于解决软件重用问题,难于适应需求变化的问题,软件维护依然比较复杂。 实现的技术方法主要有: 面向数据流图的方法、Jackson方法等。,2面向对象方法学的4个要点:,面向对象方法=对象+类+继承+消息通信,(1) 把对象作为软件构件。 (2) 把所有对象都划分成类。 (3) 按照父类(基类)与子类(派生类)的关系,把若干个类组成一个层次结构的系统。 (4) 对象彼此间仅能通过发送消息互相联系。,面向对象方法由:OOA、 OOD、OOP组成。,面向对象方法认为:系统是由一些对象的相互联系、相互作用而形成。 是一种以数据为主线、把数据和处理紧密结合的方法。 实现的技术方法主要有: Booch、OMT、OOSE方法等等。 为统一各种方法的术语及符号,提出了统一建模语言: UML。,(1)可理解性好,面向对象方法的优点:,(4)可维护性好,(2)稳定性好,(3)可重用性好,13 软件生命周期,软件定义时期:确定总目标、可行性、导出应采用的策略及要完成的功能,估计所需资源和成本,制定进度表。,软件开发时期: 设计和实现前一时期定义的软件。,各时期的主要任务,软件维护时期: 持久满足用户的需要,包括及时改正运行中发现的错误、适应新的应用环境、满足用户新的需求。,关键问题: 要解决的问题是什么。 要确定问题的性质、工程目标和规模,写书面报告。一般只需要一天或更少的时间。,结束标准:关于规模和目标的报告书。,1问题的定义,各阶段的基本任务,关键问题:有可行的解决办法吗? 对上一阶段提出的问题能否解决?是否值得去解? 需要多少费用?需要多少资源?需要多少时间?更准确、更具体的确定工程规模和目标。 进行仔细的成本/效益分析。 占整个开发阶段所需要使用人力的5%。,2可行性研究,结束标准:系统的高层逻辑模型(数据流图), 成本/效益分析。,3需求分析,关键问题:系统必须做什么。 对开发软件提出的需求进行分析,编写需求说明书。,结束标准:系统的逻辑模型(数据流图、数据字典、算法描述)。,占整个开发阶段所需要使用人力的10%。,4总体设计(概要设计),关键问题:概括地说应如何解决这个问题。 两项任务: 系统设计 确定系统的具体实现方案。 结构设计 确定软件结构。,结束标准:系统流程图;成本/效益分析; 推荐的系统结构(层次图或结构图)。,5详细设计,关键问题:怎样具体实现这个系统。 把概要设计中模块功能描述转变为精确的结构化的过程描述。 总体设计和详细设计共占整个开发阶段所需要使用人力的25%。,结束标准:编码规格说明(程序蓝图),6编码和单元测试,关键任务: 写出正确的程序模块。 编码:把详细设计的结果翻译成选定的语言书写的的程序。 单元测试:查找各模块在功能和结构上存在的问题。 占整个开发阶段所需要使用人力的20%。,结束标准:源程序清单; 单元测试方案和结果。,7综合测试,关键任务:通过各种类型的测试,使软件达到预定的要求。,结束标准:综合测试方案和结果,完整一致的软件配置。,占整个开发阶段所需要使用人力的40%。,将各模块按顺序组装进行测试。,按规格说明书上的规定,对目标系统进行验收。,8软件维护,关键任务:持久地满足用户需要的软件。,结束标准:完整准确的维护记录。,四种类型: 改正性维护 适应性维护 完善性维护 预防性维护,14 软件过程,软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 通常使用软件生命周期模型简洁地描述软件过程。,141 瀑布模型,对生命周期各个阶段, 规定了自顶向下、相互衔接的固定次序。,传统的瀑布模型,特点:,(1)阶段间具有顺序性和依赖性,(2)推迟实现的观点,(3)质量保证的观点, 每个阶段都必须完成规定的文档。 每个阶段结束之前,都必须对完成的文档进行严格的评审。,实际的瀑布模型是带反馈环的。,实际的瀑布模型:, 强迫开发人员采用规范方法; 每个阶段必须提交相应的文档; 每个阶段所交出的产品必须经过质量保证小组(SQA)的验证。,完全依赖于书面的规格说明,可能导致最终开发出的软件产品不能真正满足用户的需要。,优点:,缺点:,14 2 快速原型模型,快速原型模型:就是快速建立起来的可以实际运行的模型,它所能完成的功能只是最终产品的一个子集(展示了目标系统的关键功能)。 开发过程:首先建立一个原型并且让用户在计算机上试用它。然后,用户使用原型,提出意见,开发人员按照用户的意见快速地修改原型,重复这一过程,直到用户不再提出意见为止。,快速原型模型:,优点: 不带反馈环,避免了瀑布模型中上下的反复。, 原型系统已经通过验证; 开发人员通过开发原型系统积累了一定经验。,原因:,14 3 增量模型,增量模型:也叫渐增模型。是把软件产品作为一系列的增量构件来设计、编码、集成和测试。,优点:, 能在较短的时间内向用户提交部分产品。 逐步增加产品的功能,使用户容易接受。,缺点:, 要求集成新的增量构件不能破坏原有的软件体系结构。 要求软件体系结构必须是开放的。,下图为风险更大的增量模型:,优点:不同构件并行构造,可加快工程进度。 缺点:风险太大。,14 4 螺旋模型,是一种风险驱动的模型。,简化的螺旋模型: 就是每个阶段之前增加了风险分析过程的快速原形模型。,基本思想: 通过在开发过程的每个阶段之前增加风险分析过程来尽量降低风险。,简化的螺旋模型,将开发过程分为几个螺旋周期,每个螺旋周期分4 个工作步骤: (1)制定计划 确定目标,选定方案,设定限制条件; (2)风险分析 评估方案,识别风险,消除风险; (3)开发实施 实施软件开发;(纯粹的瀑布模型) (4)用户评估 评价开发工作,提出修改意见,建立下一个周期的计划。,完整的螺旋模型:,单元测试,编码,集成测试,验收测试,实现,完整的螺旋模型,优点:, 支持对现有软件的重用,支持把软件质量看作一个重要的目标。 减少过多测试所带来的风险。 开发和维护被视为同样的方式,克服了轻视维护的倾向。,缺点:, 只适合于内部开发及规模较大的项目开发。 需要开发人员要有丰富的风险评估经验。,第一章小结 1软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列问题。 2软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 3软件工程基本原理: 1)用分阶段的生命周期计划严格管理 2)坚持阶段评审 3)实行严格产品控制 4)采用现代程序设计技术 5)结果应能清楚的审查 6)开发小组的人员少而精 7)承认不断改进软件工程实践的必要性,4软件生命周期:指一个软件从提出开发要求开始直到该软件报废为止的整个时期。 5面向对象方法:=对象+类+继承+消息通信 6软件过程:是为了获得高质量软件所需要完成的一系列任务的框架, 它规定

温馨提示

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

评论

0/150

提交评论