Rose的双向工程概要
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
描述各个参与者在协作也中可的以角动色态(协作角色)
Role:name
系统中物理组成单元 无身份的原始值的描述符
类元角色:对参与者描述 关联角色:将两个类元连结
为一组操作命名或定义了类和构件的服务 计算资源 对象间异步通信 具有规范实现和身份认证的单元包 与外部代理交互中实体行为规范
《signal》 《subsystem》
参数 一个操作和他的参数之间关系
发送 信号发送者,接收着之间关系
Access Bind
Call Derive Friend Import
instantiate
Parameter Send
10.用例之间关系
关系 关联 扩展
功能 参与者与执行的用例之间的通信路径 在基用例上插入基用例不能说明的 扩展部分
15.2 双向工程介绍
双向工程包括正向工程和逆向工程。 双向工程提供了一种在描述系统的架构或设
计和代码的模型之间进行双向交换的机制。 正向工程指从模型直接产生一个代码框架。 逆向工程是指将代码转换成模型。 CASE工具能够自动进行转换,可以在设计
模型和实现模型之间保持一致。
15.3 Java代码生成
关联的次序:对多关联的多端对象进行排序 关联的限定符:从一组相关的对象中标出
独特的对象 有约束的关联:多个关联连到同一个基类,在约束
下使基类一个实例与另一个类联系 含有子集的关联 依赖关联:两个对象不存在持久关联但需要协作 关联类:即是个关联又是个类 N元关联:一个类在关联的多个位置上出现
9.依赖关系种类
关系 功能
关键字
访问 允许一个包访问另一个包内容
绑定 为模板参数指定值以生成一个新的模型 元素
调用 声明一个类调用其他类的操作方法
导出 声明一个实例可以从另一个实例中导出
友元 允许一个元素访问另一个元素
引入 允许一个包访问另一个包内容并为访问 包的组成部分增加别名
实例化 关于一个类的方法创建类一个类实例的 声明
13.面向对象的好处
封装十继承十标识= 重用性十可扩展性+丰富的语义
优点:
支持原型开发和演化交付. 从概念模型到代码的过渡具有更好的无缝性. 面向对象模型能捕获一个应用的更多含义,
应用范围广. 封装有利于建立安全系统 重用组件、重用类,提高质量 继承使系统灵活、易扩展、易维护,适应需
求变更.
部署视图(实施) 部署图 节点、构件、依赖关系、位置
动态 状态机视图 状态图 状态、事件、转换、动作
结构 活动视图
活动图 状态、活动、完成转换、分叉结合
交互视图
顺序图 交互、对象、消息、激活
协作图 协作、协作角色、交互、消息
模型管 (类图),包图 (类图) 包、子系统、模型
理
包图
7.各种类元 是描述行为和结构特征的模型元素
面向对象方法的未来
2001-2010年体系结构和过程成熟期
关注体系结构和模式(微体系结构)
成熟的Object Oriented开发过程 分布式系统广泛应用 转移到基于组件的系统和遗留系统 基于组件开发,实现真正可重用 更注意业务建模和需求工程 重点从c++转移到Java和其他更安全的语言.
表示法
《extend》
用例泛 用例之间的一般和特殊关系 化
包含 在基用例上插入附加行为,并且具有明 确的描述
《include》
11.事件种类
事件 类型 调用 事件 改变 事件 信号 事件
描述
语法
接收等待应答的对象的明确形式的同 Op(a:T) 步请求
对布尔表达式值修改
When(exp)
两个对象通信媒介命名实体。发送者 Sname(a:T) 创建一个初始化信号,发送一个或多 个信号,通常为异步通讯。
设计工作流中创建的UML图有类图、顺序图、 协作图、状态图、构件图和配置图
系统实现
用组件图描述代码构件的物理结构以及构 件之间的关系
用配置图来描述和定义系统中软硬件的物 理通信结构
Biblioteka Baidu 系统测试
UML模型可作为测试阶段的依据。系统通 常需要经过单元测试、集成测试、系统测试 和验收测试。不同的测试小组使用不同的 UML图作为测试依据
8.关系的种类 关系:模型元素之间的一种语义连接
关系
功能
表示方法
关联 类实例间连接的描述
双向
单向
依赖
两个或多个模型元素语义上的关系,
流
泛化 实现 使用
在相继时间内一个对象的两种形式关系,即一 个对象从一个状态到另一个状态的转换(一个 对象两个值)
更概括的描述和更具体的种类之间关系(继承)
规格说明和实现之间的关系
生成一个返回行。 6. Stop on Error:在遇到第一个错误就停止 7. Create Missing Directories:生成没有定义的目录。 8. Automatic Synchronization Mode:自动保持代码与模
型同步, 9. Show Progress Indicator:在遇到复杂的同步操作时
4.UML模型
元元模型
事物概念
元模型
包含所有组成UML元素 表达重要的语法限制
UML模型 解决方案系统建模
图 1 UML模型
Metamodel
UML
图 2 元模型与UML
5.UML结构
UML
事物
关系
结构类 行为类 分组类 注释类
用例类 主动类 接口 构件 协作 节点
交互类 状态机
包 模块 子系统 框架
通过模型图使人们了解系统设计的构架和 设计方案。 使具体设计细节与需求分。 生成有用的软件产品。 利用视图来组织信息。 能够研究各种问题的解决方案。
通过模型把握住复杂的系统,建立不同程 度的抽象模型,便于了解系统。
3.UML(Unified Modeling Language)
➢ UML是对象统一建模可视化描述语言。 ➢ UML是一种图形语言,不是编程语言。 ➢ UML适合描述软件开发的全过程。 ➢ UML不提供任何建模方法。 ➢ 通过不同的视图耒描述系统的不同侧面。 ➢ 适应各种不同的编程语言和开发平台。
第15章 Rose的双向工程
15.1 UML授课回顾 15.2 双向工程介绍 15.3 Java代码生成 15.4 逆向工程
15.1 UML授课回顾
目前存在的问题:
用UML画图很容易,但知道要画什么是困难的
15.1 UML授课回顾
UML不是一种方法,它不包括对软件开发 过程的指导,即独立于过程,可以用于不 同的开发过程。
实现
一个元素需要别的元素提供适当功能情况
聚合/组 描述整体部分之间关系 合关系
A
B
A依赖B
聚合 组合
和关联相关的概念
类和对象 关联的标签:任选项,描述类关联的词 关联的角色:关联中对象所取上、下文含义 关联的多重性指示器:
基数—关联中表示概念“多少” 选择性—关联中概念“是否需要” 双向关联:两个方向转移的关联(互相发送消息) 单向关联:仅一个方向转移的关联(单向发送消息) 关联的导航性:关联只能在一个方向上遍历 递归关联:关联的两端使用相同的类
显示进度栏。 10. Source Code Control:对哪些文件进行源码控制。 11. Put source code of the project under Source Control:
使用Rose J/CM Integration对Java源代码进行版本控 制。 12. Input Checkin/Checkout comment:需要对检入/检出 代码的活动进行说明。 13. Select Source Root Path for Source Control:选择存 放生成的代码文件的地方。
Static View
描述用例视图中提出的系统功能 描述系统的静态结构,描述系统内对象间的
协作关系(在类图和对象图中描述).
Process View
代码的并行执行以及 系统环境中异步事件的处理(动态模型)
Component View
描述系统的实现模块以及 它们之间的依赖关系(组件图)
Deployment View
类元
参与者
类
状态类
类元角 色 构件
数据类 型
接口 节点 信号 子系统 用例
功能 声明变量(命名空 系统外部用户 间)
当作全局对象
表示方法
《actor》 customer
拥行有为相的同对属象性创、操的建角作命操色、名作:方槽提法(供、在关一特系个定、名语称境位中状于的态名对元,象素结的构行中为n)ame 带有类的对象,拥有合角法色状可态以静态(几关个联并发点状上态) Name[s]
1.模型含义
模型从一个建模观点出发,抓住事务本质, 而忽略其他方面。
❖ 抽象与具体:高层抽象,底层细节。 ❖ 说明与实现:说明“做什么”,实现“如何做”。 ❖ 描述与示例:模型描述实例,而实例作为例
子出现在模型中。 ❖ 解释与变更:每一种模型有多种解释,但出
现在变更点上。
2.模型用途
捕获和精确表达项目需求及应用领域的有 关知识(共识)。
时间 绝对时间的到达或者一个相对事件段 After(time) 事件 的终结
12.包的类型 包:组织模型中事物的机制
虚包(facade):一个包只是其他包的视图。
定义虚包,仅仅是引入而不是拥有
框架(framework):描述一个主要由模式组成的包 桩(stub):作为另一个包的公共内容代理的包 子系统(subsystem):整个系统独立部分的包 系统(system):整个系统的包
注释
图 3 UML结构
依赖 关联 泛化
图
九个图
6.UML视图(view)和图
实现(构 件)视图
部署(展 开)视图
用例 视图
静态 视图
进程 视图
图 4 UML视图
Use-Case View
描述系统应该具备的功能,称为参与者的外 部用户所能观察到的功能。
用例视图是几个视图的核心,它的内容直接 驱动其他视图的开发。
可使用类图、类规格说明进行单元测试 可使用组件图、协作图进行集成测试 可使用用例图来验证系统的行为 确认测试由用户进行,以验证系统测试的
结果是否满足在分析阶段确定的需求
何时使用面向对象
开发复杂的系统
开发易于变化的系统 开发使用GUI的系统 开发客户机/服务器系统 开发电子商务系统 支持企业应用集成 开发时实系统
1. IDE:指定与Rose相关联的Java开发环境。 2. Default Data Types:设置缺省数据类型。 3. Prefixes:设定缺省前缀(如果有的话) 4. Generate Rose ID:在代码中为每个方法都加一个唯
一的标识符。 5. Generate Default Return Line:在每个类声明后面都
成功的面向对象项目包括5个特性
运用基于管理的迭代和增量开发生命周期. 严格关注提供易于理解的最小基本特征集
合的系统开发. 使用对象建模. 存在很强的构架观点. 注重结果,鼓励交流.
将UML用于软件系统开发的不同阶段:
从需求分析到软件设计到软件测试及维护; 可视化问题描述,帮助理解问题;帮助建立 各阶段的文档;获取和交流有关应用问题求 解的知识;辅助构建系统
为了实现用例,类之间需要协作,可用动态模型的状 态图、顺序图、协作图来描述
分析阶段只考虑问题域的对象建模,不考虑定义软件 系统中技术细节的类(如处理用户接口、数据库、通 信和并行性等问题的类)。需要通过静态模型和动态 模型来描述系统结构和系统行为
系统设计
对类进行细化,如引入人机交互的接口类、 处理数据类、处理通信类。为编码阶段提供 详细的规格说明
用户需求
可使用用例图来捕获用户的需求,用例图从 用户的角度来描述系统(用例)的功能要求, 表示了操作者与系统的一个交互过程。需求 定义要用:
用例图 一些简单的类图
系统分析
分析阶段主要关心问题域中的主要概念(抽象、类和 对象等)和机制,需要识别这些类以及它们相互间的 关系。可使用类图来描述系统的静态模型。
显示系统的物理部署, 并描述位于节点实例上的 运行组件实例的部署情况(配置图)
UML视图(view)和图主要概念
主要域 视图
图
主要概念
静态 静态视图
类图 类、关联、泛化、依赖关系、
结构
实现、接口
用例视图
用例图 用例、参与者、关联、扩展、
包含、用例泛化
实现视图(构件) 构件图 构件、接口、依赖关系、实现
代码生成(正向工程)是指从Rose模型中的 一个或多个类图生成Java源代码的过程。
Rational Rose正向工程是以组件为中心的。 当对一个Java模型元素进行正向工程时,它
的特征会映射到对应的Java语言的结构。 Rose提供了一个工具,它能够使代码与UML
模型保持一致。
“Code Generation”详解