• 面向对象技术--面向对象的分析与设计方法


    说在前面:

    本系列文章专注于软考备考复习内容梳理,文章内容是对教材中知识点和考点的提炼,备考过程中可以有针对的进行复习,减少阅读量,有的放矢。


    导航目录:

    一、Peter Coad和Edward Yourdon的 OOA和 OOD

    1.OOA

    OOA模型由下列5个层次和5个活动组成。

    (1)5个层次主题层、对象类层、结构层、属性层、服务层。

    (2)5个活动∶标志对象类、标志结构、定义主题、定义属性、定义服务。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,另一种称为组装结构。

    2.OOD

    OOA中的5个层次和5个活动继续贯穿在OOD过程中。OOD模型由4个部分和4个活动组成。
4个活动是设计问题域部件、设计人机交互部件、设计任务管理部件、设计数据管理部件。

    二、Booch的OOD法

    Booch认为软件开发是一个螺旋上升的过程,在螺旋上升的每个周期中有以下步骤。(1)标识类和对象。(2)确定它们的含义。(3)标志它们之间的关系。(4)说明每一个类的界面和实现。
除了类图、对象图、模块图、进程图外,Booch的OOD中还使用了两种动态描述图,一种是刻画特定类实例的状态转换图,另一种是描述对象间事件变化的时序图。

    三、OMT法

    对象建模技术(OMT)定义了3种模型,即对象模型、动态模型和功能模型。OMT方法有4个步骤,即分析、系统设计、对象设计和实现。

    1.对象模型、动态模型和功能模型

    1)对象模型

    OMT的对象模型中除了对象、类、继承外,还有一些其他的概念。

    • 链和关联。链表示实例对象间的物理或概念上的连接。关联描述具有公共结构和
公共语义的一组链。
    • 泛化。泛化是一个类与它的一个或多个细化类之间的关系,即一般与特殊的关系。被细化的类称为父类,每个细化的类称为子类,子类可以继承父类的特性。
    • 聚集。聚集是一种整体与部分的关系,在这种关系中表示整体的对象与表示部分
的对象关联。
    • 模块。模块是组和类、关联和泛化的一种逻辑结构,模块给出了某个主题的视图。
    2) 动态模型

    动态模型描述与时间和操作顺序有关的系统特征,包括激发事件、事件序列、确定事件先后关系以及事件和状态的组织。

    3)功能模型

    功能模型描述与值的变换有关的系统特征,包括功能、映射、约束和函数依赖。对象模型、动态模型和功能模型之间具有下述关系。

    
(1)与功能模型的关系。对象模型展示了功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。

    
(2) 与对象模型的关系。功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“供应者一客户”关系动态模型展示了每个对象的状态以及它接收事件和改变状态时所执行的操作。

    
(3) 与动态模型的关系。功能模型展示了动态模型中未定义的不可分解的动作和活动的定义,对象模型展示了是谁改变了状态和承受了操作。

    2. OMT的步骤

    下面介绍OMT的步骤。
    
(1)分析。目的是建立可理解的现实世界模型。

    
(2) 系统设计。确定整个系统的体系结构,形成求解问题和建立解答的高层次策略。
    
(3)对象设计。建立基于分析模型的设计模型,并考虑实现的细节,设计人员根据系统设计期间建立的策略把实现细节加入到设计模型中。

    
(4)实现。将对象设计阶段开发的对象类及其关系转换成特定的程序设计语言、数据库或硬件。

    四、UML概述

    统一建模语言(UML)是面向对象软件的标准化建模语言。UML 由 3 个要素构成,即UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的一些公共机制。UML的词汇表包含3种构造块,即事物、关系和图。事物是对模型中最具代表性的成分的抽象,关系把事物结合在一起,图聚集了相关的事物。

    1. 事物

    事物包括结构事物、行为事物、分组事物和注释事物。

    


(1)结构事物(Structural Thing)。结构事物是UML模型中的名词。它们通常是模型的静态部分,描述概念或物理元素。结构事物包括类(Class)、接口(Interface)、协作(Collaboration)、用例(Use Case)、主动类(Active Class)、构件(Component)和节点(Node)。

    


(2)行为事物(Behavior Thing)。行为事物是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为。共有两类主要的行为事物,即交互(Interaction)和状态机(State Machine)。

    


(3)分组事物(Grouping Thing)。分组事物是UML模型的组成部分。它们是一些由模型分解成的“盒子”。在所有的分组事物中,最主要的分组事物是包(Package)。

    


(4)注释事物(Annotational Thing)。注释事物是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。注解(Note)是一种主要的注释事物。注解是一个依附于一个元素或者一组元素之上,并对它进行约束或解释的简单符号。

    2. 关系

    UML中有4种关系,即依赖、关联、泛化和实现。

    



(1)依赖(Dependency)。依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。

    



(2)关联(Association)。关联是一种结构关系,它描述了一组链,链是对象之间的连接。聚集(Aggregation)是一种特殊类型的关联,它描述了整体和部分间的结构关系。

    



(3)泛化(Generalization)。泛化是一种特殊一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法子元素共享了父元素的结构和行为。

    



(4) 实现(Realization)。实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种地方要遇到实现关系∶一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。

    3. UML中的图

    UML 提供的图包括类图、对象图、用例图、交互图、状态图、活动图、构件图和部。
    




(1)类图(Class Diagram)展现了一组对象、接口、协作及其关系。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。

    




(2)对象图(Object Diagram)展现了一组对象及其关系。对象图描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链。

    




(3) 用例图(Use Case Diagram)展现了一组用例、参与者(Actor)及其关系。

    




(4)序列图、通信图、交互概览图和时序图均被称为交互图,它们用于对系统的动态方面进行建模。

    




(5)状态图(State Diagram)展现了一个状态机,它由状态、转换、事件和活动组成。状态图关注系统的动态视图,它对于接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序。
(6)活动图(Activity Diagram)是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。活动图专注于系统的动态视图,它对于系统的功能建模特别重要,并强调对象间的控制流程。

    




(7) 构件图(Component Diagram)展现了一组构件之间的组织和依赖。构件图专注于系统的静态实现视图。它与类图相关,通常把构件映射为一个或多个类、接口或协作。

    




(8)部署图(Deployment Diagram)展现了运行处理节点以及其中构件的配置。部署图给出了体系结构的静态实施视图。它与构件图相关,通常一个节点包含一个或多个构件。

    未完待续。。。

    更多知识传送:

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    以上内容整理参考《软件设计师教程(第5版)》和《软件设计师考试同步辅导(第四版)》(忘记是哪个老师的了,侵删)。本文章内容旨在帮助更多想要进军软考,给自己镀金的小伙伴。有兴趣的小伙伴可以共勉。

  • 相关阅读:
    kvm 创建win11虚拟机
    java8中LocalDateTime解析日期的示例分享
    Go学习第六章——系统函数与错误处理
    【算法编程心得记录】
    uniapp小程序之一键使用手机号登录
    CubeMX+BabyOS 使用方法
    Java | abstract关键字【面向对象的第三大特征——多态】
    [附源码]计算机毕业设计学生在线考试系统Springboot程序
    牛客网刷题 | BC117 逆序输出
    nodejs+vue宠物店管理系统
  • 原文地址:https://blog.csdn.net/qq_37502042/article/details/126586552