UML基础介绍

1.UML的定义

统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节

2.OOAD

OOAD是根据OO的方法学,对软件系统进行分析和设计的过程

—— OOA 分析阶段

—— OOD 设计阶段

3.面向对象

面向对象( Object-Orientation ,简称OO)是一种系统建模技术

面向对象编程( Object-Orientation Programming,简称OOP)是按照OO的方法学来开发程序的过程通过分析系统内对象的交互来描述或建模一个系统交互的对象最终以类的形式组织

OO的方法由三部分组成

— 过程

— 标识

— 规则

4.OOP的主要特征

抽象(abstract)

  • 封装(encapsulation)
  • 继承(inheritance)
  • 多态(polymorphism)
  • 关联(association)
  • 聚合(aggregation)
  • 组合(composition)
  • 内聚与耦合(cohesion & coupling)

域对象之间的关系

1.关联(Association)

2.依赖(Dependency)

3.聚集(Aggregation)

4.一般化(Generalization)——泛化

一般化指的是类之间的继承关系。

5.内聚与藕合

  • 内聚:度量一个类独立完成某项工作的能力
  • 耦合:度量系统内或系统之间依赖关系的复杂度
  • 设计原则:增加内聚,减少耦合
UML图的分类

1.用例图(Use Case Diagram)

用例图

展示系统的核心功能及与其交互的用户

用户被称之为"活动者"(Actor)

用例使用椭圆表示

为简化建模过程,用例图可标注优先级

2.类图(Class Diagram)

表现类的特征

类图描述了多个类、接口的特征,以及对象之间的协作与交互

由一个或多个矩形区域构成,内容包括:

—— 类型(类名)

—— 属性(可选)

—— 操作(可选)

3.对象图(object Diagram)

表现对象的特征

对象图展现了多个对象的特征及对象之间的交互

4.组件图(Component Diagram)

表现软件组件之间的关系

5.部署图(Deloyment Diagram)

表现用于部署软件应用的物理设备信息

6.时序图(Sequence Diagram)

捕捉一段时间范围内多个对象之间的交互信息

强调消息交互的时间顺序

图1

图2

7.协作图 (Collaboration Diagram)

表现一定范围内对象之间协作的信息

强调参与信息交流的对象之间的组织结构

8.状态转换图(Statechart Diagram)

强调一个对象在不同事件触发时,其内部状态的转变过程

9.活动图(Activity Diagram)

描述活动的流程

10.包(package)

引用一组相关实体

通常可用于划分类的命名空间

包可用于

—— 命名(Naming)

—— 成员可见度(Member visibility)

—— 导入(Importing)

—— 继承(Extending)

—— 泛化(Generalization)

几种常见模式

1.观察者模式(Observer)

2.组合模式(Composite)

3.装饰模式(Decorator)

4.适配器模式(adapter)

5.代理模式(peoxy)

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

OOAD与UML的更多相关文章

  1. 《OOAD与UML那点儿事》目录索引

    关键字:OOAD.UML.设计模式 各位园友,大家好,我是Bobby,在学习OOAD和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料 [内容简介]掌握某种开发语言,让你实现了由零到一的脱 ...

  2. OOAD与UML笔记

         UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OO ...

  3. 笔记一:OOAD与UML

    一.面向对象的概念与方法 1.  面向对象 1.1. 面向对象是一种系统建模技术 1.2. 面向对象编程是按照OO的方法学来开发程序的过程 1.3. 通过分析系统内对象的交互来描述或建模一个系统 1. ...

  4. OOAD和UML

    ooad: object oriented analysis designer 又有两个分支: ooa(object oriented analysis):what to do ood(object  ...

  5. 【OOAD】OOAD概述

    什么是面向对象? OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序 ...

  6. 为什么需要学UML建模

    今天在看<设计模式>的时候,看到了许多的UML模型图,案例中作者用极少的代码却能讲清楚讲好设计模式的背景和思想,抽象成一张张的UML图就能很好的review和复盘,这对于在工作中习惯用代码 ...

  7. .NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)

    阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我 ...

  8. .NET知识结构

    .NET知识结构 .NET介绍 微软.NET战略及技术体系,.NET Framework框架类库(FCL),公共语言运行时(CLR),通用类型系统(CTS),公共语言规范(CLS),程序集(Assem ...

  9. JAVA架构师要求

    JAVA架构师要求专业素质要求:1.理解架构师的职责和架构设计的目标.原则及取舍:2.精通架构模式,Transaction.Security.Persistence等机制及实现,IOC.AOP.SOA ...

随机推荐

  1. markdown流程图画法小结

    markdown流程图画法小结 markdown 画图 流程图 最简单的流程图为例 ```mermaid!  graph TD  A --> B //在没有(),[].{}等括号的情况之下,图标 ...

  2. 对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。 经过若干次这样的变换,一定会使n变为1

    对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半.经过若干次这样的变换,一定会使n变为1.例如,3→10→5→16→8→4→2→1.输入n,输出变换的次数.n≤10 9 .样 ...

  3. ListIterator的使用

    package cn.lonecloud.Iterator; import java.util.ArrayList; import java.util.ListIterator; public cla ...

  4. PAT 1003. Emergency 单源最短路

    思路:定义表示到达i的最短路径数量,表示到达i的最短径,表示最短路径到达i的最多人数,表示从i到j的距离, 表示i点的人数.每次从u去更新某个节点v的时候,考虑两种情况: 1.,说明到达v新的最短路径 ...

  5. hihoCoder 1513 : 小Hi的烦恼 位运算好题

    思路:考虑第i个同学,第一门课排名比他靠前的同学的集合是S1,第二门课是S2...第五门课是S5,很明显比这个同学每门课程都优秀的同学就是S1&S2&S3&S4&S5, ...

  6. Linux shell的问题

    1.uptime命令可以查看当前系统的启动时间: w命令显示当前登录者top命令显示当前任务ps命令显示所有进程信息 uptime命令可以查看系统启动时间   2.使用shell时,默认的环境变量放在 ...

  7. pyinstaller打包py文件成exe文件时,出现ImportError: No module named 'pefile'错误解决办法!

    首先pyinstaller的安装与使用详见如下链接: 安装完成之后,命令行中输入pyinstaller之后,结果如下: ImportError: No module named 'pefile' 缺少 ...

  8. activiti怎么实现用户自定义流程?请先看这里

    最近一两个星期收到了好几个qq好友添加的请求和csdn的私信,里面基本都是询问activiti相关的问题. 尤其是今天有个朋友给我发了私信,内容如下: 你好,请问你关于activiti工作流的问题:怎 ...

  9. SPI FLASH与NOR FLASH的区别?

    1.SPI Flash (即SPI Nor Flash)是Nor Flash的一种: 2.NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR ...

  10. LINUX下printf输出字体的特效

    在学习LINUX网络编程的时候我们做了一个聊天系统,当时为了界面更漂亮点,于是在百度上搜索了下关于printf()函数的用法,和大家分享下:                           给pr ...