350 likes | 417 Vues
面向对象描述方法. 面向对象的需求概述. 需求定义的基本目标:理解用户的需求、理解业务过程如何运行. 传统方法:实体 - 联系图( ERDs ). 系统信息存储需求. 面向对象:类图. 面向对象分析和面向对象设计之间界限并不明显,因为系统设计就是对分析阶段中用于定义需求的模型进行改进和扩展得到的. 传统方法和面向对象方法的需求模型. 事件、用例、 事件表. 事件、用例、 事件表. 事件. 实体 - 联系图. 类图. 关联图. DFD 片段. 用例图. 用例描述. 数据流定义. 处理描述. 系统顺序图. 活动图. 其它传统模型. 状态图.
E N D
面向对象的需求概述 • 需求定义的基本目标:理解用户的需求、理解业务过程如何运行 传统方法:实体-联系图(ERDs) 系统信息存储需求 面向对象:类图 面向对象分析和面向对象设计之间界限并不明显,因为系统设计就是对分析阶段中用于定义需求的模型进行改进和扩展得到的
传统方法和面向对象方法的需求模型 事件、用例、 事件表 事件、用例、 事件表 事件 实体-联系图 类图 关联图 DFD片段 用例图 用例描述 数据流定义 处理描述 系统顺序图 活动图 其它传统模型 状态图
三种视角的模型 对系统进行完整描述 类模型(class model) :描述了系统内部对象及其关系的静态结构。 类图(class diagram) 状态图(state diagram) 状态模型(state model) :描述了对象随着时间发生变化的哪些方面。 用例(use case) 顺序图(sequence diagram) 活动图(activity diagram) 交互模型(interaction model):描述系统内部对象如何协作以完成更为宽泛的任务。
UML步骤 • 使用UML进行项目的分析和设计时,一般遵循的步骤是 • 第一步,描述需求,产生用例图 • 第二步,根据需求建立系统的静态模型,构造系统的结构 ,这个步骤产生:类图,对象图,组件图和部署图 • 第三步,描述系统的行为 , 产生状态图,活动图,顺序图 有经验的开发人员经常在确定类和用例之间不断切换
描述系统用例模型 用例图:心事不同的用户角色及这些用户角色如何使用系统。 记录系统活动 顺序图:用例或场景中,用于显示外部参与者和系统之间的消息顺序。 描述系统用例 记录用例的输入和输出 p115 活动图:一种工作流图,描述用户的活动及这些活动的顺序。 状态图:显示对象在各个阶段中的生命和转换情况。 用例图、用例描述、活动图、系统顺序图,四种模型从不同角度进行描述
系统活动-用例/场景视图 每种视图有自己的用途,但以用例视图为核心,其他的视图都是以用例视图为驱动的,在用例视图的基础上进行开发。 • 视图(view ):表达系统某一方面特征的UML建模元素的子集,并不是图,由一个或者多个图组成的对系统买个角度的抽象。 • 图(Diagram):视图由图组成,UML提供9种基本的图,把这几种基本图组合起来就可以描述系统的所有视图。 视图大致分为5类:用例视图(Use-case view),逻辑视图(Logical view),并发视图(Concurrency view),组件视图(Component view),配置视图(部署视图Deployment view ) 用例图、类图、对象图、状态图、时序图(顺序图)、协作图、活动图、组件图、配置图
用例和参与者 • 用例:系统运行的活动,由系统响应用户需求。交互部分称为用例。 • 参与者:系统外部的一个实体,以某种方式参与用例的执行过程,参与者有三大类:系统用户、与所建造的系统交互的其它系统和一些可运行的进程。 与系统对接的银行卡支付 时间到期,系统提醒等,时间成为参与者。
用例图的组成6元素 • 参与者(Actor) • 用例(Use Case) • 关联关系(Association) • 包含关系(Include ,visio里面叫用) • 扩展关系(Extend) • 泛化关系(Generalization) 描述多个参与者之间的公共行为,三角箭头,与类之间的泛化关系符号相同,客户(电话客户、网上客户)
Simple Use Case with an Actor (Figure 7-2) 连线:哪个参与者参与哪个用例 参与者,代表一个角色 产生新 订单
Use Case Diagram with Automation Boundary and Alternate Actor Notation (Figure 7-3) 自动化边界 “参与者” 仓库系统 检查条目 可用性 产生新 订单 客户 订单职员 更新订单
Use Cases of RMO Order Entry Subsystem(Partial Figure 7-5 with package symbol) 包:带标签的矩形,将相似的组件分组在一起
包含关系<<使用>> 一个用例需要用到通用子程序所提供的服务 产生新 订单 检查条目 可用性 客户 订单办事员 验证用户 账号 更新 订单
用例图与事件表的比较 P144 • 事件表通过标识业务事件及这些事件的外部、初始化源的信息来注意业务过程。用例图强调自动系统,参与者与系统有联系,并不一定是事件的发起者。 • 用例容易忽略临时时间和状态事件。(建议:为临时事件和状态时间创建用例)
开发用例图切入点 • 用事件表标识用例(前提:分析业务过程中创建了事件表) • 标识使用系统的参与者和它们执行的功能
用例的详细描述 • 简单描述 • 中间描述 • 详细描述P219
活动图描述 • 记录业务过程的工作流 • 活动图:描述系统的活动顺序,体现一个活动到来一个活动的控制流,活动图的各个步骤都是操作。活动图在本质上属于流程图,用于对系统的动态行为建模,专注于操作而不是对象。
活动图的组成元素 • 动作状态、活动状态、动作流、分支与合并(两个或多个并发运行的控制流)、泳道和对象流等。
①Enter into gymnasium:进入体育馆 ②Look for place:寻找空场地 ③Query Price:询问场地价格 ④Quoted price:管理员报价 ⑤Pay money:交纳场地费 ⑥Play Badminton:开始打球
系统顺序图(Sequence Digram) • 描述对象之间传送消息的时间顺序,用来表示用例中的行为顺序。 重点:参与者如何通过输入数据和获得输出数据来和系统交互
顺序图(时序图)组成 • 对象(Object) • 生命线(Lifeline) • 消息(Message) • 激活(Activation)
System Sequence Diagram (SSD) Notation (Figure 7-14) :系统 对象生命线,自顶向下显示消息“顺序” 注释
Activity Diagram and Resulting SSD for Telephone Order Scenario (Figures 7-16 and 7-17)
SSD of the Web Order Scenario for the Create New Order Use Case(Figure 7-18)
状态图 状态变化容易发现和理解 维护对象的当前状况信息,动名词或动词短语 • 状态:对象生命周期中满足一些标准、执行一些行为或等待一个事件所发生的状态情况。 • 转换:一个从一种状态转到另一种状态的活动。 • 组成:状态、转换、初始状态、终结状态、判断等。
RMO State Machine Diagram for OrderItem Problem Domain Class