共四个 Chapter,持续输出中。

参考资料:

UML软件建模技术-基于IBM RSA工具(清华大学出版社)

UML2.0基础与RSA建模实例教程(人民邮电)

面向对象葵花宝典(李运华)(电子工业出版社)

火球——UML大战需求分析(第二版)(张传波 )

吉林大学统一建模语言及工具 ppt

Why we modeling and What is UML

Why We Modeling

What is a model?

  • A model is a simplification of reality.

What is Modeling?

  • 建模就是认识现实世界

What is Software Models?

  • 软件模型的概念

    • 软件模型:通过一定的形式和方法用来描述软件的模型。
    • 软件建模:建立软件模型的过程被称为软件建模。
  • 软件模型的内容

    • 需求模型:描述软件向用户所能够提供的外在特性,包括软件的目标、

      功能、性能等。
    • 分析模型:立足于系统的抽象逻辑建模.
    • 设计模型:软件设计方案的规范化描述。包括软件的架构、详细设计、界面设计、数据库设计等模型。
    • 测试模型:测试软件的方案描述.

Software Modeling

Software modeling elements

Object oriented software modeling

在软件开发中,采用与人的思维方式相一致的,直接面向客观事物,面向所要解决的需求问题,并用一套对象、类、继承、消息等机制开发软件的系统化软件建模方法。

特点:

  • 对象是软件建模的重心
  • 包括需求、设计、实现等多种模型

Software modeling process

  • 是指根据软件开发的需要,进行业务建模、需求建模、分析建模、设计建模和测试建模的过程。

Software modeling tools

  • Rational Rose2003
  • Enterprise Architect
  • Microsoft Visio
  • IBM Rational Software Architect
  • starUML

Introducing the UML

What is UML?

Unified Modeling Language

  • Unified: UML has become a world standard
  • Modeling: Describing a software system at a high level of abstraction
  • Language: More comprehensible, ready-to-use, expressive, and visualing.

The UML Is a Language for Visualizing, Specifying, Constructing and Documenting

  • Visualizing

    • Communicating conceptual models to others is prone to error unless everyone involved speaks the same language.
    • There are things about a software system you can’t understand unless you build models.
    • An explicit model facilitates communication.
  • Specifying

    • To build models that are precise, unambiguous, and complete. In particular, the UML addresses the specification of all the important analysis, design, and implementation decisions that must be made to develop and deploy software-intensive systems.
  • Constructing

    • UML models can be directly connected to a variety of programming languages.
  • Documenting

    • The UML addresses documentation of system architecture, requirements, tests, project planning, and release management.

History of UML

Skip !!!

The essence of UML

  • UML 软件过程规定软件开发的阶段、步骤和工作。和程序设计语言的关系

    • Java、C++ 等程序设计语言用来编码实现一个软件系统。
    • UML用于对一个软件系统建立模型。
  • UML 和软件过程的关系
    • 软件过程规定软件开发的阶段、步骤和工作。
    • UML 是语言,用来描述软件模型。

A Practice of Visual Modeling with UML

UML结构

物件

类 Class

类的定义

类是具有相同属性、操作、关系和语义的对象集合的总称。通常在 UML 中类被画成矩形

表示形式

  • 类名 The class name

    • 每个类都必须有一个名字,用来区分其它的类。
    • 名词或名词短语(动词或动词短语表示控制类)。如:人,桌子,图形,汇总
    • 尽可能明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词。如:帐户,订单
    • 用英文,第1个字母大写。如:Shape, Person,CheckingAccdount
  • 属性 Attribute

    • 描述类所表示事物的静态性质
    • 格式:[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
      • 可见性:该属性对外部实体的显现程度。

        • 公有 public: + 所有可见
        • 受限 protected: # 子类及本身可见
        • 私有 private: - 本身可见
        • package: ~ 包内可见
      • 属性名:第 1 个英文单词首字母小写,其它单词首字母大写。如:contactName
      • 类型:
        • 字符串: String
        • 日期: Date
        • 布尔: Boolean
        • 整型: int
        • 其他
      • 多重性:表示属性取值的多寡,以及有序性
        • name:String[0..1],表示属性”name”可能无值,也可能仅有一个值
        • points:Point[2..* ordered]:表示有两个或多个值,有序
      • 初始值:表示属性初始所取的值
        • #visibility:Boolean=false:表示属性 visibility 初始取 false
      • 特性:表示属性约束说明
        • #visibility:Boolean=false{R/W}:表示属性 visibility 可读,写
  • 操作

    • 描述类所表示事物的动态性质
    • 格式:[可见性]操作名[(参数列表):返回类型]
      • 可见性:同属性的可见性格式
      • 操作名:第 1 个英文单词首字母小写,其它单词首字母大写。如:close()
      • 该操作的形式参数,可以为空。如 #create(), -attachXWindow(xwin: Xwindow)
      • 返回类型:该操作的返回值的类型。如: +display():Boolean

类的类型

按照其作用,类分为实体类,界面类和控制类三种类型。

  • 实体类 Entity Class

    • 实体类用来表示客观实体,像“图书”、“学生”,“订单”等都属于实体类。
    • 实体类一般对应着在业务领域中的客观事物,或者是具有较稳定信息内容的系统元素。
    • 实体类的名字用名词或名词短语。
  • 界面类 Boundary Class

    • 界面类用来描述系统与外界之间交互的系统要素,也称为边界类。
    • 界面类是对外界与系统之间交互的抽象表示,并不表示交互的具体内容,以及交互界面的具体形式。
    • 界面类的名字用名词或名词短语。
  • 控制类 Control Class

    • 控制类表示系统用来进行调度、协调、处理,以及业务处理的系统要素。
    • 控制类的名字用动词或动词短语表示。

接口 Interface

类的定义

  • 接口是未给出实现的对象行为的描述,一个或多个类可以实现接口,每个类实现接口的操作。

组件 Component

组件的定义

  • 组件代表了一个接口定义良好的软件模块。

  • 一个组件可能是源代码、可执行程序或动态库。如:一个DLL,一个JavaBeans

结点 Node

结点的定义

  • 节点代表系统运行时的物理单元,主要用于系统物理方面的建模。

包 Package

包的定义

  • 包是一个用来将模型单元分组的通用机制。

  • 包可以含有类、接口、组件、用例等物件或其它的包。

包的作用:任何大系统都必须划分为较小的单元,以便人们在某一时刻可以和有限的信息工作,使团队的工作不相互影响。

注释

注释的定义

  • 注释用于解释设计的思路,便于理解。
  • 一个好的模型应该有详尽的注释。

【UML】统一建模语言及工具的更多相关文章

  1. UML统一建模语UML2和EnterpriseArchitect

    其实前面的UML统一建模语言(一)所描述的都是UML1的内容,现在咱们聊一聊UML2. UML2.x完全建立在UML1.x基础之上,大多数的UML1.x模型在UML2.x中都可用.但UML2.x在结构 ...

  2. UML和绘图工具Visio介绍

    UML系列01之 UML和绘图工具Visio介绍 概要 UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语 ...

  3. 在线画UML图的工具

    工作需要在线画各种UML图,类图.协作图.用例图等等,调查了一些在线画UML图的工具,有的做的很好但要收费,例如:http://www.gliffy.com/,发现现在免费好用的是ProcessOn: ...

  4. UML建模学习1:UML统一建模语言简单介绍

    一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准.能够用来描写叙述(spec ...

  5. UML统一建模语言介绍

    统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...

  6. UML常用建模工具简介,安装方法和各自的优点

    这学期学习了统一建模语言,自己初学时对各种建模工具十分陌生,各种名词都不懂,软件也都不了解,开始很是不知所措.为了防止其他初学者陷入我的困境,自己对各种工具进行了总结: Visio:介绍:Visio是 ...

  7. 【转】Java 项目UML反向工程转化工具

    原文链接:http://www.cnblogs.com/bakari/p/3561207.html 今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对 ...

  8. UML系列01之 UML和绘图工具Visio介绍

    概要 UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语言.UML是在开发阶段,说明,可视化,构建和书写一 ...

  9. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL

    以下内容,是关于软件建模的方法与思路. UML与OWL都是基于本体论的建模语言. 本体论(哲学) 本体论(信息科学) UML(统一建模语言) more info 参考:[设计语言][统一建模语言][软 ...

随机推荐

  1. Jmeter测试dubbo接口填坑

    通过jmeter测试dubbo的方法网上有很多帖子,需要的自己度娘去就可以. 使用的时候有个问题需要提示一下,因为我碰到了,还耽误了一些时间,不说中间的过程.直接说处理方式: 问题是这样的: 将dub ...

  2. 第一个OC类

    1.如何声明一个类 格式 注意: 1.必须以@interface开头,@end结尾 2.成员变量的声明,必须写在@interface与@end之间的大括号中 3.方法的声明必须在{}下面,不能写在{} ...

  3. python小白记录三——pycharm+selenium搭建环境之 no module named 'selenium'异常解决

    在pycharm上搭建python+selenium自动化测试环境时,遇到一个很坑的问题:no moduel named 'selenium' 如下图: 1.查看你的python是否正确安装了sele ...

  4. Haar小波分析

    一 尺度函数与小波函数 基本尺度函数定义为:,对其向右平移任意 k 个单位,构成函数族 , 该函数族在 空间中正交,证明如下: 1 : 2 当 m 不等于 k 时, 函数族  构成一组正交基,并形成  ...

  5. Solution -「Gym 102956A」Belarusian State University

    \(\mathcal{Description}\)   Link.   给定两个不超过 \(2^n-1\) 次的多项式 \(A,B\),对于第 \(i\in[0,n)\) 个二进制位,定义任意一个二元 ...

  6. 前端提交数据到node的N种方式

    写在前面 本篇介绍了前端提交数据给node的几种处理方式,从最基本的get和post请求,到图片上传,再到分块上传,由浅入深. GET请求 经典的get提交数据,参数通过URL传递给node,node ...

  7. .Net Core Aop之IResourceFilter

    一.简介 在.net core 中Filter分为一下六大类: 1.AuthorizeAttribute(权限验证) 2.IResourceFilter(资源缓存) 3.IActionFilter(执 ...

  8. Python-Flask框架之"图书管理系统"项目,附详解源代码及页面效果截图

    该图书管理系统要实现的功能如下: 1. 可以通过添加窗口添加书籍或作者,如果要添加的作者和书籍已存在于书架上, 则给出相应的提示: 2. 如果要添加的作者存在,而要添加的书籍书架上没有,则将该书籍添加 ...

  9. 1. 堪比JMeter的.Net压测工具 - Crank 入门篇

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  10. ShaderLab实现Vignette过场动画效果

    实现Vignette过场动画效果 postprocessing中有渐晕效果(Vignette),镜头可以由边缘往中间慢慢变黑: 但是我打包WebGL的时候提示我postprocessing,GPU不支 ...