• UML基础与应用之面向对象


    UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它使用图形符号和文本来描述软件系统的结构、行为和交互。在面向对象编程中,UML被广泛应用于软件系统的设计和分析阶段。本文将总结UML基础与应用之面向对象的重要概念和常用图形符号。

    一、面向对象编程基础:

    1. 类与对象:类是对具有相同属性和方法的对象进行描述,而对象是类的实例化结果。
    2. 封装:将数据和对数据的操作封装在一个类中,隐藏实现的细节,提供公共接口。
    3. 继承:子类可以继承父类的属性和方法,并且可以进行扩展或修改。
    4. 多态:同一个接口可以有不同的实现方式,允许使用父类类型的引用指向子类对象。

    二、常用UML图形符号:

    1. 类图(Class Diagram):用于描述类及其之间的关系,包括类名、属性、方法、关联、继承、实现等。
    2. 对象图(Object Diagram):展示系统中对象的状态和关系。
    3. 用例图(Use Case Diagram):描述系统的功能需求和参与者之间的关系。
    4. 时序图(Sequence Diagram):展示对象之间按时间顺序交互的消息流程。
    5. 活动图(Activity Diagram):描述系统中活动的流程和控制流。
    6. 状态图(State Diagram):展示对象在不同状态下的行为和转换。
    7. 组件图(Component Diagram):描述组件及其之间的关系和依赖。
    8. 部署图(Deployment Diagram):表示系统的物理部署结构和软件与硬件之间的关系。

    三、应用场景:

    1. 系统设计:使用类图和对象图来描述系统的静态结构和动态行为,进行系统设计和分析。
    2. 需求分析:使用用例图来识别系统的功能需求、参与者和用例之间的关系。
    3. 系统测试:使用时序图和活动图来定义系统的测试用例和操作流程。
    4. 代码生成:通过类图和组件图来生成代码骨架和类之间的关系。
    5. 文档编写:使用UML图形符号来撰写技术文档,方便阅读和理解软件系统。

    对象

    对象可以是物理实体、概念实体、软件实体,具有状态(静态信息 属性)、行为(动态)、标识(名字)行为反映的是一个对象将如何响应其他对象。

    类:

    类是对一组具有相同属性、行为、和语义的对象的描述。一个对象是一个类的实例。

    类的表示

    说明:第一行是类的名称,第二行是类的属性,第三行是类的方法,属性和方法可以省略。如图

    类和对象的关系

    类是对象的抽象定义,它定义了属性和方法,提供了一个创建对象的模板

    面向对象的基本内容

    属性:描述的是对象静态部分

    操作:通过操作可以读取、修改属性的值

    接口

    多态:不同对象得到同一消息时,产生不同行为。

    组件:一个组件可以是源程序、运行时动态库、可执行程序

    包:

    包的创建就是将源程序文件中的接口和类纳入指定的包,对包进行分类管理

    在项目中,我们要用到别的类的时候,我们可以把之前写好的类打成一个包进行引用,方便我们复用

    子系统

    对象之间的关系

    关联:(聚合、组合)、依赖、泛化、实现、关联

    面向对象的语言特点:继承、多态、封装

    面向对象的基本原则:抽象、封装、模块性、层次性

    抽象:抽象出对象,得出有哪些类

    封装:把静态信息和动态信息封装成一个整体,做到一部分的信息隐藏(对客户隐藏实现,客户仅仅看到接口)

    层次性

    面向对象和面向过程 

    面向对象编程(OOP)面向过程编程(POP)
    设计思想以对象为中心,将问题分解为相互关联的对象和它们的交互以过程为中心,将问题分解为一系列的步骤和函数调用
    主要组成类、对象、方法、属性等函数、变量、数据结构等
    封装性支持封装,将数据和操作封装在对象中,隐藏内部实现细节不强制要求封装,较少对数据进行隐藏或限制访问
    继承性支持继承,允许创建新的类从现有类派生,并继承其属性和方法不直接支持继承,功能通过函数和模块复用来实现
    多态性支持多态,允许在父类引用中使用子类对象,实现动态行为较少直接支持多态,通常通过函数重载来实现
    数据处理将数据和操作封装在对象中,通过方法调用处理数据通过函数来处理数据,传递参数并返回结果
    代码结构主要由对象和对象之间的交互组成主要由函数和函数之间的调用组成
    代码复用通过继承和组合机制实现代码的重用通过模块化和函数调用来实现代码的重用
    异常处理支持异常处理机制,可以捕获和处理异常通常使用错误码或返回值进行错误处理
    可扩展性支持模块化开发,易于扩展新的对象和类可以通过添加过程和修改函数来实现功能的扩展

    总结

    UML是一种非常有用的面向对象建模语言,可以帮助开发人员更好地理解和设计软件系统。通过学习和应用UML基础概念和常用图形符号,可以更好地进行软件系统的设计、分析和测试。

    1. 面向对象编程是一种以对象为中心的编程范式,通过抽象、封装、继承和多态等概念,实现代码的模块化、重用和灵活性。
    2. UML提供了一套统一的图形符号和规范,可以直观地描述系统的结构和行为,促进团队成员之间的沟通和理解。
    3. 类图是UML中最常用的图表类型,用于描述系统中的类、属性、方法和它们之间的关系。类图可以帮助我们定义系统的静态结构。
    4. 用例图是用于需求分析的重要工具,描述系统的功能需求、参与者以及它们之间的关系。用例图有助于识别系统的边界和主要功能模块。
    5. 时序图和活动图用于描述系统的动态行为和流程。时序图展示对象之间的消息传递顺序,而活动图展示活动的流程和控制流。
    6. 状态图用于描述对象在不同状态下的行为和状态转换。状态图对于描述对象的生命周期和状态变化非常有用。
    7. 组件图和部署图用于描述系统的组件和物理部署结构。组件图可以帮助我们识别系统的模块化和组件之间的依赖关系,而部署图则展示软件与硬件之间的关系。
    8. UML不仅在系统设计和开发中有用,还在测试、文档编写和代码生成等方面起到重要作用。它可以将复杂的系统抽象为可视化的图表,提供清晰的视图和指导。

    总而言之,UML是一种强大的面向对象建模语言,通过提供各种图表和符号,帮助开发人员更好地理解、设计和交流软件系统。通过充分理解UML基础概念和应用,我们能够更高效地进行软件开发,并保证系统的可靠性和可维护性。

  • 相关阅读:
    7. 迭代器iterator
    Python爬虫入门学习:拿捏高级数据类型
    Java从入门到熟悉的48道练习题[完结]
    java计算机毕业设计干洗店订单管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
    【马士兵】Python基础--13
    RabbitMQ(控制台模拟收发消息与数据隔离)
    流程控制语句 循环结构 ---- for循环
    【python学习小案例】提高兴趣之BMI计算器
    基于支持向量机的试剂条图像识别,基于SVM的图像识别,SVM的详细原理,Libsvm工具箱使用注意事项
    项目部署之Jenkins
  • 原文地址:https://blog.csdn.net/weixin_45309155/article/details/106877263