UML课程-福州大学计算机系.ppt
《UML课程-福州大学计算机系.ppt》由会员分享,可在线阅读,更多相关《UML课程-福州大学计算机系.ppt(69页珍藏版)》请在三一办公上搜索。
1、面向对象分析与设计(UML),授课教师:刘秉瀚联系电话:83716525Email:,内容提要,第一部分 内容概要:介绍面向对象软件开发所使用的过程和技术,讲解UML的基础知识及其应用 1.基本概念和背景知识 2.UML语言详述 3.UML对象分析设计第二部分 Rose的使用:介绍支持UML的CASE软件开发工具Rational Rose第三部分 学习实例:结合实例,应用面向对象思想,分析UML的应用方法与技巧,参考书,面向对象分析与设计(UML2.0版)美MikeO,Docherty 著 俞志翔 译清华大学出版社介绍面向对象的软件开发所使用的过程和技术,描述了UML语言以及UML在面向对象的
2、软件系统分析与设计中的应用UML基础、案例与应用 美Joseph Schmuller 著 李虎 王美英 万里威 译人民邮电出版社通俗易懂UML 与 Rational Rose2002从入门到精通美Wendy Boggs Michael Boggs著 邱仲潘 等译电子工业出版社很大篇幅介绍Rose的使用,适于入门UML参考手册最经典的书籍,由三剑客编写,适于精通,资源链接中国UML论坛:大量有关UML的资源和讨论Rational公司了解UML和Rose进展的站点,资源链接,考试方式,40%-笔试60%-课程设计,基本概念及背景知识,软件开发方法概述面向对象的系统分析与设计UML(Unified
3、Modeling Language)诞生,软件开发方法概述,方法学(过程、方法):指开发项目通常应遵循的一系列规则,其中可能包含文档的描述、设计模式及其他按某种顺序产生的产品。,方法学的优势,开发中小型系统有助于对编码设置规则。增进对问题的理解,提高解决方案的质量。有助于在提交源代码之前找出概念错误和实践性的错误。能明确指定下一步工作。有助于编写出扩展性更高(可用于解决其他问题)、可靠性更高(容易修改)、更容易调试(有较多的说明)的代码。,开发大型项目文档说明:开发的每个阶段提供全面的说明,完成的系统不会艰涩难懂。等待时间减少:由于工作流、活动的相互依赖性更容易理解,资源等待工作做的可能性也减
4、少了。工作能及时交付,且不超过预算。人员之间有更好的交流:好的方法学建立在逻辑和常识的基础之上,所有参与者较容易抓住其根本,因此,开发更有序,误解和浪费资源的情况也较少。可重复性:类似项目可重用。更准确的成本。,软件开发中的经典阶段,需求:需求捕获就是找出新软件要达到的目标,包含两方面:业务建模与系统需求建模。分析:分析表示理解我们要处理的商务。在设计解决方案之前,需要了解相关实体、它们的属性和相关关系。设计:在设计阶段,要确定如何解决问题。系统设计把系统分解为逻辑设计子系统(过程)和物理设计子系统(计算机和网络)。规范:规范是按合同设计的、至关重要的底层规则,用来描述编程组件的期望行为。如:
5、需求阶段的结果是系统必须做什么的规范;分析的结果是我们要处理什么事务的规范,等。实现:编写代码,形成子系统。子系统之间协同工作,形成整个系统。测试:软件完成后,根据系统需求对其进行测试,检测系统是否符合最初目标。部署:将硬件和软件交付给最终用户,并提供手册和培训材料。维护:投入运行后,对系统进行修改和完善。,软件开发阶段的关键问题,需求阶段:什么是我们的上下文?要达到什么目的?分析阶段:要处理什么实体?如何确保有正确的实体?系统设计阶段:如何解决问题?在完成的系统中需要什么硬件和软件?子系统设计阶段:如何实现解决方案?源代码和支持文件有哪些?规范阶段:哪些规则控制着组件之间的接口?可以去除模糊
6、,确保正确吗?实现阶段:如何编写符合规范要求的组件?如何编写漂亮代码?测试阶段:完成的系统满足要求吗?系统能否被攻破?部署阶段:系统管理员必须做什么?如何培训最终用户?维护阶段:可以找出和更正错误吗?可以改进系统吗?,软件开发方法概述,瀑布方法学螺旋式方法学迭代式方法学递增式方法学合并方法学面向对象方法学,瀑布开发,维护,部署,测试,实现,规范,设计,分析,需求,瀑布模型的优点,使早期的手工作坊式的软件开发转变为软件工程消除非结构化软件、降低软件复杂度有一套严格的计划、步骤、规格、方法,保证软件产品达到预期的质量要求20世纪70年代以来得到广泛的传播,瀑布模型的缺点:僵化,瀑布模型要求:各阶段
7、要遵守严格的顺序。瀑布模型要求:预先定义并“冻结”软件需求。,实际情况是:软件开发往往在反复实践中完成。实际情况是:某些系统的需求的一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时,瀑布模型适用于:,重复某种区别很小的开发。作为一个架构,来学习软件开发中使用不同的技术:尽管瀑布方法对于实际的开发来说过于简单,但仍包含逻辑顺序的经典阶段,适合于学习。是螺旋方法学中的一遍过程。作为支持迭代方法学的架构。用于开发人员较少的小项目的快速开发。如:原型、概念证明或快速应用程序开发等。,螺旋式方法学,规范,分析,设计,需求,实现,测试,部署,维护,在完成了一次循环后,就增进了对问题域和解决方案
8、的理解,还使用户参与进来,这样用户就可以更正我们对最终系统中包含的事务或功能的误解。在经过三四遍的开发过程,完成系统后,就可以全面测试和部署系统了。,与瀑布相比,问题少:用户参与整个生命周期;每个人都可以看到开发人员的工作;可以调整改动的次数和每次改动所花的时间;比较适合于软件开发的创新性。,不完美之处:只是把瀑布开发过程进行了三四次,尽管问题越来越小,但并没有消失。不灵活,在经典阶段要按照有序的方式进行。如果发现错误,必须在下一遍开发过程中才能更正。,螺旋式方法学,迭代方法学,规范,分析,设计,需求,实现,测试,部署,维护,允许重复各阶段,根据需要前后移动或来回移动。把软件从早期阶段传递给下
9、述完备、使所有用户满足的整体系统。有三个原则避免混乱:经典阶段提醒我们应该在每个阶段做什么,向什么方向移动。经典阶段的工作中产生的制品(图、描述、代码等)不应抛弃,应在进入部署阶段的过程中逐步改进。支持所选方法学的软件生产工具和表示法有助于保持制品的一致性,并在一个地方保存所有制品。,递增式方法学,在首次交付的系统版本(1.0)中,将包含最基本、最重要的功能。在以后的某个时间交付1.1版本,其中包含附加的功能(替代1.0)。之后,在对整体进行大的修改,交付2.0版本。这将延续至系统的生命周期。能满足不断变化的需求,适应市场的变化。,时间,发布,1.0,1.1,2.0,2.1,合并方法学,在最高
10、层上,根据递增式方法学,必须规划一系列递增部分。在每个递增部分,螺循式方法学建议,开发每个递增部分至少应进行二遍。在每一遍中,瀑布方法学制定了各个阶段和它们的顺序。在每一个子瀑布中,迭代式方法学允许重复各个阶段,直至满足需求为止。迭代式方法学还允许一发现问题就更正它。,时间,发布,1.0,1.1,2.0,2.1,软件设计准则,认识抽象:建立软件的设计模型时常采用分层抽象的办法。在最高的抽象层次上,可以采用问题的环境语言概括地描述问题的解法;在较低层次上,则采用过程化的方法描述问题的解法。模块化:模块化把一个复杂的软件系统的设计问题转化为若干个较小的、容易处理的模块的设计问题,便于分别解决。信息
11、屏蔽和局部化:信息隐蔽是指每个模块的实现细节(过程和数据)对于其它模块是隐蔽的和不能访问的。信息局部化是指把一切关系密切的软件元素物理地就近安置。结构化程序设计:采用自顶向下逐步求精方法。基本控制结构:顺序、选择、循环。软件规范:当今国际和国内都制订了一系列的软件规范,对软件开发的目标、开发方法、开发过程、软件文档、质量标准等都给出了明确的规定。,面向对象技术,面向对象是一种新的软件工程方法,新的程序设计范型基本技术:使用对象、类、继承、封装、消息等基本概念进行程序设计和实现基本思想:尽可能地运用人类的自然思维方式来构造软件系统。现实世界的问题是由客观实体和实体之间的联系构成的,对象就是客观实
12、体的抽象。,面向对象技术的基本观点,客观世界是由对象组成的。具有相同类型数据和相同操作的对象可以归并为一类,对象是类的一个实例。类可以产生对象。类可以派生子类,子类继承父类的特性。对象之间通过消息传递相互联系。软件工程学家认为:面向对象=对象+类+继承+通讯,面向对象的软件工程(OOSE)方法,面向对象的分析(OOA)面向对象的设计(OOD)面向对象的编程(OOP)面向对象的测试(OOT)面向对象的维护(OOSM),传统软件系统分析与设计存在的问题,1、问题域和系统责任:问题域是指待开发的系统的应用领域,也称为业务领域。系统责任是指待开发的系统应具备的职能。问题域与系统责任密切相关,但两者侧重
13、点不同。准确、透彻地理解问题域与系统责任是软件系统开发的首要任务。但要做到这一点很不容易,其原因有:软件开发人员往往不是领域专家,对业务领域的理解深度有限,而参与系统分析的领域专家又往往对软件开发的一些要求和方法不熟悉,难以恰当地归纳和提供软件系统分析所要求的领域知识。,迫切需要有效的方法和工具能够简单明了地描述待开发软件的问题域与系统责任。,2、人员交流与通讯障碍:软件开发是一项创造性的思维活动,在软件开发过程中人员的交流十分频繁。软件开发项目的有关人员包括用户、领域专家、系统分析员、软件设计员、程序员、测试员、项目管理员等,需要经常交流,探讨系统的需求,明确软件成分的定义,协商系统的结构与
14、衔接,进行工作的交接等,因而,软件工程是“面向人”的。通讯障碍常是人员交流的一个困难。例如,用户、领域专家或项目管理员看不懂、不明白软件开发人员表达问题的概念、术语、表示法,反之亦然。,需要有一套通用的思维方法和便于交流的语言,包括系统的模型、术语、表示法、文档书写格式等。,3、系统需求变化:在软件开发过程中系统的需求常不断地发生变化。这种变化可能由多种原因引起。最常见的是用户对系统的要求发生了改变。在软件开发之初,用户对系统的需求认识可能不够深入,随着软件开发的进展,用户提出对早期的系统需求进行修改和补充;也可能是客观情况发生了变化,用户提出新的需求。其它如经费、技术因素、竞争因素等都可能引
15、起系统需求的变化。,一个好的软件开发方法和技术要能有效的应付系统需求的变化。,4、软件重用:软件重用是提高软件开发效率、改善软件质量的重要途径。正如一座房屋由许多门、窗、墙、楼板等构件构成,一台机器由许多零部件构成一样,一个软件系统也是由许多软件构件构成的,其中很大部分可以复用已有的软件构件,无须重复设计和编程。,需要解决重用构件的提取和制作、重用构件库的组织、重用构件的检索、重用构件的组装等技术问题。,面向对象方法的优点,按照人类的自然思维方式,面对客观世界建立软件系统模型。有利于对问题域和系统责任的理解,有利于人员交流。对需求变化的适应性。把最稳定的部分,即对象作为构筑系统的基本单位,而把
16、容易发生变化的部分,既属性与服务,封装在对象之内,对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。可维护性好。支持软件重用。对象所具有的封装性和信息屏蔽等特性,使它容易实现软件重用。类可以产生实例对象,对象类可以派生出新类,这些就实现了对象类的数据结构和操作代码的软构件重用。,面向对象的软件开发语言与工具,1981推出的Smalltalk-80面向对象的C/C+、Basic、Pascal、Fortran、Lisp、ADA、Java等MicroSoft公司的Visual C+、Visucal Basic计算机辅助软件工程(CASEComputer Aided Software E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 课程 福州大学 计算机系
链接地址:https://www.31ppt.com/p-5451605.html