UML入门:类图详解与设计原则

需积分: 9 3 下载量 135 浏览量 更新于2024-10-14 收藏 359KB DOC 举报
"UML 基础 类图和教程参考" 本文档是关于统一建模语言(Unified Modeling Language,简称UML)的基础教程,主要关注类图这一核心概念,并介绍了其他八种基本图表,旨在帮助读者理解UML在软件开发中的应用。UML是一种标准化的建模工具,用于描述、可视化、构建和文档化软件系统。 **UML的9大核心图:** 1. **用例图(Use Case Diagram)**:用例图展示了系统的主要参与者(Actor)和他们与系统的交互,通常用来表示用户需求。 2. **类图(Class Diagram)**:类图是UML中最基础的图表之一,它描绘了类、接口及其相互关系,如继承、关联、依赖、聚合和组合等。类图是静态模型,描述了系统的静态结构。 - 类的组成包括类名、属性和方法。 - **继承(Inheritance)**:用带箭头的虚线表示,表示一个类(子类)继承另一个类(父类)的特性。 - **关联(Association)**:用实线表示类之间的关系,可以是单向或双向的。 - **依赖(Dependency)**:用带箭头的虚线表示,表示一个类的实现或行为需要另一个类。 - **聚合(Aggregation)**:用空心的菱形表示,表示一个类包含其他类的实例,但这些实例的生命周期独立于容器类。 - **组合(Composition)**:用实心的菱形表示,是聚合的特殊形式,表示容器类管理其组件的生命周期。 3. **对象图(Object Diagram)**:类图的具体实例,显示了类的实例及其相互关系。 4. **组件图(Component Diagram)**:描述软件系统中的组件(Component)及其之间的依赖关系。 5. **部署图(Deployment Diagram)**:描绘了硬件节点和在这些节点上运行的软件组件之间的关系。 6. **时序图(Sequence Diagram)**:展示了对象之间交互的时间顺序,强调消息传递的顺序。 7. **协作图(Collaboration Diagram)**:与时序图相似,但它更侧重于对象之间的组织结构,显示了消息是如何在对象间交互的。 8. **状态图(State Diagram)**:描述一个对象在其生命周期中可能经历的不同状态以及状态之间的转移。 9. **活动图(Activity Diagram)**:类似于流程图,用于表示工作流程或活动序列,可以用来描述业务流程、算法或系统的行为。 **设计原则:** - **开闭原则(Open-Closed Principle, OCP)**:软件实体(类、模块、函数等)应该对扩展开放,对修改关闭,意味着添加新功能时不应修改已有代码。 - **里氏替换原则(Liskov Substitution Principle, LSP)**:子类必须能够替换其基类而不会影响程序的正确性。 - **依赖倒转原则(Dependency Inversion Principle, DIP)**:高层次的模块不应依赖于低层次的模块,它们都应该依赖于抽象。 **良好的软件设计习惯**: - 抽象越高,适应性越强,错误率越低。 - 降低耦合性,提高模块的独立性,如通过接口编程来实现。 这些原则和良好实践是软件设计的核心,有助于创建可维护、可扩展和易于理解的系统。UML作为强大的建模工具,可以帮助开发者更好地理解和表达这些设计原则,从而提高软件开发的质量和效率。