




已阅读5页,还剩87页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 类图 分析者必备 浙江大学软件学院程学林 开发流程 3 图9 1UP制品样例的影响 需求是分析的源头 有好的材料才能炒出好的菜 类图的角色 外观与机理 议程 什么是关键抽象分析师必学元素类图 分析类类及类的关系什么是域模型如何建立域模型事务模式酒店订房系统 什么是关键抽象 关键抽象 是一个类或对象 它是问题域词汇表 Glossary 的一部分 又称 概念类或分析类什么是概念类概念类是思想 事物或对象 概念类可以从其符号 内涵和外延来考虑 符号 表示概念类的词语或图形内涵 概念类的定义外延 概念类所适用的一组示例 确定关键抽象的方法 从软件需求规格说明书或用例及用例描述中将所有名词抽取 发现 出来 填入 候选关键抽象 表格 从而识别出所有的关键抽象 用CRC Class Responsibility Collaborator 分析法确定最基本的一组关键抽象 识别出候选的关键抽象集合 通过软件需求文档的以下部分 识别出所有的唯一名词 从而来开始这个提取过程 系统范围和上下文部分 Vision 功能需求部分 Use casemodel 用例 用例描述和场景明确的功能需求补充规约 Supplementaryspecification 项目术语表部分 Glossary 小提示 通过你自己的练习 要能够跳过那些明显不在系统域范围内的名词 但是现在你得对软件需求规格说明书进行彻底的查找 使用这种方法时必须小心 不可能存在名词到 关键抽象 类或对象 的映射机制 并且自然语言中的词语存在二义性 候选的关键抽象表格 用来记录提取的候选关键字的表格由三个属性列组成 候选的关键抽象 这个属性列包含了所有从软件需求说明书中找出来的名词 排除的原因 如果该名词被提取为关键抽象 则该空格不需要填写 否则的话在此填写候选抽象被排除的原因 选定的名字 这列填写被提取出来作为关键抽象的类名 项目术语表 Glossary 识别关键抽象的过程同时也是一个验证你的项目术语表在定期更新的好机会 验证所有那些由系统域指定的条目是否都已经被列出来并已被定义 识别项目术语表中的同意词 选择一个统一的术语 贯穿于文档和源代码 GlossaryasDataDictionary IntheUP theGlossaryalsoplaystheroleofadatadictionary adocumentthatrecordsdataaboutthedatathatismetadata Termattributescouldinclude aliasesdescriptionformat type length unit relationshipstootherelementsrangeofvaluesvalidationrules 软件需求说明书中的名词 以下是从酒店预定系统的需求说明书中摘录的一部分 名词用红色标记 酒店预定系统负责管理多种类型的酒店预定 包括一些商务酒店预定 这个系统同时也包含了一个web应用 允许客人随时查看房间和酒店 查看当前和过去的预定订单 或者进行新的预定 这个酒店预定系统主要有三个涉及点 用于数据存储的中心数据库管理系统 外部的信用卡验证系统 还有一个本地的 将电影传输到每个房间的电视信号上的电影点播系统 系统也必须收集客人的以下一些信息 姓名 地址 联系电话 信用卡 类型 号码还有到期日期 候选的关键抽象表格 示例 CRC分析法 在完成了所有候选关键抽象列表之后 需要进行一个过滤 确定关键抽象 什么是CRC Class Responsibility Collaborator 是一种收集并整理卡片的开发方式是一种面向文本建模技术 是由KentBeck和WardCunningham1989 创建的具有影响力的敏捷思想具体来说 类代表了一组 候选关键抽象 职责是类知道或者做的任何事情协作者包含一至两个方面 需要的信息或者需要的事务 用CRC分析法识别关键抽象 使用的一个技术就是CRC分析法 1 选择一个候选的关键抽象2 确定一个与该候选关键抽象显著相关的用例 3 查看用例描述 场景 和系统的功能需求来确定职责和协作关系 4 用CRC卡记录抽取出来的关键抽象5 基于以上的工作 更新候选关键抽象表格 用CRC卡记录关键抽象 类名 职责 协作者 选择一个候选关键抽象 选择一个候选关键抽象主要靠直觉 但也有一些小窍门 向该领域的专家咨询从用例名中提取候选关键抽象从需求说明书中的范围部分提取候选关键抽象 识别一个相关用例 要识别一个候选关键抽象是否是一个真正的关键抽象 您应该先确定这个候选关键抽象是否担负着职责同时是否有协作关系 首先找出一个包含了候选关键抽象的用例 然后识别出它的职责和协作关系 1 查看用例名2 查看用例描述3 查看用例场景4 查看用例场景描述 看该候选关键抽象是否在文中提及 如果找到了 则说明该用例场景与之相关 识别一个相关用例 基于以上所述 这里有两个用例与 订单 这个关键抽象相关 E1 管理订单E5 管理在线订单 明确职责和协作者 查看相关用例对应的场景和需求 找到他们的职责和需求 以及与他有协作关系的对象 如果你找不到任何职责关联 那么你就可以将这个候选从候选关键抽象中删除 明确职责和协作者 以下是一些相关的功能需求 E1 1 系统允许预定代理商来创建 更新和删除一条预定订单 一条预定订单包括入住日期 离住日期 还有订单ID号 E1 2 在特定的时间段里 入住到离住期间 可以预定一个到多个房间 E1 3 预定只与一个客人相关 E1 4 只能在有空房的情况下进行预定 用CRC卡记录关键抽象 订单 职责 协作者 预定一个房间 房间 客人 状态 空房 已入住 预留房间 入住日期离住日期付帐方式订单编号 更新候选关键抽象表格 如果你选择的这个候选关键抽象有职责关系 则把这个关键抽象的名字 从CRC分卡中 填写到 选定的名字 属性列中 否则填写这个候选关键抽象为何没有被选中为关键抽象的原因 更新候选关键抽象表格 如何判断是属性还是类 Guideline IfwedonotthinkofsomeconceptualclassXasanumberortextintherealworld Xisprobablyaconceptualclass notanattribute P109 实践 识别关键抽象 CST公司开发一个用于管里软件开发项目的系统 系统可对多个项目进行管理 一个项目由若干个阶段组成 而每个阶段又由许多活动 UP中称科目 Discipline 组成 一项活动消耗若干资源 并产生若干工件 UP中称制品 Artifacts 工件有代码 模型 文档等 资源有工人 时间 设备等 从描述中标识出候选关键抽象 并识别关键抽象 实践 识别关键抽象 CST公司开发一个用于管里软件开发项目的系统 系统可对多个项目进行管理 一个项目由若干个阶段组成 而每个阶段又由许多活动 UP中称科目 Discipline 组成 一项活动消耗若干资源 并产生若干工件 UP中称制品 Artifacts 工件有代码 模型 文档等 资源有工人 时间 设备等 从描述中标识出候选关键抽象 并识别关键抽象 审查属性 是否在系统责任之内是否描述类对象的特征是否存在冗余是否有复杂结构的属性根据对需求的理解进行细化 是否在系统责任之内 审查属性 审查属性 用能说的通 什么的什么 是否存在冗余 审查属性 是否有复杂结构的属性 1 1 可以在原类里面展开1 N 需要关联类 审查属性 是否有复杂结构的属性 保留在原类中 抽取出来独立成类 审查属性 根据对需求的理解进行细化 审查属性 分析师必学元素 类图类关联关系聚合关系组合关系 类图 类图 classdiagram 用来表达系统内部的静态结构 staticstructure 具体来说 开发人员可以通过类图的设计 来将数以万行的程序代码分门别类 构成了系统内部的静态结构 类图 新术语 模块变类 class 功能变操作 operation 变量变属性 attribute 新术语并不是旧酒换新瓶 而是分类 定操作 定义属性上头 有新的划分方法 新的划分方法 拿用户的领域术语当类 然后确定相关的操作和属性 封装在同一个类中 确定类图中的元素 UML的类图由以下元素组成 类 它们可以代表 概念性实体 如关键抽象 软件组件 类 分析师不能自己随意定义类 必须寻找领域术语做为类名称 房间 真正住进去 特定房号的房间 房型 顾客在订房时 通常是预订某个房型的房间 类 类 属性 attribute 操作 operation 类 Class 类的组成 名字属性操作可见性私有公有 类不是孤立存在的因此 类与类之间创建了一种关系 类关系可能指明某种共享关系类关系可能指明某种类型的语义连接 类关系 关联 接口与实现 组合 泛化与继承 聚合 依赖 类关系 分析阶段 设计阶段 关联关系 示例 雇员为公司工作 准则 关联表示了需要持续一段时间的关系 根据语境 可能是几毫秒或数年 关联关系 关联关系 关联的UML标识法 关联关系 实体关系图与类图 关联关系 多对多的多重性 关联关系 两个一对多的多重性 聚合关系 整体 部分 门 房子 1 2 汽车 聚合关系 具有 hasa 语义 对象 是对象 的一个组成部分 组合关系 圆圈 点 多边形 点 圆圈 组合关系 具有 contains a 语义 整体部分消失 部分对象也消失 组合关系 组合关系 关联vs 聚合 聚合是关联的精化 两端角色被默认为 拥有 和 被拥有者 关联与聚合的区别只在于个人喜好 而不是语义上的区别 聚合vs 组合 UML观点 识别类之间的聚合或组合 团队 组织 和成员 聚合抽象事物的整体和部分 聚合物理上的整体事物和它的组成部分 组合组织机构和它的下级组织 组合空间上的包容 组合具体事物和它的某个抽象方面 组合 团队 组织 和成员 识别类之间的聚合或组合 抽象事物的整体和部分 识别类之间的聚合或组合 物理上的整体事物和它的组成部分 识别类之间的聚合或组合 组织机构和它的下级组织 识别类之间的聚合或组合 HowtoFindAssociations P115 64 什么是域模型 也称为概念模型 领域对象模型和分析对象模型领域模型是对领域内的概念类或现实中对象的可视化表示 P100 表示关键抽象之间的关系 协作者 应用UML表示法 领域模型被描述为一组没有定义操作的类图 是可以在业务建模科目中创建的制品之一 是OO分析中最重要的和经典的模型 领域模型的范围限定于当前迭代所开发的用例场景 通过迭代不断演进 DefinitionIntheUP theterm DomainModel meansarepresentationofreal situationconceptualclasses notofsoftwareobjects 65 领域模型是软件业务对象图吗 图9 3领域模型表示真实世界概念的可视化并非表示软件类 在UML中 领域模型被描述为一组没有定义操作的类图 66 图9 4领域模型并非表示软件制品或类 域模型 准则 P107 敏捷建模绘制类图的草图是否要使用工具维护模型使用领域术语何时使用描述类独立于任何商务或服务现有实例删除其所描述事物 如Item 的实例后 导致信息丢失 而这些信息是需要维护的 但是被错误地与所删除的事物关联起来减少冗余或重复信息 68 领域模型和数据模型是一回事吗 领域模型不是数据模型 持久化数据 在领域模型中不会排除没有明确要求记录其相关信息的类 也不会排除没有属性的概念类在领域内充当纯行为角色而不是信息角色的概论类也是有效的 如何建立域模型 从关键抽象 你可以利用这些步骤创造域模型 1 画类节点 并列出属性2 画协作类之间的管理3 定义关联名和角色名4 定义并记录关联重数5 定义并记录关联方向6 定义并记录关联类 第一步 画类节点 并列出属性 准则 任何属性都不表示外键 第二步 画关联 准则 通过关联而不是属性来表示概念类之间的关系 第三步 填入关联和角色名 第四步 填入关联重数 第五步 画箭头方向 第六步 画关联类 事务模式 事务与人地物物品与特定物品后续事务参与者与涉众 表5 34对象种类表 事务与人地物 事务模式 核心 事务与人地物 应用事务模式 物品与特定物品 物品与特定物品 物品与特定物品 应用 物品 特定物品 物品与特定物品 多对多的复杂状况 后续事务 后续事务 后续事务明细 应用 后续事务 后续事务明细 后续事务 订房与入住 删掉 入住明细 参与者与涉众 参与者 涉众 应用 参与者 涉众 酒店订房系统 类图的雏型 实践 建立域模型 CST公司开发一个用于管里软件开发项目的系统 系统可对多个项目进行管理 一个项目由若干个阶段组成 而每个阶段又由许多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025昆明市盘龙职业高级中学烹饪教师招聘(1人)模拟试卷及答案详解(夺冠系列)
- 2025山东济南西兴人力资源咨询服务有限公司公开招聘播音主持人员2人笔试题库历年考点版附带答案详解
- 2025安康高新集团旗下子公司招聘(4人)模拟试卷及答案详解(全优)
- 2025届华润电力校园招聘(175个岗位)笔试题库历年考点版附带答案详解
- 2025河北张家口启臻学校高中储备教师招聘模拟试卷及答案详解(名校卷)
- 2025年黑河市孙吴县卫生健康局乡村医生公开招聘8人模拟试卷及答案详解(夺冠系列)
- 2025河南济源职业技术学院高层次人才引进20人考前自测高频考点模拟试题含答案详解
- 2025河南郑州师范学院诚聘高层次人才模拟试卷有答案详解
- 2025江苏徐州市教育局直属事业单位选调3人模拟试卷及答案详解(名校卷)
- 2025昆明市滇池管理局引进高层次人才(1人)考前自测高频考点模拟试题及答案详解(必刷)
- 河北省承德市隆化县第二中学2023-2024学年九年级上学期期中考试物理试题(无答案)
- 2024年新人教版八年级上册物理全册教案
- 伤口造口专科护士进修汇报
- MOOC 实验室安全学-武汉理工大学 中国大学慕课答案
- 彩钢房建造合同
- 2型糖尿病低血糖护理查房课件
- 医院物业服务投标方案
- 高压燃气管道施工方案
- 国家免疫规划疫苗儿童免疫程序说明-培训课件
- GB/T 13298-1991金属显微组织检验方法
- 劳动人事争议仲裁案例分析与问题探讨课件
评论
0/150
提交评论