书评
作为一本UML和需求分析的入门书来说还算可以,写的比较接地气,如果是做过很多项目的读者,很容易找到共鸣点。
美中不足:部分概念可能有错误,其中对于Component和Artifact的解释明显和Wikipedia的解释不一样,感觉应该是错误。
结论:三星推荐。
需求分析
需求分析的难点
屁股决定脑袋,眼界决定境界,各人有各人的想法
词不达意,想到说不清楚,说清楚写不清楚,写清楚理解不清楚
需求的持续演进,一天一个样
自学业务,争取尽快超越客户对需求的理解
认真考虑,认清客户真正的需求是什么,带来的价值是什么
BPR(Business Process Reenginerring),部分人员抗拒
Class Digram
Class Diagram 包含 Attribute(属于) 和Operation(操作)
如果类是一个Abstract Class,则需要用斜体表示
类之间的关系
Class之间的关系可以用Association表示,直线,上面可以加箭头(关系方向)、数量(1:1 1:N M:N)、文字(关系)
Class之间也可以有包含关系, 实心菱形表示强包含(Compostion 组合),空心菱形表示弱包含( 聚合 Aggregation 即子对象可以独立于父对象存在)
继续关系 (Generalization),用三角简表示
信赖关系(Dependency) 用带虚线的箭头表示
递归关系(Recursion),可以用到自身的包含(Aggregation/Compostion),当然也可以用关系(Association)
三角关系(Triangle)
对象图(Object Diagram)
一般使用比较少,多用于描述软件设计中的复杂算法和场景,需求分析中较少使用。
活动图Activity Diagram
结构建模一般用Class Diagram等Stracture Diagram表示,行为建模一般用Activity Diagram等Behavior Diagram表示
活动图包含
Iniital State 实心圆
Final State 实心套实心小圆
活动Activity 圆角矩形
判断Decision 菱形
Guard 监护,下图中[]内的文字
Merge 合并 从Decision合并后的菱形
泳道 Swimlane 表示活动的发起者
Fork 分支 表示并行中的开始
Join 汇合 表示并行中的结束,和Fork是成对出现
在Activity Diagram中可以引入对象(用矩形表示),用来表示工作成品(如需求说明书,规格说明书等),对象之间的连线叫Object Flow, 活动之间的连线叫Control Flow.
State Machine Diagram (状态机图)