设计模式实战研磨 ——第1篇 UML环境搭建
starUML是开源的基于统一模式语言与模式驱动开发的平台,前身是Plastic,从1996年开始开发。1998年开始,Plastic转变为UML建模工具。2005年改名为StarUML,最新版本StarUML 5.0已经是一款功能全面的产品,支持UML2.0,支持MDA,Java、C++、C#转换,MS-Office集成,XMI等。
新建project后会有五种模式,其中前几种代表不同的工程设计实战模式,4+1view mode是四加一模型,以场景为模型中心,如图所示,包含逻辑视图,开发视图,过程视图与物理视图。好处在于场景是内聚的,对于行业属性特别强的应用场景,比如CT机器的操作系统设计、飞机飞控系统交互设计等4+1更有利于设计提升收益,迭代几次后易形成价值领域模型。
新建project中第二种默认路径,是按业务推进过程来演化的,用例(usercase model) ,分析(analysis model),设计(design model),实现(implementation Model),布署(deployment model)
新建project中的rational approach这是IBM自已做出来的一套方式,广泛都到IT设计领域的认可。
设计是从理念到代码的,不是代码到设计。staarUML5可以自动生成c++ c# java语言
设计模式这里是指软件设计模式是几个博士生写的一篇论文被引入工业领域而成名,最经典的是Gof23,其基本的思维方式来自建筑学,如何通过基础结构件构建一个可持续扩展、稳定的、多元化的软件结构体,这就是设计模式的由来。
上图是适配器模式。如此简单有趣。

我们可以从哪些切面看我们的软件、程序、算法、组件、构件、基础件等,从设计模式来看就是内聚的一个个知识域,我们构建让经验、方法、工作流程、思维模式可以重复运用,是成功的经验我让其成功反复再现。但UML不是独立,它跟project management、开发模式如极限模式、原型等模式是合在一起打造软件体系。这应该属于一种设计思维、系统思维的整合。

欢迎加入公众号玛克人
设计模式实战研磨 ——第1篇 UML环境搭建的更多相关文章
- Java Web项目实战第1篇之环境搭建
写在前面的话 从今天开始一个Java Web实战项目,参考自 http://blog.csdn.net/eson_15/article/details/51277324 这个博客(非常感谢博主的分享精 ...
- Flask框架的学习与实战(一):开发环境搭建
Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2.很多功能的实现都参考了django框架.由于项目需要,在 ...
- FFMPEG高级编程第一篇:环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- 1-ESP8266 SDK开发基础入门篇--开发环境搭建
因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...
- 自动化测试之Selenium篇(一):环境搭建
当前无论找工作或者是实际项目应用,自动化测试扮演着非常重要的角色,今天我们来学习下Selenium的环境搭建 Selenium简述 Selenium是一个强大的开源Web功能测试工具系列 可进行读入测 ...
- Angular2+学习第2篇 cli 环境搭建过程
Angular-cli是angular团队针对Angular2提供的脚手架,用于环境搭建,运行等:具体参考Angular-cli GitHub Angular的启动过程,需要先回答三个问题: 启动时加 ...
- Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建
前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战.写教程一方面在自己写的过程中需要考虑更多的东西,另一方面希望能对node入门者有 ...
- RobotFramework第一篇之环境搭建
定义:是一款python编写的功能自动化测试框架,具备良好的扩展性,可以进行分布性测试 1:对编程能力要求低,容易上手 2:关键字调用方式,已经定义好的功能,只需要去调用它,一个关键字实现了一个功能, ...
- python从零开始 -- 第1篇之环境搭建
事实上,网络上有很多相应的教程,本文无意做成文章的粘贴展示板,附上我认为的简易的安装详解: 安装 Python 环境(编程小白的第一本 Python 入门书),包含了python以及相关的IDE,图文 ...
随机推荐
- leetcode 268 Missing Number(异或运算的应用)
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...
- stl_vector.h
stl_vector.h // Filename: stl_vector.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http ...
- I.MX6 Android 永不休眠
/************************************************************************* * I.MX6 Android 永不休眠 * 说明 ...
- 关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总
32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样): linux64 ...
- luogu1336 最佳课题选择
背包问题加强版orz #include<iostream> #include<cstdio> #include<cmath> #include<cstring ...
- APIO2017 游记
参加了APIO的同学肯定知道我为什么只写标题不写内容. QAQ
- Poj_1002_java解决
一.Description 电话号码的标准格式是七位十进制数,并在第三.第四位数字之间有一个连接符.电话拨号盘提供了从字母到数字的映射,映射关系如下: A, B, 和C 映射到 2 D, E, 和F ...
- HDU1042(N!:设4为基数)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submi ...
- netty中的EventLoop和EventLoopGroup
Netty框架的主要线程就是I/O线程,线程模型设计的好坏,决定了系统的吞吐量.并发性和安全性等架构质量属性. 一.Netty的线程模型 在讨论Netty线程模型时候,一般首先会想到的是经典的Reac ...
- 【jQuery】jquery.metadata.js验证失效
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...