类与包
logical视图包括的项目有:
1.classes(类)
2.class diagram
3.use case框图
4.attributes and operations(属性和操作)
5.associations(关联)
6.state transition框图
7.sequence
8.collaboration
classk diagram 是项目小组的良好设计工具,有助于开发人员在编码之前设计好系统的结构.
sequence和collaboration框图中的每个对象都要映射成相应的类。
类的种类:
1.普通类
2.参数化类
参数化类用于生成其他一系列其它类。参数化类是某种容器,也成为模板。
比如说:CList是一个列表,CintLst是整数型列表,CfloatLst是浮点数列表。
3.实例化类
实例化类是具有实际变元值的参数化类。
实用程序其实上是一组操作。
4.类实用程序
类实用程序是一组操作。例如:对数据库的操作:连接/断开数据库,查询/删除/修改操作等
可以封装在一个类的实用程序中,让系统种的其他类使用。
5.参数化类实用程序
参数化是个参数化类,包含一组操作,是生成类实用程序的模板。
6.实例化类实用程序
7.元类(meta class)
元类的实例是类而不是对象。参数化类和参数化实用程序就是元类。
类有三种版型:entity,boundary 和control(项目、边界与控制)
边界类位于系统和外界的交界处,包括所有窗体、报表、与打印机和扫描仪等硬件的接口,以及与其他系统的接口。
实体类:保存要放进持续存储体的信息。
控制类:负责协调其他类的工作。
类的其他方面:
1.类基数
控制类的基数通常为1。
2.类的存储要求
在类的detail标签的space字段中输入类的存储要求。
3.类持续性
persistent 类在应用程序执行之外生存。即类对象中的信息存放在数据库或别得永久存储体中。
transient 类对象中的信息不存到永久存储体中。
应用程序不能使用persistent字段。
4.类的并发性
并发性描述类在存在多个控制线程时的表现。
sequential:只有一个控制线程
guarded:存在多个控制线程时,类正常工作但不同线程中的类应相互协作,保证不会互相干扰。
active:类有自己的控制线程
synchronous:存在多个控制线程时,类正常工作不需要与其他类相互协作,因为类本身能处理互斥情形。
5.抽象类
是不能实例化的类。如果类A是抽象的,则内存中不会有类型为A的对象。
抽象类通常在继承结构中使用。例如:sheet是一个抽象类,而sendgoodssheet,goodsinstore 是从sheet继承来的。
6.嵌套类
在rose中,一个类可以嵌套另一个类,嵌套类中又可以嵌套类,深度随意