
SIHVCST 第三章架构建模 SIH 3.3类的关系 SIHV/CS 湖南科技职业学院软件学院
•1 第三章 架构建模 3.3 类的关系

SIHVCST 本节目标 掌握类之间的关联关系,并构造它 掌握类之间的泛化关系,并构造它 掌握类之间的依赖关系,并构造它 S 掌握类之间的实现关系,并构造它 目任务 SIHV 1.对图书业务功能中的类的关系建模。 2.对书籍管理功能中的类的关系建模。 湖南科技职业学院软件学院 2
•2 本节目标 • 掌握类之间的关联关系,并构造它 • 掌握类之间的泛化关系,并构造它 • 掌握类之间的依赖关系,并构造它 • 掌握类之间的实现关系,并构造它 任务 1. 对图书业务功能中的类的关系建模。 2. 对书籍管理功能中的类的关系建模

SIHVCST 3.3类的关系 ·关系 (Relationship)是指事物之间的联系。 在面向对象的建模中,有3种最重要的关系是 一依赖 -泛化 -关联 ·在图形上,把关系画成一条线,并用不同的线 区别关系的种类。 湖南科技职业学院软件学院 3
•3 3.3 类的关系 • 关系(Relationship)是指事物之间的联系 。 • 在面向对象的建模中,有3种最重要的关系是 – 依赖 – 泛化 – 关联 • 在图形上,把关系画成一条线,并用不同的线 区别关系的种类

SIHVCST 依赖(dependency 依赖(dependency)是一种使用关系,它说明了一个事 物声明说明的变化可能影响到使用它的另一个事物,但反 之未必。 例如在windows.系统中的窗体事件(类Event)的变化将会影响到使 用它的窗体(类Window)。 在图形上,把依赖画成一条有向的虚线,指向被依赖的事 物。当要指明一个事物使用另一个事物时,就使用依赖。 Window 一依赖 ◆open0 Event ◆colse0 move0 display( 湖南科技职业学院软件学院
•4 依赖(dependency) • 依赖(dependency)是一种使用关系,它说明了一个事 物声明说明的变化可能影响到使用它的另一个事物,但反 之未必。 – 例如在windows系统中的窗体事件(类Event)的变化将会影响到使 用它的窗体(类Window)。 • 在图形上,把依赖画成一条有向的虚线,指向被依赖的事 物。当要指明一个事物使用另一个事物时,就使用依赖。 依赖

SIHVCST 依赖(dependency 在UML中定义了4类基本依赖类型: 1.使用依赖 使用依赖是一种非直接的,它通常表示使用者使用服务 提供者所提供的服务实现它的行为。在UML中定义了 4种使用依赖: (1)使用(《use》 (2)调用依赖(《cal》) (3)发送(《Send》) (4)实例化(《instantiate》 湖南科技职业学院软件学院 5
•5 依赖(dependency) • 在UML中定义了4类基本依赖类型: 1.使用依赖 使用依赖是一种非直接的,它通常表示使用者使用服务 提供者所提供的服务实现它的行为。在UML中定义了 4种使用依赖 : (1) 使用(《use》) (2) 调用依赖(《call》) (3) 发送(《Send》) (4) 实例化(《instantiate》)

SIHVCST 依赖(dependency 2. 抽象依赖 抽象依赖建模表示使用者和提供者之间的关系,它依赖于在不 。 同抽象层次上的事物。下面给出了3种类型的抽象依赖。 (1)跟踪依赖(《trace》) (2)精化依赖(《refine》) (3)派生依赖(《derive》) 3.授权依赖 ·授权依赖表达了一个事物访问另一个事物的能力。提供者可以 规定使用者的权限,这是提供者控制和限制对其内容访问的方 法。下面给出了3种类型的授权依赖。 (1)访问依赖(《access》> (2)导入依赖(《import》) (3)友元依赖(《friend》) 湖南科技职业学院软件学院 6
•6 依赖(dependency) 2.抽象依赖 • 抽象依赖建模表示使用者和提供者之间的关系,它依赖于在不 同抽象层次上的事物。下面给出了3种类型的抽象依赖。 (1) 跟踪依赖(《trace》) (2) 精化依赖(《refine》) (3) 派生依赖(《derive》) 3.授权依赖 • 授权依赖表达了一个事物访问另一个事物的能力。提供者可以 规定使用者的权限,这是提供者控制和限制对其内容访问的方 法。下面给出了3种类型的授权依赖。 (1) 访问依赖(《access》) (2) 导入依赖(《import》) (3) 友元依赖(《friend》)

SIHVCST 依赖(dependency 4. 绑定依赖 ·它表明对目标模板使用给定的实际参数进行实例化。 当对模板类的细节建模时,要使用绑定(《bind》) 例如,模板容器类和这个类的实例之间的关系被模型 化为绑定依赖。绑定包括一个映射到模板的形式参数 的实际参数列表 Map > OrderMap bind() 湖南科技职业学院软件学院
•7 依赖(dependency) 4.绑定依赖 • 它表明对目标模板使用给定的实际参数进行实例化。 当对模板类的细节建模时,要使用绑定(《bind》)。 例如,模板容器类和这个类的实例之间的关系被模型 化为绑定依赖。绑定包括一个映射到模板的形式参数 的实际参数列表

SIHVCST 3.3.2泛化(generalization) 泛化(generalization)是一般事物(称为父类或超类) 和较特殊事物(称为子类或孩子类)之间的关系 例如,你可能遇到一般类Client(用户类)和它的较特殊类 Librarian(管理员类)。 Reader Librarian 得omda包bse (fom da包ba5e department ®principalship 子类 湖南科技职业学院软件学院 8
•8 3.3.2 泛化(generalization) • 泛化(generalization)是一般事物(称为父类或超类) 和较特殊事物(称为子类或孩子类)之间的关系。 – 例如,你可能遇到一般类Client(用户类)和它的较特殊类 Librarian(管理员类)。 父类 泛化 子类

SIHVCST 泛化的用途 种用途是用来定义下列情况:当一个变量(如参数 或过程变量)被声明承载某个给定类的值时,可使角 类的实例,这被称作可替换性原厕。该原则表明后代 的一个实例可以角子任荷祖先被声明的地方。 帽鲁实翻果一个变量被声明为图书管理员,那么他就可代替 另一个用途是在共享父类所定义的成员的前提下允许 它增加百身定义的描述,这被称作继承。 集季允许蓬養字买盆呈整明并資配以整籍美子到 减家承不是在每类知中重发声明并使” 模的规模更熏要的是,它减少了为了模型的更新 斋必须霰閔篓霜意苏茜箭层是义不致。 湖南科技职业学院软件学院 9
•9 泛化的用途 • 一种用途是用来定义下列情况:当一个变量(如参数 或过程变量)被声明承载某个给定类的值时,可使用 类的实例,这被称作可替换性原则。该原则表明后代 的一个实例可以用于任何祖先被声明的地方。 – 例如,如果一个变量被声明为图书管理员,那么他就可代替 用户实例。 • 另一个用途是在共享父类所定义的成员的前提下允许 它增加自身定义的描述,这被称作继承。 – 继承允许描述的共享部分只被声明一次而可以被许多子类所 共享,而不是在每个类中重复声明并使用它,这种共享机制 减小了模型的规模。更重要的是,它减少了为了模型的更新 而必须做的改变和意外的前后定义不一致

SIHVCST 泛化示例 例如水陆两用汽车他即是汽车又是船,那么在对交 通工具进行抽象时,就可认为水陆汽车类即继承了 汽车类又继承了船类,这就是多重继承。 交通工具 父类 汽车 父类 船 SIH 水陆两用汽车 子类 湖南科技职业学院软件学院 .10
•10 泛化示例 – 例如水陆两用汽车他即是汽车又是船,那么在对交 通工具进行抽象时,就可认为水陆汽车类即继承了 汽车类又继承了船类,这就是多重继承。 交通工具 汽车 船 水陆两用汽车 父类 父类 子类