商业建模:UML视角下的全面解析
立即解锁
发布时间: 2025-08-20 02:28:35 阅读量: 2 订阅数: 17 

# 商业建模:UML视角下的全面解析
## 1. 商业建模基础概念
商业建模是对商业活动进行抽象和描述的过程,旨在帮助理解和优化商业流程。在这个过程中,涉及到多个关键概念,如有效性规则、投票机制等。
- **有效性规则(Validity Rule)**:定义了委员会会议何时有效,针对不同资格的成员规定了所需的参与率。
- **投票机制(Voting Mechanism)**:根据投票结果(分为赞成、反对和弃权)以及有权投票的人数来确定投票的最终结果。
以下是相关的数据类型定义:
```plaintext
<<datype>>
Qualification
<<datype>>
VotingMechanism
check(Yes:Int,No:Int,Null:Int,mayVote:Int): Boolean
<<datype>>
ValidityRule
rate(Qualification): Real
<<datype>>
Time
<<datype>>
Text
```
## 2. 商业建模的视图
### 2.1 数据视图(Data View)
数据视图包含了商业活动中的各种数据类型,如资格、投票机制、时间和文本等。UML符号的灵活性允许建模者选择合适的精度,有些数据类型(如资格和文本)未详细说明,而有些(如投票机制)则进行了抽象建模。
### 2.2 静态视图(Static View)
静态视图通过UML包中的类图展示商业中的实体及其相互关系。使用以下三种相互排斥的原型对商业实体进行分类:
- `<<bw>>`:业务工作者,执行商业基本操作的实体。
- `<<bo>>`:业务对象,基本操作所针对的实体。
- `<<ext>>`:外部实体,商业活动外部但需要与之交互的实体。
以下是部分类的定义示例:
```plaintext
<<bw>>
<<auto>>
Person
name: String
qual: Qualification
AcloseMeeting(Meeting)
Aparticipate(Meeting)
Adiscuss(Item,Text)
AmyVote(Item,Vote)
ApresentItem(Item)
AproposeResolution(Item,Text)
AscheduleMeeting(Committee,Time,Document)
AstartMeeting(Meeting)
announcedMeeting(Meeting)
closedMeeting(Meeting)
failedMeeting(Meeting)
presented(Item)
meetingResult(Document)
shown(Item,Text)
started(Meeting)
*
*
members
*
*
participants
0..1
agenda
*
*
meetings
of
<<bo>>
Document
0..1
minutes
*
chair
1
*
of
1..*
in
contains
Comunication
0..1
votes
Discussion
votedBy:VotingMechanism
Votes
yes: Int = 0
no: Int = 0
null: Int = 0
<<bo>>
Association
name: String
statute: Text
*
board
1
*
secretary
1
<<bo>>
Meeting
status:{scheduled,open,closed}
when: Time
open()
terminated()
setlle(Item,Text)
allSettlled(): Boolean
valid(): Boolean
addParticipant(Person)
*
associatesList
1
*
who
*
<<bo>>
Committee
name: String
chairQual: Qualification
memberQual: set(Qualification)
meetingVal: ValidityRule
conflict(Time): Boolean
scheduledMeeting(Time,Document)
Item
title: String
content: Text
approved(): Boolean
<<bo>>
AssocList
```
同时,使用OCL约束可以精确地描述实体之间的关系,例如:
```plaintext
context C: Committee inv:
C.members->includes(C.chair) and C.chair.qual = C.chairQual and
C.memberQual->includesAll(C.members.qual)
context M:Meeting inv:
(M.status = scheduled) <=> M.minutes.size()= 0
context A: Association inv:
(A.associatesList.who->excludes(A.secretary)
```
### 2.3 组织视图(Organization View)
组织视图通过类图展示商业的组织结构。部分类可以使用`<<ou>>`原型表示组织单元,聚合和组合关联描绘了不同单元之间的层次结构以及单元与工作者之间的成员关系。可以添加对象图来获得经典的“组织结构图”。
以下是一个简单的组织视图示例:
```plai
```
0
0
复制全文
相关推荐









