第9章-面向对象需求分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

chapter_9
2
传统方法学的局限性
结构化方法的核心是以用户的需求为基础,进行 功能分解。 分析阶段主要 建立的模型: 数据流图、数据字典、IPO、ER图、状态图 设计阶段的主要建立的模型: 软件模块结构图、IPO细化 实现的主要结果是: 源程序 结构化程序设计方法主要特点是:自顶向下、逐 步求精;先分解(功能分解并模块化)和再组装。
15
基于用例的面向对象分析过程
三、建立动态模型 根据用例图和类图,画顺序图 四、评审分析模型
chapter__10
16
本章要点
传统方法学的局限性 面向对象方法学概述 面向对象建模 统一建模语言UML

chapter_9
17
面向对象建模

用面向对象方法开发软件,通常需要建立三种 形式的模型,
chapter_9 28
用例描述练习
执行者 前置条件 后置条件 主成功场景 个人用户
进入系统首页 显示登录成功并进入主页面 (1)用户访问系统首页 (2)进入登陆页面 (3)用户输入用户名和密码,然后单击“登录”按钮 (4)系统验证用户名和密码 (5)系统显示主界面 (4a)用户名或密码为空 ( 4a1 )系统重新显示首页并在相应的输入域右侧提 示错误信息“不能为空” (4a2)返回主成功场景步骤(3) (4b)用户名或密码错误 ( 4b1)系统重新显示并提示错误信息“用户名/密码 错误” (4b2)返回主成功场景步骤( 3) chapter_9 29
chapter_9
36
设计用例图的步骤
设计Use-case时,我们遵循下列步骤: 第一步,识别出系统的“actor”并标识它们之间的关系。 Actor可以是用户、外部系统。着重从系统外部执行者 的角度来描述系统需要提供哪些功能,并指明这些功能 的执行者(Actor)是谁。尽可能地确保所有Actor都被完全 识别出来。 第二步,描述主要的Use Case以及它们之间的关系。
软件工程基础
第九章 面向对象方法学
chapter_9 0
本章要点
传统方法学的局限性 面向对象方法学概述 面向对象建模 统一建模语言UML

Biblioteka Baidu
chapter_9
1
软件工程追求的目标和要解决的主要问题




软件危机反映出来的问题,主要包括: 软件开发效率低、 软件质量差、 软件不可维护、 软件项目成功率低等。
chapter_9
24
用例模型 用例图 显示了主角、用 例以及它们之间 的关系。 用例描述 针对每一个用例都应该 有一个用例规约文档与 之相对应,该文档描述 用例的细节内容。
chapter_9
25
chapter_9
用例描述
26
图书信息删除功能用例描述举例
执行者 管理员 前置条件 管理员用户登录到管理员界面 后置条件 显示删除成功并返回管理员页面 主成功场景 ( 1 )点击图书管理 —> 图书信息查询,显示信 息查询界面。 (2)点击图书信息列表右侧的“删除”按钮。 (3)确定删除对话框选择“是”。 (4)系统成功删除一条图书信息记录。 扩展1 (3a)弹出确定删除对话框,选择“否” (3a1)不执行删除操作。
交互图
Use Case Use Case Diagrams Diagrams 时序图
State State Diagrams Diagrams 包图
Scenario Scenario Diagrams Diagrams 协作图
模型库
Component Component Diagrams Diagrams 部署图

chapter_9 3
传统方法学的局限性-举例
案例:设计并实现一个四则运算软件,输入两 个数和运算符,输出运算结果。 根据用户需求,设计三个功能:输入、计算、 输出。 设计一个录入界面,用于输入一个运算符和两 个运算数; 设计一个计算模块进行相应的计算; 设计一个输出界面显示运算结果。
chapter_9 4
State State Diagrams Diagrams 构件图
Scenario Scenario Diagrams Diagrams 状态图 活动图
实现图
行为图
chapter_9
21
用例图(Use Case Diagram)

用例图描述了系统的功能 需求,从执行者的角度来 理解系统,概要的反应系 统提供的外部可见服务。 用例图的元素有用例,执 行者和连接。
chapter_9
31
用例图:连接
(3)用例与用例之间的关系:
chapter_9
32
用例图:连接
扩展关系是指一个用例被定义为基础用例的增量 扩展,这样通过扩展关系,就可以把新的行为附加到 已有用例中。在UML语言中,扩展关系用虚箭头加 《extend》来表示,如图所示:还书可以扩展出交纳罚 金用例。注意,箭头指向基础用例。

第三步,重新审视每个Use Case,为它们下个详尽的定 义。
chapter_9
37
图书管理系统的用例建模
在访谈中,我们得知: 该系统只有一种使用者:图书馆工作人员, 并且同一时刻只有一个工作人员使用该系统。 图书馆工作人员,日常的业务主要有:图书 管理,借阅管理和图书的借阅/归还。
1.
2.
扩展1
扩展2
用例图:连接
连接关系分为三种:用例与参与者之间的关系, 参与者与参与者之间的关系,用例与用例之间 的关系。 (1)用例与参与者之间的关系,用实线表示。 它实际上是UML关联记号,表明参与者和用例 以某种方式通信。
chapter_9
30
用例图:连接
(2)参与者与参与者之间的关系:由于参与者不是具体的 人或物,而是类,所以参与者之间的关系就是类与类之 间的关系,主要为一般参与者(超类)与特殊参与者 (子类)之间泛化关系。 用三角箭头表示, 箭头从子类指向超类。 出门者(超类)是出 公差者(子类)和游客 (子类)的泛化,如图 所示:


用例由执行者来激活,并 提供确切的值给执行者, 执行者是用户在系统中所 扮演的角色。
chapter_9
22
用例图:执行者

参与者(Actor)(角色)
–参与者是与系统交互的外部实体。 –参与者既可以是使用该系统的用户,也可以是与 系统交互的其他外部系统、硬件设备或时间。
图书催还,到书通知由时间触发
chapter_9
38

参与者——图书馆工作人员 用例——图书管理、借阅管理和图书的借阅/归 还
chapter_9
39
借阅管理
图书管理
图书馆工作员 图书借阅
图书归还
从用户业务的视角出发,进行用例建模的。
chapter_9 40
课堂练习
以图书借阅系统为例,画出用例图。(先确定 角色,再确定每个角色的职责) 读者:查询图书,预定图书,取消预定,缺书 登记 办公室人员:管理读者信息 流通组人员:协助借书、还书和进行处罚。还 可以查询图书信息和读者信息。 请同学们画一下图书借阅系统的用例图

它们分别是描述系统数据结构的对象模型,
描述系统控制结构的动态模型 描述系统功能的功能模型。
chapter_9
18
OO的三种基本模型 功能模型:即用例模型 对象模型:构建分析类,使用类图、对象

图描述对象、对象属性、对象之间的关系,是 系统静态模型。

动态模型:利用活动图、状态图、时序图、
chapter_9
27
用例描述练习
请完成系统登录用例描述,由首页—>登陆— >主页面


执行者: 前置条件:执行用例前系统必须要处于的状态; 后置条件:执行用例后系统所处的状态。 主成功场景:描述执行者和系统之间的交互过程 (正常使用情况) 扩展:描述执行者和系统之间的交互过程中异常 情况的处理;
chapter_9
10
面向对象的软件工程



面向对象分析(Object Oriented Analysis,OOA) –分析和理解问题域,找出描述问题域和系统责任所需 的类及对象,分析它们的内部构成和外部关系,建立 OOA 模型。 面向对象设计(Object Oriented Design,OOD) –将OOA 模型直接变成OOD 模型,并且补充与一些与实 现有关的部分,如人机界面、数据存储等。 面向对象编程(Object Oriented Programming,OOP) –用一种面向对象的编程语言将OOD 模型中的各个成分 编写成程序,由于从OOA→OOD→OOP实现了无缝连 接和平滑过渡,因此提高了开发工作的效率和质量。
chapter_9
7
结论:
结构化方法学存在的问题:

软件重用性差 软件可维护性差

当问题比较简单的时候,结构化方法非常有效, 简单易行;而当问题到一定的复杂程度时,面 向对象的思想模式,更适合解决复杂问题;
• 面向对象的方法提高软件开发效率和软件可维 护性等问题,有利于解决软件危机
chapter_9
chapter_9 11
面向对象需求分析概述
不论采用哪种方法开发软件,分析的过程都是 提取系统需求并建立分析模型的过程。 面向对象分析的关键,识别出问题域内的对象, 分析他们相互间的关系,建立起问题域的简洁、 精确、可理解的正确模型。 分析阶段主要建立的模型: 功能模型(用例模型):用例图和用例描述 对象模型(类图是核心) 动态模型(状态图、顺序图、活动图)
基于用例的面向对象分析过程
一、建立功能模型 (1)确立系统的使用者 (2)确定用例 (3)确定用例模型 (4)用例模型说明
chapter__10
14
基于用例的面向对象分析过程
二、建立对象模型 (1)识别分析类 (2)描述类的职责 (3)建立分析类的关系 (4)描述每个类的属性
chapter__10
等描述系统动态行为。
每种模型描述的侧重点不同
chapter_9 19
本章要点
传统方法学的局限性 面向对象方法学概述 面向对象建模 统一建模语言UML

chapter_9
20
UML中的5类图形 静态图
Use Case Use Case Diagrams Diagrams 用例图
State State Diagrams Diagrams 类图 /对象图
chapter_9
33
用例图:连接
包含关系是指当存在若干用例共有的步骤序列,则 可以将该序列抽取出来,形成一个子用例,以被基础 用例调用。在UML语言中,包含关系用虚线箭头加 《includ》表示,箭头所指向的是被包含的用例。如图 所示:输入成绩和修改成绩时都要保存成绩。
chapter_9
34
借还登记
chapter_9
时间
23
用例图:用例

用例(Use Case) 是指系统的参与者和系统交互所执行的动作序列。即 参与者想要系统做的事情。 在UML语言中,用例用一个椭圆来表示如图所示,并 且在椭圆内或椭圆下方标明用例名称。

用例可以促进与用户沟通,理解正确的需求,同时也 可以用来划分系统与外部实体的界限。

chapter__10 12
基于用例的面向对象分析过程

面向对象分析过程并不是从考虑对象开始,而 是从理解系统的使用方式开始。 如果系统是人机交互的,则考虑被人使用的方 式; 如果系统是涉及过程控制的,则考虑被机器使 用的方式;



如果系统是协调和控制应用的,则考虑被其他 程序使用的方式。
chapter__10 13
借书登记
图书管理员
还书登记
<<extend>>
过期罚款
查看借阅情况 读者
chapter_9 35
用例图:连接
泛化关系是指一个用例也可以被特别细化为一个或 多个子用例。任何子用例都可以用于其父用例能够应 用的场合。在UML语言中,泛化关系用实线三角箭头 表示,箭头从子用例指向父用例。如图所示:读者借 书和借期刊可以泛化为借阅用例(父用例)。




chapter_9
5
chapter_9
6
传统方法学的局限性
从例子看出? 面向对象方法比结构化方法处理程序要复杂多了 为什么还要推崇面向对象的方法呢?

假设又增加一个求平方根的运算 结构化方法:修改源程序,增加求平方根运算 面向对象:源程序不变,增加一个求平方根运算的 子类,对调用者来说没有任何影响。
8
本章要点
传统方法学的局限性 面向对象方法学概述 面向对象建模 统一建模语言UML

chapter_9
9
面向对象方法学概述
究竟什么是面向对象的方法? 根据 Coad 和 Yourdon 的定义,按照以下 4 个概 念设计和实现的系统,称为是面向对象的。 面向对象方法=对象+类+继承+通信
相关文档
最新文档