[Design Patterns] 1. Primary concept & term - UML
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的更多相关文章
- AMD - Learning JavaScript Design Patterns [Book] - O'Reilly
AMD - Learning JavaScript Design Patterns [Book] - O'Reilly The overall goal for the Asynchronous Mo ...
- [Design Patterns] 4. Creation Pattern
设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性.它是代码编制真正实现工程化. 四个关键元素 ...
- [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. 软件模 ...
- Learning JavaScript Design Patterns The Module Pattern
The Module Pattern Modules Modules are an integral piece of any robust application's architecture an ...
- Design Patterns in Smalltalk MVC 在Smalltalk的MVC设计模式
Design Patterns in Smalltalk MVC在Smalltalk的MVC设计模式 The Model/View/Controller (MVC) triad ofclasse ...
- Design Patterns Example Code (in C++)
Overview Design patterns are ways to reuse design solutions that other software developers have crea ...
- How I explained Design Patterns to my wife: Part 1
Introduction Me and my wife had some interesting conversations on Object Oriented Design principles. ...
- 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 ...
- 图书-软件架构:《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书)
ylbtech-图书-软件架构:<Design Patterns: Elements of Reusable Object-Oriented Software>(即后述<设计模式&g ...
随机推荐
- curl常用操作
1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...
- bind() live()和delegate 区别
Event bubbling (aka event propagation)冒泡 我们的页面可以理解为一棵DOM树,当我们在叶子结点上做什么事情的时候(如click一个a元素),如果我们不人为的设置s ...
- android: SQLite查询数据
掌握了查询数据的方法之后,你也就将数据库的 CRUD 操 作全部学完了.不过千万不要因此而放松,因为查询数据也是在 CRUD 中最复杂的一种 操作. 我们都知道 SQL 的全称是 Structured ...
- Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- 用C++为nodejs 写组件,提高node处理效率
昨天研究了下如何用C++和node交互,在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C++来处理,然后通过回调(callback的形式),返回给node. 首先,先来看看node ...
- WPF中System.Diagnostics.Process.Start的妙用
我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...
- jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
近期在移动方面的开发,使用jQuery Mobile ,移动方面的插件不如Web 方面的插件多,选择的更少,有一些需要自己去封装,但功力尚不足啊. 日期插件JQM也提供了内置的,但样式方面不好看,只好 ...
- android google 统计导致的文件冲突
android studio 加入google 统计 1. buildscript { repositories { jcenter() } dependencies { classpath 'com ...
- SQL 存储过程入门(事务)(四)
SQL 存储过程入门(事务)(四) 本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...
- python + hadoop (案例)
python如何链接hadoop,并且使用hadoop的资源,这篇文章介绍了一个简单的案例! 一.python的map/reduce代码 首先认为大家已经对haoop已经有了很多的了解,那么需要建立m ...