利用 powerdesinger 快速建立面向对象应用模型 吴思远...
DESCRIPTION
利用 PowerDesinger 快速建立面向对象应用模型 吴思远 重庆邮电学院计算机科学与技术学院 [email protected]. 了解现代信息系统变得日益复杂 回顾传统的 C/S 实现和3层以及分布计算的不同 学会通过设计技术来管理这些复杂的信息系统 掌握如何使用 PowerDesigner 和 UML 来控制这些复杂的信息系统. 主要内容. 现代信息系统的发展体系 采用 PowerDesinger 实现 UML 建模. 主题. 企业级的信息系统从早些时候的 C/S 系统中变成当前的混合型系统 今日的商业系统需要支持多种多样的客户端 - PowerPoint PPT PresentationTRANSCRIPT
2
主要内容
• 了解现代信息系统变得日益复杂• 回顾传统的 C/S 实现和 3 层以及分布计
算的不同• 学会通过设计技术来管理这些复杂的信
息系统• 掌握如何使用 PowerDesigner 和 UML
来控制这些复杂的信息系统
3
主题
• 现代信息系统的发展体系• 采用 PowerDesinger 实现 UML 建模
4
现代信息系统的发展体系
• 企业级的信息系统从早些时候的 C/S 系统中变成当前的混合型系统
• 今日的商业系统需要支持多种多样的客户端• 在这样的环境中,传统的“快速开发”应用通常
变得不可能• UML 提供了语义定义来实现这些应用• PowerDesigner 提供了开发工具来实现这些应用
5
分布式应用的开发
Components
Browser or C/S
Components
Client/ServerApplication
Browser
ProductionData
ProductionData
ProductionData
ProductionData
ProductionData
Enterprise JavaBeans, COM, CORBA, PB NVOs
Templates,Scripts
PageServer
HTML Pages
FileSystem
Very Thin
Thin
Rich
Web Server
Components
TransactionServer
ClientClient Middle TierMiddle Tier DataData
6
PowerDesinger 发展史
1989
(v1)
1990
(v2)French
CDM only
1991
v3English
CDM & PDM
1992
v4Enterprise
Edition
1994
v5Modules
ProcessAnalyst
1996
v6Maturity release
Warehouse
1999
v7New Generation
First UML
2000
v8Enhanced UML
Analysis
2001
Neptune
7
PowerDesigner 适用范围
• PowerDesigner 是功能非常强大的工具,它可以被不同的用户用于不同的应用背景– 商业分析师– 数据库管理者– 系统软件工程师
• 以上哪个是你的角色 , 在系统开发过程中你的定位 , 并且那些技术需求来驱动你使用 PowerDesigner
企业建模的生命周期
Object-Oriented Model(OOM)
Conceptual Data Model (CDM)
Physical Data Model(PDM)
Database Management
System (DBMS)
Database SQL Script
ODBC
Forward Engineering
Reverse Engineering
- Application Structure- Business Logic
- Data Structures- Business Rules
- Schema Definition- Denormalization- Optimization (Indexing)- Database Creation
Java Source
PowerBuilder Source
- Java Code (Source, Bytecode, JAR)- PowerBuilder Code
9
设计工具PowerDesigner
数据模型 对象模型
对象设计
开发
对象分析
Repository
数据仓库建模
商业处理模式
商业分析
E/R modelingSQL round-trip
engineering
UML: Use caseSequence,
ClassJava/PB/XML
round-tripC++, C#, VB...
PowerDesigner 8.0
PowerDesigner Neptune
Simplified Activity diagram
ComponentEJB, O/R mapping
Activity
企业信息仓储
10
统一对象建模语言 (UML)
• 过多的建模方法阻碍了即将到来的对象技术• 由 OMG 组织采纳作为业界标准。• UML 基于不同的面向对象建模方法发展而来
– Rumbaugh et al. OMT– Booch methodology– Jacobson's methodologies
• PowerDesigner 面向对象建模使用 UML 类视图符号
11
组件视图
逻辑视图
展开视图用户视图
并发视图
UML 视图
12
UML 开发阶段
先启 精化 构建 产品化
阶段:先启
• 目标– 为建立新系统或者扩展现有系统提供商业用例
• 需要产品– 项目核心业务需求 (Use Cases)– 评估风险
• 可选产品– 概念原型– 初始化模式
14
PowerDesigner 使用用例图
15
用例
• 用例结构– 用例名– 简要说明– 前置条件– 事件流 – 交叉事件流 – 后置条件– 例外
用例模型的好处
• 用例模型– 在系统开发前期提供完整的用例– 保证团队之间能够相互理解用例所指的含义
• 用例用于标识– 谁在系统中进行交互,并且它在该系统干什么– 系统将拥有什么样的接口
• 用例用于检验– 所有的需求将被捕获– 开发人员可以理解这些需求
阶段:精化• 目标
– 分析问题范围– 建立基础的框架– 解释项目中存在的最严重风险情况– 生成全面的方案来说明整个项目如何实现
18
PowerDesigner 使用类图
实体类– 实体类是用于对必须存储的信息和相关行为建模
的类。– ( 持久类 )
• 实体对象反映一个真实的现象状况。• 执行系统内部任务时也可能要使用实体对象• 其属性和关系的值通常由主角指定• 实体对象是独立于环境(主角)的。
Invoice<<entity>>
Customer<<entity>>
Product<<entity>>
Order<<entity>>
控制类
– 控制类用于对一个或几个用例所特有的控制行为进行建模。
– 控制类• 可以创建、初始化、和消亡控制对象• 确定控制对象中的控制逻辑(事件顺序)和实行• 控制并行发布来实施约束类• 在绝大时候是执行控制对象
<<control>>OrderEntryManager
边界类
– 边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。
– 典型的边界类• 窗口 ( 用户接口 )
• 通讯协议 ( 系统接口 )
• 打印机接口• 传感器
OrderWindow<<boundary>>
阶段:构建
• 目标• 阐明剩余的需求,并基于已建立基线的构架完成系
统开发。
• 产品– 完成有用的版本– 动作原型说明– 品质保证– 系统和用户文档– 产品化计划– 下一个产品评估标准
23
PowerDesigner 在构建阶段
• PowerDesigner 支持许多面向对象的语言和技术,包括 :– PowerBuilder– Java– C++, C#– CORBA– Visual BASIC 6– XML
• 在构建阶段 , PowerDesigner 可以在多种语言生成类定义 , 而且也可以将已有系统代码逆向生成 .
24
PowerDesigner 使用序列图
阶段:产品化
• 目标– 将产品转变为最终用户可以使用软件– 处理产品化工作的发布情况
• 产品– 制作产品发布版 – 可接受的质量级别保证– 完成最终的系统和用户文档– 项目性能的最终分析
26
PowerDesigner 使用部署图
27
关系数据库中存储持久对象
• 映射对象到关系数据库中• 至少有三种不同的方式来实现:
– 将类的属性映射到表的列中– 将 java 类映射到表的列中– 使用 DataWindow/Datastore 技术
28
Sybase DataWindow /Datastore 技术
• 使用 Sybase’s DataWindow 技术为对象 /关系无缝地提供平滑
• 在实际开发中非常有用,特别是 PowerBuilder/PowerJ 开发者 .
• 实现方式 :– 将单个 DataStore/DataWindow 类变量替换类属性– 建立操作符来操作类库– 建立针对于数据库表的 DataWindow 对象– 使用专用 DataWindow/DataStore 类的方法去访问关系性数据
29
从哪里开始 ?
• 如果你从项目新的设计开始 , 你可以从面向对象的模型中开始,或许是概念数据模型
• 如果你从数据库的逆向工程开始 , 你从物理数据模型逆向成面向对象模型或概念数据模型
• 如果你从 PowerBuilder 或者 Java 应用逆向出来 , 你从面向对象模型开始
30
问题