It's time to review design patterns, especially when I reach the turning-point of my career. That's not a small test, but a challenge to my life. Hold it!

http://blog.csdn.net/lovelion/article/details/17517213


View and Diagram

用户视图:Use Case Diagram // describe requiremnet

结构视图:Class Diagram, Object Diagram, Package Diagram, Composite Structure Diagram // static behavour

行为视图:State Diagram, Activity Diagram, SequenceDiagram, Communication Diagram, Timing Diagram, Interaction Overview Diagram // dynamic behavour

实现视图:Component Diagram // logical file <--> physical file

环境视图:Deployment Diagram // physical file <--> physical device


Class Diagram

Category

Entity Class, Control Class, Boundary Class

Model Element between Class Diagrams

Association: 双向关联,单项关联,自关联,多重性关联,聚合关系(Aggregation),组合关系(Composition)

Dependency: 作为参数,作为局部变量,调用静态方法

Generalization

Interface & Implement


Illustration


Demostration

Reference: http://www.cnblogs.com/hoojo/p/UML_design_constitute_example.html, http://raychou.blogbus.com/

Use Case Diagram (Demand Analysis)

用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元。

关注用户的输入和系统的输出。

  参与者:关联,泛化

  用例:关联,包含,扩展

用况图说明表格:

Class Diagram (System Analysis: 面向业务;System Design)  

  

Timing Diagram (System Analysis: 面向过程;System Design)  

Activity Diagram (System Analysis: 面向过程) 

Object Diagram

Component Diagram

Deployment Diagram

State Diagram

  Collaboration Diagram

 


消息通信:类之间只能通过消息控制(杜绝友元类)

粒度控制:同种类打包

OOA:(分析问题,列出功能,平台无关,现实世界)

需求模型:用况图,系统中的参与者对系统功能使用情况的描述,定义功能需求

基本模型:类图【对象层,特征层,关系层】

辅助模型:包图(把类打包),顺序图(方法执行的顺序),活动图(行为执行的过程),状态机图(状态见的转换)

- - - - - - - - - - - - - - - - - - - - - - - -

MDA(Model-driven architecture)

PIM --> PSM (平台无关-->平台专用)

- - - - - - - - - - - - - - - - - - - - - - - -

OOD:(对特定实现条件进行设计,软件世界)

问题域部分设计

  人机交互部分设计

  控制驱动部分设计:主动类;进程,线程

  数据接口部分设计

    构件化与系统部署

OOP:(具体语言,具体设计)


[Design Patterns] 1. Primary concept & term - UML的更多相关文章

  1. AMD - Learning JavaScript Design Patterns [Book] - O'Reilly

    AMD - Learning JavaScript Design Patterns [Book] - O'Reilly The overall goal for the Asynchronous Mo ...

  2. [Design Patterns] 4. Creation Pattern

    设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性.它是代码编制真正实现工程化. 四个关键元素 ...

  3. [Design Patterns] 3. Software Pattern Overview

    When you're on the way which is unknown and dangerous, just follow your mind and steer the boat. 软件模 ...

  4. Learning JavaScript Design Patterns The Module Pattern

    The Module Pattern Modules Modules are an integral piece of any robust application's architecture an ...

  5. Design Patterns in Smalltalk MVC 在Smalltalk的MVC设计模式

    Design Patterns in Smalltalk    MVC在Smalltalk的MVC设计模式 The Model/View/Controller (MVC) triad ofclasse ...

  6. Design Patterns Example Code (in C++)

    Overview Design patterns are ways to reuse design solutions that other software developers have crea ...

  7. How I explained Design Patterns to my wife: Part 1

    Introduction Me and my wife had some interesting conversations on Object Oriented Design principles. ...

  8. Design Patterns Uncovered: The Chain Of Responsibility Pattern

    Chain of Responsibility in the Real World The idea of the Chain Of Responsibility is that it avoids ...

  9. 图书-软件架构:《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书)

    ylbtech-图书-软件架构:<Design Patterns: Elements of Reusable Object-Oriented Software>(即后述<设计模式&g ...

随机推荐

  1. curl常用操作

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...

  2. bind() live()和delegate 区别

    Event bubbling (aka event propagation)冒泡 我们的页面可以理解为一棵DOM树,当我们在叶子结点上做什么事情的时候(如click一个a元素),如果我们不人为的设置s ...

  3. android: SQLite查询数据

    掌握了查询数据的方法之后,你也就将数据库的 CRUD 操 作全部学完了.不过千万不要因此而放松,因为查询数据也是在 CRUD 中最复杂的一种 操作. 我们都知道 SQL 的全称是 Structured ...

  4. Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

  5. 用C++为nodejs 写组件,提高node处理效率

    昨天研究了下如何用C++和node交互,在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C++来处理,然后通过回调(callback的形式),返回给node. 首先,先来看看node ...

  6. WPF中System.Diagnostics.Process.Start的妙用

    我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...

  7. jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明

    近期在移动方面的开发,使用jQuery Mobile ,移动方面的插件不如Web 方面的插件多,选择的更少,有一些需要自己去封装,但功力尚不足啊. 日期插件JQM也提供了内置的,但样式方面不好看,只好 ...

  8. android google 统计导致的文件冲突

    android studio 加入google 统计 1. buildscript { repositories { jcenter() } dependencies { classpath 'com ...

  9. SQL 存储过程入门(事务)(四)

    SQL 存储过程入门(事务)(四)   本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...

  10. python + hadoop (案例)

    python如何链接hadoop,并且使用hadoop的资源,这篇文章介绍了一个简单的案例! 一.python的map/reduce代码 首先认为大家已经对haoop已经有了很多的了解,那么需要建立m ...