组件图、类图自上而下的设计
用顺序图可以对系统的消息进行建模并使之可视化,通过组件图可以看到实现系统功能的组件,以及其他一些系统组件(如Web服务、用户接口和COM组件等)。
组件图描述的是应用程序或系统的不同组件之间的关系。组件图显示的是软件系统设计的一部分。这些组件可以是可执行程序、DLL,甚至可以是整个系统。在这个层面上,不必对要构建什么样的系统有非常准确的了解,而只需将架构分解成一些更容易管理和理解的东西即可。组件图可用于呈现高层系统结构以及组件提供和使用的服务行为。
创建组件图可以帮助开发团队了解现有设计,发现可能的改进方法,更重要的事,将系统堪称是具有良好接口的组件集合,增强了组件的独立性,因此,当需求改变时,设计也很容易改变。
组件具有接口,这些接口既可以是组件提供给其他组件的功能(Provided Interface)也可以是需要从其他组件获得的功能(Required Interface)。Required Interface是用一个未封闭的圆表示,成为hook,Provided Interface用一个封闭的圆表示,称为loolipop,它们之间用Dependency元素连接。
通过将接口元素拖到合适的位置可以很容易地实现接口元素在组件内的重定位。
依赖元素总是从Required Interface(hook)连接到Provided Interface(lollipop)。
较大组件可由较小组件组成,因此在组件图中,也可以将一个组件放入另一个组件内。
位于另一个组件之内的组件成为部件。与普通类的特性一样,可以将部件看成是父组件的特性。在父组件内,每个部件都可以为其类型定义Provided Interface和Required Interface。
类图描述的是应用程序或系统内的类以及各个类之间的关系。不同的符号表示不同的关系,这些信息与类的特定实现无关。类图的重点关注的是类的逻辑结构而不是类的实现。
在类图中,一个类型可以是类、接口或枚举。可以为类和接口对象定义特性。特性是一个附加于类或接口实例的值。还可以为类和接口定义操作,操作是由类或接口的实例所执行的方法或函数。
在类图中可以使用的三种标准类型:
1. 类用于表示数据或对象类型。BookOrder代表一个类。
2. Color代表一个枚举,枚举用于表示包含有限个字面值的类型。
3. Ordering代表一个接口,当必须区分纯接口和有内部实现的具体类时就需要用到接口。
类和接口都包含特性和操作。特性只是该类型的每一个实例都具有的一个指定值。操作是该类型的实例要执行的方法或函数。每个类型的名称必须是唯一的。
枚举包含一个称为枚举值的列表。在使用枚举时一定要保证每个枚举值是唯一的。还可以通过在属性窗口中设置Value值来为每个枚举值赋一个数值。
类图还可以显示继承、依赖和包信息,下图是另一个类图示例: