890 likes | 1.21k Views
国产 UML & MDA 工具开发实践. Trufun software. 欢迎访问 http://www.trufun.net. 议题. 技术实践 UML建模工具开发实践 MDA 工具开发实践 管理和运营实践 Trufun 的实践之路 提问. UML 建模工具开发实践. 不打无准备的仗 系统架构 UML 建模工具开发三步曲 UML 建模工具开发高阶探讨 未来的 UML 建模工具. 不打无准备的仗. 心理准备 竞争对手是谁? IBM 、 Borland 投入不一定产出 资金准备 周期长 没有终点 投入巨大. 不打无准备的仗 ( 续 ).
E N D
国产UML & MDA工具开发实践 Trufun software 欢迎访问 http://www.trufun.net
议题 • 技术实践 • UML建模工具开发实践 • MDA工具开发实践 • 管理和运营实践 • Trufun的实践之路 • 提问
UML建模工具开发实践 • 不打无准备的仗 • 系统架构 • UML建模工具开发三步曲 • UML建模工具开发高阶探讨 • 未来的UML建模工具
不打无准备的仗 • 心理准备 • 竞争对手是谁?IBM、Borland • 投入不一定产出 • 资金准备 • 周期长 • 没有终点 • 投入巨大
不打无准备的仗(续) • 技术准备 • 前沿领域:UML,MDA,XMI,CWM,MOF… • 大型工具软件开发的软件工程技术 • 项目组织 • 软件过程 • 质量控制 • 成本控制 • 其他相关技术: • 语言的正反向工程 • ……
不打无准备的仗(续) • 人才准备 • 项目组织 • 系统架构 • 系统设计 • 系统开发 • 测试 • 管理和营销
PPI (Plato PlugIn Interface) OpenIDE OpenAPI 系统架构 Plato Platform PlatoPlugIns Workbench Kant MDA Engineer Window Manager Java MDA View Manager C# MDA Document Builder Graph Framework Web Publisher UML Foundation …… Plato Core Compnent
建模工具开发三步曲 • 构建完备的图形系统(Graph Framework) • 构建UML对象类库(UML Foundation) • 基于二者,构建UML IDE
第一步:构建图形系统 • 什么是图形系统?即矢量绘图系统。这是UML建模的基础的基础。 • 成功范例:Visio.这是目前公认做的最好的图形系统。 • 参考开源代码:JGraph(Java)。JGraph是一个强力的,轻量级的,具有丰富特色的,而且彻底开放源码的图形构件。 • 建议:如果要使用开源代码,建议使用BSD协议、LGPL协议或Apache相关协议代码。
第一步:构建图形系统(续) • 要实现的功能: • 图形绘制: • 基本图形: Text, Rect, Circle, Line… • 可连接的图形:Node, Edge. • 外部图像:如bmp,wmf, emf…. • 图形交互 • Undo/Redo • Cut,Copy,Paste • Move,Resize, Rotate… • Text, Font, BgColor,ForeColor… • Format: Nudge, Ordering, Align, Distribute… • Group, UnGroup
第一步:构建图形系统(续) • 要实现的功能: • 视图: • Zoom out, Zoom In. • OverView…. • 图形输入输出 • 复制图像到Clipboard • 保存到文件:最好是XML文件,或SVG。 • 读取文件 • 打印 • 其他UI支持: • ToolBox • Property Editor
第二步:构建UML对象类库 • 本质:MOF在编程语言上的映射。 • JMI:MOF在JAVA语言上的映射。 • 建议使用JMI接口。并使用已经有的JMI实现(如NetBeans的实现)。例如poseidon就将原来ArgoUML采用的nsuml类库改为NetBeans的实现。
第二步:构建UML对象类库(续) • 特别提出的功能 • 要具备高度的扩展性:因为UML从1.3,1.4一直到2.0,对象及对象关系变化非常大。 • 要充分支持UML Profile :Tag, Stereotype。 • 和其他建模工具的模型共享:要支持XMI的导入导出。 • 支持UML对象操作的还原:undo/redo
第三步:构建UML IDE • 将图形系统和UML对象类库完美的融合,构建一个完整的UML应用环境。 • 二者的结合架构:MVC • 将图形看作是UML对象的视图(View)。 • 将UML对象看作是图形的Model(模型)。 • 一个UML对象可以有多个视图表示。
第三步:构建UML IDE (续) • 针对UML定制图形环境 • 实现所有框图类型:Class Diagram, UseCase Diagram, StateChart Diagram… • 实现所有可见的UML对象视图:类、接口、依赖、关联、用例、角色、状态、对象… • 定制工具箱和工具生成规则:如类和类之间不可以用实现关系连接、状态图不可以绘制类…
第三步:构建UML IDE (续) • 创建UI • 作个漂亮的Splash • 创建主菜单:最好是可以merge的菜单。 • 创建快捷菜单(Context Menu):不同的元素显示不同的快捷菜单。 • 创建工具栏 • 创建工具箱 • 创建属性编辑器 • 创建其他窗口:如Output Window, Model Browser…
UML建模工具开发高阶探讨 • 高阶话题1:开放性。 • 必须有高度的开放性的原因: • Eclipse • Firefox
UML建模工具开发高阶探讨(续) • 高阶话题1:开放性。 • 开放什么? • 你的UI是否可以由用户随心所欲定制?UI包括主菜单、工具栏、工具箱、窗口、快捷菜单….. • 是否支持脚本:如果对你的应用进行扩展,都要进行编译,会吓退很多人。为什么BASIC语言那么受初学者欢迎,就是因为它不用编译。 • 是否公开API:是否你系统的所有必须公开的对象都已经公开?如用户通过脚本来修改一个类的名字,或者用户可以通过脚本来打开一个外部文件。
UML建模工具开发高阶探讨(续) • 高阶话题1:开放性。 • 如何开放? • 将所有UI的定义都放在外部文件中,文件最好是易读的XML格式。 • 整理你的系统类库,公开所有必须公开的类、类的属性、方法以及详细的说明。 • 支持适合的脚本:如JavaScript,VBScript等。 • 定义插件结构。
UML建模工具开发高阶探讨(续) • 高阶话题2:强大的插件 • 现在或者将来必须具备的插件 • Web Publish:并非所有的相关人员都安装建模工具,当你向其他人来介绍你的设计时,最好的办法将模型转换为网页。这样,每个人都可以看到你的成果。 • Document Builder:如果在建模的同时,就能同时构造好相关文档(如需求分析、系统设计)该多好! • 其他建模工具模型文件导入导出:如可以导入Rose的MDL文件格式。
UML建模工具开发高阶探讨(续) • 高阶话题2:强大的插件 • 现在或者将来必须具备的插件 • 编程语言插件:现在的编程语言很多,但是起码可以支持常用的如Java、C#等。 • 反向工程 • 模型验证 • 正向工程 • 其他:如J2EE的单元测试、部署等。 • 内嵌IDE:如Together(TCC,可以直接编辑、编译、调试)。 • 和其他IDE的集成:如和JBuilder的代码同步。
UML建模工具开发高阶探讨(续) • 高阶话题2:强大的插件 • 现在或者将来必须具备的插件 • 数据库插件:如Rose的DataModeler。当然,还是PowerDesigner的数据建模功能最强。 • XML插件:如DTD和Schema的建模支持。 • CVS • …
UML建模工具开发高阶探讨(续) • 高阶话题3:谁集成谁? • UML工具集成编程工具 • 编程工具集成UML工具
未来的UML建模工具 • 手绘建模? Ideogramic UML允许你用手建模
未来的UML建模工具(续) • 集成、集成 • 集成到编程IDE • 全程建模(和生命周期其他工具集成) • 和过程集成 • 和行业集成 • 可执行的模型?模型虚拟机?MDA!
未来的UML建模工具(续) • 简单的过程 • 交互设计 • 智能化 • 模型的重构 • 工具之间的模型交换 • 团队建模 • 向组件迁移 注:本节来自作者和UMLChina的think合写的”UML工具发展趋势”一文
MDA工具开发实践 • 基于那个UML IDE? • 系统架构:通用的语言生成框架 • 不仅仅生成代码--验证、编译、调试、测试、部署、运行 • 谁来开发所有语言的MDA?--开放 • 走向未来--真正的MDA
基于那个UML IDE? • IDE选择要点 • 是否支持UML 扩展(UML Profile)? • 是否足够开放? • UI扩展性 • 完整的支撑API • 产品是否成熟?
基于那个UML IDE?(续) • 举例: • Arcstyler基于Rose. • Arcstyler基于MagicDraw • AndroMDA基于MagicDraw • Kant基于Plato
系统架构:通用的语言生成框架 Runtime Model1 Runtime Model2 XMI UML Model Facade MDA Cartridges Java Cartridge C# Cartridge … Templates(Source, Build , Unit Test, Run…) Source Code, Build File, Unit Test File, Run File
不仅仅生成代码 • 模型验证 • 编译 • 调试 • 测试 • 部署 • 运行
谁来开发所有语言的MDA? • 编程语言非常多 • 每个人都可以开发自己喜欢的编程语言的MDA Cartridge • 脚本 VS 编译
走向未来--真正的MDA • 动作语义 • UML 2.0是否已经足够? • 模型虚拟机? • 商业建模=软件开发的全部?
管理和运营实践 • 潜在用户:谁在或可能使用UML建模工具和MDA工具? • 目标用户:谁有可能购买UML建模工具和MDA工具? • 和竞争对手相比,你的优势和不足 • 生存的问题是最大的问题。 • 酒香还怕巷子深 • 距离成功只差一步
潜在用户确定 • 随之UML建模工具自身功能的发展,UML在软件开发中的作用的变化: • UML建模和代码没有关联 • UML模型可以生成代码框架 • UML建模工具可以和编程工具交互并迭代开发 • UML建模工具和编程工具集成 • UML模型虚拟机 • 可有可无必不可少最重要的
潜在用户确定(续) • 无论采用哪一个软件过程理论,其中的哪个过程不需要UML?以RUP为例 • 需求:领域模型、业务模型、用例模型 • 分析:分析模型 • 设计:设计模型 • 实现:实现模型 • 测试:测试模型
潜在用户确定(续) • 结论: • 软件开发行业中技术人员几乎每个人都是UML建模工具的潜在用户 • 和现在编程工具人手一套一样,不久的将来,UML建模工具也必将人手一套。 • 而MDA工具根据PSM关联的编程语言的不同,以及工具自身功能的程度,会为不同阶层、不同需求的开发人员所选用。 • 在未来,如果模型虚拟机足够的成熟,MDA工具将取代UML建模工具和编程工具成为必备工具。
目标用户确定 • 根据市场细分原则,进行自身产品定位和市场定位,有针对性的调整产品研发策略和市场开发策略。 • 市场细分: • 高端用户:高投入高产出。目前不考虑。IBM,Borland • 中小软件企业:高度竞争市场。积极参与。利润所在。 • 个人:低价产品线。 • 大学和培训机构:免费赠与和合作。
和竞争对手相比,你的优势和不足 • 优势 • 本土化 • 快速反应能力 • 产品短小精悍
和竞争对手相比,你的优势和不足(续) • 不足 • 硬件:资金、人才、管理 • 品牌知名度 • 前沿技术的研发投入 • 产品 VS 解决方案(全生命周期管理)
生存的问题是最大的问题 • 产品是否足够成熟? • 产品是否能够带来销售收入? • 销售收入能否带来财务平衡? • 销售收入能否带来盈利? • 短线?长线?
酒香还怕巷子深 • 知道你的产品而没有购买,是产品研发不够;不知道你的产品而没有购买,是产品营销不够。 • 高投入营销 VS 低成本营销 • 基本的营销策略 • 口碑 • 网络 • 共享软件 • 免费
距离成功只差一步 • 产品足够好,但是由于成本的原因无法快速和有效的推广。 • 应对策略 • 融资 • 改进营销策略 • 现在是一步,但时间的流逝会让它变成十步、百步、千步、万步……
Trufun的实践之路 • Trufun的历史 • Trufun的产品 • Trufun Plato --UML建模工具 • Trufun Kant --MDA 工具
Trufun 的历史 • 04/1/30:注册国际域名www.trufun.net。 • 04/2/2: 开通网站www.trufun.net。 • 04/3/15:在网站发布Trufun Plato 1.0试用版。 • 04/4/17:开通网站论坛。 • 04/6/14:发布Trufun Plato 2.0。 • 04/7/14:开始建构MDA软件Trufun Kant。 • 04/11/7:发布Trufun Plato 2.8.5 • 05/2/27:发布基于全开放式架构的Trufun Plato 2005(V3.0)及Trufun Kant 2005(V0.0.1, MDA for Java)。网站全新改版。 • 05/5/29:发布升级版Trufun Plato 2005(V3.3)及Trufun Kant 2005(V0.3, MDA for C#)。 • 05/6/1:发布Plato免费版。
Trufun的产品 楚凡科技目前拥有两大品牌CASE产品: • UML建模产品:Trufun Plato。Trufun Plato 是专业的UML建模工具,全面支持OMG标准UML V1.4,是全球第一款中文UML建模工具,是微软推出.Net Framework以来全球第一款基于.Net的大型桌面应用程序,是为中国UML用户量身定做的全中文用户界面的优秀产品。 • MDA产品:Trufun Kant。Trufun Kant 是基于Trufun Plato的MDA工具,即中国第一个基于UML的模型驱动架构开发工具,也是是全球第一款中文MDA开发工具。Trufun Kant覆盖了软件开发的各个环节,使用Trufun Kant,不仅可以通过UML进行需求捕获、系统分析、系统设计,同时可以进行代码生成、编译、调试、运行、打包、部署, 以模型驱动整个软件开发,真正实现了以模型为中心的软件开发新模式,从软件工具层面支持开发者创建“可执行的模型”。
Trufun Plato 功能介绍 • 优秀的UML建模支持 • 方便高效的集成环境和易用使用的用户界面 • 功能强大的插件 • 设计模式支持 • 基于OpenIDE和OpenAPI的全开放式环境 • 其他:主题、随机附带的大量建模例程、全中文联机帮助和建模指南…
UML建模支持--框图 • Plato支持UML1.4所有框图类型: • Class Diagram • UseCase Diagram • StateChart Diagram • Activity Diagram • Sequence Diagram • Collaboration Diagram • Component Diagram • Deployment Diagram