爪哇岛的一个山洼。

2006-10-23

【java教程】实践MDA之AndroMDA教程:[第三节] 系统设计(1)

该小节将详细的分析和描述示例的程序的设计。
设计准备
在工程的\mda\src\uml\目录下面有一个UMI文件,这个文件是在建立工程结构目录时自动生成的,该文件遵循标准UML Model规范,是androMDA代码生成工具的依据,储存了应用程序建模的信息。通常情况下我们只需用MagicDraw打开该文件进行建模,然后就可以利用androMDA进行代码生成了。
MagicDraw编辑后的XMI文件的编码都是UTF-8,为了能够使androMDA解析的XMI的编码为gb2312,并且将注释正确显示成中文,我开发了一个编码转换工具(有需要这个工具的请给我Email联系:delight.wjk@gmail.com)。具体操作过程是:
1、在同目录下创建一个该XMI文件的副本:在示例工程中\mda\src\uml\目录下面的UMI文件为 CarManagementModel.xmi ,在该目录下复制一个文件并命名为CarManagementModel_utf8.xmi。
2、用MagicDraw打开 CarManagementModel_utf8.xmi 文件进行设计,每次修改设计后,用下面的编码转换工具对 CarManagementModel_utf8.xmi 文件进行编码转换,转换后的文件为 CarManagementModel.xmi (覆盖原有XMI文件)。
3、此时就可以用androMDA进行代码生成了。
示例工程设计
关于设计的先后顺序,应该没有一个统一的标准。可以先设计用例图、活动图等,然后设计类图。简单的说,这个代码生成工具会结合用例图和活动图来生成页面,依据类图来生成底层代码。
在设计的过程,需要遵循一些设计的要求,否则在生成代码的过程中会有验证不通过的错误提示。具体的设计规则请参阅官方网站上的文档。
设计系统用例图
首先,设计用例图。在设计模型的时候,需要用Stereotypes(文中称为构造型)来描述模型中每个元素的意义。在用例图中,构造型<>表示该元素是一个用例,而构造型<>表示该元素是整个应用程序的入口,因此在模型中只能有唯一的一个元素能被标识成<>构造型,而且在自动生成的可运行的程序中,访问时会默认的进入执行该用例。另外,在模型中,每个用例必须要用一个单独的包来区分名字空间,这是一个设计规则。下图是示例工程的用例设计图:






设计活动图
活动图用来描述各个用例的具体逻辑细节。在模型中,每个用例必须要和一个活动图一一对应。在活动图中被构造型<>标识的状态元素表示前端获取用户输入的页面(例如Jsp),而图中没有任何构造型的状态元素则表示相应用户输入的服务器端的程序(例如Struts中的Action)。
下图是用户管理的活动图:


从图中,我们应该能大致看出用户管理的逻辑。当用户第一次进入的时候,首先看到的是所有用户的列表,在这个用户列表的界面中,用户可以删除选择的用户,可以修改选择的用户,也可以添加一个新的用户。
下图是汽车管理的活动图:
汽车管理的活动图中也同样实现了增加、删除、修改的功能,在新建汽车的时候,用户可以从列表中选择所有者。

1 条评论: