html5-img
1 / 89

国产 UML & MDA 工具开发实践

国产 UML & MDA 工具开发实践. Trufun software. 欢迎访问 http://www.trufun.net. 议题. 技术实践 UML建模工具开发实践 MDA 工具开发实践 管理和运营实践 Trufun 的实践之路 提问. UML 建模工具开发实践. 不打无准备的仗 系统架构 UML 建模工具开发三步曲 UML 建模工具开发高阶探讨 未来的 UML 建模工具. 不打无准备的仗. 心理准备 竞争对手是谁? IBM 、 Borland 投入不一定产出 资金准备 周期长 没有终点 投入巨大. 不打无准备的仗 ( 续 ).

landen
Télécharger la présentation

国产 UML & MDA 工具开发实践

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 国产UML & MDA工具开发实践 Trufun software 欢迎访问 http://www.trufun.net

  2. 议题 • 技术实践 • UML建模工具开发实践 • MDA工具开发实践 • 管理和运营实践 • Trufun的实践之路 • 提问

  3. UML建模工具开发实践 • 不打无准备的仗 • 系统架构 • UML建模工具开发三步曲 • UML建模工具开发高阶探讨 • 未来的UML建模工具

  4. 不打无准备的仗 • 心理准备 • 竞争对手是谁?IBM、Borland • 投入不一定产出 • 资金准备 • 周期长 • 没有终点 • 投入巨大

  5. 不打无准备的仗(续) • 技术准备 • 前沿领域:UML,MDA,XMI,CWM,MOF… • 大型工具软件开发的软件工程技术 • 项目组织 • 软件过程 • 质量控制 • 成本控制 • 其他相关技术: • 语言的正反向工程 • ……

  6. 不打无准备的仗(续) • 人才准备 • 项目组织 • 系统架构 • 系统设计 • 系统开发 • 测试 • 管理和营销

  7. 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

  8. 建模工具开发三步曲 • 构建完备的图形系统(Graph Framework) • 构建UML对象类库(UML Foundation) • 基于二者,构建UML IDE

  9. 第一步:构建图形系统 • 什么是图形系统?即矢量绘图系统。这是UML建模的基础的基础。 • 成功范例:Visio.这是目前公认做的最好的图形系统。 • 参考开源代码:JGraph(Java)。JGraph是一个强力的,轻量级的,具有丰富特色的,而且彻底开放源码的图形构件。 • 建议:如果要使用开源代码,建议使用BSD协议、LGPL协议或Apache相关协议代码。

  10. 第一步:构建图形系统(续) • 要实现的功能: • 图形绘制: • 基本图形: 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

  11. 第一步:构建图形系统(续) • 要实现的功能: • 视图: • Zoom out, Zoom In. • OverView…. • 图形输入输出 • 复制图像到Clipboard • 保存到文件:最好是XML文件,或SVG。 • 读取文件 • 打印 • 其他UI支持: • ToolBox • Property Editor

  12. 第二步:构建UML对象类库 • 本质:MOF在编程语言上的映射。 • JMI:MOF在JAVA语言上的映射。 • 建议使用JMI接口。并使用已经有的JMI实现(如NetBeans的实现)。例如poseidon就将原来ArgoUML采用的nsuml类库改为NetBeans的实现。

  13. 第二步:构建UML对象类库(续) • 特别提出的功能 • 要具备高度的扩展性:因为UML从1.3,1.4一直到2.0,对象及对象关系变化非常大。 • 要充分支持UML Profile :Tag, Stereotype。 • 和其他建模工具的模型共享:要支持XMI的导入导出。 • 支持UML对象操作的还原:undo/redo

  14. 第三步:构建UML IDE • 将图形系统和UML对象类库完美的融合,构建一个完整的UML应用环境。 • 二者的结合架构:MVC • 将图形看作是UML对象的视图(View)。 • 将UML对象看作是图形的Model(模型)。 • 一个UML对象可以有多个视图表示。

  15. 第三步:构建UML IDE (续) • 针对UML定制图形环境 • 实现所有框图类型:Class Diagram, UseCase Diagram, StateChart Diagram… • 实现所有可见的UML对象视图:类、接口、依赖、关联、用例、角色、状态、对象… • 定制工具箱和工具生成规则:如类和类之间不可以用实现关系连接、状态图不可以绘制类…

  16. 第三步:构建UML IDE (续) • 创建UI • 作个漂亮的Splash • 创建主菜单:最好是可以merge的菜单。 • 创建快捷菜单(Context Menu):不同的元素显示不同的快捷菜单。 • 创建工具栏 • 创建工具箱 • 创建属性编辑器 • 创建其他窗口:如Output Window, Model Browser…

  17. UML建模工具开发高阶探讨 • 高阶话题1:开放性。 • 必须有高度的开放性的原因: • Eclipse • Firefox

  18. UML建模工具开发高阶探讨(续) • 高阶话题1:开放性。 • 开放什么? • 你的UI是否可以由用户随心所欲定制?UI包括主菜单、工具栏、工具箱、窗口、快捷菜单….. • 是否支持脚本:如果对你的应用进行扩展,都要进行编译,会吓退很多人。为什么BASIC语言那么受初学者欢迎,就是因为它不用编译。 • 是否公开API:是否你系统的所有必须公开的对象都已经公开?如用户通过脚本来修改一个类的名字,或者用户可以通过脚本来打开一个外部文件。

  19. UML建模工具开发高阶探讨(续) • 高阶话题1:开放性。 • 如何开放? • 将所有UI的定义都放在外部文件中,文件最好是易读的XML格式。 • 整理你的系统类库,公开所有必须公开的类、类的属性、方法以及详细的说明。 • 支持适合的脚本:如JavaScript,VBScript等。 • 定义插件结构。

  20. UML建模工具开发高阶探讨(续) • 高阶话题2:强大的插件 • 现在或者将来必须具备的插件 • Web Publish:并非所有的相关人员都安装建模工具,当你向其他人来介绍你的设计时,最好的办法将模型转换为网页。这样,每个人都可以看到你的成果。 • Document Builder:如果在建模的同时,就能同时构造好相关文档(如需求分析、系统设计)该多好! • 其他建模工具模型文件导入导出:如可以导入Rose的MDL文件格式。

  21. UML建模工具开发高阶探讨(续) • 高阶话题2:强大的插件 • 现在或者将来必须具备的插件 • 编程语言插件:现在的编程语言很多,但是起码可以支持常用的如Java、C#等。 • 反向工程 • 模型验证 • 正向工程 • 其他:如J2EE的单元测试、部署等。 • 内嵌IDE:如Together(TCC,可以直接编辑、编译、调试)。 • 和其他IDE的集成:如和JBuilder的代码同步。

  22. UML建模工具开发高阶探讨(续) • 高阶话题2:强大的插件 • 现在或者将来必须具备的插件 • 数据库插件:如Rose的DataModeler。当然,还是PowerDesigner的数据建模功能最强。 • XML插件:如DTD和Schema的建模支持。 • CVS • …

  23. UML建模工具开发高阶探讨(续) • 高阶话题3:谁集成谁? • UML工具集成编程工具 • 编程工具集成UML工具

  24. 未来的UML建模工具 • 手绘建模? Ideogramic UML允许你用手建模

  25. 未来的UML建模工具(续) • 集成、集成 • 集成到编程IDE • 全程建模(和生命周期其他工具集成) • 和过程集成 • 和行业集成 • 可执行的模型?模型虚拟机?MDA!

  26. 未来的UML建模工具(续) • 简单的过程 • 交互设计 • 智能化 • 模型的重构 • 工具之间的模型交换 • 团队建模 • 向组件迁移 注:本节来自作者和UMLChina的think合写的”UML工具发展趋势”一文

  27. MDA工具开发实践 • 基于那个UML IDE? • 系统架构:通用的语言生成框架 • 不仅仅生成代码--验证、编译、调试、测试、部署、运行 • 谁来开发所有语言的MDA?--开放 • 走向未来--真正的MDA

  28. 基于那个UML IDE? • IDE选择要点 • 是否支持UML 扩展(UML Profile)? • 是否足够开放? • UI扩展性 • 完整的支撑API • 产品是否成熟?

  29. 基于那个UML IDE?(续) • 举例: • Arcstyler基于Rose. • Arcstyler基于MagicDraw • AndroMDA基于MagicDraw • Kant基于Plato

  30. 系统架构:通用的语言生成框架 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

  31. 不仅仅生成代码 • 模型验证 • 编译 • 调试 • 测试 • 部署 • 运行

  32. 谁来开发所有语言的MDA? • 编程语言非常多 • 每个人都可以开发自己喜欢的编程语言的MDA Cartridge • 脚本 VS 编译

  33. 走向未来--真正的MDA • 动作语义 • UML 2.0是否已经足够? • 模型虚拟机? • 商业建模=软件开发的全部?

  34. 管理和运营实践 • 潜在用户:谁在或可能使用UML建模工具和MDA工具? • 目标用户:谁有可能购买UML建模工具和MDA工具? • 和竞争对手相比,你的优势和不足 • 生存的问题是最大的问题。 • 酒香还怕巷子深 • 距离成功只差一步

  35. 潜在用户确定 • 随之UML建模工具自身功能的发展,UML在软件开发中的作用的变化: • UML建模和代码没有关联 • UML模型可以生成代码框架 • UML建模工具可以和编程工具交互并迭代开发 • UML建模工具和编程工具集成 • UML模型虚拟机 • 可有可无必不可少最重要的

  36. 潜在用户确定(续) • 无论采用哪一个软件过程理论,其中的哪个过程不需要UML?以RUP为例 • 需求:领域模型、业务模型、用例模型 • 分析:分析模型 • 设计:设计模型 • 实现:实现模型 • 测试:测试模型

  37. 潜在用户确定(续) • 结论: • 软件开发行业中技术人员几乎每个人都是UML建模工具的潜在用户 • 和现在编程工具人手一套一样,不久的将来,UML建模工具也必将人手一套。 • 而MDA工具根据PSM关联的编程语言的不同,以及工具自身功能的程度,会为不同阶层、不同需求的开发人员所选用。 • 在未来,如果模型虚拟机足够的成熟,MDA工具将取代UML建模工具和编程工具成为必备工具。

  38. 目标用户确定 • 根据市场细分原则,进行自身产品定位和市场定位,有针对性的调整产品研发策略和市场开发策略。 • 市场细分: • 高端用户:高投入高产出。目前不考虑。IBM,Borland • 中小软件企业:高度竞争市场。积极参与。利润所在。 • 个人:低价产品线。 • 大学和培训机构:免费赠与和合作。

  39. 和竞争对手相比,你的优势和不足 • 优势 • 本土化 • 快速反应能力 • 产品短小精悍

  40. 和竞争对手相比,你的优势和不足(续) • 不足 • 硬件:资金、人才、管理 • 品牌知名度 • 前沿技术的研发投入 • 产品 VS 解决方案(全生命周期管理)

  41. 生存的问题是最大的问题 • 产品是否足够成熟? • 产品是否能够带来销售收入? • 销售收入能否带来财务平衡? • 销售收入能否带来盈利? • 短线?长线?

  42. 酒香还怕巷子深 • 知道你的产品而没有购买,是产品研发不够;不知道你的产品而没有购买,是产品营销不够。 • 高投入营销 VS 低成本营销 • 基本的营销策略 • 口碑 • 网络 • 共享软件 • 免费

  43. 距离成功只差一步 • 产品足够好,但是由于成本的原因无法快速和有效的推广。 • 应对策略 • 融资 • 改进营销策略 • 现在是一步,但时间的流逝会让它变成十步、百步、千步、万步……

  44. Trufun的实践之路 • Trufun的历史 • Trufun的产品 • Trufun Plato --UML建模工具 • Trufun Kant --MDA 工具

  45. 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免费版。

  46. 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进行需求捕获、系统分析、系统设计,同时可以进行代码生成、编译、调试、运行、打包、部署, 以模型驱动整个软件开发,真正实现了以模型为中心的软件开发新模式,从软件工具层面支持开发者创建“可执行的模型”。

  47. Trufun Plato 功能介绍 • 优秀的UML建模支持 • 方便高效的集成环境和易用使用的用户界面 • 功能强大的插件 • 设计模式支持 • 基于OpenIDE和OpenAPI的全开放式环境 • 其他:主题、随机附带的大量建模例程、全中文联机帮助和建模指南…

  48. UML建模支持--框图 • Plato支持UML1.4所有框图类型: • Class Diagram • UseCase Diagram • StateChart Diagram • Activity Diagram • Sequence Diagram • Collaboration Diagram • Component Diagram • Deployment Diagram

  49. UML建模支持:类图

  50. UML建模支持:用例图

More Related