建模/MDA/MDD的基本概念
建模
- 建模是对现实世界的一个简化
- 因为不能完整地理解一个复杂的系统,所以要对它建模
- 建模是为了更好的理解我们正在开发的系统
- UML(Unified Modeling Language)
- AADL(Architecture Analysis & Design Language)
- MARTE(Modeling and Analysis of Real-Time Embedded system)
1. 建模的目的
模型按照实际情况后按照所需的样式对系统进行可视化
模型允许详细说明系统的结构和行为
2. MDA(模型驱动架构)
-
计算独立模型(Computation-Independent Model,CIM)
描述系统的需求和将在其中使用系统的业务上下文。此模型通常描述系统将用于做什么,而不描述如何实现系统。CIM 通常用业务语言或领域特定语言来表示。
-
平台独立模型(Platform-Independent Model,PIM)
描述如何构造系统,而不涉及到用于实现模型的技术。此模型不描述用于为特定平台构建解决方案的机制。PIM 在由特定平台实现时可能是适当的,或者可能适合于多种平台上的实现。
-
平台特定模型(Platform-Specific Model,PSM)
从特定平台的角度描述解决方案。其中包括如何实现 CIM 和如何在特定平台上完成该实现的细节。
3. MDD
UML
1. 行为类型
-
Simple
一个外部的角度来看,每一个动作都是原子性的和完整的。
被看作一个功能行为(数学函数式)。
对于输入的操作一样,不考虑历史信息。
用活动图来建模。
-
Stateful
将对象看成是特定类型的机器,有限状态机或状态机。
表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
状态机的一些状态(无效,使能,准备,采样,保持)。
sample-and-hold A/D converter
-
Continuous
连续行为的对象,其目前的行为是依赖于过去的行为和输入,但依赖是一个连续的,而不是离散的性质。
Fuzzy systems, PID control loops, and digital filters are examples of objects exhibiting continuous behavior. Their current behavior depends on past history but in a quantitative not qualitative way.
-
Use case diagrams
Describe the functional behavior of the system as seen by the user
-
Class diagrams
Describe the static structure of the system: Objects, attributes, associations
- There are three primary diagrammatic forms in the UML for depicting interaction scenarios—
- communication diagrams通信图,
- sequence diagrams顺序图,
- timing diagrams时序图.
-
Sequence diagrams
序列图(顺序图):Describe the dynamic behavior between objects of the system
- 描述对象按照时间顺序的消息交换。
- 包括的建模元素有:对象,生命线,控制焦点,消息
- Timing diagrams
-
Statechart diagrams
Describe the dynamic behavior of an individual object
- 状态图的两个基本概念:状态和转移。
- 状态:name,entry/exitaction,internaltransition,substate,deferred event
- 组合状态和子状态
- 历史状态:记住从组合状态中退出时所处的子状态,当再次进入组合状态时,可直接进入该子状态,而不是从组合状态的初态开始。如果到达终态则会丢失历史状态中的信息。
- 转移:表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生且警戒条件满足时进入第二个状态。
- 事件:调用事件,变化事件,时间事件,信号事件
exit-transition-entry:
1、IncomingRinging exit actions
2、On Hook exit actions
3、Pick up transition actions
4、Off Hook entry actions
5、Connected entry actions
-
Activity Diagrams
Model the dynamic behavior of a system, in particular the workflow
表示某流程中的任务的执行,可以表示某算法过程中语句的执行。
- 动作状态和活动状态
- 泳道(swimlane):区域划分,根据每个活动的职责对所有活动进行划分,每个泳道代表一个责任区。
- 分支(branch)
- 分叉和汇合:表示并发行为
- 对象流:在活动图中可出现对象,对象可以作为活动的输入或输出。