UML教程(三)/類圖與對象圖

preview
需积分: 0 1 下载量 175 浏览量 更新于2011-02-26 收藏 1.56MB PPT 举报
**UML教程(三)/類圖與對象圖** 在UML(统一建模语言)中,類圖和對象圖是两种重要的建模工具,它们帮助开发者清晰地表示系统中的概念、实体以及它们之间的关系。 ### 一、類與對象 **類**是人类思维对现实世界的抽象,它具有普遍性,比如汽车、人等。类定义了对象的共同特征,包括属性(数据成员)和行为(方法)。而**對象**是类的具体实例,每个对象都有其独特的身份,拥有独立的属性值和状态,并可以执行类中定义的方法。例如,"张三"这个人就是"人类"类的一个实例,具有自己的年龄、性别等属性值。 ### 二、類圖 类图显示了类的结构,包括类的名称、属性和方法。类的表示通常如下: ```markdown 可见性 属性名 : 类型名 = 默认值 { 性质串 } 可见性 方法名 ( 参数表 ): 返回值类型 { 性质串 } ``` 其中,可见性可以是`public`、`private`、`protected`等,表示访问权限。属性是类的数据成员,方法是类的行为。 ### 三、关系 **关系**描述了类与类之间的联系。关系有多种类型,如: 1. **普通关联**(Association):双向或单向,表示对象间的相互作用。例如,"读者"与"书"之间可能有"借阅"的关系。 2. **聚合**(Aggregation):一种特殊的关联,表示整体与部分的关系,通常用空心菱形表示。 3. **组合**(Composition):更强烈的聚合形式,表示整体与部分的生命周期绑定。 4. **泛化**(Generalization):继承关系,一个类继承了另一个类的属性和行为。 5. **依赖**(Dependency):一个类使用了另一个类,但没有包含或实例化它。 ### 四、接口 **接口**(Interface)定义了一组操作的签名,不包含实现。接口有助于实现设计与实现的分离,促进系统的标准化。在C++中,接口通过纯虚函数实现,如: ```cpp class Interface { public: virtual void operation() = 0; }; ``` ### 五、包与模板 **包**(Package)是一种组织模型元素的方式,代表运行时的子系统。它可以包含类、接口、其他包等。**模板**(Template)是未完全指定的类,用于创建特定类型的类实例。 ### 六、模型质量 高质量的UML模型应具备以下特点: 1. **满足需求**:模型应准确反映系统的功能和行为,符合用户需求。 2. **明确目标**:模型的目标应清晰,且是可实现的。 3. **协作性**:模型之间应能互相配合,形成完整的系统视图。 4. **分解复杂性**:复杂问题可以通过分解为多个简单的子问题来处理。 **例子** 考虑图书馆管理系统中的"书"和"读者"类,以及它们之间的"借阅"关系。书类有书名、作者、出版社等属性,以及借出、归还等操作。读者类有姓名、性别、部门等属性,以及借书、还书等操作。借阅关系可以作为一个单独的类"借书",包含借书单号、借阅时间、预计归还日期等属性,以及借书、还书的操作。 通过以上描述,我们可以构建一个完整的UML模型,有效地理解和设计图书馆管理系统的结构和行为。
kabala8888
  • 粉丝: 0
  • 资源: 11
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜