1、1面向对象软件开发方法面向对象软件开发方法 总结总结21.1.模型含义模型含义v 抽象与具体抽象与具体:高层抽象高层抽象,底层细节。底层细节。v 说明与实现说明与实现:说明说明“做什么做什么”,实现实现“如何做如何做”。v 描述与示例描述与示例:模型描述实例模型描述实例,而实例作为例而实例作为例 子出现在模型中。子出现在模型中。v 解释与变更解释与变更:每一种模型有多种解释每一种模型有多种解释,但出但出 现在变更点上。现在变更点上。模型从一个建模观点出发,抓住事务本质,模型从一个建模观点出发,抓住事务本质,而忽略其他方面。而忽略其他方面。32.2.模型用途模型用途n捕获和精确表达项目需求及应用
2、领域的有捕获和精确表达项目需求及应用领域的有 关知识关知识(共识共识)。n通过模型图使人们了解系统设计的构架和通过模型图使人们了解系统设计的构架和 设计方案。设计方案。n使具体设计细节与需求分。使具体设计细节与需求分。n生成有用的软件产品。生成有用的软件产品。n通过模型把握住复杂的系统,建立不同程通过模型把握住复杂的系统,建立不同程 度的抽象模型度的抽象模型,便于了解系统。便于了解系统。n利用视图来组织信息。利用视图来组织信息。n能够研究各种问题的解决方案。能够研究各种问题的解决方案。43.UML3.UML(Unified(Unified Modeling Language)Modeling
3、Language)UMLUML是对象是对象统一建模统一建模可视化可视化描述描述语言。语言。UMLUML是一种是一种图形语言图形语言,不是编程语言不是编程语言。UMLUML适合描述适合描述软件开发的全过程软件开发的全过程。适应各种不同的编程语言和开发平台。适应各种不同的编程语言和开发平台。UMLUML不提供任何建模方法不提供任何建模方法。通过不同的视图耒描述系统的不同侧面通过不同的视图耒描述系统的不同侧面。54.UML4.UML模型模型图图 1 UML1 UML模型模型事物概念事物概念 包含所有组成包含所有组成UMLUML元素元素 表达重要的语法限制表达重要的语法限制解决方案系统建模解决方案系统
4、建模元元模型元元模型UML模型模型 元模型元模型MetamodelUML图图 2 2 元模型与元模型与UMLUML6UML事事 物物关系关系图图九个图九个图注释注释包包模块模块子系统子系统框架框架交互类交互类状态机状态机用例类用例类主动类主动类接口接口构件构件协作协作节点节点依赖依赖关联关联泛化泛化结构类结构类行为类行为类分组类分组类注释类注释类图图 3 UML结构结构5.UML5.UML结构结构7 6.6.UMLUML视图视图(view)(view)和图和图图图 4 用例用例 视图视图 静态静态 视图视图 进程进程 视图视图实现实现(构构件件)视图视图部署部署(展展开开)视图视图8Use-C
5、ase Viewn描述系统应该具备的功能,称为参与者的外描述系统应该具备的功能,称为参与者的外 部用户所能观察到的功能。部用户所能观察到的功能。n用例视图是几个视图的核心,它的内容直接用例视图是几个视图的核心,它的内容直接 驱动其他视图的开发。驱动其他视图的开发。Static Viewn描述用例视图中提出的系统功能描述用例视图中提出的系统功能n描述系统的静态结构,描述系统内对象间的描述系统的静态结构,描述系统内对象间的 协作关系协作关系(在类图和对象图中描述在类图和对象图中描述).).9Process Viewn代码的并行执行以及代码的并行执行以及 系统环境中异步事件的处理系统环境中异步事件的
6、处理(动态模型动态模型)Component Viewn描述系统的实现模块以及描述系统的实现模块以及 它们之间的依赖关系它们之间的依赖关系(组件图组件图)Deployment Viewn显示系统的物理部署,显示系统的物理部署,并描述位于节点实例上的并描述位于节点实例上的 运行组件实例的部署情况运行组件实例的部署情况(配置图配置图)10 UMLUML视图视图(view)(view)和图和图主要概念主要概念主要域主要域视图视图图图主要概念主要概念静态静态 结构结构静态视图静态视图类图类图类、关联、泛化、依赖关系、类、关联、泛化、依赖关系、实现、接口实现、接口 用例视图用例视图用例图用例图用例、参与者
7、、关联、扩展、用例、参与者、关联、扩展、包含、用例泛化包含、用例泛化实现视图实现视图(构件构件)构件图构件图构件、接口、依赖关系、实现构件、接口、依赖关系、实现部署视图部署视图(实施实施)部署图部署图节点、构件、依赖关系、位置节点、构件、依赖关系、位置动态动态 结构结构状态机视图状态机视图状态图状态图状态、事件、转换、动作状态、事件、转换、动作活动视图活动视图活动图活动图状态、活动、完成转换、状态、活动、完成转换、分叉结合分叉结合交互视图交互视图顺序图顺序图交互、对象、消息、激活交互、对象、消息、激活协作图协作图协作、协作角色、交互、消息协作、协作角色、交互、消息模型管模型管理理(类图类图),
8、包图包图(类图类图)包图包图包、子系统、模型包、子系统、模型117.7.各种类元各种类元是是描述行为和结构特征的模型元素描述行为和结构特征的模型元素类元类元功能功能表示方法表示方法参与者参与者系统外部用户系统外部用户类类拥有相同属性、操作、方法、关系、拥有相同属性、操作、方法、关系、行为的对象行为的对象状态类状态类带有类的对象,拥有合法状态带有类的对象,拥有合法状态类元角类元角色色描述各个参与者在协作中的角色描述各个参与者在协作中的角色构件构件系统中物理组成单元系统中物理组成单元数据类数据类型型无身份的原始值的描述符无身份的原始值的描述符接口接口为一组操作命名或定义了类和构件的服务为一组操作命
9、名或定义了类和构件的服务节点节点计算资源计算资源信号信号对象间异步通信对象间异步通信子系统子系统具有规范实现和身份认证的单元包具有规范实现和身份认证的单元包用例用例与外部代理交互中实体行为规范与外部代理交互中实体行为规范声明变量声明变量(命名空命名空间间)当作全局对象当作全局对象创建操作创建操作actorcustomernameNames状态名,状态名,几个并发状态几个并发状态 Role:name角色:提供一个名称位于对象结构中角色:提供一个名称位于对象结构中的命名槽的命名槽(在特定语境中的元素的行为在特定语境中的元素的行为)角色可以静态角色可以静态(关联点上关联点上)也可以动态也可以动态(协
10、作角色协作角色)类元角色:对参与者描述类元角色:对参与者描述关联角色:将两个类元连结关联角色:将两个类元连结signalsubsystem12关系关系 功功 能能 表示方法表示方法关联关联类实例间连接的描述类实例间连接的描述依赖依赖 两个或多个模型元素语义上的关系,两个或多个模型元素语义上的关系,流流在相继时间内一个对象的两种形式关系,即一在相继时间内一个对象的两种形式关系,即一个对象从一个状态到另一个状态的转换(一个个对象从一个状态到另一个状态的转换(一个对象两个值)对象两个值)泛化泛化更概括的描述和更具体的种类之间关系更概括的描述和更具体的种类之间关系(继承继承)实现实现规格说明和实现之间
11、的关系规格说明和实现之间的关系使用使用一个元素需要别的元素提供适当功能情况一个元素需要别的元素提供适当功能情况聚合聚合/组组合关系合关系描述整体部分之间关系描述整体部分之间关系聚合组合双向单向ABA依赖B8 8 关系的种类关系的种类实现实现关系:模型元素之间的一种语义连接关系:模型元素之间的一种语义连接13和关联相关的概念和关联相关的概念n类和对象类和对象n关联的标签关联的标签:任选项任选项,描述类关联的词描述类关联的词n关联的角色关联的角色:关联中对象所取上、下文含义关联中对象所取上、下文含义n关联的多重性指示器关联的多重性指示器:基数基数关联中表示概念关联中表示概念“多少多少”选择性选择性
12、关联中概念关联中概念“是否需要是否需要”n双向关联双向关联:两个方向转移的关联两个方向转移的关联(互相发送消息互相发送消息)n单向关联单向关联:仅一个方向转移的关联仅一个方向转移的关联(单向发送消息单向发送消息)n关联的导航性关联的导航性:关联只能在一个方向上遍历关联只能在一个方向上遍历n 递归关联递归关联:关联的两端使用相同的类关联的两端使用相同的类14n关联的次序关联的次序:对多关联的多端对象进行排序对多关联的多端对象进行排序n关联的限定符关联的限定符:从一组相关的对象中标出从一组相关的对象中标出 独特的对象独特的对象n有约束的关联有约束的关联:多个关联连到同一个基类多个关联连到同一个基类
13、,在约束在约束 下使基类一个实例与另一个类联系下使基类一个实例与另一个类联系n含有子集的关联含有子集的关联n依赖关联依赖关联:两个对象不存在持久关联但需要协作两个对象不存在持久关联但需要协作n关联类关联类:即是个关联又是个类即是个关联又是个类nN N元关联元关联:一个类在关联的多个位置上出现一个类在关联的多个位置上出现159.9.依赖关系种类依赖关系种类关系关系功能功能关键字关键字访问访问允许一个包访问另一个包内容允许一个包访问另一个包内容Access绑定绑定为模板参数指定值以生成一个新的模型为模板参数指定值以生成一个新的模型元素元素Bind调用调用声明一个类调用其他类的操作方法声明一个类调用
14、其他类的操作方法Call导出导出声明一个实例可以从另一个实例中导出声明一个实例可以从另一个实例中导出Derive友元友元允许一个元素访问另一个元素允许一个元素访问另一个元素Friend引入引入允许一个包访问另一个包内容并为访问允许一个包访问另一个包内容并为访问包的组成部分增加别名包的组成部分增加别名Import实例化实例化 关于一个类的方法创建类一个类实例的关于一个类的方法创建类一个类实例的声明声明instantiate参数参数一个操作和他的参数之间关系一个操作和他的参数之间关系Parameter发送发送信号发送者,接收着之间关系信号发送者,接收着之间关系Send1610.10.用例之间关系用
15、例之间关系关系关系功能功能表示法表示法关联关联参与者与执行的用例之间的通信路径参与者与执行的用例之间的通信路径扩展扩展在基用例上插入基用例不能说明的在基用例上插入基用例不能说明的扩展部分扩展部分用例泛用例泛化化用例之间的一般和特殊关系用例之间的一般和特殊关系包含包含在基用例上插入附加行为,并且具有明在基用例上插入附加行为,并且具有明确的描述确的描述includeextend1711.11.事件种类事件种类 事件事件 类型类型描描 述述语法语法 调用调用 事件事件接收等待应答的对象的明确形式的同接收等待应答的对象的明确形式的同步请求步请求Op(a:T)改变改变 事件事件对布尔表达式值修改对布尔表
16、达式值修改When(exp)信号信号 事件事件两个对象通信媒介命名实体。发送者两个对象通信媒介命名实体。发送者创建一个初始化信号,发送一个或多创建一个初始化信号,发送一个或多个信号,通常为异步通讯。个信号,通常为异步通讯。Sname(a:T)时间时间 事件事件绝对时间的到达或者一个相对事件段绝对时间的到达或者一个相对事件段的终结的终结After(time)1812.12.包的类型包的类型包包:组织模型中事物的机制组织模型中事物的机制虚包虚包(facade)一个包只是其他包的视图。一个包只是其他包的视图。定义虚包,仅仅是引入而不是拥有定义虚包,仅仅是引入而不是拥有框架框架(framework)描
17、述一个主要由模式组成的包描述一个主要由模式组成的包桩桩(stub)作为另一个包的公共内容代理的包作为另一个包的公共内容代理的包子系统子系统(subsystem)整个系统独立部分的包整个系统独立部分的包系统系统(system)整个系统的包整个系统的包19 13.13.面向对象的好处面向对象的好处 封装十继承十标识封装十继承十标识=重用性十可扩展性重用性十可扩展性+丰富的语义丰富的语义n支持原型开发和演化交付支持原型开发和演化交付.n面向对象模型能捕获一个应用的更多含义面向对象模型能捕获一个应用的更多含义,应用范围广应用范围广.n从概念模型到代码的过渡具有更好的无缝性从概念模型到代码的过渡具有更好
18、的无缝性.优点优点:n重用组件、重用类重用组件、重用类,提高质量提高质量n封装有利于建立安全系统封装有利于建立安全系统 n继承使系统灵活、易扩展、易维护继承使系统灵活、易扩展、易维护,适应需适应需 求变更求变更.20成功的面向对象项目包括成功的面向对象项目包括5 5个特性个特性n运用基于管理的迭代和增量开发生命周期运用基于管理的迭代和增量开发生命周期.n严格关注提供易于理解的最小基本特征集严格关注提供易于理解的最小基本特征集 合的系统开发合的系统开发.n使用对象建模使用对象建模.n存在很强的构架观点存在很强的构架观点.n注重结果注重结果,鼓励交流鼓励交流.2114.14.何时使用面向对象何时使
19、用面向对象n 开发复杂的系统开发复杂的系统n 开发易于变化的系统开发易于变化的系统n 开发使用开发使用GUIGUI的系统的系统n 开发客户机开发客户机/服务器系统服务器系统n 开发电子商务系统开发电子商务系统n 支持企业应用集成支持企业应用集成n 开发时实系统开发时实系统2215.15.面向对象的建模过程面向对象的建模过程n 分析分析 Analysis:Analysis:系统捕捉需求和问题系统捕捉需求和问题 n 设计设计 Design:Design:从实际代码之上的逻辑层说明从实际代码之上的逻辑层说明 系统如何实现系统如何实现n 实现实现 RealizeRealize为声明元素提供实现为声明元
20、素提供实现 RealizationRealization规格说明和其之间关规格说明和其之间关系系 规格说明规格说明:描述了某事物行为和描述了某事物行为和 结构结构实现实现:以高效可计算方式实现以高效可计算方式实现 行为细节行为细节不继承结构不继承结构只继承行为只继承行为类是类型的实现类是类型的实现,方法是操作的实现方法是操作的实现23用例图用例图活动图活动图类图类图对象图对象图顺序图顺序图协作图协作图状态图状态图 活动图活动图用户接用户接口包图口包图 对象对象业务包业务包 数据数据 库包库包 实例化实例化系统需求模型系统需求模型系统设计模型系统设计模型系统需求模型系统需求模型系统分析模型系统分
21、析模型系统设计模型系统设计模型需求分析需求分析系统分析系统分析系统设计系统设计系统实现系统实现系统测试与维护系统测试与维护组件图组件图 配置图配置图结构结构行为行为对象结构行为对象结构行为描述描述表达表达表达表达表达表达 依依 赖赖用例图:用例图:(U se case)从用户角度从用户角度描述系统功能。描述系统功能。活动图活动图:描述满足描述满足用例要求所要进行用例要求所要进行的活动及约束关系的活动及约束关系对象的状态及交对象的状态及交互关系互关系:四图四图软件体系结构和软件体系结构和硬件体系结构及硬件体系结构及通信机制通信机制:组件图组件图和配置图和配置图对象静态关对象静态关系系:类图和类图
22、和对象图对象图UMLUML图与系统开发的关系及表达图与系统开发的关系及表达24方法及流程方法及流程:UML/OO/UP:UML/OO/UPn需求需求建模建模序列图序列图类图类图代码生成代码生成用例图:需求捕获,测试用例图:需求捕获,测试依据用例视图关注系统功依据用例视图关注系统功能的高层体系结构能的高层体系结构,而不关而不关注其具体实现方法注其具体实现方法;GUI;输入输入输出输出领域模型领域模型:业务关系业务关系序列图序列图:按时间顺序描述对按时间顺序描述对象间的交互象间的交互,强调强调消息发送的顺序消息发送的顺序.实现实现类图类图:定义类定义类,类间的联类间的联系如关联、依赖、聚合系如关联
23、、依赖、聚合等等,也包括类的内部结也包括类的内部结构构(类的属性和操作类的属性和操作)DomainModelGU I/OSequenceCodeClass DiagramPatternsUse Case25面向对象方法的未来面向对象方法的未来 2001-20102001-2010年体系结构和过程成熟期年体系结构和过程成熟期n 关注体系结构和模式关注体系结构和模式(微体系结构微体系结构)n 成熟的成熟的Object Oriented开发过程开发过程n 分布式系统广泛应用分布式系统广泛应用n 转移到基于组件的系统和遗留系统转移到基于组件的系统和遗留系统n 基于组件开发基于组件开发,实现真正可重用实现真正可重用n 更注意业务建模和需求工程更注意业务建模和需求工程n 重点从重点从c+转移到转移到Java和其他更安全的语言和其他更安全的语言.262023年年5月月4日日