zoukankan      html  css  js  c++  java
  • [设计语言][统一建模语言][软件开发方法学][UML] UML

    背景介绍 

    UML是一种统计建模语言。

    WIKI: 

    https://en.wikipedia.org/wiki/Unified_Modeling_Language

    UML是OMG (object management group)(国际对象管理组织(https://zh.wikipedia.org/wiki/%E5%AF%B9%E8%B1%A1%E7%AE%A1%E7%90%86%E7%BB%84%E7%BB%87))  发布的一个标准。

    OMG发布的其他建模语言还有: https://www.omg.org/spec/category/modeling/

    举例:

    SysML: UML的扩展,增加了两种图。https://en.wikipedia.org/wiki/Systems_Modeling_Language

    SoaML: 面向服务架构建模  https://en.wikipedia.org/wiki/Systems_Modeling_Language

    UML介绍

    统一建模语言

    https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80

    元对象机制

    https://zh.wikipedia.org/wiki/%E5%85%83%E5%AF%B9%E8%B1%A1%E6%9C%BA%E5%88%B6

    定义:

    The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system.

    包括什么:

    UML offers a way to visualize a system's architectural blueprints in a diagram, including elements such as:[4]
    
    any activities (jobs);
    individual components of the system;
    and how they can interact with other software components;
    how the system will run;
    how entities interact with others (components and interfaces);
    external user interface.

    以及:

    UML diagrams represent two different views of a system model:[23]
    
    Static (or structural) view: emphasizes the static structure of the system using objects, attributes, operations and relationships. It includes class diagrams and composite structure diagrams.
    Dynamic (or behavioral) view: emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects. This view includes sequence diagrams, activity diagrams and state machine diagrams.

    注意区分UML图与model模型两者的区别

    It is important to distinguish between the UML model and the set of diagrams of a system. A diagram is a partial graphic representation of a system's model. The set of diagrams need not completely cover the model and deleting a diagram does not change the model. The model may also contain documentation that drives the model elements and diagrams (such as written use cases).

    UML中包含的所有的图,汇总(这里有一部分是UML2.0新增的)

    9个图的中文名,包括:

    静态:

    类图(class diagram)

      描述“类们”,和他们之间的关系。

    对象图 (object diagram)

      描述“对象们”,和他们之间的关系。特定时间点的瞬时时间切片。

    构件图 (component diagram)

      描述交付物文件实体,以及他们之间的组织方式,二进制文件,脚本,文档,代码等。

    部署图(deployment diagram)

      描述物理实体,及他们之间的组织方式,服务器,数据库,交换机等。

    动态:

    用例图(use case diagram)

      描述用户们,用例(系统功能们),以及他们之间的关系。用来做高维度的(黑盒的)需求分析。

    交互图(interaction diagram)一 :顺序图/时序图(sequence diagram)

      描述的核心是message。表达message们在对象们之间,按照时间序列的流转信息。

    交互图二:协作图(collaboration diagram)

      描述的核心是对象们的关系,message作为关系表达的载体。用来清晰的阐述哪一个对象与哪一个对象之间存在信息交换。可以用序号标记隐含时序关系信息。

    状态图(statechart diagram)

      描述核心是对象,用来表达对象在若干状态之间的变迁。可以增加对event(触发状态的变迁)的描述。

    活动图(activity diagram)

      描述的核心是活动。活动是指对系统进行的操作,或系统提供的功能(与用例图中的用例有概念上的类似)。

      表达的内容是活动之间的逻辑与触发关系(与流程图类似)。同样可以用来做需求分析,维度比用例图略低。

    另外:时序图与协作图是逻辑等价的。状态图与活动图是逻辑等价的。

    所有图,示例:

     

    Linux下画UML的工具:

    umbrallo (KDE):   不好看,丑陋

    modelio: https://www.modelio.org/downloads/download-modelio.html  下的慢,太大,太复杂。

    Dia: http://dia-installer.de/doc/index.html 轻量,挺好。

    UML教程: https://www.tutorialspoint.com/uml/

    阅读教程:

     阅读笔记见:

    [本体论][UML][统一建模语言][OWL]从本体论到UML到OWL

    UML只是工具,

    有一本书,https://book.douban.com/subject/10549583/ 。 介绍如下:

    引用作者原话,“本书是一本结合了面向对象方法、软件工程方法、基于 UML 的建模方法的全程建模的书”。
    
    关于“全程建模”,本书的主体就是“使用 RUP 方法,使用 UML 工具,进行系统分析建模”。

    软件开发方法学:

    RUP

    https://baike.baidu.com/item/RUP

    软件工程领域,与RUP齐名的软件方法还有:
    净室软件工程、CMMI;
    极限编程(extreme programming,简称 XP)和其他敏捷软件开发(agile methodology)方法学。
    RUP最重要的它有三大特点:1)软件开发是一个迭代过程,2)软件开发是由Use Case驱动的,3)软件开发是以架构设计(Architectural Design)为中心的。 [2] 
  • 相关阅读:
    【WinHec启示录】透过Windows 10技术布局,谈微软王者归来
    管中窥豹,物联网之我见
    微软借力.NET开源跨平台支持,布局物联网平台开发
    面向对象开发方式的开源硬件--.NET Gadgeteer
    【物联网智能网关-18】多通道远程安全升级
    vim 多文件编辑【超实用】
    debian下samba配置
    制作根文件系统的经验
    c语言: inline(gcc)
    Cramfs、JFFS2、YAFFS2的全面对比
  • 原文地址:https://www.cnblogs.com/hugetong/p/9646902.html
Copyright © 2011-2022 走看看