面向对象软件分析.ppt

上传人:本田雅阁 文档编号:2613183 上传时间:2019-04-19 格式:PPT 页数:35 大小:994.51KB
返回 下载 相关 举报
面向对象软件分析.ppt_第1页
第1页 / 共35页
面向对象软件分析.ppt_第2页
第2页 / 共35页
面向对象软件分析.ppt_第3页
第3页 / 共35页
面向对象软件分析.ppt_第4页
第4页 / 共35页
面向对象软件分析.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《面向对象软件分析.ppt》由会员分享,可在线阅读,更多相关《面向对象软件分析.ppt(35页珍藏版)》请在三一文库上搜索。

1、 内容提纲 概述 面向对象分析与面向对象设计 OOAD 模型 You are here! 你在这儿! 面向对象分析的概念 分析类:边界类、控制类、实体类 用例实现 基于用例的分析建模 识别分析类 定义交互行为 建立分析类图 检查分析模型 2 面向对象分析 面向对象分析 注重分析业务领域和系统责任,忽略与实现有关的问题。 发现和描述对象(或概念),分析对象的内部构成和外部关 系,建立面向对象的分析模型。 3 面向对象分析 面向对象分析的制品 分析类 分析类是概念层次上的内容,粒度可能比类大,往往很少有操作 和特征标记,使用责任定义其行为,有概念性的属性和关系。 用例实现( 从分析角度 ) 分析类

2、图:描述分析类及其之间的静态关系 交互图:描述分析类之间的交互关系 事件流分析 补充需求:使用文本描述持久性、分布性、并发性、安全性、容 错性等方面的非功能需求 4 面向对象分析 面向对象分析的制品(续) 分析包 建立包图时,应将概念上或语义上相近的模型元素纳入一个包。 一般地,把支持一个特定的业务过程或参与者的一些用例或类组 织在一个包中,或把具有泛化或扩展关系的用例或类组织在一个 包中。 体系结构描述( 从分析角度 ) 从分析模型的角度,描述系统的体系结构; 通常包括由分析包以及它们之间的依赖、关键分析类、实现重要 或关键功能的用例实现。 5 面向对象分析的过程 理解用例模型 识别实体类

3、识别分析类 识别边界类 识别控制类 定义交互行为 定义属性 建立分析类图定义行为 定义关系 评审分析模型 6 内容提纲 概述 面向对象分析与面向对象设计 OOAD 模型 面向对象分析的概念 分析类:边界类、控制类、实体类 用例实现 You are here! 你在这儿! 基于用例的分析建模 识别分析类 定义交互行为 建立分析类图 检查分析模型 16 分析类 分析类的概念 在分析模型中,分析类是概念层次上的内容,用于描述系统 中较高层次的对象。 分析类直接与应用逻辑相关,而不关注于技术实现的问题。 分析类的类型 实体类:表示系统存储和管理的永久信息 边界类:表示参与者与系统之间的交互 控制类:表

4、示系统在运行过程中的业务控制逻辑 17 实体类 实体类 描述必须存贮的信息及其相关行为 通常对应现实世界中的“事物” 实体类的 UML 表示 Name 18 边界类 边界类 描述外部的参与者与系统之间的交互 类型:用户界面、系统接口、设备接口 边界类的 UML 表示 Name 19 控制类 控制类 描述一个用例所具有的事件流控制行为 实现对用例行为的封装,将用例的执行逻辑与边界和实体进 行隔离 控制类的 UML 表示 Name 20 用例实现 用例实现(Use Case Realizations) 用例实现使用设计模型中的元素描述一个用例是如何实现和 执行的,它是从分析和设计追溯到需求的一种方

5、法。 从设计的视角表示用例的内容 动态的:直接对应用例事件序列的交互图 静态的:反映参与用例事件序列的类及其关系的类图 用例实现的 UML 表示 用例用例实现 21 内容提纲 概述 面向对象分析与面向对象设计 OOAD 模型 面向对象分析的概念 分析类:边界类、控制类、实体类 用例实现 基于用例的分析建模 识别分析类 定义交互行为 建立分析类图 You are here! 你在这儿! 检查分析模型 22 分析建模过程 理解用例模型 理解用例模型和词汇表,适当补充系统内部情况的描述 识别分析类 找出可能的能够执行用例行为的分析类 定义交互行为 将用例行为分配到分析类中 建立分析类图 确定分析类的

6、关键属性和责任,定义分析类之间的关系 检查分析模型 23 示例:MiniLibrary 注册用户 管理读者 登录 普通读者 查询浏览 预订图书 管理图书资料 管理书目 图书管理员 登记借书 取消预订 登记还书 邮件系统 24 补充用例描述 补充用例描述 为了发现分析类,有必要补充说明系统的内部行为,即系统 内部必须做什么才能响应外部的要求。 可能的情况 用例描述的内容足够充分,不用补充直接可用; 现有事件流中没有明确定义系统内部应该执行的行为,直接在现 有用例描述中作出补充行为; 独立于原始用例描述系统的内部行为。 25 MiniLibrary:补充用例描述 举例:“登记还书”用例 图书管理员

7、确认后, 系统登记读者的还书 记录,并向现有的预 订者发出通知。 图书管理员确认后,系统 登记读者的还书记录,并 通过邮件系统向现有的预 订者发出通知。 26 识别分析类 识别边界类 通常,一个参与者与一个用例之间的交互或通信关联对应一 个边界类。 用户 用户界面 用例 外部系统接口 外部系统 27 识别分析类 识别边界类应当注意的问题 边界类应关注于参与者与用例之间交互的信息或者响应的事 件,不要描述窗口组件等界面的组成元素; 在分析阶段,力求使用用户的术语描述界面; 边界类实例的生命周期并不仅限于用例的事件流,如果两个 用例同时与一个参与者交互,那么它们有可能会共用一个边 界类,以便增加边

8、界类的复用性。 思考:如何识别 MiniLibrary 的边界类? 28 MiniLibrary:识别边界类 边界类 LoginForm BrowseForm MakeReservationForm RemoveReservationForm ManageBorrowersForm ManageTitlesForm ManageItemsForm LendItemForm ReturnItemForm MailSystem 说 明 注册用户进行登录的操作界面 注册用户进行查询浏览的操作界面 普通读者预订图书的操作界面 普通读者取消预订的操作界面 图书管理员管理读者的操作界面 图书管理员管理图书

9、资料的操作界面 图书管理员管理书目的操作界面 图书管理员登记借书的操作界面 图书管理员登记还书的操作界面 与邮件系统的接口 29 识别分析类 识别控制类 控制类负责协调边界类和实体类,通常在现实世界中没有对 应的事物。 一般来说,一个用例对应一个控制类。 用户 用例 外部系统 控制逻辑 30 识别分析类 识别控制类应当注意的问题 当用例比较复杂时,特别是产生分支事件流的情况下,一个 用例可以有多个控制类。 在有些情况下,用例事件流的逻辑结构十分简单,这时没有 必要使用控制类,边界类可以实现用例的行为。 举例:MiniLibrary系统中的用例“登录” 如果不同用例包含的任务之间存在着比较密切的

10、联系,则这 些用例可以使用一个控制类,其目的是复用相似部分以便降 低复杂性。 通常情况下,应该按照一个用例对应一个控制类的方法识别出多 个控制类,再分析这些控制类找出它们之间的共同之处。 31 MiniLibrary:识别控制类 控制类 BrowseControl MakeReservationControl RemoveReservationControl ManageBorrowersControl ManageTitlesControl ManageItemsControl LendItemControl ReturnItemControl 说 明 负责执行注册用户的查询浏览 负责执行普

11、通读者的预订图书 负责执行普通读者的取消预订 负责执行图书管理员对读者的管理 负责执行图书管理员对图书资料的管理 负责执行图书管理员对书目的管理 负责执行图书管理员登记借书 负责执行图书管理员登记还书 32 识别分析类 识别实体类 实体类通常是用例中的参与对象,对应着现实世界中的“事物” 事 物 实实在在 事物 飞机 书 交通工具 文件 工作表 充当角色 雇员 顾客 医生 病人 最终用户 组织部门 管区 部门 工段 任务组 工作组 设备 传感器 定时器 打印机 键盘 显示器 突发事件、事 件或交互行为 航班 服务电话 登录 退出 合同 地点 位置 仓库 办公室 工厂 零售店 桌面 系统管理员鼠

12、标 菜单 购买 订单 33 识别分析类 识别实体类应当注意的问题 实体类的识别质量在很大程度上取决于分析人员书写文档的 风格和质量; 自然语言是不精确的,因此在分析自然语言描述时应该规范 化描述文档中的一些措辞,尽量弥补这种不足; 在自然语言描述中,名词可以对应类、属性或同义词等多种 类型,开发人员需要花费大量的时间进行筛选。 34 MiniLibrary:识别实体类 实体类 BorrowerInfo Loan Reservation Title Item 说 明 普通读者的基本信息 普通读者的借书记录 普通读者的预订信息 图书资料的基本信息 书目 (由于图书资料中包括书籍和杂志等类型,因此可

13、以进一步划分子类) BookItem MagazineItem 书籍的基本信息 杂志的基本信息 35 定义交互行为 交互图可以将用例和分析对象联系在一起,实现将用 例的行为分配到所识别的分析类中,并且帮助开发人 员发现和补充前面遗漏的分析类。 用例 顺序图 用例实现 协作图 36 MiniLibrary:“登记借书”基本流 37 MiniLibrary:“登记借书”基本流 1: specifyCriteria( ) 2: search( ) 8: selectItem( ) 9: lend( ) 5: selectTitle( ) : ReturnItemForm : Librarian 4:

14、 match( criteria ) 7: getItems( ) : Title 3: search( criteria ) 6: getItem( title ) 10: lend( item ) : ReturnItemControl 12: create( borrower, item ) 11: isAllowed( item ) : BorrowerInfo: Item 13: setStatus( ) : Loan 38 MiniLibrary:分析类 将“登记还书”用例行为分配到相应的分析类之后,系 统的一些分析类具有相应的职责 ReturnItemForm specifyCr

15、iteria() search() selectTitle() selectItem() lend() ReturnItemControl search(criteria) getItem(title) lend(item) Title match(criteria) getItems() BorrowerInfo isAllowed(item) Item setStatus() Loan create(borrower, item) 39 建立分析类图 定义关系 找出分析类之间的关联关系,并通过泛化实现复用。 定义属性 1 MiniLibrary:分析类图 BorrowerInfo ID :

16、 String name : String Reservation 0n date : Date address : String 0n 1 1 0n Loan date : Date 1 1 1 Title ISBN : String title : String author : String Item ID : Integer 0n BookTitle loanDays : Integer MagazineTitle loanDays : Integer 41 1 应用分析模式 分析模式是描述在系统业务领域发现的通用部分,提 高复用性和一致性。 “联系点”分析模式 BussinessEn

17、tity 0 n ordered ContactPoint PhoneEmailAddress 42 检查分析模型 检查“正确性” 用户是否可以理解实体对象的术语表? 抽象类与用户层次上的概念对应吗? 所有的描述都与用户定义一致吗? 所有的实体类和边界类都使用具有实际含义的名词短语吗? 所有的用例和控制类都使用具有实际含义的动词短语吗? 所有的异常情况都被描述和处理了吗? 是否描述了系统的启动和关闭? 是否描述了系统功能的管理? 43 检查分析模型 检查“完整性” 每一个分析类都是用例需要的吗?它在什么用例中被创建、 修改和删除?是否存在边界类可以访问它? 每一个属性是在什么时候设置的?其类型是什么?它是限定 词吗? 每一个关系是在什么时候被遍历?为什么选定指定的重数? 一对多和多对多的关系能被限定吗? 每一个控制类对象是否有必要访问参与用例的对象? 44 检查分析模型 检查“一致性” 类或用例有重名吗? 具有相同名字的实体表示相同的现象吗? 所有的实体都以同样的细节进行描述吗? 是否存在具有相同属性和关系却不在同一继承层次的对象? 检查“可行性” 系统中有什么创新之处?建立了什么计划或原型来确保这些 创新的可行性? 性能是否符合可靠性需求?这些需求是否已被运行在指定硬 件上进行原型验证? 45

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1