1.什么是可视化建模?
抽取核心信息,并用图形表示出来。(是传递信息最直观的方式)
优点:剔除细节,降低复杂性。
本质:一种做计划的方式
2.哪些东西可以被可视化建模?
任何“静态的事物”或“动态的过程”均可建模。(不局限于软件领域)
可视化建模按照不同的视角分类:
1)分析做什么,得到 “用例图”
2)分析怎么做,得到 “交互图”(分为:序列图和协作图)
关注步骤的时间顺序,得到 “序列图”
关注步骤的实现角色,得到 “协作图”
3)分析参与系统工作的各个角色(职责分配),得到 “类图”(可以从交互图中提取出来)
类之间的关系(the way they talk to each other):
关联association:外键关系(依赖于另一对象的某个属性)
依赖dependency:调用关系(直接依赖于另一对象)
聚合aggregation:弱集合关系(整体和局部的关系)
组合composition:强集合关系(整体和局部的关系)
multiplicity:指示数量关系
navigation:指示调用方向
继承inheritance:继承关系
4)详细分析某个对象的状态迁移过程,得到 “状态图”
5)描述用软件实现后各组件的逻辑关系,得到 “组件图”
6)描述用硬件实现后各组件的物理分布,得到 “部署图”
3.用例驱动的迭代开发过程
时间上分为4个阶段:初始阶段 --- 细化阶段 --- 构建阶段 --- 交付阶段
细化阶段迭代的是“最小瀑布模型”:计划 --- 捕获需求 --- 分析&设计 --- 代码实现 --- 测试 --- 发布
4.为什么要做计划?
用最小的成本取得最大的成功!
项目失败付出的代价:返工,增加成本,经常被称为风险。
计划的目的是降低风险,是为了接近成功而采取的措施。
5.什么是UML?
统一建模语言:Unified Modeling Language
任何语言,在本质上是一种通信协议(你看了能懂,别人看了也能懂)。
UML定义了一组描述事物的基本元素和规则。
6.为什么要使用UML?
做一个项目 --- 想一次性成功(不多花费成本) --- 提前做计划 --- 最好用图形画出来(比较直观) --- 画图需要选择一个工具 --- 大家都推崇UML --- 选择使用UML
7.UML在面向对象设计中的工作?
1)描述系统需求
2)根据需求,建立系统静态模型
3)描述系统的行为