《国产UMLMDA工具开发实践.ppt》由会员分享,可在线阅读,更多相关《国产UMLMDA工具开发实践.ppt(89页珍藏版)》请在三一办公上搜索。
1、国产UML&MDA工具开发实践,Trufun software,欢迎访问,议题,技术实践UML建模工具开发实践MDA工具开发实践管理和运营实践Trufun的实践之路提问,UML建模工具开发实践,不打无准备的仗系统架构UML建模工具开发三步曲UML建模工具开发高阶探讨未来的UML建模工具,不打无准备的仗,心理准备竞争对手是谁?IBM、Borland投入不一定产出资金准备周期长没有终点投入巨大,不打无准备的仗(续),技术准备前沿领域:UML,MDA,XMI,CWM,MOF大型工具软件开发的软件工程技术项目组织软件过程质量控制成本控制其他相关技术:语言的正反向工程,不打无准备的仗(续),人才准备项目
2、组织系统架构系统设计系统开发测试管理和营销,系统架构,Plato PlugIns,Kant MDA Engineer,Java MDA,C#MDA,Document Builder,Web Publisher,Plato Platform,Workbench,Window Manager,View Manager,Graph Framework,UML Foundation,Plato Core Compnent,建模工具开发三步曲,构建完备的图形系统(Graph Framework)构建UML对象类库(UML Foundation)基于二者,构建UML IDE,第一步:构建图形系统,什么是图
3、形系统?即矢量绘图系统。这是UML建模的基础的基础。成功范例:Visio.这是目前公认做的最好的图形系统。参考开源代码:JGraph(Java)。JGraph是一个强力的,轻量级的,具有丰富特色的,而且彻底开放源码的图形构件。建议:如果要使用开源代码,建议使用BSD协议、LGPL协议或Apache相关协议代码。,第一步:构建图形系统(续),要实现的功能:图形绘制:基本图形:Text,Rect,Circle,Line可连接的图形:Node,Edge.外部图像:如bmp,wmf,emf.图形交互Undo/RedoCut,Copy,PasteMove,Resize,RotateText,Font,B
4、gColor,ForeColorFormat:Nudge,Ordering,Align,DistributeGroup,UnGroup,第一步:构建图形系统(续),要实现的功能:视图:Zoom out,Zoom In.OverView.图形输入输出复制图像到Clipboard保存到文件:最好是XML文件,或SVG。读取文件打印其他UI支持:ToolBoxProperty Editor,第二步:构建UML对象类库,本质:MOF在编程语言上的映射。JMI:MOF在JAVA语言上的映射。建议使用JMI接口。并使用已经有的JMI实现(如NetBeans的实现)。例如poseidon就将原来ArgoUM
5、L采用的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对象可以有多个视图表示。,第三步:构建U
6、ML IDE(续),针对UML定制图形环境实现所有框图类型:Class Diagram,UseCase Diagram,StateChart Diagram实现所有可见的UML对象视图:类、接口、依赖、关联、用例、角色、状态、对象定制工具箱和工具生成规则:如类和类之间不可以用实现关系连接、状态图不可以绘制类,第三步:构建UML IDE(续),创建UI作个漂亮的Splash创建主菜单:最好是可以merge的菜单。创建快捷菜单(Context Menu):不同的元素显示不同的快捷菜单。创建工具栏创建工具箱创建属性编辑器创建其他窗口:如Output Window,Model Browser,UML建
7、模工具开发高阶探讨,高阶话题1:开放性。必须有高度的开放性的原因:EclipseFirefox,UML建模工具开发高阶探讨(续),高阶话题1:开放性。开放什么?你的UI是否可以由用户随心所欲定制?UI包括主菜单、工具栏、工具箱、窗口、快捷菜单.是否支持脚本:如果对你的应用进行扩展,都要进行编译,会吓退很多人。为什么BASIC语言那么受初学者欢迎,就是因为它不用编译。是否公开API:是否你系统的所有必须公开的对象都已经公开?如用户通过脚本来修改一个类的名字,或者用户可以通过脚本来打开一个外部文件。,UML建模工具开发高阶探讨(续),高阶话题1:开放性。如何开放?将所有UI的定义都放在外部文件中,
8、文件最好是易读的XML格式。整理你的系统类库,公开所有必须公开的类、类的属性、方法以及详细的说明。支持适合的脚本:如JavaScript,VBScript等。定义插件结构。,UML建模工具开发高阶探讨(续),高阶话题2:强大的插件现在或者将来必须具备的插件Web Publish:并非所有的相关人员都安装建模工具,当你向其他人来介绍你的设计时,最好的办法将模型转换为网页。这样,每个人都可以看到你的成果。Document Builder:如果在建模的同时,就能同时构造好相关文档(如需求分析、系统设计)该多好!其他建模工具模型文件导入导出:如可以导入Rose的MDL文件格式。,UML建模工具开发高阶
9、探讨(续),高阶话题2:强大的插件现在或者将来必须具备的插件编程语言插件:现在的编程语言很多,但是起码可以支持常用的如Java、C#等。反向工程模型验证正向工程其他:如J2EE的单元测试、部署等。内嵌IDE:如Together(TCC,可以直接编辑、编译、调试)。和其他IDE的集成:如和JBuilder的代码同步。,UML建模工具开发高阶探讨(续),高阶话题2:强大的插件现在或者将来必须具备的插件数据库插件:如Rose的DataModeler。当然,还是PowerDesigner的数据建模功能最强。XML插件:如DTD和Schema的建模支持。CVS,UML建模工具开发高阶探讨(续),高阶话题
10、3:谁集成谁?UML工具集成编程工具编程工具集成UML工具,未来的UML建模工具,手绘建模?,Ideogramic UML允许你用手建模,未来的UML建模工具(续),集成、集成集成到编程IDE全程建模(和生命周期其他工具集成)和过程集成和行业集成可执行的模型?模型虚拟机?MDA!,未来的UML建模工具(续),简单的过程 交互设计智能化模型的重构工具之间的模型交换团队建模向组件迁移注:本节来自作者和UMLChina的think合写的”UML工具发展趋势”一文,MDA工具开发实践,基于那个UML IDE?系统架构:通用的语言生成框架不仅仅生成代码验证、编译、调试、测试、部署、运行谁来开发所有语言的
11、MDA?开放走向未来真正的MDA,基于那个UML IDE?,IDE选择要点是否支持UML 扩展(UML Profile)?是否足够开放?UI扩展性完整的支撑API产品是否成熟?,基于那个UML IDE?(续),举例:Arcstyler基于Rose.Arcstyler基于MagicDrawAndroMDA基于MagicDrawKant基于Plato,系统架构:通用的语言生成框架,Runtime Model2,XMI,UML Model Facade,Runtime Model1,MDA Cartridges,Java Cartridge,C#Cartridge,Templates(Source,
12、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工具?和竞争对手相比,你的优势和不足生存的问题是最大的问题。酒香还怕巷子深距离成功只差一
13、步,潜在用户确定,随之UML建模工具自身功能的发展,UML在软件开发中的作用的变化:UML建模和代码没有关联UML模型可以生成代码框架UML建模工具可以和编程工具交互并迭代开发UML建模工具和编程工具集成UML模型虚拟机可有可无必不可少最重要的,潜在用户确定(续),无论采用哪一个软件过程理论,其中的哪个过程不需要UML?以RUP为例需求:领域模型、业务模型、用例模型分析:分析模型设计:设计模型实现:实现模型测试:测试模型,潜在用户确定(续),结论:软件开发行业中技术人员几乎每个人都是UML建模工具的潜在用户和现在编程工具人手一套一样,不久的将来,UML建模工具也必将人手一套。而MDA工具根据P
14、SM关联的编程语言的不同,以及工具自身功能的程度,会为不同阶层、不同需求的开发人员所选用。在未来,如果模型虚拟机足够的成熟,MDA工具将取代UML建模工具和编程工具成为必备工具。,目标用户确定,根据市场细分原则,进行自身产品定位和市场定位,有针对性的调整产品研发策略和市场开发策略。市场细分:高端用户:高投入高产出。目前不考虑。IBM,Borland中小软件企业:高度竞争市场。积极参与。利润所在。个人:低价产品线。大学和培训机构:免费赠与和合作。,和竞争对手相比,你的优势和不足,优势本土化快速反应能力产品短小精悍,和竞争对手相比,你的优势和不足(续),不足硬件:资金、人才、管理品牌知名度前沿技术
15、的研发投入产品 VS 解决方案(全生命周期管理),生存的问题是最大的问题,产品是否足够成熟?产品是否能够带来销售收入?销售收入能否带来财务平衡?销售收入能否带来盈利?短线?长线?,酒香还怕巷子深,知道你的产品而没有购买,是产品研发不够;不知道你的产品而没有购买,是产品营销不够。高投入营销 VS 低成本营销基本的营销策略口碑网络共享软件免费,距离成功只差一步,产品足够好,但是由于成本的原因无法快速和有效的推广。应对策略融资改进营销策略现在是一步,但时间的流逝会让它变成十步、百步、千步、万步,Trufun的实践之路,Trufun的历史Trufun的产品Trufun Plato UML建模工具Tru
16、fun Kant MDA 工具,Trufun 的历史,04/1/30:注册国际域名。04/2/2:开通网站。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:发布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
17、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的模型驱动架构开发工具,也
18、是是全球第一款中文MDA开发工具。Trufun Kant覆盖了软件开发的各个环节,使用Trufun Kant,不仅可以通过UML进行需求捕获、系统分析、系统设计,同时可以进行代码生成、编译、调试、运行、打包、部署,以模型驱动整个软件开发,真正实现了以模型为中心的软件开发新模式,从软件工具层面支持开发者创建“可执行的模型”。,Trufun Plato 功能介绍,优秀的UML建模支持方便高效的集成环境和易用使用的用户界面功能强大的插件设计模式支持基于OpenIDE和OpenAPI的全开放式环境其他:主题、随机附带的大量建模例程、全中文联机帮助和建模指南,UML建模支持框图,Plato支持UML1.
19、4所有框图类型:Class DiagramUseCase DiagramStateChart DiagramActivity DiagramSequence DiagramCollaboration DiagramComponent DiagramDeployment Diagram,UML建模支持:类图,UML建模支持:用例图,UML建模支持:状态图,UML建模支持:活动图,UML建模支持:协作图,UML建模支持:序列图,UML建模支持:部署图,强大的元素规格定义对话框,UML建模支持UML Profile支持,Tag扩展:用户可针对每个模型元素定义自己的Tag及Tag值构造型(Stereo
20、type)扩展:可针对元素类型定制元素构造型可以指定构造型的显示图标可以指定构造型在框图上的显示样式,可以是外部的wmf或emf文件,UML建模支持构造型扩展,UML建模支持XMI支持,支持XMI格式的模型文件交互Trufun模型可以导出为XMITrufun可以导入XMI格式的模型文件,优秀的建模环境和用户界面,全中文的使用界面 美观的用户界面,类Visual S 的Dockable界面组件,强大的属性编辑器,灵活的工具箱.支持Cut,Copy,Paste;模型元素查找、定位功能。视图的缩放、鸟瞰。脚本和代码区支持语法高亮显示。,优秀的建模环境和用户界面,高效的拖放支持:可以通过拖放改变命名空
21、间,也可以将模型从模型导航器拖放到框图上。灵活全面的图形编辑功能:各种对齐方式、各种自动图形分布、图形叠放次序、图形微移。另外也包括深受用户欢迎的类图自动布局功能。支持打印,图像复制及图像文件导出功能;支持用户工作空间(Workspace)的保存和打开。支持模型文件的自动备份。使得Trufun Plato更加健壮、更加安全支持主题,预定义众多配色方案的主题,建模更加色彩缤纷!,优秀的建模环境和用户界面启动页,功能强大的插件Rose模型导入,可以将Rose模型转换为XMI格式可以读入XMI格式的模型,功能强大的插件数据库反向工程,通过ODBC支持所有数据库类型可以选择要进行反向工程的表和视图。,
22、功能强大的插件文档构造,通过“文档构造”功能生成各种文档(如需求分析、系统分析或设计)等。可以直接生成rtf格式。提供各种文档模板和报表模板。,功能强大的插件文档构造,功能强大的插件Web Publish,将模型发布为网页。,功能强大的插件实时代码生成,在修改模型的同时,生成选中的编程语言代码。支持14种常用的编程语言。C#,VB.Net,J#,JScript.Net,C+.Net,C,Ansi C+,Delphi,Perl,Php,Python,Eiffel,Java,Caml等14种语言。可以直观的帮助初学者理解模型和语言的映射关系。,功能强大的插件实时代码生成,设计模式支持,支持24种设
23、计模式。包括所有GoF的设计模式。每个模式作为工具箱的一个工具,选中工具,在框图选择插入位置,会弹出对话框,此时可对模式进行参数设置,“确定”后即可在类图上生成该模式。模式支持全部采用脚本生成,用户可方便根据自己需求进行定制或添加自己的设计模式。,设计模式支持,全开放式的建模和二次开发环境,Trufun核心由OpenIDE和OpenAPI组成。OpenIDE构成界面和用户环境的基础。所有用户界面和用户环境都通过OpenIDE来配置完成。比如主菜单、快捷菜单、窗口、工具箱、工具栏、属性编辑器、资源、程序集。OpenAPI构成建模的核心组件。用户可以通过OpenAPI来操作系统对象、模型元素对象、
24、并可以对系统行为进行扩展。OpenIDE和OpenAPI由插件统一起来。在Trufun看来,一切皆是插件。,全开放式的系统OpenIDE,插件定义:插件的常规信息:包括插件的显示名,开发者,版本等信息,显示在插件管理器列表中。是否是语言插件:语言插件如Java,非语言插件如Rose模型导入。插件的接口类:Trufun定义了许多系统事件,如果插件希望可以侦听这些事件,则必须实现插件接口。如果不需要理会这些事件,则无需实现插件接口。主菜单:插件可以自行定义要显示在主菜单的菜单项。菜单项可以显示在已有的菜单下,也可以自行创建新菜单。快捷菜单:菜单可以自行定义自己的快捷菜单。快捷菜单是按照当前选中元素
25、类型区分的,用户可以针对不同的元素类型来定义自己的快捷菜单。比如,在Java插件中,针对类元素可以添加“新建入口操作”的快捷菜单。工具栏:插件可以定义的工具栏,也可以在已有工具栏上添加自己的工具。工具箱:在Trufun中,工具箱是根据框图类型划分的,当前框图类型不同,则工具箱也不同。工具箱也可以根据用途的不同,区分为不同的工具类型,比如类图工具箱,就有常规类(画一些简单图形)和类图(绘制类、接口等类图元素)。而插件可以选择在需要的框图工具箱添加自己的工具甚至自己的工具类型。,全开放式的系统OpenIDE,插件定义:属性编辑器扩展:插件可以自定义在属性编辑器上显示的属性和属性的编辑。资源:每个插
26、件都可以定义自己的文本资源和图形资源,而且也可以进行国际化。在Trufun中,所有资源都是.resource格式,可以方便的使用一些工具编辑、修改。程序集:如果你实现了插件接口,则需要将实现程序集(即dll)在此指定,以便系统引入此动态库。UML属性定义:所谓UML属性,实际上就是Tag标记。你可以在这里定义各种各样的Tag。如果你的插件是语言插件,则模型语言设置为此语言时,所有Tag都会读进来。其实,可以认为是插件自己的某些特定配置。构造型定义:如果是语言插件,你可以定义自己的构造型。比如Java插件,你可以定义一个”Http Servlet”的构造型,以及该构造型在模型导航器中显示的图标,
27、也可以指定在视图中显示的元图像文件(*.wmf或*.emf)。数据类型定义:语言插件在这里定义自己的数据类型。除了数据类型之外,还可以定义自己的类库。,全开放式的系统OpenAPI,用户可以直接在脚本窗口通过OpenAPI来操作系统对象和系统行为。比如:在脚本窗口输入”Application.About();”,然后运行脚本,即可看到打开了“关于”对话框。最典型的使用OpenAPI开发的例子就是设计模式。所有设计模式都是通过脚本来调用OpenAPI实现。脚本在optiondefaultscripts目录下。OpenAPI参考包含在Trufun Plato联机帮助中。另外,OpenIDE的开发指
28、南也已经发布,可以在网站下载。,Trufun Kant 功能介绍,需求分析:用例图。继承自Trufun Plato。系统分析:业务流程图、类图、协作图、序列图等。继承自Trufun Plato。系统设计:类图、对象图、组件图、部署图。继承自Trufun Plato。生成源码和用户自定义源码编译 单元测试运行,用Kant进行MDA(for Java)设计,用户可以通过反向工程将已有项目和源码导入到模型中。Kant支持如下类型的Java反向工程:Java源文件Java字节码文件Jar(Zip)反向工程可保留方法体,用Kant进行MDA(for Java)设计,Kant&Plato针对Java实现了
29、Java专用的规格定义对话框。下面是Java类的规格对话框:,用Kant进行MDA(for Java)设计,下面是Java类属性的规格对话框,用Kant进行MDA(for Java)设计,下面是Java类方法的规格对话框,用Kant进行MDA(for Java)设计,下面是Java接口的规格对话框,用Kant进行MDA(for Java)生成源码,使用MDA生成源码和用实时代码插件生成源码有太多的不同:前者完全针对语言定制,考虑到语言的所有特性。而后者只是简单的映射。前者生成的源码包括“用户代码保护区”,在此区域内的代码受到保护,但模型改变时再次生成代码时,保护区内代码不变。而后者不支持。前者
30、生成的源码可以在Kant内直接进行编译、测试和运行。后者不可以。前者可以生成项目文件,如JBuilder项目文件,用JBuilder可以直接打开。从而和JBuilder紧密集成。,用Kant进行MDA(for Java)生成源码,在Kant中提供语法高亮显示的编辑器来打开和编辑源码,并提供资源管理器来管理源码文件。,用Kant进行MDA(for Java)生成源码,在Trufun Kant中,是以构造型为识别特征来进行源码生成。比如,一个普通类元素是不会被生成源码,但是,如果指定其构造型为JavaClass,就可以对它生成Java类;而如果将其构造型指定为TestSuite,就会对它生成一个测
31、试类。,用Kant进行MDA(for Java)生成源码,用Kant进行MDA(for Java)编译,Kant集成了JDK1.4,可以直接对生成的源码进行编译。编译结果显示在输出窗口。编译错误信息用红色字体显示。用户也可以配置自己的项目属性,配置自己编译所使用的JDK和类库。,用Kant进行MDA(for Java)单元测试,Kant集成了优秀的Java单元测试工具JUnit,并提供工具箱“TestSuite”对其进行建模支持。在Kant中,可以通过建模直接生成单元测试框架代码。Kant还提供“测试”的运行类型,提供直接在Kant中进行单元测试的运行。Kant支持单元测试和集成测试。详情请查看Kant开发手册。,用Kant进行MDA(for Java)运行,目前Kant可支持以下类型的Java应用运行:独立应用(Application)小应用程序(Applet)单元测试(Test)未来版本将支持J2EE应用的部署、运行等。,提问,关注楚凡科技!关注中国国产CASE软件的未来!,
链接地址:https://www.31ppt.com/p-5948059.html