zoukankan      html  css  js  c++  java
  • 【UML】概述

    前言

            看完UML视频,很多人不明白UML到底是干什么用的,举个通俗的例子,就像盖房子一样,厨房卧室楼层之间怎么拼接,每个部分用什么材料,每个部分里放什么家具什么餐具,每个部分是干吗用的,UML就相当于施工图纸。我们知道,做一个小系统就像盖一间小房子,不需要图纸也可以,但是如果做大系统,试想,没有图纸,摩天大楼怎么拔地而起?

            老生常谈,首先,得说一下UML的主要内容。

    面向对象技术

    1、出现于20世纪70年代末,软件工程领域中的重要技术。
    2、是一种程序设计方法。
    3、对现实世界中问题的抽象方式。
    4、对面向对象建模技术的研究的主要成果就是统一建模语言UML。

    软件质量衡量指标

    外部:
    1、正确性
    2、健壮性
    3、性能
    内部:
    1、模块性
    2、灵活性和可扩展性
    3、可复用性
    4、可兼容性
    作用:提高了软件质量。

    模型与可视化建模

    模型:对现实的简化,把复杂系统变成小系统。
    可视化:一幅图胜过千言万语。

    模型组成

    系统(模型的对象)
    目标(系统的目标)
    组分(构成系统的各种组分或子系统)
    约束条件(系统所处的环境及约束条件)
    变量(表述各组分的量的变化,分内部变量,外部变量和状态变量)

    模型表示

    M={O,G,T,V,R,S},其中
    O:模型对象集
    G:模型目标集
    T:模型系统所处环境及约束条件集
    V:模型变量集
    R:变量间关系集
    S:模型状态集(初→终)

    建模原理

    分解、抽象、泛化(继承)、投影/视图、构件化(软件做成构件,有统一接口)、形式化

    什么是UML

    1、UML(Unified Modeling Language):统一建模语言是用来设计软件蓝图的可视化建模语言。
    2、支持面向对象系统的分析、设计、实现和交付等各个环节,可用于系统的理解,设计,浏览,维护和信息控制。
    3、在Booch方法,OMT方法,OOSE方法基础上,广泛民主的发展而成。
    4、1997年11月被OMG组正式采纳。
    5、不是一个程序设计语言。
    6、不是一个形式化语言。
    7、是可视化建模语言。

    软件过程

    RUP

    统一软件过程RUP(Rational Unified Process):目前影响大,面向对象的软件开发过程。

    特点

    1、用例驱动(用户需求驱动)
    2、以架构为中心
    3、采用迭代和增量的开发过程

    四阶段

    初始、细化、构造、移交。
    每个阶段又包括多个迭代过程。

    软件危机主要特征

    1、开发周期大大超过规定日期。
    2、软件开发成本严重超标。
    3、质量难于保证。

    软件开发面临的问题

    1、不能满足用户或商业要求。
    2、不能很好的定位需求。
    3、模块难于集成。
    4、到最后才发现错误。
    5、对于终端用户来说质量较差。
    6、负载时性能差。
    7、没有协调团队的努力。
    8、不断地修改—发布问题。

    UML工具

    1、Rational Rose
    2、Together
    3、Microsoft Visio

    UML构成

    1、事物(构成模型图的一些基本图形符号,表示一些面向对象的基本概念)
    2、关系(表示基本图示符号之间的关系)
    3、图(特定的视角对系统所做的抽象的描述)
    总结:事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。

    事物(things)

    结构事物(静态部分)

    1、类(对一组具有相同属性、方法、关系和语义的对象的描述,一个类实现一个或多个接口)
    2、接口(描述了一个类或构建的一个服务的操作集,接口仅仅定义了一组操作的规范,并没有给出操作的具体实现,类给出了具体实现)
    3、协作((定义了一个交互,有结构,行为和维度,一个给定的类可以参与几个协作)
    4、用例(对一组动作序列的描述。需求分析阶段。)
    5、主动类(其对象至少拥有一个进程或线程,因此它能启动控制活动)
    6、构件(比类大。系统中物理的、可替代的部件,遵循且提供一组接口的实现。存在形式多样。)
    7、节点(运行时才存在的物理元素,有记忆能力和处理能力。用立方体表示。)

    行为事物(动态部分)

    1、交互(行为,特定语境中完成特定任务的一组对象之间交换的消息组成。一个对象的群体的行为或单个操作的行为可用一个交互来描述)
    2、状态机(状态,转换,事件,圆边矩形表示)

    分组事物(组织部分)

    1、包(把元素组织成组的机制,唯一的组织机制,可以是类、接口、构件、节点、协作、用例和图、甚至其他包)

    注记事物(解释部分)

    1、注释(描述说明和标注模型的任何元素)

    关系

    关联

    描述了两个或多个类之间的结构性关系。

    依赖

    两个事物之间的使用关系

    泛化

    特殊/一般关系,特殊元素<子元素>的对象可替代一般元素<父元素>的对象,用这种方法,子元素共享了父元素的结构和行为

    实现

    类元之间的语义行为,一个类元描述了另一个类元保证实现的契约

    1、类图(把系统中的类画出来,并描述类与类之间的关系)
    2、对象图
    3、状态图(存在状态机,状态转换)
    4、构件图(构件之间关系)
    5、部署图(部署到真实环境中)
    6、协作图(描述系统动态行为)
    7、交互序列图(描述系统动态行为)
    8、活动图(描述流程,活动,序列)
    9、用例图(描述用户需求,从用户角度描述系统功能,指出执行者)

    UML的规则

            不能简单地把UML的构造块按随机的方式放在一起。像任何语言一样,UML有一套规则,这终规则描述了一个结构良好的模型看起来应该像什么。
    UML有用于描述如下事物的语义规则:
    1、命名为事物、关系和图起名
    2、范围给一个名称以特定含义的语境
    3、可见性怎样让其他人使用或看见名称
    4、完整性事物如何正确、一致地相互联系
    5、执行运行或模拟动态模型的含义是什么

    UML中的公共机制

    1、规格说明(提供了对构造块的语法和语义的文字叙述)
    2、修饰(每个元素都有个基本符号,可以把各种修饰细节加到这个符号上)
    3、通用划分(类/对象二分法;接口/实现二分法)
    4、扩展机制(对UML图示符号的扩展)

    UML在软件开发各个时期的应用

            在软件开发各个阶段,使用不同的UML图对系统进行描述。
            采用面向对象技术设计软件系统时,使用例图来描述用户需求,使用类图、对象图、包图、构件图和部署图这五种静态图来描述系统的静态结构;使用顺序图,合作图,活动图和状态图这四种图描述系统动态行为。

    需求

    采用例图来描述需求(角色、功能、外部交互)。

    分析

    1、明确解决问题的细节
    2、采用类图描述静态结构。
    3、采用顺序图、合作图、活动图、状态图来描述动态行为。

    设计

    1、给出解决方案。
    2、采用类图、包、对类的接口进行设计。

    实现

    将类用某面向对象语言实现。

    集成与交付

    构件图、包、部署图。

    测试

    1、单元测试使用类图和类的规格说明书。
    2、集成测试使用类图、包、构件图和合作图。
    3、系统测试使用例图来测试系统功能。
  • 相关阅读:
    grep 同时满足多个关键字、满足任意关键字和排除关键字
    随笔_生活感想
    oracle中to_number(),LPAD(),NVL()函数
    向数据库插入数据为null——忘记加@RequestBody
    自定义css样式覆盖Element-ui的样式
    ORA-00001: 违反唯一约束条件
    ORA-01400: 无法将 NULL 插入 ("JXKH"."SYS_MENU"."MENU_ID")
    'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    Error: Cannot find module 'webpack-merge'
    ERROR:oracle.jdbc.driver.OracleDriver is deprecated.
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6782343.html
Copyright © 2011-2022 走看看