系统设计各个阶段的主要交付件是OR/DR/DS,这些交付件的含义和联系已经在另外一篇博文中讲过了。这里主要讲一下UML技术在系统设计中的应用。
以前UML的应用大多数是在单机的环境下作为画图工具使用,实际应用中全程建模很少。EA(Enterprise Architect)是一个可扩展到团队协作环境的UML工具,或者说是一个IDE吧!而且它也支持二次开发。部门的牛人基于EA开发了一个联机的系统设计平台,确实是这么多年我见过的系统设计方面的一个突出的实践。
相比于单机版的UML应用。EA团队开发环境是一个联机的企业应用,有客户端软件(EA)、有后台数据库、有配置库、系统账号和权限控制。所有的系统设计人员拥有自己的系统账号,通过自己的PC登陆到系统中,进行画图等操作。所有的交付并不保存在本地PC上,而是保存在后台数据库中。这样,一个团队的所有成员能够对一个大型系统进行协同的系统设计,避免了交付不能集中管理、互相冲突的缺陷。EA还支持插件式的开发。PS:EA联机设计系统的具体开发和部署方法还需要单独研究。
下面将一下OR/DR/DS在UML系统设计平台上的表现形式。
OR和DR都是Requirement,也就是需求,因此在系统中采用Use Case来表示。为了区分各种类型的需求,平台的设计者基于Use Case扩展了多种子类型Use Case。对于增量开发的新软件版本,可能部分需求是基于又有版本的修改,因此设计了3种类型的OR:新增OR、修改OR、扩展OR。在一个增量开发版本系统设计开始之前,一个重要的工作就是将旧版本软件的所有功能通过Use Case的方式全部录入系统中。录入新版本需求时,需要同时体现这些需求和旧版本需求的关系。这个关系通过用例之间的依赖关系来表示(分别是修改、扩展)。
Charter-TR1期间,系统设计人员根据OR分解出DR。DR本质上