• UML(统一的建模语言)


    1、软件开发与软件工程

    任何事情都必须想清楚了,才能去做!这样才不会出现很多不必要的麻烦,软件开发亦是如此。

    写代码前要想好:想要做什么?做成什么样?如何去做?

    软件设计就是把软件开发想清楚的过程;

    软件工程就是对软件开发进行建模和管理;

    所谓模型,就是对现实进行简化,帮助人们能更好的了解所要研究事物的本质,例如地图。

    建模就是对现实系统进行适当的过滤,用一种适当的表现规则描绘出简洁的模型,其是一种深入解决问题的方法。

    建模的原则有:1)正确的模型

           2)使用者的身份和使用场合是评价建模的好坏的关键

           3)适当的简洁,而又不掩藏事物的重要的细节。

           4)模型不能孤立

    建模的作用:将现实世界的问题映射成计算机世界所能理解并解决的问题。

    建模的过程:根据需求,用模型表达设计过程,然后映射成软件实现。

    2、UML

    UML(United modeling language)是一种基于面向对象的可视化的建模语言,它采用一种形象化的图形符号作为语言,通过建立的图形之间的关系来描绘模型。

    3、UML的图和关系

    UML共有10种图:1)静态模型图:用来描述系统的静态结构

              类图、对象图、包图、组件图、部署图

             2)动态模型图:用来描述系统行为的各方面

              用例图、时序图、状态图、活动图、协作图

    UML的关系有四种:关联关系、依赖关系、泛化(相当于C++中的继承)、实现关系;

    (一)用例图(用户模型图)

    它是从客户的角度来描述系统功能。

    有三个基本组件:参与者(Actor)、用例(Use Case)、关系;

    其中参与者,表示使用该系统的人或者事物,在UML中,用人形表示,用例代表系统某项完整的功能,用椭圆表示;关系:表示用例之间的关系

    用例之间的关系有泛化关系、扩展关系、包含关系

    泛化关系:表示同一业务目的的不同技术实现;

    扩展关系:在完成一个功能时,再执行另外的功能;

    包含关系:一个用例可以包含其他用例具体的行为。

    (二)类图

    主要是用来显示系统中的类,接口以及它们之间的关系,其中关系有泛化关系、关联关系、依赖关系、实现关系。

    类是类图的主要组件,由三部分组成:类名,属性和方法(函数),其中+号表示公有属性,-号表示私有属性,#表示保护属性;

    接口包含方法,不包含属性。通过一条实线与它的模型元素相连。

    泛化关系:表示类与类之间、接口与接口之间的继承关系。

    实现关系:用来表示类与接口之间的实现关系

    依赖关系:简单的理解就是,假设我开车去上班,但是我没有车,需要借别人的车才能去上班,我跟这个车之间的关系就是依赖关系,对应代码实现---》就是一个类作为另一个类的函数参数或者函数返回值;

    关联关系:我的理解是,我牛逼了!我自己有车了,不需要借车去上班了,使用自己的车去上班,这时我跟这个车之间的关系就是关联关系,对应代码实现---》就是一个类是另一个类的成员变量

     1 #include<iostream>
     2 using namespace std;
     3 //依赖(虚线):一个类作为另一个类的函数参数或者函数返回值
     4 
     5 class Car;
     6 class Lin {
     7 public:
     8     //依赖关系(
     9     void work(Car *p)
    10     {
    11 
    12     }
    13     Car* fix()
    14     {
    15 
    16     }
    17 protected:
    18 private:
    19 };
    20 
    21 class Car {
    22 public:
    23 protected:
    24 private:
    25 };
    26 //关联(实现)
    27 class AdvLin {
    28 public:
    29     void work()
    30     {
    31         //m_car01->(使用方式)
    32     }
    33 protected:
    34 private:
    35     //Car *m_car01;
    36     Car m_car02;
    37 };
    38 
    39 void main()
    40 {
    41     cout << "Hello World!" << endl;
    42     system("pause");
    43     return;
    44 }

    关联关系中的角色:角色就是关联关系中一个类对另一个类所表现的职责。例如车是我的,那么我就是车的主人。

    关联关系的多重性是指有多少对象可以参与该关联, 多重性可以用来表达一个取值范围, 特定值, 无限定的范围。例如我又牛逼了,我可以同时拥有多辆车,这就是关联关系的多重性。

    在C++、Java中关联关系可以是单向的、也可以是双向的,它们之间是通过成员变量实现的。

    -------------------------------------------------------------------------------------------------------------------华丽的分割线------------------------------------------------------------------------------------------------------------------------

    ps:继上次总结UML已经过去半年多了,现在来补上之前停下来的部分.(2018/11/17)

    关联关系中还有聚合和组合两种关系:

    聚合关系:聚合关系是更强的关联关系,聚合是整体与部分之间的关系,关联关系涉及的类处于同一个层次上,而聚合关系,两个类处于不同的层次,一个整体一个部分。(例如,车与引擎、车轮之间的关系)

    组合关系:又称为强聚合,比聚合更强的关联关系,代表着整体的对象负责代表部分对象的生命周期。(例如,公司和部门的关系)。

  • 相关阅读:
    js 数组去重求和 (转载)
    表格插件汇总(转载)
    SQL Server 用一张表的数据更新另一张表的数据(转载)
    C#创建DataTable(转载)
    C# DataTable 和List之间相互转换的方法(转载)
    维度表,实体表,事实表之间的关系
    Scala中foldLeft的总结
    Scala集合Map
    从合并两个Map说开去
    UDAF(用户自定义聚合函数)求众数
  • 原文地址:https://www.cnblogs.com/Dark-King/p/8858948.html
Copyright © 2020-2023  润新知