任务二 面向对象的建模 4. UML静态建模 类图 对象图 包图 组件图
1)UML静态建模的基本步骤
UML建模机制 描述需求 静态建模 (结构图) 动态建模 (行为图) 用例图 活动图 交互图 状态图 类图 组件图 部署图 对象图 组件结构图 包图 时序图 协作图
OOA&OOD: 6.绘制业务领域类图 7.绘制实现类图 1.需求分析 2.画出业务用例图 3.为每一个业务用例绘制活动图 4.绘制系统用例图 5.描述用例规约 6.绘制业务领域类图 7.绘制实现类图 8.绘制序列图
OOA&OOD:step6 6.绘制业务领域类图 1.需求分析 2.画出业务用例图 3.为每一个业务用例绘制活动图 4.绘制系统用例图 5.描述用例规约 6.绘制业务领域类图 7.绘制实现类图 8.绘制序列图
OOA&OOD:step7 7.绘制实现类图 1.需求分析 2.画出业务用例图 3.为每一个业务用例绘制活动图 4.绘制系统用例图 5.描述用例规约 6.绘制业务领域类图 7.绘制实现类图 8.绘制序列图
UML静态建模的步骤 确定对象 定义类 定义类间的关系 画出类图 画出对象图
2)UML静态建模涉及的图形
2.1 对象图 Object Diagram 对象图是显示了某时刻一组对象和他们之间的关系。 使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。 对象图和类图一样反映系统的静态过程,但对象图是从实际的或原型化的情景来表达的。 对象图可以被看作是类图在某一时刻的实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 对象图使用与类图相同的符号和关系。
对象图 应用: 通过对象图,从某个时刻实际的情景,反映一组对象和对象之间的关系。 帮助建立类图
案例分析 问题背景 某学校图书馆一直使用传统卡片管理书籍;但随着图书和读者的增加,图书馆工作人员的工作量越来越大,图书管理混乱。为了提高工作效率,学校领导决定开发一套图书馆信息管理系统对图书进行综合管理。
案例分析:需求获取、分析 识别参与者 识别用例 借书 还书 预定 取消预定 读者信息维护 维护书刊信息 维护物理书刊信息 登陆 用例描述 借阅者 管理员 识别用例 借书 还书 预定 取消预定 读者信息维护 维护书刊信息 维护物理书刊信息 登陆 用例描述
案例分析:用例图
案例分析:活动图
案例分析:“借书”用例的描述 用例叙述:管理员将图书借给借书者并进行登记。 其他事件流: 假设条件:借书者信息已经存储于系统中,即不是一个新用户。 前置条件;借书者将姓名和要借的书名告诉管理员。 后置条件:借书者拿到书,借阅信息被登记。 参与者:借书者。 主事件流: (1) 借书者提出借书申请,用例开始。 (2) 管理员选择“借书”选项。 (3) 查找选择该标题 Al:没有这个标题 (4) 选择该标题下的有效书目 A2:无有效书目 (5) 查找选择借书者 A3:找不到借书者信息 (6) 图书馆将书借出 (7) 登记一个新的借阅 A4:借阅者有预订 (8) 用例结束 其他事件流: Al:没有这个标题 (1) 系统显示无标题提示信息 (2) 返回主事件流第(3)步 A2:无有效书目 (1) 系统显示无有效书目提示信息 (2) 返回主事件流第(2)步 A3:找不到借书者信息 (1) 系统显示该借书者为无效用户 (2) 返回主事件流第(5)步 A4:借阅者有预订 (1) 清除预订信息 (2) 返回主事件流第(8)步
案例分析:确定对象 画出对象图 借阅者 书刊 物理书刊 借阅信息 预定信息 Category主题 Class-&-Object Structure 1+ Attribute Category主题 借阅者 书刊 物理书刊 借阅信息 预定信息
2.1 类图 面向对象方法的最终目的是识别出所有必需的类,并分析这些类之间的关系,从而通过编程语言来实现这些类,并最终实现整个系统。
在进行构造类图描述系统的工作时首先要定义类,即: 案例分析:定义类 在进行构造类图描述系统的工作时首先要定义类,即: 将系统要处理的数据抽象成类的属性 将处理数据的方法抽象为操作 静态信息 动态信息 类的名称 定义类的基础是系统的需求规格说明。 通过分析需求说明文档,从中找到需要定义的类。 属性 属性 :数据类型 属性 :数据类型 = 初值 操作 操作(参数表):结果类型
书刊属性: 书籍名、作者、图书号、数量、出版社…… 借阅信息:借书者姓名、地址、联系地址、借阅期限…… 书本信息:标识号 (具体到每本书籍) 图书、期刊信息:二者存在区别 预定图书:预定时间、名称……
类 Borrower 描述物理借阅者的信息。借阅者信息包括姓名、地址、邮政区号、身份证号码和电话号码。类Borrower代表的是物理借阅者在系统中的帐户。 私有属性:姓名、地址、电话…… 公共操作: 添加借阅记录 删除借阅记录 返回借阅记录数目 返回预定书目记录信息 取消预定书目信息……
类 Title 描述了书刊 的种类信息。对于每种书刊(Title对象),图书馆通常拥有多个物理拷贝(Book对象)。类Title封装了书刊名、作者、ISBN/ISSN号等信息。 私有属性:署名、作者、ISSN号码、书刊类型(图书OR期刊) 公共操作: 创建Title对象; 添加物理书刊; 返回物理书刊的数目; 返回索引号对应的物理书刊……
类 Loan 描述了借阅者从图书馆借阅物理书刊的借阅记录。一个Loan对象对应一个借阅者(Borrower对象)和一个物理书刊(Book对象),物理书刊还回时删除Loan记录。 私有属性:借阅者、书刊、借阅日期 公共操作: 创建Loan信息; 返回借阅者对象; 返回物理书刊对象; 返回借阅日期; 将Loan对象属性写入数据库……
类 Reservation 预定已经被借阅出的书刊。当书刊被还回时,预定者可优先借阅该书刊。一种书刊(Title对象)可以被不同的借阅者预定。 私有属性:title、borrower、date 公共操作: 创建reservation对象; 返回预定书刊的书刊种类; 返回预定书刊的借阅者; 返回预定书刊的日期; 将reservation对象的属性写入数据库……
案例分析:定义对象间的关联 关联的名称、关联的重数、关联的方向
讨论:对象图与类图
2.3 包图与组件图 在OO的系统分析中,通常将系统中的类分为3种: 将这三类分别以包的形式进行包装,形成3个包,之间的关系由组件图表示。 用户界面类 业务处理类 数据访问类 将这三类分别以包的形式进行包装,形成3个包,之间的关系由组件图表示。 ****系统 业务处理包 数据访问包 用户界面包
项目分析:大学新生报到系统 的用户管理
用例建模
“用户管理”模块:用例分析 用例编号 2.1 用例名称 管理用户 用例描述 对用户进行浏览、添加、删除、修改 主参与者 系统管理员 主要流程 …… 其他场景
“用户管理”模块:用户类
“用户管理”模块:数据库操作类
“用户管理”模块:用户界面类
“用户管理”模块:业务处理类 业务处理类 getUserInfoAll() getUserInfoByUserName() getUserType() ……