系统建模与概念模型基础解析
立即解锁
发布时间: 2025-08-21 01:58:03 阅读量: 2 订阅数: 6 


面向对象分析与设计:UML、OCL和IFML的综合指南
### 系统建模与概念模型基础解析
#### 1. 系统序列图的实际成果
系统序列图的主要实际成果是发现和设计系统命令与查询,这些是实现系统功能并供用户使用所必需的。根据相关示例,这些命令和查询如下:
- `createShoppingCart()`
- `searchBook(keyword*):book*`
- `add2Cart(selected book, quantity)`
- `getCartSummary ():<item*, total>`
- `finishOrder()`
#### 2. 相关问题探讨
以下是一些值得思考的问题:
1. **变体和异常处理程序的使用场景**:变体和异常处理程序是用例的替代流程,那么在哪些情况下应该使用变体,哪些情况下应该使用异常处理程序呢?
2. **本质用例与实际用例的区别**:本质用例和实际用例有什么区别?为什么本质用例对于需求分析更有价值?
3. **用例步骤的差异**:解释强制、补充和不适用用例步骤之间的区别。
4. **用例流程扩展**:扩展特定用例(如用例 03“交付订单”)的主流程。
5. **用例替代流程确定**:通过指出用例的替代流程,完成对特定用例的扩展。
6. **系统序列图设计**:为特定用例的主流程设计系统序列图,可以选择无状态或有状态策略。设计完主流程的序列图后,添加之前确定的替代流程。
#### 3. 概念建模基础
概念建模使用 UML 类图来呈现基本元素,主要包括概念、属性和关联这三个核心要素。下面详细介绍这些要素:
|要素|描述|示例|
|----|----|----|
|属性|简单的字母数字或原始信息,如数字、文本、日期等,总是与更复杂的元素(概念)相关联|在 Livir 项目中,客户姓名、付款日期、书籍标题和订单总价值|
|概念|表示在领域中有连贯意义的复杂信息,通常聚合属性,且不能仅用字母数字描述,还可能相互关联|在 Livir 项目中,书籍、客户、订单和付款|
|关联|一种连接不同概念的信息,不仅仅是简单的链接,本身也是信息|在 Livir 示例中,订单与客户之间、订单与书籍之间的关联|
这些要素紧密交织,在解释其中一个时很难不提及其他要素。
#### 4. 属性详解
在概念模型中,属性是字母数字和原始元素,如日期、货币、数字、字符串、区间等。以下是关于属性的一些详细信息:
- **属性类型**:属性可以有类型,但在概念模型中不是必需的。例如,在某些情况下,经典类型如 `String`,以及用户定义的原始类型(如 `IdNumber` 和 `PhoneNumber`)可以用于定义属性。对于具有形成规则的属性(如 `id` 和 `phone`),建议为其定义特定的原始类型。而像地址这样的属性,需要根据用户的信息需求来判断它是简单的字符串属性还是复杂的概念。如果仅用于打印信封和邮寄信件,它可以作为字符串属性;如果用于计算距离和路线,或对附近的客户进行分组,则应将其建模为复杂概念。
- **初始值**:属性可以声明初始值,即每次创建概念的新实例时,该属性将自动获得一个定义的初始值,必要时可以更改。例如,在 Livir 系统中,订单的总价值初始值可以设为零。可以在类图中定义初始值,也可以使用对象约束语言(OCL)
0
0
复制全文
相关推荐









