李维关于Together的讲座要点
——UMLChina讲座录音及幻灯20051214李维Together2006和UML2.0模型驱动开发
2007-11-11
软件工程越来越重要、普及
越来越多的IDE引入软件工程。开发中所采用的软件工程将决定采用的语言开发工具。
目前各种开发方法还无法涵盖软件开发的整个过程。如MDA应用于design和development阶段。XP关注development和test阶段。所以必须了解各种软件工程方法后面的含义,知道每种方法适用的开发阶段。
CMM是未来软件开发的基本要求。
软件开发发展的几个阶段:
-
Information technology (technology itself)
-
Software engineering (methodology)
-
Process improvement (s.o.p optimization)
-
People improvement (all of us)
软件开发最终的目的:质量
需要解决的问题
设计模型一定是正确的吗?测试、验证要从设计开始。
不同设计模型如何相互转换?设计、开发、测试使用不同的模型,如何保证模型之间的转换没有问题。
如何使用Open source
使用前要考虑几个问题:
-
为什么要用?
-
如何选择最好的版本?
-
能得到什么?
使用open source可以学习软件架构,提升软件技术。为达到这个目的,我们需要工具的帮助。
为什么使用Together2006
跳出UML范畴,更好的利用软件工程。
可以在建模的时候进行测试,验证软件的品质。
方便模型的转换。
对代码进行逆向工程,方便掌握架构,提升能力。
分析评估代码的质量。
模型的转换无处不在
语言, 模型, 系统
模型转换的场景:
1) 数据库建模;
2) 重构;
3) UML生成代码。
为了能够执行、验证模型,需要定义精确的模型。需要工具提供对模型进行检查,定义准确的、合理的模型。
MDA
基本的思想:集中精力在设计阶段,以模型为中心。
MDA是OMG相关规范的集合:UML2.0,OCL, MOF, XMI, CWM, QVT
模型是如何转换的:
Model A -----> Metamodel A ------> Metamodel B ------> Model B
Metamodel 用来定义Model,只要定义两种Model之间的Metamodel转换关系,就可以实现两种模型之间的转换。