物件结构塑模
目录1.1导论1.2类别图与物件图1.3物件结构塑模1.4建构类别图与物件图1.5结论
学习目标详读本章,你至少能了解:物件导向系统分析与设计中之物件结构塑模工作。何谓类别图与物件图及其用途。类别图与物件图之建构步骤与准则。如何封装类别。如何以类别图与物件图进行物件结构塑模。
1.1导论在物件导向系统发展过程中,完成了使用个案塑模后,接下来便可进行物件的互动行为塑模、物件结构塑模等塑模活动以开始架构系统。类别图主要用于表达系统内部的静态结构,并描述系统中物件的类型(Type)、类型间及与子类型间之静态关系。物件图则用于描述一系统于某一时间点的静态结构,可用来表达一系统的复杂资料结构或藉由一时间序列的系统影像来表达系统行为。
1.2类别图与物件图物件与类别之关系为:类别是描述物件的结构,并定义了组成物件的属性与栏位,而物件是类别的执行个体。类别图有两个主要元件:类别类别间之关系物件图也有两个主要元件:物件连结线
1.2.1类别图—类别(1/6)一群相关物件的定义、描述或样版称为一个类别。类别具有名称、属性与操作,同一类别之物件具有相同属性与操作。
1.2.1类别图—类别(2/6)类别种类执行观点永存类别(PersistClass)暂存类别(TransientClass)实作观点实体类别(EntityClass)界面类别(BoundaryClass)控制类别(ControlClass)9-7
1.2.1类别图—类别(3/6)实体类别实体类别通常以企业的领域术语命名,用来表示使用个案完成后仍需储存在数据库中的资料(永存类别)但某些实体类别也可以是暂存的资料,例如搜寻结果,当使用个案执行结束后,这些资料也跟着消失(暂存类别)。
1.2.1类别图—类别(4/6)界面类别界面类别也称边界类别,其物件可能包含表单、报表、硬件界面以及其他和系统沟通的界面,也是行为者与系统交谈的媒介。界面类别的属性包含显示在硬件界面上的元件,如栏位、超连结、选取方块与按钮等;其操作则是将使用者在界面上输入的资料传递给控制类别。当程序执行完毕后,界面类别之物件都将被删除,因此界面类别属于暂存类别。
1.2.1类别图—类别(5/6)控制类别控制类别负责协调其他类别的工作,控制类别大部分是传送许多讯息给其他类别,或是将工作指派给其他类别。同时也会选择执行的流程,当有错误发生时知道该做什么,所以控制类别也称管理类别。控制类别属于暂存类别,因为当程序执行完毕后,该类别之物件都将被删除。一个使用个案至少需搭配一个控制类别,藉由控制类别来控制使用个案中各项事件的发生顺序。
1.2.1类别图—类别(6/6)属性与操作类别的属性(或操作)可以定义有哪些物件能存取(或使用)该属性(或操作),这就是类别属性(或操作)的可视性(Visibility)。
类别间之关系指的是类别间的连结,在物件导向塑模中,类别间最重要的关系有相依、一般化、关联与实现化四种关系。类别间之关系符号相依关系一般化关系关联关系实现化关系1.2.2类别图-类别间之关系(1/17)
1.2.2类别图-类别间之关系(2/17)相依关系(Dependency)是一种「使用」的关系(UsingRelationship),表示一个类别会用到其他类别,且被使用之类别的改变可能会影响到使用它的类别,但反之则不必然。相依关系之箭头是由使用类别指向被使用类别,以虚线箭头作为表达符号。
1.2.2类别图-类别间之关系(3/17)下图表示Window(视窗)类别使用Event(事件)类别,两类别间为相依关系,且Event类别的更改会影响Window类别的操作,所以相依关系的箭号方向是由Window类别指向Event类别,即Window类别上的操作行为会依照Event类别不同的行为而改变。
1.2.2类别图-类别间之关系(4/17)一般化关系(Generalization)是一般性类别(称为超类别或父类别)与仅具有此一般性类别之某些特定性质的类别(称为次类别或子类别)间的关系。一般化乃是类别间继承的特性,与之相反的特性为特殊化(Specialization)。一般化意谓着子类别继承其父类别的特性,尤其是父类别的属性与操作。一般化关系之箭头是由子类别指向父类别,表达符号为实线且在父类别端加上空心三角形。
1.2.2类别图-类别间之关系(5/17)客户与公司皆有名称与地址,但个人客户比公司客户多出信用卡号,而公司客户比个人客户多出联络人、信用状态与信用限制。相似处可一般化成一个父类别称为客户,公司客户与个人客户均继承其父类别之结构(属性)与行为(操作),但又分别拥有各自的特性。
1.2.2类别图-类别间之关系(6/1