第8章 面向对象分析

合集下载

面向对象分析-顺序图

面向对象分析-顺序图

把消息表示为从一个对象生命线到另一个对象生命线的一个水平实线箭头, 即从源对象指向目标对象,以触发目标对象中的特定操作。对于对象到自身的 消息,箭头就从同一个对象符号开始和结束。
用消息(操作或信号)的名字及其参数值或者参数表达式标示箭头。
用如下种类的箭头表示不同种类的通讯:
同步消息
一般把它用于普通的过程调用。在外层控制恢复之前,要完成整个嵌套序列。 通常把它用于普通的过程调用。 若在一个主动对象发送信号并等待完成一个嵌套的行为序列才继续时,也可以 把它用于并发的主动对象。 同步消息返回 用它显式地表示从过程调用的返回。在控制的过程流中,可以省略返回箭头 (暗示执行规约结束),假设每个调用在任何消息后都有一个配对的返回,并可以 把返回值标示在初始的箭头上。
5.1
概念与表示法
1、概述 顺序图是一种详细表示对象之间以及对象与参与者实例之间交 互的图,它由一组协作的对象(或参与者实例)以及它们之间可发 送的消息组成,它强调消息之间的顺序。
由对象(参与者) 、消息、生命线和执行规约组成。
[对象名]:类名
从图中可以看出顺序图是二维的,其中: 垂直方向表示时间,水平方向表示不同的对 象或参与者。 通常时间维由上到下(根据需要,也可以 由下到上)。通常只有时间顺序是重要的, 但在实时应用中时间轴是能度量的。 对象的水平顺序并不重要,相应地生命线 之间的顺序可以是任意的。
3、执行规约
执行规约表示一个对象直接或者通过从属 例程执行一个行为的时期。它既表示了行 为执行的持续时间,也表示了活动和它的 调用者之间的控制关系。 用一个窄长的矩形表示执行规约,矩形 顶端和它的开始时刻对齐,末端和它的结 束时刻对齐。 在程序的控制流中,执行规约符号的顶 端画在进入的箭头的尖端(开始该动作的 那个箭头),底端画在返回的箭头的尾部。

面向对象分析

面向对象分析

面向对象分析:是确定需求或者业务的角度,按照面向对象的思想来分析业务。

例如:OOA只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。

OOA与结构化分析有较大的区别。

OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。

基本步骤:
在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:
第一步,确定对象和类。

这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。

类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。

第二步,确定结构(structure)。

结构是指问题域的复杂性和连接关系。

类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。

第三步,确定主题(subject)。

主题是指事物的总体概貌和总体分析模型。

第四步,确定属性(attribute)。

属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。

第五步,确定方法(method)。

方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。

对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。

面向对象分析方法

面向对象分析方法

面向对象分析方法1/2面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。

OOA与结构化分析有较大的区别。

OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。

OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。

在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。

分类结构就是所谓的一般与特殊的关系。

组装结构则反映了对象之间的整体与部分的关系。

OOA在定义属性的同时,要识别实例连接。

实例连接是一个实例与另一个实例的映射关系。

OOA在定义服务的同时要识别消息连接。

当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。

OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。

OOD模型由4个部分组成。

它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。

一、OOA的主要原则。

(1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。

抽象是形成概念的必须手段。

抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。

第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。

抽象是面向对象方法中使用最为广泛的原则。

抽象原则包括过程抽象和数据抽象两个方面。

过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。

数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。

软件工程第8章面向对象分析资料

软件工程第8章面向对象分析资料

2017/9/4
2017/9/4
图8・2复杂问題的对象模證的5个层次
3017/9/4 6
2017/9/4 8
8.2需求陈述
&2・1书写要点
需求陈述的内容包括:问®范間,功®需求,性«需求,应用环境及假设条件等。

需求陈述应该阐明“做什么”而不是"怎样做”》它应该描述用户的需求而不提出解决问《的方法-应»指出哪些是系统必要的性质,哪些足任选的性质.
书写需求陈述时,妥尽力做到晤法正确,而且应该慎复选用名词、动词.形容词和同义词•
绝大多««求陈述都是有二义性的、不完»的,甚至不一致的.某些需求有明显错课,还有一些需求虽然表迷得很准确,但它们对系统行为存在不良影响或者实现起来遣价
2017/9/4
8.2.2例子
储户
图&3 ATM肅统
2017/9/4 10。

软件工程面向对象的分析与设计

软件工程面向对象的分析与设计
软件的质量和开发效率
-
THANKS!
XX生活即将结束,在此,我要感谢所有教导我的老师和陪 伴我一齐成长的同学,他们在我的大学生涯给予了很大的帮助。本论 文能够顺利完成,要特别感谢我的导师XXX老师,XXX老师对该论文从选题,构
思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计! 最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位
识别类和继承
通过类和继承,我们可以组织具有相似属性和行为的对象。类 定义了一组对象的通用属性和行为,而继承则允许我们从一个 类派生出另一个类,从而共享和扩展其属性和行为
定义接口
接口定义了类或对象之间的交互方式。它描述了对象需要提供 的方法和需要遵守的协议
面向对象的分析
通过面向对象的分析, 我们可以更准确地理 解和描述软件系统的 需求,为后续的设计 和实现打下坚实的基 础
2
面向对象的 设计
面向对象的设计
面向对象的设计(Object-Oriented Design,OOD)是软件工程过程中的一个关键阶段 ,其目标是基于面向对象的分析结果,设计出满足系统需求的软件结构
识别类和对象:根据面向对象的分析结果,识别出系统中的主要类和对象。这些类和 对象应该能够准确地反映问题域的特征和需求
和操作方式
设计数据库:根据系统的数 据需求,设计出合适的数据 库结构。数据库应该能够有 效地存储和管理系统的数据
设计系统架构:根据系统的 功能需求和性能要求,设计 出合适的系统架构。系统架 构应该能够支持系统的可扩 展性、可维护性和可重用性
面向对象的设计
通过面向对象的设计,我们可 以设计出结构清晰、易于理解 和实现的软件系统,从而提高
面向对象的分析

软件工程概论_8_面向对象需求分析

软件工程概论_8_面向对象需求分析

• 一.面向对象分析模型的组成结构 • 二.面向对象分析模型描述工具 • 三.面向对象分析的基本过程
• 四. 面向对象分析方法
• 五. 小结
一.面向对象分析模型的组成结构
数据模型
属性、操作、协作者
功能模型
类/对象 模型
对象关系模型
使用实例
对象-行为模型
行为模型
二.面向对象分析模型描述工具
1. 用例图
2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析 人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对 问题的一种无歧义的描述。模型由一组图示符号和组织这些 符号的规则组成。利用它们来定义和描述问题域中的术语和 概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型
2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别 结构、识别主题、定义属性和定义服务(方法)。对于一个复杂 问题的面向对象的模型可用五个层次表示:类-&-对象层、结 构层,主题层、属性层和服务层,见图3.3.8。
主题层 subject level 类-&-对象层object 结构层 structure 属性层 attribute 服务层 serves
•使用具有确切含义的名词。
• 尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含 义模糊的词作名字。例如,“库房”比“房屋”或“存物场所”更确切。
•必要时用名词短语作名字。
• 为使名字的含义更准确,必要时用形容词加名词或其他形式的名词 短语作名字。例如,“最小的领土单元”、“储藏室”、“公司员工”等 都是比较恰当的名字。
签定保险单 销售统计
客户

第8章 面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社

第8章  面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社

第8章 面向对象分析
第 5 页5
面向对象分析概述
面向对象分析的3类模型
OOA模型由3类独立模型构成:功能模型、静态模型和动态模型。 ➢功能模型描述软件系统的用户交互和功能。 ➢静态模型描述软件系统中类与对象以及它们间的关系,也因也称 为对象模型。 ➢动态模型描述系统的控制结构,也称为交互模型。
第8章 面向对象分析
第 6 页6
面向对象分析概述

静态模型的5个层次 类-对象层
对象
Coad和Yourdon 提出,对于大型、复杂 性软件系统,需要建立 分析问题域的静态模型。 该模型由5个层次组成: 类-对象层、结构层、 属性层、服务层和主题 层。
结构层 属性层 服务层 主题层
泛化关系
关联关系
属性
对象连接
服务
消息连接
⑶ 用例描述:用文字信息详细描述用例的内容,它是对用 例的有益补充。
第8章 面向对象分析
第 8 页8
建立静态模型
➢用例模型分别从参与者和系统的角度描述用户需求, 依据用例模型导出静态模型。静态模型是面向对象建 模中最基本、最重要、最耗时的技术活动。 ➢静态建模的任务是构建问题域的概念模型,把问题 域中的实体转变为信息域的类与对象以及它们间的关 系,因此也被称为对象模型或领域模型。 ➢静态模型通过建立类图及关系来反映领域概念,而 面向对象设计也建立类图,但各阶段对类的抽象程度 不同。
第8章 面向对象分析
第 12 页12
建立动态模型
建立状态图
状态图描述的就是对象状态的转换过程。通过对对象状态 的分析,能够了解对象在系统流程中的变换,从而发现潜在的事 件和条件。
建立状态图的一般过程如下: ⑴ 了解系统的主要功能和性能,确定和它们有关的主要对象。 ⑵ 列出一个对象的生存期内的所有可能的状态。 ⑶ 确定对象状态改变时的触发条件或事件。 ⑷ 在一个对象中,选定一组与描述状态相关的行为属性和促使 改变状态的方法。 ⑸ 结合触发条件、事件、行为属性值改变的先后顺序,建立软 件系统的状态图。

面向对象分析

面向对象分析

面向对象分析
面向对象分析是计算机科学领域中使用最广泛的一种分析技术,它是一种结构化的分析方法,是系统分析的更新与系统设计的预备工作。

面向对象分析可以帮助我们更好地理解和分析现有系统,并为系统重构提供指导。

面向对象分析是一种以对象为中心,以建模和分析实体、对象和对象之间的关系为主要任务的分析方法。

它的主要目的是将概念抽象为实体,然后利用视图及关系描述它们之间的关系。

面向对象分析包括分析、设计、建模过程,分析过程也称为面向对象分析(OOA)。

面向对象分析强调对对象的分析,对象可以看作对实际世界中的实际事物的抽象。

对象可以由属性和行为组成,属性描述了对象的内部状态,行为描述了它如何处理消息。

在面向对象分析中,这种抽象事物被描绘为类,每个类有一组共享的属性和行为。

面向对象分析和设计的主要工作是抽象建模,确定对象之间的关系,并利用抽象和关系建模系统。

建模可以帮助我们清楚地了解系统结构,以及每个系统元素之间的联系。

一旦建模完成,可以使用模型来设计、分析和实现高级的系统。

面向对象分析是一种结构化的分析方法,用于理解和描述系统的行为,从而有效地构建高质量的系统。

它的关键是建立系统的实体、关系和视图,从而提出系统的结构,并提出系统实现的可行方案。

总体而言,面向对象分析是一种重要而普遍应用的管理技术,它是系统分析和设计过程中的重要组成部分。

对对象的分析有助于进行
更好的系统设计,增强了系统容量,提高了系统灵活性和性能,为组建现代软件系统提供了可行的工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
① 双击Association线,弹出Specification 窗口;或使用右键菜单的“Open Specification” 项。 ② 从stererotype后面的下拉框中选择一种类 型,如图所示。如果下拉框中没有,则可以输 入关系名称。 ③ 单击OK,关闭specification窗口。
使用Rose创建用例模型
确定类与对象
2. 筛选出正确的类与对象
严格考察每个候选对象,从中去掉不正确的或不 必要的类与对象,仅保留确实应该记录其信息或 需要其提供服务的那些类与对象。
确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。 • 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
例:选课系统。给教师分配课程和学生注册课程。
在每个学期选课开始之前,系统管理员需要对系统中的教 师信息、课程信息和学生信息进行维护。学期结束后,将本 学期成绩归档到学籍档案系统。 学生登录系统后会得到一份本学期将要开设的课程目录。 每门课程包含的信息有开课系别、教师、上课时间、教室、 容纳的学生数量和学生选择课程的先决条件。 当学生选择了一门课程后,系统需访问学籍档案系统,查 询是否符合选课的先决条件 。如果不符合,系统给出提示信 息。 每个学期有一段时间让学生可以改变计划,学生可以在这 段时间内访问联机系统以增选课程或退选课程。
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
Student——在学校注册上课的人; Teacher——学校授权上课的人; Administrator——系统认同的维护人员; Archive System——管理学生学籍档案的外部系统。
使用Rose创建用例模型
3. 在Rose中创建用例(Use Case) • 应该将用例放在Use cases包中,如果您的模型结 构中没有这样的包,则应该先创建包。 • 也可以将每个用例放在单独的包中,因此可以先 创建相应的包,再创建用例。 • 另外,在多个用例中使用的公共用例,如验证用 户(Validate User),可以放在一个单独的包中, 如可以在Use cases包中创建Included Use Cases 包来存放公共用例。
确定类与对象
1. 找出候选的类与对象
• 另一种更简单的非正式分析方法,是以自然语言书写的需 求陈述为依据,把陈述中的名词作为类与对象的候选者, 用形容词作为确定属性的线索,把动词作为服务(操作)的 候选者。 • 例如,在选课系统中,可以初步确定Teacher(教师)、 Student(学生)、Course(课程)、CourseTask(课程 任务,指一门课程划分为多个任务)、StudentList(学 生名册)、ScoreReport(成绩单)等类与对象。
使用Rose创建用例模型
3. 在Rose中创建用例(Use Case) 在Rose中创建用例的过程如下: (1) 在浏览器的相应包上单击鼠标右键,弹出菜 单显示; (2) 选择New: Use Case选项,则在浏览器中生 成名为NewUseCase的新用例; (3) 选中创建的新用例,键入设计的名字。 重复上面的步骤,直到将所有需要的用例都创建 完成。
• 添加了参与者与用例之间关系的用例图
使用Rose创建用例模型
(2) 创建用例之间的关系 • 用例之间主要主要有三种关系:包含(include)、使用 (use)、扩展(extend)。 • 在Rose中创建包含( include )关系的步骤如下:
① 在工具条上选择dependency图标; ② 在《包含》用例上单击,拖动到被《包 含》的用例上; ③ 双击dependency线,弹出 specification窗口; ④ 在stereotype下拉列表中选择 “include”,如图所示。 ⑤ 单击OK关闭specification窗口。
用例“选择课程”的规格说明
• 用例“选择课程”的规格说明
3. 创建用例图
• 用例图是若干个参与者和用例,以及它们间的关 系构成的图形表示。 • 每个系统通常都有一个总体视图(Global View of Actors and Use Cases),如果总体视图过于 复杂,则可以创建多个用例图,每个用例图关注 系统的某一方面。 • 通常是围绕参与者创建用例图。
1. 确定业务参与者
• 可通过以下资料来确定系统的参与者:

标识系统范围和边界的环境图; 现有系统(如果有的话)的文档和用户手册; 项目会议和研讨会的记录; 现有的需求文档、工作手册等。
1. 确定业务参与者
• 还可以通过提出以下问题,明确系统的参 与者:



谁或者什么为系统提供输入? 谁或者什么接收系统的输出? 需要与其他系统连接的接口吗? 是否存在在预定的时间自动触发的事件? 谁将维护系统中的信息?
使用Rose创建用例模型
4. 为用例增加文档描述 将用例的规格说明文档关联到 用例的方法如下:
(1) 在浏览器中的用例(如 “Register for a course”)上单 击鼠标右键弹出菜单; (2) 选择Specification菜单; (3) 选择Files标签页; (4) 单击右键弹出快捷菜单; (5) 选择Ins• 从选课系统的需求描述中,可以确定4类参与者: 学生(Student) 教师(Teacher) 系统管理员(Administrator) 学籍档案系统(Archive System)
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:

• 对象模型的5个层次

Coad & Yourdon提出,复杂问题(大型系统)的对象模型应 该由下述5个层次组成:主题层(也称为范畴层)、类-对象 层、结构层、属性层和服务层,如图所示。
8.2 建立用例模型
• 建立用例模型的过程
(1) 确定业务参与者──标识目标系统将支持的不同 类型的用户,可以是人、事件或其他系统。 (2) 确定业务需求用例──参与者需要系统提供的完 整功能。 (3) 创建用例图──标识参与者与用例之间、用例与 用例之间的关系。
使用Rose创建用例模型
1. 在Rose中创建参与者(actors) 创建的角色应放在Use-Case Model包中的Actors包 中比较好,如果模型结构中没有这样的包,可以先 创建Actors包,之后按下面的步骤创建角色: (1) 在浏览器窗口中的Actors包上单击鼠标右键, 显示弹出菜单; (2) 选择New:Actor菜单选项,系统创建名为New Class的参与者; (3) 选中新创建的参与者,更名为设计的名字。

每个参与者的特定任务是什么? 是否每个参与者都要从系统中创建、存储、改变、 移动或读取信息? 是否任何参与者需要通知系统有关突发性的、外 部的改变? 哪些用例支持或维护系统? 目前的用例是否覆盖了所有功能需求?
2. 确定业务需求用例
• 环境图是分析参与者和发现潜在用例的极好来源, 它不仅可以用在结构化分析方法中,也可以用于 面向对象的分析方法中。 • 通过环境图,可以确定系统的主要输入输出,通 过提交和接收输入输出的各方确定潜在的用例。
确定关联
• 标识关联的启发式准则如下:
(1) 检查指示状态的动词或动词短语,识别动作的 主体和客体,从角色寻找关联; (2) 准确地命名关联和角色; (3) 尽量使用常用的修饰词标识出名字空间和关键 属性; (4) 应消除导出其他关联的关联; (5) 在一组关联被稳定之前先不必考虑实例之间的 多重性; (6) 过多的关联使得一个模型不可读。
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件; (7) 单击打开按钮,系统将选择 的文件加到说明窗口中,如图 所示; (8) 单击OK按钮关闭 Specification窗口。
使用Rose创建用例模型
5. 创建用例图
在Rose中创建用例图的过程如下: (1) 加入参与者及用例 ① 在浏览器中的用例视图(Use Case View)中双击Main; ② 单击一个actor选中,并将其拖动到图中; ③ 重复步骤 ②,把每个需要的actor加入到图中; ④ 在浏览器中选择一个用例并把它拖到图中; ⑤ 重复步骤 ④ 把所有用例都拖到图中。
使用Rose创建用例模型
• 添加了包含关系的主用例图如图所示。
8.3 建立对象模型
• 在系统分析阶段,对象建模的主要任务是建立问 题域的概念模型。 • 这个模型描述了现实世界中的“类与对象”以及 它们之间的关系。
• 在UML中,通过建立类图来表示对象模型。
划分主题
• 在开发大型、复杂系统的过程中,为了降低复杂 程度,人们习惯于把系统再进一步划分成几个不 同的主题。 • 应该按问题领域而不是用功能分解方法来确定主 题。此外,应该按照使不同主题内的对象相互间 依赖和交互最少的原则来确定主题。 • 主题可以采用UML中的包来展现。
使用Rose创建用例模型
3. 在Rose中创建用例(Use Case)
使用Rose创建用例模型
4. 为用例增加文档描述
将每个用例的规格说明增加到Rose系统中。 例如,可以将选择课程的规格说明存放在一个单 独的Word文档“选择课程的规格说明.doc”中,并 将此文件作为附加文档添加到Rose中的 “Register for a course”用例下。

例:选课系统。给教师分配课程和学生注册课程。
相关文档
最新文档