UML学习05节

上传人:E**** 文档编号:90313064 上传时间:2019-06-11 格式:PPT 页数:37 大小:1.30MB
返回 下载 相关 举报
UML学习05节_第1页
第1页 / 共37页
UML学习05节_第2页
第2页 / 共37页
UML学习05节_第3页
第3页 / 共37页
UML学习05节_第4页
第4页 / 共37页
UML学习05节_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《UML学习05节》由会员分享,可在线阅读,更多相关《UML学习05节(37页珍藏版)》请在金锄头文库上搜索。

1、第五章 软件开发的方法学,软件,尤其是许多人一起开发的大型软件,应使用某种方法来开发。甚至由一个人开发的小型软件也应通过某种方法进行改进。 方法学是做事的系统方法,它是一个可接受的过程,从软件开发的早期阶段到已安装系统的维护,都可以遵循这个方法学。 除了过程之外,方法学还应指定在此过程中要生产什么产品(以及该产品采用什么形式); 方法学也包括用于资源管理、规划、调度和其他管理任务的建议或技术。,1 有助于对编码设置规则; 2 增进对问题的理解,提高解决方案的质量; 3 有助于在提交源代码之前,找出概念错误和实践性的错误; 4 在每个阶段,方法学都指定了下一步的工作,不会为下一步要做什么而烦恼;

2、 5 有助于编写出扩展性更高、可靠性更高、更易于调试的代码。,学习优秀方法学的原因,1 完整的文档说明:系统开发的每个阶段都提供了全面的说明,所以完成的系统不会艰涩难懂; 2 减少了等待时间:由于工作流、活动、任务和相互依赖性更容易理解,所以人力和其他资源等待工作做的可能性也减少了; 3 工作能及时交付,且不超过预算; 4 用户和开发人员之间能更好的交流; 5 可重复性:有准确定义的活动,类似的项目就能在类似的时间期限内交付,成本也类似; 6 更准确的成本。,大型项目还得益于,1 规划:确定需要做什么; 2 调度:确定完成工作的时间; 3 分配资源:估计和获得人力、软件、硬件和其他需要的资源;

3、 4 工作流:较大开发工作中的子过程; 5 活动:工作流中的各个任务; 6 任务:方法学中由人完成的部分; 7 制品(artifact):即开发成果:软件、设计文档、培训计划和手册。,优秀的方法学能解决的问题,软件开发中的经典阶段,所有的方法学中,每个开发过程都有许多共有的阶段; 传统的方法学中,需要从一个阶段到下一个阶段依次进行; 现代方法学中,可以多次进行每个阶段、且顺序是任意的。,需求就是新开发的软件所要求达到的目标,包含两个方面:业务建模和系统需求建模(或称功能规范表示) 业务建模就是理解软件的操作上下文; 系统需求建模就是确定软件的功能,并记下这些功能。,软件开发中的经典阶段,需求,

4、分析就是理解我们要处理的问题域的过程; 在设计解决方案前,需要了解相关的实体、它们的属性和相互关系,并验证我们的理解是否正确。,分析,设计就是要确定如何解决问题; 换言之,就是根据对要编写什么软件,如何部署他的经验、估计和直觉,做出决定; 系统设计把系统分解为逻辑子系统(过程)和物理子系统(计算机和网络),并决定及其如何通信,为工作选择正确的技术等; 在子系统设计中,应决定如何把每个逻辑子系统分解为有效、可行的代码。,软件开发中的经典阶段,设计,规范是对软件所需的行为进行完整、清晰的描述,这是一个常常被忽略的阶段。,软件开发中的经典阶段,规范,实现就是编写代码,并把它们组合在一起,形成子系统,

5、子系统再与其他子系统协同工作,形成整个系统; 在实现阶段之前尽管已经做出了大多数的编码决策,但有许多地方需要创新,只要最终结果是正确的、有效的,人们就会满意。,实现,在软件完成后,必须根据系统需求进行测试,看它是否复合最初的目标; 一般来说,编写软件的开发人员不应参与设计、实现或执行主要测试; 程序员在开发过程中可以进行小的测试,以改进交付的代码质量。,软件开发中的经典阶段,测试,部署就是要将硬件和软件交付给最终用户,并提供手册和培训材料。,软件开发中的经典阶段,部署,系统投入使用后,可能会出现各种错误,还可能发现软件的不足,需要开发人员不断的针对这些问题进行维护; 系统投入使用时,真正的测试

6、才刚刚开始。,维护,以商店助手销售商品为例,软件开发中的经典阶段,例如:,业务建模:客户如何从这家商店购买商品? 系统需求建模:商品被买走后,我们要如何更新商品列表系统? 分析阶段:这个商店要卖什么商品?它们来自何处?价格如何?,以商店助手销售商品为例,软件开发中的经典阶段,例如:,设计阶段要做的决定是:我们使用内联网和Java消息传输服务,把销售结果报告给主任办公室。 子系统设计阶段:商品清单中的每行条目都实现为一个散列表,用商品号做关键字; 规范阶段做出如下陈述:如果商店助手对象登录了,它就可以向商店对象请求当天的特定商品,然后收到一个按字母排序的商品列表。,这些问题有助于记住软件开发各个

7、阶段的目的:,软件开发中的经典阶段,各阶段的关键问题:,需求阶段:什么是我们的上下文?要达到什么目的? 分析阶段:要处理什么实体?如何确保实体的正确? 系统设计阶段:如何解决问题?在完成的系统中需要什么硬件和软件? 子系统设计阶段:如何实现解决方案?源代码和支持文件有哪些? 规范阶段:哪些规则控制着系统组件之间的接口?可以去除模糊,确保正确吗?,这些问题有助于记住软件开发各个阶段的目的:,软件开发中的经典阶段,各阶段的关键问题:,实现阶段:如何编写组件,符合规范的要求?如何编写漂亮的代码? 测试阶段:完成的系统满足要求吗?系统可以被攻破吗? 部署阶段:系统管理员必须做什么?如何培训最终用户?

8、维护阶段:可以找出和更正错误吗?系统可以进行改进吗?,软件工程和瀑布方法学,1946年,世界上第一台电子计算机在美国研制成功;,软件工程的提出,1946年,世界上第一台电子计算机在美国研制成功;,软件工程和瀑布方法学,软件工程的提出,20世纪50年代,软件诞生,随之出现软件从业人员; 计算机系统发展早期(20世纪60年代中期以前)软件开发处于一种自由软件开发方式; 20世纪60年代中期到70中期,软件业进入一个大发展时期,但软件开发方法仍沿用早期的自由软件开发方式,导致软件危机的出现; 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。,1968年,前北大西洋公约组织的科技委员会

9、召集了一批一流的程序员、计算机科学家以及工业界人士在德国召开了一次以讨论和制定摆脱“软件危机”为主题的国际学术会议,会议上第一次提出了“软件工程(Software Engineering)”这一术语。 软件工程的理念是:软件生产可以像构建真实的结构那样。 例如建桥,根据物理学,工程是系统化的:如果遵循规则,就将交付有效的产品,它有安全的余量,以防止异常情况发生。 软件工程是一门建立在系统化、规范化、数量化等工程原则和方法上的,关于软件开发各个阶段的定义、任务和作用的工程学科。,软件工程和瀑布方法学,软件工程的提出,软件工程和瀑布方法学,软件工程的提出,软件开发方法学 软件工具 软件工程环境,软

10、件度量 项目估算 进度控制 人员组织 配置管理 项目计划,软件开发技术,项目管理,软件工程,随着软件工程的推广,方法学在软件生产可以系统化和可预计的假定下日益成熟。 随之产生了所谓的瀑布方法学(waterfall methodology)。,软件工程和瀑布方法学,瀑布方法学,随着软件工程的推广,方法学在软件生产可以系统化和可预计的假定下日益成熟。 随之产生了所谓的瀑布方法学(waterfall methodology)。,软件工程和瀑布方法学,瀑布方法学,新方法学,新方法学的观点:不可能一次开发出一个软件。无论我们怎么努力,第一次开发出的软件都是不完整或不完美的。所以需要执行几次软件开发的经典

11、阶段,给系统添加功能,完善系统。,新方法学,螺旋式方法学,新方法学,迭代式方法学,新方法学,递增式方法学,新方法学,合并方法学,面向对象的方法学,合适的方法学是软件开发的基础,因此,在面向对象技术兴起的过去十年中,人们发明了许多方法学; 所有面向对象的方法学都是类似的,有类似的阶段和类似的制品,但有许多小的区别。,每个阶段的哲理; 每个阶段的工作流和各个活动; 应生产的制品; 制品之间的依赖关系; 不同制品的表示法; 需要给静态结构和动态行为建模。,面向对象的方法学,一般,每个方法都会包含下面几方面内容:,静态结构包括决定系统的逻辑或物理部分有哪些?它们如何连接在一起? 静态结构描述了如何构建

12、和初始化系统。,每个阶段的哲理; 每个阶段的工作流和各个活动; 应生产的制品; 制品之间的依赖关系; 不同制品的表示法; 需要给静态结构和动态行为建模。,面向对象的方法学,一般,每个方法都会包含下面几方面内容:,动态建模要决定静态部分如何协作。 动态建模描述了系统在运行时如何动作。,每个阶段的哲理; 每个阶段的工作流和各个活动; 应生产的制品; 制品之间的依赖关系; 不同制品的表示法; 需要给静态结构和动态行为建模。,面向对象的方法学,一般,每个方法都会包含下面几方面内容:,一般,在开发的每个阶段,至少要建立一个静态模型和一个动态模型。,面向对象的方法学,UML、RUP和XP,有了UML,“三

13、剑客”开始利用各自工作的最佳方面,着手设计方法学,在几年内,就提出了自己的螺旋式、迭代式和递增式方法,称为Rational Unified Process(RUP); RUP不是惟一可用的方法学,甚至不是把UML作为表示法的惟一方法学。,面向对象的方法学,UML、RUP和XP,另一个常见的方法学是极限编程(extreme programming,XP), XP能响应变化,也称为“快变”方法学,面向对象的方法学,UML、RUP和XP,任何方法学都需要反复改进项目制品,为了提高效率,就需要端对端的开发工具,允许制作制品,并存储制品。应具备以下功能:,面向对象的方法学,开发工具的需求,可跟踪性; 修

14、改历史; 多用户访问控制; 减少冗余; 一致性检查; 联网操作; 在开发过程中测试已制作出来的制品;,Rational公司根据UML和RUP开发了一个工具Rose,并称为著名的面向对象开发工具; 2003年,IBM收购了Rational公司,重新编写了该工具,使之成为一组模块化产品(现称为Rational应用开发器,Rational Application Developer); 除Rose外,还有许多其他可用的开发工具,本课程只介绍Rational产品。,面向对象的方法学,开发工具的需求,面向对象的方法学,方法,工具,过程,成功项目的3方面支持,UML Rose RUP,Ripple概述,本节内容在后续课程中有详细讲解与具体体现,

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

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

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