UML及其建模工具的使用2内容提要一、软件工程方法学二、UML的基本概念静态建模动态建模物理架构建模步骤三、Rose的使用四、三个实例五、Java代码生成六、Rational统一过程1.瀑布模型(线形顺序模型)可行性研究与计划需求分析设计编码运行维护测试定义阶段开发阶段维护阶段一.软件工程方法学按照传统瀑布模型开发软件的特点1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。2.原型模型(快速原型法)建造/修改原型建造/修改原型用户测试运行原型用户测试运行原型听取用户意见听取用户意见原型范型原型范型采用原型模型的软件生存周期分析定义系统需求生成原型系统设计程序设计编码测试运行和维护原型化含原型化的软件生存期7技术发展背景[1]面向对象的含义面向对象技术回顾UML的产生8技术发展背景[2]-面向对象的含义面向对象中有几个非常重要的概念:封装(encapsulation)信息/实现的隐藏(information/implementationhiding)状态保持(stateretention)对象标识(objectidentity)消息(message)类(class)继承(inheritance)多态性(polymorphism)一般性(generality)9技术发展背景[3]-面向对象的含义封装,将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行。信息/实现的隐藏,将某些属性或方法限制在封装内部使用,限制外部的可见性。状态保持,对象能够保持状态,可以用于后续的处理。对象标识,每个对象可以作为软件实体被标识和处理,每个对象都有一个对象标识符(objectidentifierOID)。消息,对象间发送请求的载体。10技术发展背景[4]-面向对象的含义类,类是对象的类型(模版),对象是类的实例。继承,子类隐式使用超类(或父类)的属性和操作。多态性,子类覆盖(overriding)父类的方法,它和重载(overloading)的区别在于重载是在同一个类中定义,利用参数的不同来进行动态绑定(dynamicbinding)。一般性,类的定义是参数化的或模版化的,提高了定义的通用性。11技术发展背景[5]-面向对象技术回顾面向对象技术是许多人历经多年研究积累的产物。类的概念,是面向对象的重要组成部分。Smalltalk,提出许多面向对象技术的核心概念,如:消息和继承。Dijkstra的软件正确性理念,提出了用抽象层构造软件的观点。ADT抽象数据类型,奠定面向对象的基础,支持信息的隐藏。Ada语言,提出了一般性和包两个概念。C++语言,最广泛使用的面向对象的语言。Eiffel语言,融合了许多最佳的计算机科学思想和面向对象思想。12为什么对面向对象方法感兴趣?面向对象方法的主要优点:面向对象方法的主要优点:自然性自然性追求软件系统对现实系统的直接模拟,追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系尽量实现将现实世界中的事物直接映射到软件系统的解空间中。统的解空间中。软件复用软件复用可复用性(可重用性)reusebility可扩展性可管理性13可复用性(可重用性)面向对象技术允许复用的不仅仅是代码,通过面向对象技术,我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等,事实上,软件工程生存期中的每个部分都可以复用。14传统系统分析:面向功能,把系统看成一组功能OOA:把问题当作一组相互作用的实体,并确定实体间关系15面向对象技术是一个有全新概念的开发模式,其特点是:(1)方法是对软件开发过程所有阶段进行综合考虑而得到的;(2)从生存期的一个阶段到下一个阶段所使用的方法与技术具有高度的连续性;(3)将OOA(分析)、OOD(设计)、OOP(实现)集成到生存期的相应阶段.16开发方法的组合分析设计编程结构化结构化面向对象结构化面向对象面向对象面向对象结构化第三代或第四代语言面向对象面向对象第三代或第四代语言面向对象面向对象传统编程与面向对象的混合面向对象面向对象面向对象17OO方法的开发过程OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各...