把UML概念融合到整个软件设计过程

UML是统一建模语言的缩写,(统一场论?)给人一种虚高的感觉。以前一直我没有关注,直到看到一本书,才知道工程写法和教科书写法差异实在太大。为什么要引入UML? 我的理解是自顶向下,重用以前的经验和设计,避免改过来改过去的(我有血的教训,只能用苦逼的码农来形容)。调bug不在此列。

需求分析 --use case diagram
  并不是一个需求/功能就画一个圈,而是对需求有一个分类,抽象的过程。关联在一起的需求同时解决的效率高些,因为省去了思维和场景,环境的切换。比如分类:UI,
业务流程,数据存储,呈现等等。

概要设计 --block/deployment diagram
  这里指的是模块划分,是一个功能对应一个函数,还是一个C文件,还是一个目录。
模块之间定义良好的接口来交互。低耦合,比如...

详细设计 --state chart, sequence diagram
  就是指状态机啦,硬件IC就是这个来描述的,不过我们软件里面小的很少或者没有意识到还可以用它。

用例图
use case 表示客户需要的功能。还包括其他场景,剧本等因素。
活动图
在流程图上增加了事件同步执行,消息收发等。
状态图
在有限状态机上增加了sub-state
顺序图
受限于OS分层架构,模块沟通与执行顺序有关。


支持工具
Umlet
--我接触过的最好用的java开发的软件(没有之一),在易用性上我认为它超过了
eclipse, 相当一部分原因是它的设计理念好:可直接修改模板和重新组合模板元素。

Rhapsody in J byI-Logix Inc.
林永仁在一本书上用到了,因为这本书我才放弃了对UML的偏见(或许是以前写UML的

都写得太差劲)


后记

感觉自己写这功力不足,以后再慢慢添加。



你可能感兴趣的:(软件设计)