《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01

上传人:E**** 文档编号:89423905 上传时间:2019-05-25 格式:PPT 页数:39 大小:807.51KB
返回 下载 相关 举报
《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01_第1页
第1页 / 共39页
《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01_第2页
第2页 / 共39页
《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01_第3页
第3页 / 共39页
《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01_第4页
第4页 / 共39页
《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01》由会员分享,可在线阅读,更多相关《《软件开发生命周期与统一建模语言UML》-曹静-电子教案 01(39页珍藏版)》请在金锄头文库上搜索。

1、软件开发生命周期 与统一建模语言UML,中国水利水电出版社,中国水利水电出版社,软件职业技术学院“十一五”规划教材,曹 静 主 编,软件开发生命周期与统一建模语言UML,软件开发生命周期与统一建模语言,结构化程序设计与面向对象程序设计,2,静态模型,5,软件开发生命周期与统一建模语言UML,软件开发生命周期与统一建模语言,软件开发生命周期与统一建模语言UML,第1章 软件工程概述,1.1 用例概述 1.1.1 软件及其特点 1.1.2 软件危机 1.1.3 软件工程的定义 1.1.4 软件工程的基本原理 1.2 软件开发生命周期 1.3 过程模型 1.3.1 常见的生命周期模型 1.3.2 生

2、命周期模型的应用 1.4 软件工程方法学,软件开发生命周期与统一建模语言UML,第1章 软件工程概述,教学要求 理解:软件和软件工程的概念;软件开发生命周期。 掌握:软件过程模型运用的原则。,软件开发生命周期与统一建模语言UML,软件开发是一个专业领域的人在为另一个专业领域的人服务 在软件开发过程中,需求可能经常在变,每次需求变化会带来软件系统的开发延迟,甚至出现变更反复,被推倒了的内容又要重新确立 在软件没有最终交付时,用户如何了解开发进展情况 系统难以维护和扩展,经常重复开发类似的功能 项目经常延期,实际成本往往远远高于估计成本 开发团队内部使用了不同的技术,在交流时常常有障碍 ,如何应对

3、软件开发过程中的种种不确定因素,更有效地开发与维护软件?,1.1 软件、软件危机和软件工程的定义,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定义,软件与硬件,软件开发生命周期与统一建模语言UML,软件的特点 软件是脑力劳动的产品,但它不同于追求个性化的艺术作品;软件是产品,但它又不同于工业化生产得到的有形产品,1.1 软件、软件危机和软件工程的定义,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定义,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定义,什么是软件 软件 = 程序 + 数据 + 文档 数据包括初始化

4、数据、测试数据、研发数据、运行数据、维护数据,以及软件企业积累的项目工程数据和项目管理数据。 文档是开发、使用和维护程序所需要的图文资料。,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定义,什么是软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 如何开发软件,以满足对软件日益增长的需求 如何维护数量不断增加的已有软件,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定义,消除软件危机的途径 正确认识软件。 软件=程序+数据+文档 在软件开发的各个阶段都要有完备的文档。 加强管理。 软件开发应该是一种组织良好、管理严密

5、、各类人员协同配合、共同完成的工程项目,应该推广使用在实践中总结出来的开发软件的成功的技术和方法。 使用软件工具。 在软件开发的每个阶段都有许多烦琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。 总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门学科。,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定义,软件工程的定义 软件工程 = 管理 + 技术 软件工程的目标,软件开发生命周期与统一建模语言UML,1.1 软件、软件危机和软件工程的定

6、义,软件工程的基本原理 (1)用分阶段的生命周期计划严格管理。 统计发现,不成功的软件项目中有一半左右是由于计划不周造成的。因此,有必要制定完善的计划,分阶段地进行管理和控制。 (2)坚持进行阶段评审。 软件中的大部分错误是在编码之前造成的;错误发现与改正得越晚,所需付出的代价也就越高,如图1-4所示。因此,在每个阶段都进行严格的评审以尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。早中晚低中高变化出现的时期代价 (3)实行严格的产品控制。 软件开发过程中,需求的变更往往需要付出较高的代价,但这种改变又是难以避免的,因此不能硬性禁止客户提出改变需求的要求,而要依靠科学的产品控制技

7、术来顺应这种要求,按照严格的规程进行变更控制。 (4)采用现代程序设计技术。 如“清晰第一、效率第二”的程序风格;面向对象的分析方法;各种框架技术的使用、模式的应用;软件建模方法的运用等。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。 (5)结果应能清楚地审查。 软件是脑力劳动的逻辑产品,应该根据软件开发项目的总目标及完成期限规定开发组织的责任和产品标准,制定出完备的文档,从而提高其“可见性”。 (6)开发小组的人员应该少而精。 (7)不断改进软件工程实践的经验和技术。,软件开发生命周期与统一建模语言UML,改正同一错误付出的代价随时间变化的趋势,早中晚

8、,低 中 高,变化出现的时期,代价,1.1 软件、软件危机和软件工程的定义,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,如何盖一栋大楼?,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,1问题定义“要解决的问题是什么?” 2可行性论证“有行得通的解决办法吗?” 3需求分析“系统必须做什么?” 4总体设计“概括地说,怎样做?” 5详细设计“具体怎样做?” 6编码和单元测试 7综合测试 8运行/维护,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,1问题定义“要解决的问题是什么?” 通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标

9、和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,2可行性论证及软件计划“有行得通的解决办法吗?” 目的:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。 主要任务:了解客户的要求及现实环境,从技术、经济和社会因素三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步的项目开发计划。,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,可行性论证及软件计划(续) 具体步骤: (1)确定项目规模和目标。 (2)研究正在运行的系统。 (3)建立新系统的高层逻辑模

10、型。 (4)导出和评价各种方案。 (5)推荐可行的方案。 (6)编写可行性研究报告。 系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程,研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法。如果可行,制定出初步的开发计划。,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,3需求分析“系统必须做什么?” 确定目标系统必须具备哪些功能。 软件开发是一个专业领域的人在为另一个专业领域的人做事。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定

11、用户的具体要求并不完全清楚。因此,系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出用户认可的各种模型。常用的有用例模型、活动图、顺序图、类图、数据流图、层次图等。 需求分析阶段的两个任务是捕获需求和分析整理需求。 需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。这个阶段的一项重要任务是,用正式文档准确地记录对目标系统的需求,即规格说明书。,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,4总体设计“概括地说,应该怎样做?” 基本任务: (1)设计出实现目标系统的几种可能的方案。 软件工程师用适当的表达工具描述每种方

12、案,分析每种方案的优缺点,并在充分权衡各种方案的利弊的基础上推荐一个最佳方案。此外,还应该制定出实现最佳方案的详细计划。 (2)设计软件体系结构。 通常指划分模块,确定模块的功能及其相互之间的调用关系,确定模块间的接口等。 (3)数据库设计。 (4)编写概要设计文档。,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,5详细设计“具体怎样做?” 总体设计阶段以比较抽象概括的方式提出了解决问题的办法,详细设计阶段的任务就是把解法具体化。 这个阶段的任务不是编写程序,而是设计出程序的详细规格说明,这种规格说明应该包含必要的细节,程序员可以根据它们写出实际的程序代码。,软件开发生命周期

13、与统一建模语言UML,1.2 软件开发生命周期,6编码和单元测试 关键任务:写出正确的、容易理解、容易维护的程序模块。 程序员应该根据目标系统的性质和实际环境选取一种适当的程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。,软件开发生命周期与统一建模语言UML,1.2 软件开发生命周期,7综合测试 软件测试的目的是希望以最低代价尽可能多地找出软件中潜在的各种错误和缺陷。软件测试并不是在软件交付之后才开始,而应尽早地、不断地进行,贯穿于软件定义与开发的整个期间。例如,在需求分析和设计阶段就要尽可能地考虑到如何提高软件的可测试性。,软件开发生命周期与统一建

14、模语言UML,1.2 软件开发生命周期,8运行/维护 这一阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。,软件开发生命周期与统一建模语言UML,1.3 软件过程模型(软件生命周期模型),1瀑布模型 核心思想是阶段性的评审和验证,每一阶段结束时都要给出完整的文档。 缺点是该模型缺乏灵活性,后一阶段出现的问题需要通过前一阶段的重新确认来解决。,软件开发生命周期与统一建模语言UML,2原型模型 快速设计软件中对用户可见部分的表示,构造原型,由用户评估,逐步调整原型,使之满足用户需要。 其优点是开发者和用户可以充分沟通,开发过程也是学习过程,可以低风险开发柔性较大的计算机系统。,

15、1.3 软件过程模型(软件生命周期模型),软件开发生命周期与统一建模语言UML,3螺旋模型 把软件开发过程组成为一个逐步细化的螺旋周期,每经历一个周期,系统就得到进一步的细化和完善;整个模型紧密围绕开发中的风险分析,推动软件设计向深层扩展和求精。该模型要求开发人员与用户能经常直接进行交流,通常用来指导内部发行的大型软件项目的开发,1.3 软件过程模型(软件生命周期模型),软件开发生命周期与统一建模语言UML,4增量模型 一种渐近式的模型 第一个增量构件往往实现软件的基本需求,提供最核心的功能 优点:能在较短的时间内,向用户提交可完成部分工作的产品;,1.3 软件过程模型(软件生命周期模型),软

16、件开发生命周期与统一建模语言UML,5迭代模型 一种渐近式的模型, 迭代模型与增量模型 假设现在要开发A、B、C、D四个大的业务功能,每个功能都需要开发两周的时间。对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A、B功能,第二次增量完成C、D功能;而对于迭代开发来讲则是分两次迭代来开发,第一次迭代完成A、B、C、D四个基本业务功能,但不含复杂的业务逻辑,而第二次迭代再逐渐细化补充完整相关的业务逻辑。 就对风险的消除上,增量和迭代模型都能够很好地控制前期的风险,但迭代模型在这方面更有优势。迭代模型可以更多地从总体方面思考系统问题,一开始就给出相对完善的框架或原型,后期的每次迭代都是针对上次迭代的逐步精化。,1.3 软件过程模型(软件生命周期模型),软件开发生命周期与统一建模语言UML,6快速原型模型 快速建立起可以在计算机上运行的程序,它所完成的功能往往是最终产品功能的一个子集。通过让用户试用,收集反馈意见,从而获取准确的需求。 这是一种很好

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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