第5章 面向对象分析

合集下载

UML面向对象分析、建模与设计课件第五章 类图

UML面向对象分析、建模与设计课件第五章 类图
即可变、只增与冻结。
类——操作
操作是一个可以由类的对象请求以影响其行为的服务的实现,也即 是对一个对象所做的事情的抽象,并且由这个类的所有对象共享。
操作是类的行为特征或动态特征。 操作的语法格式为:
可见性OPT 操作名 ⌊(参数列表)⌋OPT ⌊:返回类型⌋OPT ⌊{特性}⌋OPT
操作名:操作的标识符。在描述操作时,操作名是必须的,其他部 分可选。
Student
+monitor 1
1..*
自关联
类图中的关系——关联关系
关联名称:放在关联路径的旁边,但远离关联端。 角色:放在靠近关联端的部分,表示该关联端连接的类在这一关联
关系中担任的角色。角色名上也可使用可见性修饰符号。 多重性:放在靠近关联端的部分,表示在关联关系中源端的一个对
象可以与目标类的多少个对象之间有关联。 导航性:一个布尔值,用来说明运行时刻是否可能穿越一个关联。 限定符:是二元关联上的属性组成的列表的插槽,其中的属性值用
/WorksForCompany
Department * +department 1 WorksForDepartment
* Person
类图中的关系——泛化关系
泛化关系定义为一个较普通的元素与一个较特殊的元素之间的类元 关系。其中描述一般的元素称为父,描述特殊的元素称为子。
通过泛化对应的继承机制使子类共享父类的属性和操作,小了模型 的规模,同时也防止了模型的更新所导致的定义不一致的意外。
法了,此时称之为N元关联。
类图中的关系——关联关系
class Logical View
ClassA
AssociationName
+rolename 0..*

第5章 Java中的面向对象特性

第5章  Java中的面向对象特性

堆内存 代码区 public class Person { static int id; int age = 20; public static void main(String[] args) {… } } id age
Zhangsan.id
Zhangsan.age lisi.id
lisi.age
例2: 五子棋

面向过程:
1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢, 8、返回步骤2, 9、输出最后结果。

面向对象:
1、黑白双方 --这两方的行为是一模一样的, 2、棋盘系统 --负责绘制画面, 3、规则系统 --负责判定诸如犯规、输赢等。
a product
1.2 ×× 1.728 ×× 1.2
参数传递方式 值传递方式
方式:方法调用时,为形参分配单元,并将实参的值复制到形参
中;调用结束,形参单元被释放,实参单元仍保留并维持原 值 特点: 形参与实参占用不同的内存单元 单向传递
Person zhangSan=new Person(“张三”,18,“男”);
zhangSan
0xabcd
张三 null
name sex age
0 18
栈内存 实体的内存地址
男 0
堆内存
使用new 运算符和类的构造方法为声明 的对象分配内存,如果类中没有构造方法, 系统会调用默认的构造方法,默认的构造方 法是无参数的。
事万物皆对象”。 对象可以看成是静态属性(成员变量)和动态属 性(方法)的封装体。 类是用来创建同一类型的对象的“模板”,在 一个类中定义了该类对象所应具有的成员变量 以及方法。 移J2SDK提供了很多类供编程人员使用,编程 人员也可定义自己的类。

面向对象分析-顺序图

面向对象分析-顺序图

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

(完整版)软件工程 判断题

(完整版)软件工程 判断题

判断题:第1章概述1。

由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。

(×)2。

由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。

(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵.(×)4。

大多数软件产品在其生命周期中不需要增强功能。

(×)5。

大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。

(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。

(×)第4章需求工程1. 在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。

(√)2. 软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。

(×)第5章面向对象基础1. 模型是对现实的简化,建模是为了更好地理解所开发的系统。

(√)2。

UML语言支持面向对象的主要概念,并与具体的开发过程相关。

(×)第6章面向对象分析1. 面向对象分析的核心在于建立一个描述软件系统的模型。

(×)第7章软件体系结构设计1. 系统体系结构的最佳表示形式是一个可执行的软件原型。

(×)2. 软件体系结构描述是不同项目相关人员之间进行沟通的使能器.(√)3. 良好的分层体系结构有利于系统的扩展与维护。

(√)4。

消除两个包之间出现的循环依赖在技术上是不可行的.(×)5. 设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。

(√)第8章面向对象设计1。

面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型.(√)2。

系统设计的主要任务是细化分析模型,最终形成系统的设计模型.(×)3。

关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。

(×)4。

用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。

软件工程实用教程第三版-郭宁主编-课后习题及答案

软件工程实用教程第三版-郭宁主编-课后习题及答案

软件工程实用教程第三版-郭宁主编-课后习题及答案第一章软件工程引论1.在下列选项中,(D)不是软件的特征。

A.系统性与复制性 B. 可靠性与一致性 C.抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。

A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。

A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。

A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。

A.原理探讨 B. 理论研究 C. 建造软件系统D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。

A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。

A.螺旋模型 B. 增量模型 C. 功能模型 D.瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学 D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段 D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D.较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C.用于验证设计方案的原型 D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。

软件工程 第5章--UML

软件工程 第5章--UML
10
UML的定义
UML定义有两个主要组成部分:语义和表示法。 语义用自然语言描述,表示法定义了UML的可 视化标准表示符号,这决定了UML是一种可视 化的建模语言。 在语义上,模型是元模型的实例。UML定义给 出了语法结构的精确定义。 使用UML时,要从不同的角度观察系统,为此 定义了概念“视图(View)‖。视图是对系统的模 型在某方面的投影,注重于系统的某个方面。
独立于过程
系统建模语言,独立于开发过程。
9

容易掌握使用 概念明确,建模表示法简洁明了,图形结 构清晰,容易掌握使用。 着重学习三个方面的主要内容: (1) UML的基本模型元素 (2) 组织模型元素的规则 (3) UML语言的公共机制 与程序设计语言的关系 用Java,C++ 等编程语言可实现一个系统。 一些CASE工具可以根据 UML所建立的系 统模型来产生Java、C++ 等代码框架。
31
UML事物 — 注释事物
11) Note(注释)
依附于一个元素或一组元素之上,对其进
行约束或解释的简单符号。没有语义影响。
See policy8-5-96.doc for details about these algorithms.
CashAccount presentValue()
32
15
UML定义 9 种图,表达UML中的 5 种视图,各 视图在静态和动态方面表示系统模型。
结构 视图 静态 方面
动态 方面
行为 视图 同左
实现 视图 构件图
环境 视图 部署图
同左
用例 视图 用例图
同左
类图 对象图
顺序图 同左 顺序图 合作图 (注重 合作图 状态图 进程、 状态图 活动图 线程) 活动图

王芳-数字档案馆学-第五章 数字档案馆系统的分析与设计

王芳-数字档案馆学-第五章 数字档案馆系统的分析与设计

第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 3、结构化设计的概念
结构化设计的核心是模块分解设计。结构化设计 运用一套标准的设计准则和工具,对系统控制层 次关系和模块进行分解。模块化显著提高了系统 的可修改性和可维护性,同时,为系统设计工作 的有效组织和控制提供了方便条件。结构化设计 最重要的概念包括模块化、内聚与耦合
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 2、结构化设计 结构化设计是软件生命周期的重要组成部分, 是指把通过数据、功能和行为模型展示的软件 需求传送给设计阶段,由设计阶段产生体系结 构设计、接口设计、数据设计和过程设计
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 2、结构化设计
第一节信息系统开发方法介绍
二、原型法
原型法的主要优点表现为:原型法的开发过程是 一个循环往复的反馈过程,符合用户对计算 机 应用的认识逐步发展、螺旋式上升的规律。 原 型法很具体,使用户能很快接触和使用系统,容 易为不熟悉计算机应用的用户所接受,可提 高 用户参与系统开发的积极性。
第一节信息系统开发方法介绍
第五章数字档案馆系统的分析与设计
本章要点
介绍了信息系统开发的一般方法,包括结构化 生命周期法、原型法、面向对象的开发方法以 及计算机辅助设计工程CASE;分析了档案信息 系统的规划方法和可行性研究;最后阐述了档 案信息系统设计的步骤和方法
关键词
档案信息系统 结构化生命周期法 原型法
面向对象的开发方法
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 1、结构化分析 结构化分析方法适合于数据处理类型软件的需求 分析。由于利用图形表达需求显得清晰、简 明 ,易于学习和掌握。具体来说,结构化分析 方 法就是用抽象模型的概念,按照软件内部数 据 传递、变换的关系,自顶向下逐层分解,直 到 找到满足功能要求的所有可实现的软件为止。

(完整版)软件工程 第五章 面向对象的需求分析

(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。

它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。

面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。

20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。

20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。

UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。

本章首先介绍面向对象的主要概念和思想。

在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。

第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。

Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。

如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。

一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。

1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。

可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。

对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。

例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。

图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。

《软件工程实用教程》第5_章_面向对象的需求分析

《软件工程实用教程》第5_章_面向对象的需求分析

第5 章 面向對象的需求分析
5.2.2 封裝、繼承和多態
1.封裝 封裝是指把對象的外部特徵與內部實現細節分開,使 得一個對象的外部特徵對其他對象來說是可訪問的, 而它的內部細節對其他對象是隱蔽的。 對象具有封裝性的條件如下: (1) 有一個清楚的邊界,所有私有數據和操作的代碼都被 封裝在這個邊界內,從外面看不見更不能訪問; (2) 有確定的介面,這些介面描述這個對象和其他的對象 之間相互的作用; (3) 受保護的內部實現,這個實現給出了由軟體對象提供 的功能的細節,實現細節能在定義這個對象的類的外 面訪問。
第5 章面向對象的需求分析
通過在不同程度上運用抽象原則(忽略事物 之間的一些差異),可以得到較一般的類和 較特殊的類。特殊類繼承一般類的屬性和操 作,面向對象方法支持這種繼承關係的描述 與實現,從而簡化系統的構造過程及其文檔; 複雜對象可以用簡單的對象作為其構成部分 (稱為聚合); 對象之間通過消息進行通信,以實現對象之 間的動態聯繫; 通過關聯表達對象之間的靜態關係。
第5 章面向對象的需求分析
5.1.3 面向對象方法的優點 1. 與人們習慣的思維方法一致 2. 可使軟體系統結構更加穩定 3. 軟體具有更好的可複用性 4. 軟體更加便於維護與擴充
第5 章面向對象的需求分析
5.1.4 面向對象建模
用例模型:包含所有用例及其與用戶之間的關係; 對象模型:包含問題域涉及的類及其屬性和關係,其 作用是更詳細地提煉用例,將系統的行為初步分 配給提供行為的一組對象; 設計模型:將系統的靜態結構定義為子系統、類和介 面,並定義由子系統、類和介面之間的協作來實 現的用例; 實現模型:包含構件和類到構件的映射; 配置模型:定義電腦的物理節點和構件到這些節點的 映射; 測試模型:描述用於驗證用例的測試用例。

软件工程(习题与参考答案)

软件工程(习题与参考答案)

第1章概述〔习题与参考答案〕[判断题]1. 由于今天个人计算机不断开展壮大,人们不再采用软件团队的开发方式。

〔×〕2. 由于软件是产品,因此可以应用其他工程制品所用的技术进展生产。

〔×〕3. 购置大多数计算机系统所需的硬件比软件更昂贵。

〔×〕4. 大多数软件产品在其生命周期中不需要增强功能。

〔×〕5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。

〔√〕6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。

〔×〕[选择题]1. 〔〕因素促使计算机系统越来越复杂。

〔D〕A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系构造方面的深刻变化D. 以上所有选项2. 下面的〔〕不再是现代软件工程师关注的问题。

〔A〕A. 为什么计算机硬件的本钱这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的本钱这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于〔〕。

〔C〕A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于〔〕。

〔C〕A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的〔〕说法是正确的。

〔C〕A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的根本目标是〔〕。

〔B〕A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. 〔〕是将系统化的、标准的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

建立动态模型_软件工程实用教程 (第2版)_[共5页]

建立动态模型_软件工程实用教程 (第2版)_[共5页]

在活动图中使用一个菱形的判断标志,则可以表达条件关系,判断标志可以有多个输入和输出转移,但在活动的运作中仅触发其中的一个输出转移。

引入活动图的目的主要是描述并发活动和跨用例的系统任务。

在活动图中使用一个称为同步条的水平粗线可以将一条转移分为多个并发执行的分支,或将多个转移合为一条转移。

此时,只有输入的转移全部有效,同步条才会触发转移,进而执行后面的活动,如图5.31所示。

2.泳道将模型中的活动按照职责组织起来通常很有用。

泳道图的作用是将活动图的逻辑描述与顺序图、通信图的责任描述结合起来。

泳道用矩形框来表示,属于某个泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。

如图5.32所示,采样器经初始化后产生两个并发任务:一个任务是采样处理;另一个任务是用采样得到的数据更新显示器。

这两个任务分别由采样器和显示器完成。

图5.32 采样显示活动图3.对象活动图能表示对象的值流和控制流。

在活动图中,对象可以作为动作的输入或输出,或简单地表示指定动作对对象的影响。

对象用对象矩形符号来表示,在矩形的内部有对象名或类名。

当一个对象是一个动作的输入时,用一个从对象指向动作的虚线箭头来表示;当对象是一个动作的输出时,用一个从动作指向对象的虚线箭头来表示。

当表示一个动作对一个对象有影响时,只需用一条对象与动作间的虚线来表示,如图5.32所示,作为一个可选项,可以将对象的状态用中括号括起来放在类名的下面。

5.5.5 建立动态模型静态模型得到的类的信息并不完整,因为系统在运行过程中,组成系统的对象是相互配合的,协同完成每一个用例的功能。

详细了解角色与对象以及对象之间的交互过程将极大地方便系统的具体实现。

当系统与用户交互或系统内部各对象交互的时候,组成系统的对象为了适应交互要经历必要的变化。

人们还需要了解对象如何随时变化,并在模型中反映出这种变化。

建立动态模型的步骤是:编写典型交互序列的场景,虽然场景中不可能包括每个偶然事件,但是至少必须保证不遗漏常见的交互行为;从场景中提取出对象之间的事件,确定触发每个事件的动129。

第5章 对象建模

第5章  对象建模
是的但它们之间有很大的区别在结构化分析中我们将数据和影响数据的操作处理分开来看但对象不同它同时包含数据和操作处理在面向对象的分析中我们把添加修改或更改数据这些操作处理称作方法
第5章 对象建模


1. 2.
3.
4. 5. 6.
7.
第5章是软件开发生命周期的系统分析阶段4章中的第3章。这一章讨论 对象建模技术,它可以帮助分析员创建逻辑模型。除了结构化分析以外, 面向对象的分析是另外一种表示和设计信息系统的方法。 学习目标 完成本章学习后,将了解以下内容: 解释如何使用面向对象分析来描述信息系统。 定义对象建模术语和概念,包括对象、属性、方法、消息、类和实例。 解释对象之间的关系和继承的概念。 绘制对象关系图。 描述统一建模语言(UML)工具和技术,包括用例、用例图、类图、顺序 图、状态转换图和活动图。 解释用CASE工具开发对象模型的优点。 阐述如何组织对象模型。
5.1.3 属性




若对象类似于名词的性质,那么属性就是类似于描述对象特征的形容词。 一个对象到底需要多少属性呢?答案取决于信息系统及其用户的业务需 求,即便是一个相对而言比较简单的对象,例如某项库存商品,也可能 需要部件编号、描述、供应商、现有数量、最低库存水平、最高库存水 平、订单时间等比较多的属性。 有些对象只需要很少的属性,而有些可能需要许多。 系统分析员在系统设计处理期间定义了对象的属性。 在面向对象的系统中,一个对象可以从其他对象继承或获取属性,当学 习了对象和类之间的关系之后就会了解继承是如何发生的。 对象的特定属性称作状态,对象的状态就是描述该对象当前情形的形容 词。 例如学生可能是将来的学生、当前的学生或者过去的学生,具体情况取 决于状态。 同样一个银行账户可能是已经使用的、尚未使用的或者被冻结的。

《软件工程概论》郑人杰版 第5章 面向对象方法与UML

《软件工程概论》郑人杰版 第5章 面向对象方法与UML
与对象进行交互; (3) 受保护的内部实现,即软件对象功能的实现细节,实现细
节不能从类外访问。
继承
• 继承。继承是一种联结类的层次模型,为类的重用提供
了方便,它提供了明确表述不同类之间共性的方法。 • 我们将公共类称为超类(superclass)、父类(father
class)、祖先(ancestor)或基类(base class),而 从其继承的类称为子类(subclasses)、后代( deslendane)或导出类(derived class)。
对象之间的交互
行为事物
(2)状态机(state machine)── 描述了一个对 象或一个交互在生存周期内响应事件所经历的状 态序列,单个类或者一组类之间协作的行为都可 以用状态机来描述。 状态机涉及到状态、变迁和活动,其中状态用圆角 矩形来表示。
对象
(2) 角色(Roles)── 一个实体的角色也可 以抽象成一个单独的对象。角色对象的操 作是由角色提供的技能。
• 例如,一个面向对象系统中通常有“管理器”对象,它履 行协调系统资源的角色。一个窗口系统中通常有“窗口管 理器”对象,它扮演协调鼠标器按钮和其他窗口操作的角 色。特别地,一个实际的物理对象可能同时承担几个角色 。
清晰,容易掌握使用。 (6)与编程语言的关系
支持UML的一些CASE工具(如Rose)可以根据 UML所建立的系统模型自动产生Java、C++ 等代 码框架。
UML的基本模型
➢ UML符号为开发者或开发工具使用这些图形符号 和文本语法为系统建模提供了标准。 ➢ 这些图形符号和文字所表达的是应用级的模型, 在语义上它是UML元模型的实例。 ➢UML模型由事物、关系和图组成 。
第5章 面向对象方法与UML

第05章面向对象分析

第05章面向对象分析

经过初步筛选后,剩下的类与对象有:
手表、按钮、显示屏、电池、时间。
2 按钮 1 简单手表 1 1 时间
1 显示屏
1
1 电池
1
图5-8 电子表元素的UML类图
三、定义属性和方法
问题域中的事物的特征可以区分为静态特征和动态特征, 静态特征可以通过一组数据来表示,而动态特征则可以通过一 系列操作来表达。面向对象方法用对象来抽象问题域中的事物, 相应的对象属性和服务则与事物的静态特征和动态特征相对应。
第5章
面向对象分析
教学目的、要求,重点、难点
目的要求:使学生了解面向对象的分析过程,需求 陈述的书写,掌握建立对象模型、动态模型、功能 模型方法和步骤。 教学重点:建立对象模型、动态模型、功能模型的 方法和步骤。 教学难点:建立对象模型、动态模型、功能模型的 方法和步骤 讲授内容:面向对象的分析过程,需求陈述的书写, 建立对象模型、动态模型、功能模型方法和步骤。
电子表
构造对象模型的第一 步是标出来自问题域的相 关对象类。对象包括物理 实体和概念,所有类在应 用中都必须有意义,在问 题陈述中,并非所有类都 是明显给出的。有些是隐 含在问题域或一般知识中 的。
读时间
设置时间 手表用户 更换电池 手表修理工 图5-6 电子表的UML用例图
二、发现对象的方法 类-&-对象是在问题域中客观存在的,系统分 析员的任务,就是通过分析找出这些类-&-对象。 1、找出侯选的类-&-对象 客观事物可以分为五类: 1)可感知的物理实体;(飞机,汽车,书…) 2)人或组织的角色;(医生,教师,雇主,计算机系) 3)应该记忆的事件;(飞行,演出,交通事故…) 4)两个或多个对象的相互作用,通常具有交易或接触 的性质;(购买,纳税,结婚…) 5)需要说明的概念;(政策,保险政策,版税法…) 在分析所面临的问题时,可以参照上述五类事物, 找出在当前问题域中的侯选类-&-对象。

面向对象分析与设计

面向对象分析与设计

提高软件的可维护 性和可扩展性
面向对象分析与设计的基本原则
面向对象分析与设计遵循一些基本原则,比如封 装性、继承性、多态性和抽象性。封装性指隐藏 对象的内部细节,仅暴露有限的接口;继承性允 许子类继承父类的属性和方法;多态性允许同一 方法在不同对象上有不同行为;抽象性帮助提取
对象的共性特征,形成抽象类或接口。
观察者模式
概念
定义对象间的一种一对多的依赖关系
特点
主体对象状态改变时,依赖对象会自动更新
应用场景
当一个对象的改变需要同时改变其他对象,并且不知道具体有多少对象需要改变时
模板方法模式
模板方法模式是一种行为型设计模式,定义了一个算法的骨 架,允许子类为一个或多个步骤提供实现。这种模式在父类
中定义算法的步骤,而将一些实现延迟到子类。
设计模式应用
选择合适模式
根据实际情况选择 合适的设计模式
灵活性提升
通过设计模式提高 系统的灵活性和可
扩展性
●04 第四章 面向对象编程语言
Java
支持类
Java拥有丰富的类库,方便开发人员使用
继承
允许一个类继承另一个类的属性和方法
封装
将数据和方法封装在类中,提高安全性和模块性
C++
C++是一种多范式编程语言,支持过程化编程、 面向对象编程和泛型编程。它是继C语言后,一种
Eclipse IDE
集成开发环境
Visual Studio
强大的开发工具
IntelliJ IDEA
智能IDE
协作工具
Git版本控制
代码管理利器
JIRA项目管理
项目跟踪与管理
Confluence团队协 作
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生信息管理系统主要参与者
12
建立用例模型案例-学生信息管理系统
⑷成绩管理模块的用例 ① 录入成绩 ② 修改成绩 ③ 保存成绩 ⑶课程基本信息管理模块的用例 ④ 查询成绩 ① 添加课程基本信息 ⑤ 打印成绩单 ② 查询课程基本信息 ③ 修改课程基本信息 ④ 删除课程基本信息 ⑤ 打印课程基本信息
13
面向对象分析模型
在面向对象分析中,主要包括以下3个独立的模型。 ①对象模型(静态模型):对用例模型进行分析,把系 统分解成互相协作的分析类,通过类图/对象图描述 对象/对象的属性/对象间的关系,是系统的静态模型。 对象模型是最基本、最重要、最核心的。 ②动态模型:描述系统的动态行为,通过顺序图/合作 图描述对象的交互,以揭示对象间如何协作来完成每 个具体的用例,单个对象的状态变化/动态行为可以 通过状态图来表达。 ③功能模型:以用例模型为基础,描述系统应具有的功 能用于实现用户的日常需要。由用例和场景表示。
第五章 面向对象分析
Object-Oriented Analysis
珠海市软件行业协会专家委员会主任 吉林大学珠海学院计算机系教授
李军国
1
主要内容
1. 面向对象分析概述
2. 面向对象分析过程
2 2
一、面向对象分析概述
1. 需求获取
2. 面向对象分析模型
3. 面向对象分析的步骤
3
面向对象分析(Object-Oriented Analysis,OOA)
27
对象属性的审查和筛选
对于找到的对象属性,还应进行严格的审查和筛选,才 能最终确定对象应具有的属性,在审查和筛选中,应考 虑的问题有: ① 该属性是否体现了以系统责任为目标的抽象; ② 该属性是否描述了该对象本身的特性; ③ 该属性是否破坏了对象特征的“原子性”; ④ 该属性是否已通过类的继承得到; ⑤ 该属性是否可以从其他属性推导得到。
28
(2)定义对象的服务
在系统需求中分检出相应的动词,作为类中可能使 用的服务,通过这种方法,我们能够发现类对象的 一些服务。
29
4、识别对象的外部联系
对象-关系 模型描述了系统 的静态结构,它 指出了类间的关 系。
对象及其类与外部的关系
① 一般-特殊关系(即继承关系):即对象之间的分 类关系,用一般-特殊结构表示; ② 整体-部分关系:即对象之间的组成关系,用整体 -部分结构表示; ③ 静态连接关系(即关联关系):即通过对象属性 所反映出来的联系,用实例连接表示; ④ 动态连接关系(即依赖关系):即对象行为之间 的依赖关系,用消息连接表示。
16
发现和定义对象与类
在寻找各种可能有用的候选对象时,主要的策略是:从问 题域、系统边界和系统责任这3方面出发,考虑各种能启发我 们发现对象的因素,找到可能有用的候选对象。 ① 在问题域方面,可以启发分析员发现对象的因素包括 人员、组织、物品、设备、事件、表格、结构等等。 ② 在系统边界方面,应该考虑的因素包括人员、设备和 外部系统,它们可以启发分析员发现一些系统与外部 活动所进行的交互,并处理系统对外接口的对象。 ③ 对系统责任的分析是基于对象识别的遗漏的考虑,对 照系统责任所要求的每一项功能查看是否可以由已找 出的对象来完成该功能,在不能满足要求时增加相应 的对象,可以是系统分析员尽可能完全的找出所需要 的各种对象。
18
发现和定义对象与类
对于我们研究的学生信息管理系统,还需要筛选和精 简候选的类对象。 本系统中筛选的候选类对象包括:学生、教师、账号、 课程、成绩、班级、专业和选修课。为了将学生、教 师类与参与者相互区别,这里描述为学生信息、教师 信息。
19
发现和定义对象与类
学生信息 学号 姓名 年龄 家庭住址 性别 身份证号 身高 课程 课程编号 所属专业 课程名称 学时 学分 任课教师 账号 密码 学期
问题域分析建立用例模型
面向对象分析的基础就是问题域以及用户的需求, 研究问题域和系统需求的主要目的是通过对问题域的 深入研究,建立一个能够满足用户需求的系统模型。 面向对象分析强调系统模型与用户需求的紧密对应, 对问题域的研究贯穿与整个面向对象分析工作中。面 向对象分析的第一步就是分析用户需求,在此基础上 建立用例模型。
7
二、面向对象分析过程
1. 需求获取和问题域分析
2. 发现和定义对象与类
3. 识别对象的内部特征
4. 识别对象的外部联系 5. 建立用例模型
8
1、需求获取和问题域分析
需求获取是需求分析 的第一项工作,涉及软件 设计人员如何与客户建立 有效的沟通。也称为“需 求发现”、“需求获得”。 是采用用例来收集客户需 求的技术。需求获取的途 径和手段主要有以下几种: ① 访谈式 ② 诱导式 ③ 确认式
17
发现和定义对象与类
发现学生信息管理系统中的类对象:首先在用户需 求中分检出候选的类对象。通常,需要通读需求报告, 在问题域中发现其中的名词,将其分检出来作为候选的 类对象。在学生信息管理系统中,可能作为候选类对象 的有:系统、用户、新生、系统管理员、学生、基本信 息、姓名、性别、年龄、身份证号、家庭住址、身高、 编号、学生证号、学校领导、学生信息、相关部门、新 专业、学校、社会、课程信息、课程编号、所属专业、 课程名称、开课学期、学时、学分、任课教师、专业、 班级、报表、网络、选修课、时间、数量、人数、考试、 考试成绩、账号、密码、账号信息。
识别对象的内部特征
对象的内部特性包括对象的属性和服务。识别对象的内 部特征包括定义对象的属性和服务两个部分的工作。问 题域中,事物的特征可以区分为静态特征和动态特征, 静态特征通过一组数据来表示,而动态特征则可以通过 一系列操作来表达。 对象的属性和服务描述了对象的内部细节,只有给出了 对象的属性和服务,才能说对于该对象有了明确的认识 和定义。 对于对象的属性和服务,面向对象方法提供了专门的表 示方法:对象的属性用在类符号中部填写的各属性的名 字表示;而对象的服务则用在类符号的下部填写的各服 务的名称表示。
21
发现和定义对象与类
(1)识别边界类 边界类使是从那些系统和外界进行交互的对象中归纳、 抽象出来的,它是系统内的对象和系统外的参与者的联 系媒介,外界的消息只有通过边界类的对象实例才能发 送给系统。 根据角色的不同类型,边界类可以是用户接口、系统接 口和设备接口。对于用户接口来说,边界类集中描述了 用户与系统的交互信息,而不是描述用户接口的显示形 式,如按钮等;对于系统接口和设备接口来说,边界类 集中描述所定义的通信或交换协议,而不是说明协议如 何实现的。边界类使系统与系统的外部变化隔离开来。 参与者只许通过边界类和系统通信。
成绩
选修课
教师信息
班级
专业
选课信息
系统初步类图
20
发现和定义对象与类
在面向对象分析中,从软件功能需求来看,分析类 (在进行面向对象分析过程中所使用的类)根据其功能 和作用可以划分为以下3种: ①实体类:表示系统存储和管理的永久信息; ②边界类:表示参与者与系统之间的交互; ③控制类:表示系统在运行过程中的业务控制逻辑。
11
建立用例模型案例-学生信息管理系统
Hale Waihona Puke ⑵班级基本信息管理模块的用例 ① 添加班级基本信息 ② 修改班级基本信息 ⑴学生信息管理模块的用例 ③ 查询班级基本信息 ① 录入学生基本信息 ④ 删除班级基本信息 ② 查询学生基本信息 ⑤ 打印班级基本信息 ③ 修改学生基本信息 ④ 删除学生基本信息 ⑤ 打印学生基本信息
22
发现和定义对象与类
(2) 识别控制类 控制类是实体类和边界类之间的润滑剂,用于协 调边界类和实体类之间的交互。 控制类与用例存在着密切的关系,它在用例开始 执行时创建,在用例结束时取消。一般来说,一 个用例对应一个控制类。
23
整理后的系统类图
24
3、识别对象的内部特征
该阶段分为两个步骤: ① 第一,识别一般-特殊 结构,该结构捕 获了 识别出的类的层次结 构; ② 第二,识别整体-部分 结构,该结构用来 表 示一个对象如何成 为另一个对象的一部 分,以及多个对象如 何组装成更大 的对象。
5
面向对象分析模型
基本模型是一个类图(Class Diagram),是以直观的方式 表达系统最重要的信息。构成类图的元素所表达的模型信 息,分为三个层次:对象层、特征层、关系层 补充模型:主题图、交互图 详细说明:按照分析方法 所要求的格式,对分析模 型进行说明和解释,主要 以文字为主。
描述如何发现类及对象。
发现和定义对象与类
在对象识别中最为关键的是正确运用抽象原则。面向对 象分析用对象来映射问题域中的事物,但并不是问题域 中的所有事物都需要用对象来映射。 首先要舍弃与系统责任无关的事物,保留与系统责任有 关的事物。其次,还要舍弃与系统责任有关的事物中与 系统责任无关的特征。判断事物极其及其特征是否与系 统责任相关的准则是:该事物是否向系统提供了一些服 务或需要系统描述它的某些行为。同时还要考虑将问题 域中的事物映射为什么对象以及如何对对象进行分类
31
(1)定义一般-特殊结构
一般-特殊结构又称分类结构,是由一组具有一般特殊关系(即继承关系)的类所组成的结构,表示“isa-kind-of”关系。在UML中,用一个带有空心三角形 的连线来表示。空心三角形指向基类。
32
发现一般-特殊结构
为了发现一般-特殊结构,同时还应采用如下策略: ①学习问题域的分类学知识,按照问题域已有的分类学 只是找出与之相对应的一些一般-特殊结构; ②按照尝试考虑事物的分类,从而发现其中的一般-特殊 关系; ③考察类的属性与服务,若一个类的属性与服务只能适 合该类的一部分对象,则应该从这个类中划分出一些 特殊类:若两个或两个以上的类含有一些共同的属性 和服务,则可以考虑将这些共同的属性和服务提取出 来,构成一个在概念上包含原先那些类的一般类; ④考虑领域范围内的复用,在更高水平上运用一般-特殊 结构,并能开发贡献一些可复用性更强的类的构件。
相关文档
最新文档