




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象建模实例 图书管理系统 面向对象的软件工程 同传统的面向过程的软件工程相比 在需求的获取 系统分析 设计和实现方面都有着很大的区别 UML是OOA和OOD的常用工具 使用UML来构建软件的面向对象的软件工程的过程 就是一个对系统进行不断精化的建模的过程 这些模型包括用例模型 分析模型 设计模型 然后 我们需要使用具体的计算机语言来建立系统的实现模型 关于这个图书馆系统 基本的需求比较简单 就是允许学生可以在图书馆借阅和归还图书 另外 也可以通过网络或者图书馆的终端来查阅和预订书 当然 图书馆管理员也可以对图书进行管理 一 用例模型 系统需求的获取 用例模型定义系统做什么 是用来获取系统需求的有效手段 用例模型由 角色 和 用例 组成 我们在构建一个用例的时候 通常要做的第一件事情是识别角色 或者说 参与者 然后我们需要识别系统为参与者提供的服务 或者说 参与者的行为 也就是用例 最后 我们确定角色和用例之间的关系 在这个图书馆系统中 我们可以识别出的角色有学生和图书管理员 整个用例模型包含的用例有 借书 还书 查阅图书 预订图书 以及图书维护 用例模型可以用用例图表示如下 确定有效用例的关键是 检查用例是否包含了一个完整的功能 用例不能定的过细 不能把一个完整的功能的一个部分作为一个用例 也不能在一个用例中包含过多的功能 例如 用户的登录 学生在预定图书的时候 可能会需要首先登录系统 这是系统的一个功能 但是 这个功能只是预定图书这个完整的功能中的一个步骤 或者说一个子功能 就不适于做成一个用例 另一方面 借书和还书 都是相对完整的功能 如果把这两个用例合并成一个类似于 处理图书 的用例 显然是不能明确的表达用例需要表达的含义的 1 描述用例 需要了解的是 使用UML进行面向对象的系统建模 并非只是意味着画UML图形 对UML图的文档说明是同样重要的 在描述用例时 我们可以用文字来描述 也可以用其他图形来描述 例如 顺序图或者活动图等等 下面 我们对借书这个用例来做描述 名称 借书说明 学生在图书馆挑选好需要的图书后 通过图书管理员把书借回去参与者 学生 图书管理员频率 每天可能会有很多次 最繁忙的情况是 借书的人非常多 按照现在的速度 大约每分钟完成一个人的结束工作前置条件 无后置条件 修改所借出的图书的剩余数量假设 借书者总是从图书馆找到书 然后才能拿书办理借书手续 因此 总是有足够的书可以出借 基本操作流程 借书成功1 学生将所借图书和借书证交给图书管理员2 图书管理员将学生借书证号码和所借图书输入系统3 系统校对借书信息 比对该学生以往借书情况和当前借书情况 如果不存在不允许借书的情况 则记录借书交易的信息 并且修改相应的馆藏图书的数量信息4 如果该学生已经预订了这本图书 则撤销该预定5 报告交易成功 可选操作流程 所借图书超出最大借书数量1 学生将所借图书和借书证交给图书管理员2 图书管理员将学生借书证号码和所借图书输入系统3 系统校对借书信息 比对该学生以往借书情况和当前借书情况 发现已超出最大借书数量 则停止当前交易 并且提示用户错误原因4 图书管理员可以应学生的意见 减少借书数量 并重新提交系统 用活动图进行描述 借书活动图 二 分析模型 用例模型是从最终用户的角度来看待问题 而分析模型是从开发者的角度来描述问题 用例模型的主要工作是描述现实世界的业务流程 而很少会涉及系统的概念 分析 则是从系统的角度来来看待软件应该为用户提供的服务 分析仍然停留在 做什么 的层次 1 静态模型的建立 进行分析建模的第一步 通常是识别对象 然后提取出类 对象识别的结果 就是我们所需要的静态模型 通常表现为类图 首先识别出实体对象 这些对象通常来说是比较明显的 例如系统中的角色 系统需要处理的资料 如本系统中需要处理的图书资料等 有些实体对象需要稍微分析一下才能得到 例如 在本系统中 为了记录图书借还的信息 我们可能需要一个对象来专门记录这一信息 这些对象就是所谓的Entity 实体类 然后我们需要识别为了完成系统业务逻辑而需要的业务逻辑对象 以及同用户进行交互的界面类 即Control 控制类 和View 边界类 在分析阶段 这些对象通常都按照比较自然的方式来组织 例如 为了完成一个业务功能 我们通常需要一个控制类和一个边界类 控制类执行业务逻辑 边界类同客户进行交互 首先来分析借书这个用例在这个用例中 首先可以识别出一些直接的对象 包括图书管理员 BookAdmin 学生 Student 图书 Book 然后 稍作分析 我们会发现我们需要一个实体对象来记录图书的借还信息 BorrowInfo 最后 我们发现 在借书的过程中 我们会使用到预定图书的信息 SubscribrInfo 然后 发现我们需要一个借书的控制类 Borrow 来执行借书的动作 以及一个用户界面 BorrowInterface 来接受用户的输入 借书类图 在分析模型中 我们也需要识别出类的一些属性和方法 同样的 为了避免过早的陷入细节中 以及适应将来在设计时类的变化 在分析模型中 我们一般只把一些主要的属性和方法标识出来 例如 对于Student类 我们只需要Name和CardNo 借书证号 属性 对于Book 我们只需要BookID AllCount 书的总数 CurrentCount 当前数量 等属性 现在 为类图添加上述属性 就可以得到下面的结果 省略掉属性和方法 整个系统的静态分析模型 2 动态模型的建立 在面向对象的系统中 业务流程表现为对象之间的交互 我们有了上面分析的得到的对象后 就可以来描述他们是怎么进行交互和协作的了 在UML中 我们可以使用顺序图 活动图或者状态图来建模这些动态的过程 一借书的UseCase为例 在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河北省忠德学校衡水教学部高三上化学期中统考试题含解析
- 2025年高考英语翻译:英汉互译能力提升模拟试卷
- 2026届江西省校级联考化学高一上期中调研模拟试题含解析
- 福建省莆田九中2026届化学高一第一学期期中经典模拟试题含解析
- 2026届甘肃省兰州市甘肃一中化学高一第一学期期末学业水平测试试题含解析
- 婚前财产约定协议
- 线上线下活动合作协议的特点
- 2026届安徽省二校联考化学高三上期中联考试题含解析
- 2025年住房租赁市场供需关系研究及策略优化服务合同
- 2025年城市轨道交通车辆融资租赁与抵押担保合同
- 弱电工程施工进度表(甘特图)
- GB 1886.232-2016食品安全国家标准食品添加剂羧甲基纤维素钠
- 2023年赣州市建兴控股投资集团有限公司招聘笔试题库及答案解析
- 地理信息系统技术概述课件
- 脑梗死病人-护理查房课件
- 人类行为与社会环境全套课件
- 医院介入手术病人护送交接流程
- 学校家庭教育指导(班主任培训班) 课件
- 骨关节结核教案
- 楼板厚度检测报告
- 纳米材料ppt课件精品课件
评论
0/150
提交评论