华师大面向对象程序设计-Lec03_第2章-用例图

合集下载

10级《面向对象程序设计》第二章教学课件

10级《面向对象程序设计》第二章教学课件
• 关键字不能作为标识符; 关键字是具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称 为保留字(reserved word),下面列出了java语言中的所有保留字:
abstract do implements protected throws boolean double import public transient break else instanceof return true this throw byte extends int short try synchronized case false interface static void continue catch final long strictpf volatile goto default char finally native super while package class float new switch const for null if private • java中的关键字均用小写字母表示。
• 将一个字符放到一个字符变量中,实际上并不是把该 字符本身放到内存单元中去,而是将该字符的相应的 Unicode代码放到存储单元中。
char c1=‘t’; char c2=‘3’; • char基于Unicode编码,\u前缀标志着这是一个
Unicode值 例如,\u0061代表字符’a’。
新术语
而变量i是定义在speak方法中, 它的作用域仅限于speak方法 中。这类定义在某方法中的变 量叫做局部变量。
注意:同一作用域中不可有同 名的变量。如上面的代码在 speak方法中不能再定义一个 名字为i的变量。
在Java中嵌套的程序块的内层和外 层,不允许定义相同的变量名,否 则将导致编译错误。

面向对象程序设计PPT课件 PPT资料共63页

面向对象程序设计PPT课件 PPT资料共63页
Stringed object vptr
Percussion object vptr
&Wind::play() & Stringed::play() & Percussion::play()
06.11.2019
第5章多态与抽象类
37
当通过对象调用虚函数时,是通过 vptr找到虚函数表,再找出虚函数的 真正地址。
06.11.2019
第5章多态与抽象类
28
【思考题5-4】将例5-5中用对象调用
虚函数,其结果如何?
【注意】只有通过对象指针或对象引 用来调用虚函数,才能实现动态联编 。如果采用对象来调用虚函数,则采 用的是静态联编方式。
06.11.2019
第5章多态与抽象类
29
【例5-6】将例5-4基类的成员函数 print()设为虚函数,采用对象引用调 用虚函数,进而实现动态联编。
06.11.2019
第5章多态与抽象类
32
小结
(1)如果你期望在派生类中重新定义一 个成员函数,那么你就应该在基类中 把该函数设为virtual。
(2)以单一指令调用不同函数,这种性 质就是"多态"。
(3)虚函数是C++语言的多态性质和动 态绑定的关键。
(4)虚函数派生下去仍是虚函数,而且
可以省略virtual关键词。 06.11.2019
25
该程序的运行结果为:
A student A graduate student A student A student A graduate student
06.11.2019
第5章多态与抽象类
26
【思考题5-5】如果将例5-5中Student类改 为:

面向对象系统分析与设计-UML基础-用例图

面向对象系统分析与设计-UML基础-用例图
面向对象系统 分析与设计方法
——UML基础
主要内容
面向对象的主要概念 UML相关概念 UML模型 UML的扩展
2
面向对象基本概念——对象
1.定义: 对象(Object)是系统中一个用来描述客观事物的实
体。 2.特征:
对象具有自己的静态特征和动态特征。 其中:
静态特征是对象自身所要维护的信息,称为属 性,可用值来描述;
17
Rational Rose
Rose提供对工业标准的支持,其中包括统一 建模语言UML。Rose具有建立、浏览、修改和保 存模型的能力,保证不同模型视图之间、模型与 代码之间转化的一致性,它具有支持正/反向建 模的能力。Rose主要针对企业信息系统建模。
Rose开发环境
启动 Rose 单击[开始]-
Purchase
productSet store
7
多继承
在有些情况下,一个类可能需要同时使用两个以 上的父类的属性和操作,或者一个类包含在两个以上 的父类的交集之中,则该类将从两个以上的父类中继 承属性和操作,这称为多继承(Multiple Inhentance)。 如担任领导的教师。
8
多继承
陆上交通工具
15
UML语言内容
UML基本图素 UML模型图 UML建模规则
16
支持 UML的工具
目前有很多支持 UML的工具,例如 Rational Rose 、Together、ArgoUML、MagicDRaw UML、Visual UML 等。UML只是一套可视化的面向对象系统分析与设计 的语言,它一定要与一套工具搭配使用。与UML搭配 最密切的工具就是 Rational Rose。
25
用例图的图形符号

华师大面向对象程序设计-Lec02_面向对象分析与设计的基本概念及案例

华师大面向对象程序设计-Lec02_面向对象分析与设计的基本概念及案例

defining software objects and how they collaborate to fulfill the requirements.
OOA:


OOD:

in the case of the flight information system, some of the concepts include Plane, Flight, and Pilot. a Plane software object may have a tailNumber attribute and a getFlightHistory method
Key idea in OO: Die Use software class 1names in2 the domain layer die1 : Die faceValue : int die2 : Die from names in the domain model, inspired getFaceValue() : int play() roll() with objects having domain-familiar information and responsibilities. Fig. Partial design class diagram

What is deployment?

Deployment is the actual installation in the host environment

Relationship of the Analysis and Design
Useful analysis and design have been summarized in the phrase : “ do the right thing (analysis), and do the thing right (design) ”

面向对象需求分析——用例图和活动图

面向对象需求分析——用例图和活动图

面向对象需求分析——用例图和活动图面向对象软件开发的方法有:a,面向对象分析(OOA)b,面向对象设计(OOD)c,面向对象实现(00I)d,面向对象测试(OOT),e,面向对象维护(OOM)这几个主要大步骤。

下边我们就从面向对象的角度来学习UML的相关图。

这里介绍面向对象分析阶段的用例图和活动图。

面向对象分析阶段,我们要明确系统的职责,范围和边界;确定软件的功能和性能;构建需求模型(用例模型)。

首先在这里说一下,为什么将这两个图放在一起,主要原因就是活动图的一个目的是更细致的描述用例图,和文档的配合使用,使用例图更加清楚明了。

先介绍一下:用例图1,概念:用例是系统的一个功能单元,是对用户需求的描述。

2,组成:参与者,用例及其之间的关系(包括关联关系,泛化关系,包含关系,扩展关系):3,用例建模的步骤:a,确定系统的范围和边界;b,确定系统的用例和参与者;c,描述用例;d,对用例分类,并确定用例之间的关系;e,建立用例图,并定义用例图的层次结构;f,评审用例模型。

下边我们看个例子:这是一个教务管理系统的总用例图和一个子一级用例图,当然还可以再分:在上述6个步骤中,我简单总结一下:a,系统边界,就是一个系统内部所有元素与系统外部事物的分界线。

b,用例和参与者,需要我们根基实际情况去抽象。

c,描述用例,这个我重点写一下(举例,选课注册):用例编号:0101用例名称:选课注册执行者:学生功能:实现学生选课注册的过程类型:主要用例,基本用例级别:一级过程描述:1,学生输入系统账号和密码,系统进行验证;2,查询课程信息3,查询个人选课信息4,若可以选课,则进行选课注册,并将选课信息写入数据库中5,返回选课注册是否成功异常事件流处理:1,学生的账号和密码错误,允许重新输入(3次)2,学生未按时交纳学费,不可选课3,学生人数已达到上限,不可选课。

(当然在这里在把下边的活动图,添加进来即可)d,用例分类和确定之间的关系,有端点用例,基本用例,主要用例,辅助用例等,关系弄准确就可以。

面向对象程学设计部分课件-类图

面向对象程学设计部分课件-类图
02 使用箭头和线条表示类之间的关系,建立类之间 的连接。
02 根据关系的性质和方向,选择合适的表示方法。
添加属性和方法
为每个类添加属性,表示 类的状态和特征。
根据需要,为属性和方法 添加访问修饰符和参数列 表。
添加方法,表示类的行为 和操作。
遵循规范进行布局和美化
使用标准的符号和标 记表示类和关系。
使用颜色和注释等美 化手段,提高类图的 可读性和美观度。
合理布局类和关系, 使类图清晰易读。
案例分析:简单系统类图设
03

案例背景介绍
01
系统概述
简单系统是一个模拟图书馆管理系统的案例,包 括图书、读者、借阅记录等核心元素。
02
需求分析
系统需要实现图书的增删改查、读者的增删改查、 借阅记录的增删改查等功能。
增强了团队协作和沟通能力
03
在案例演练环节,学员们分组协作,共同完成任务,增强了团
队协作和沟通能力。
未来发展趋势预测
01
类图工具将更加智能化
随着人工智能技术的发展,未来的类图工具将更加智能化,能够自动识
别代码结构并生成相应的类图。
02
类图将与代码生成更加紧密地结合
未来的类图工具将更加注重与代码生成的结合,能够根据类图直接生成
方式。
实战案例演练
通过多个实战案例, 让学员们熟练掌握类 图的绘制方法和技巧。
学员心得体会交流
加深了对面向对象程序设计的理解
01
通过类图的学习,学员们更加深入地理解了面向对象程序设计
的思想和方法。
提升了分析和设计能力
02
通过绘制类图,学员们学会了如何分析和设计复杂的软件系统,
提高了自身的分析和设计能力。

C面向对象程序设计第二章

C面向对象程序设计第二章

C++
2- 6
2.1 面向对象程序设计方法概述
什么是对象封装(encapsulation )?
就是把对象的不想让外界知道的属性和功能屏蔽起来, 让外界看不见。封装有两个含义,一是将有关的数据和操作 函数封装成一个基本单位,即对象内。各对象之间相互独立, 互不干扰;二是将对象中的部分属性或功能对外隐蔽,只留 少数接口向外公布,以接收外界信息。
就是对象的“属性”,函数就是用来对数据进行的“操作”, 以便实现某种功能。这种操作就是对象的“行为”,也叫 “方法”。我们点击一下鼠标,按动键盘的一个按钮,就是 给某个对象一个消息,系统会调用该对象中的函数进行操作。
比如长方形对象,其长和宽就是它的属性,调用该对象 的一些函数,即向该对象传送一些消息,可以用来对其长、 宽值进行加工计算,以实现求出面积、周长等功能。
C++中,所谓多态性是指,由继承而产生的相关的不同 的类,其对象对同一消息会作出不同的响应。
显然,多态性能增加程序的灵活性,它是面向对象程序 设计的重要特征。
C++
2- 10
填空题
1.面向对象的系统最突出的特性是



2.C++语言是一种计算机编程语言,利用它编写的程序并不能
直接在计算机上运行,而是要经过 、 和
C++ 语言设计
第二章 类和对象
第一章 C++的初步知识 第二章 类和对象 第三章 再论类和对象 第四章 运算符重载 第五章 继承与派生 第六章 多态性与虚函数 第七章 输入输出流 第八章 C++工具
ቤተ መጻሕፍቲ ባይዱ
C++

面向对象的系统定义工具—用例图

面向对象的系统定义工具—用例图

面向对象的系统定义工具|用例图的组成
➢ 用例图的4个组成要素:参与者、用例、系统边界、关联。
关联(用例关系):用例间可抽象出包含、扩展和泛化这几种关系。
✓ 包含关系:指用例可以简单地包含其他用例具有的行为,并把它所包含的用例 行为作为自身行为的一部分。
用例间的包含关系示意图
面向对象的系统定义工具|用例图的组成
✓ 用例的粒度指的是用例所包含的系统服务或功能单元的多少。 ✓ 用例的粒度越大,用例包含的功能越多,反之则包含的功能越少。 ✓ 对于比较简单的系统,因为系统的复杂度一般比较低,所以可适当加大用例模
型一级的复杂度,也就是可以将复杂的用例分解成多个用例。 ✓ 对于比较复杂的系统,因为系统的复杂度已经很高,需要加强控制用例模型的
是否符合土地利用总体规划
规划修改
用例间的扩展关系示意图
面向对象的系统定义工具|用例图的组成
➢ 用例图的4个组成要素:参出包含、扩展和泛化这几种关系。
✓ 包含关系
✓ 扩展关系 ✓ 泛化关系:用例的泛化指的是一个父用例
可以被特化形成多个子用例,而父用例和 子用例之间的关系就是泛化关系,在用例 的泛化关系中,子用例继承了父用例所有 的结构、行为和关系,子用例是父用例的 一种特殊形式。
面向对象的系统定义工具|用例图的组成
➢ 用例图的4个组成要素:参与者、用例、系统边界、关联。
参与者的定义
✓ 系统外部并直接与系统进行交互的人、系统、子系统或类 的外部实体的抽象,它以某种方式参与了用例的执行过程。 参与者示意图
相关概念
✓ 每个参与者可以参与一个或多个用例,每个用例也可以有一个或多个参与者。 ✓ 在用例图中使用一个人形图标表示参与者,参与者的名字写在人形图标下面。 ✓ 一个用例的参与者可以划分为(一个)发起参与者和(若干个)参加参与者。 ✓ 参与者还可以划分为主要参与者和次要参与者,标出主要参与者有利于找出系
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Manager
Librarian
Administrator
10
2.3 用例描述
• 用例图描述了参与者和系统特征之间的关系,但是它缺乏描述系 统行为的细节。所以一般情况下,还会以书面文档的形式对用例进行描 述,每个用例应具有一个用例描述。在UML中对用例的描述并没有硬性 规定,但一般情况下用例描述应包括以下几个方面: 名称
– 名称无疑应该表明用户的意图或用例的用途,如上面示例中的“借阅图书”、“归还图书 ”。 惟一标识符一个用例,如"UC200601"。这样就可在项目的其他元素(如类模型)中用它来 引用这个用例。 与此用例相关的参与者列表。尽管这则信息包含在用例本身当中,但在没有用例图时,它 有助于增加对该用例的理解。
Student Grade Manage System RecordGrade
QueryGrade
Teacher
ModifyGrade
Student
3
2.1.1 系统
• 系统是用例图一个重要组成部分。系统是用于执行某 一项功能的,它不单指一个软件系统。但说本书的目的而 言,我们感兴趣的是计算机软件,系统是为用户执行某类 功能的一个或多个软件构件。系统的边界用来说明用例图 应用的范围。 • 例如,一台自动售货机应提供售货、供货、提取消售款等 功能,这引功能在自动售货机之内的区载起作用,自动售 货机之外的情况则不考虑。准确定义系统的边界并不总是 很容易的,因为有些情况下,严格地划分哪些任务是由系 统完成,而哪些是由人工或其他系统完成是很困难的。 • 另外,系统最初的规模应有多大也应该考虑。一般的作法 是,先识别出系统的基本功能,然后以此为基础定义一个 稳定的、精确定义的系统架构,以后再不断地扩充系统功 能,逐步完善系统。这样做可以避免由于系统太大,需求 分析不易明确,从而导致辞浪费大量的开发时间。
基用例
<<extend>>
扩展用例
ProcessOverTime
NotifyOverTime
14
2.5 用例建模
• 为了加深对前面所介绍知识的理解,本节 将通过一个实际的系统用例图来说明用例图的创 建过程。在本节所采用的实例为一个图书馆的图 书管理系统。绘制用例图一般要经过以下几个步 骤: 确定系统涉及的总体信息 确定系统的参与者 确定系统的用例 构造用例模型
17
2.5.3 确定用例与构造用例模型
• 在识别出系统的参与者后,我们必须确定参与者所 使用的用例,以使系统正常运行。用例是参与者与系统 交互过程中需要系统完成的任务。识别用例最好的方法 是从参与者的角度开始分析,这一过程可通过提出“要 系统做什么?”这样的问题来完成。由于系统中存在两 种类型的参与者,下面分别从这两种类型的参与者角度 出发,列出了图书管理系统的基本用例。 • 图书管理员(Librarian)所涉及到的系统用例:
8
2.2.1 泛化用例
• 相对于参与者而言,用例泛化更易理解。用例泛化是 指一个用例(一般为子用例)和另一个用例(父用例)之间 的关系,其中的父用例描述了子用例与其他用例共享的特性 ,而这些用例是有着同一父用例的。 • 泛化将特化用例和一般的用例联系起来。即子用例是父 用例的特化,子用例除具有父用例的特性外,他还可以有自 己的另外特性。父用例可以被特化成一个或多个子用例,然 后用这些子用例来代表父用例的更多明确的形式。图2-7演 示一个泛化身份验证用例。
– – – – 借阅图书 归还图书 查看借阅信息 超期处理
18
• 系统管理员(Administrator)

19
练习
• 一台自动售货机能提供6种不同的 饮料,售货机上有6个不同的按钮 ,分别对应这6种不同的饮料,顾 客通过这些按钮选择不同的饮料。 售货机有一个硬币槽和找零槽,分 别用来收钱和找钱。现在为这个系 统设计一个用例图?
20
售卖机
选择饮料
投币
顾客
找零
21
• 绘制用例图,为如下的每个事件显 示酒店管理系统中的用例,并描述 各用例的基本操作流程。
– 客人预订房间。 – 客人登记。 – 客人的承担服务费用。 – 生成最终账单 – 客人结账 – 客人支付账单
22
预订房间
登记 计算费用 结账 服务员
打印账单
23
练习2:用例模型
4
2.1.2 参与者
参与者是系统外的一个实体,参与者通过向系统输入或者 系统要求参与者提供某种信息来进行交互。在确定系统的用例 时,首要问题就是识别参与者。 参与者的概念 参与者用于表示使用系统的对象。参与者可以是一个人、 一个计算机系统、另一个子系统或另外一种对象。例如,一个 计算网络系统的参与者可以包括操作员、系统管理员、数据库 管理员和普通的用户,也可以有非人类参与者,如网络打印机 。参与者的特征是其作为外部用户与系统发生交互。在系统的 实际运作中,一个实际用户可能对应系统的多个参与者。同样 ,不同的多个用户也可以只对应于一个参与者,从而代表同一 个参与者的不同实例。
5
2.1.3 用例

• •

用例是一组连续的操作,在用户使用系统来完成某个过程时 出现,它是外部可见的系统功能单元。通过将这些不同的功能单 元进行组合,就构成了对系统总体需求的描述。 用例的概念 用例是用户期望系统具备的功能,它定义了系统的行为特征 ,如果没有这些特征,系统就不能被成功地使用。例如,程序开 发人员使用开发系统来开发软件,则开发系统应具备编译功能以 满足程序开发人员的需求。 用例的目标是要定义系统(包括一个子系统或整个系统) 的一个行为,但并不显示系统的内部结构。每个用例说明一个系 统提供给它的使用者的一种服务,即一种对外部可见的使用系统 的特定方式。它以用户的观点描述用户和系统间交互的完整顺序 ,以及由系统执行的响应。这里的交互只包括系统与参与者之间 的通讯,而其内部行为和实现是隐藏的。一个系统的全部用例分 割和覆盖它的行为,每个用例代表一部分量化了的、有深刻意义 的和对用户可用的功能性。注意这里的用户包括人、计算机和其 他对象。
VerifyIdentity
CheckPassword
Fingerprint
9
2.2.2 泛化参与者
• 与用例一样,也可以对参与者进行泛化。泛化后的参与者 也在系统中扮演较为具体的角色。如图2-12所示,假设图 书管理系统中,管理员分为对系统进行维护的管理员和完 成借书、还书等日常操作的图书管理员。参与者 Manager 描述了参与者 Librarian 和 Administrator 所扮演的一般角色 。如果不考虑与系统交互时的职责,可以使用一般角色的 参与者 Manager 。如果强调管理员的职责,那么用例须使 用精确的参与者。即子类Librarian和Administrator。
16
2.5.2 确定系统的参与者
寻找系统的参与者与用例通常是由与潜在用户会见的 系统建模人员完成的。在某些情况下,该任务还包括与借 阅者面对面的访谈,在访谈中可以提出问题,了解他们的 需求。下面是一个针对图书管理系统的一个业务需求列表 ,它可以帮助我们创建用例图。 系统可户浏览借阅信息。 系统准确记录了图书馆中的所有藏书。 系统需要允许图书管理员查询某学生的借阅信息。
包含用例
Borrowbook Returnbook
<<include>>
被包含用例
ProcessOverTime
13
2.4.2 扩展关系
• 扩展关系是一种依赖关系 , 它指定了一个用 例可以增强另一个用例的功能。扩展关系与包 含关系一样,只是将单词 include 替换成了表示 扩展关系的单词extend。扩展关系如图所示。
6
2.1.4 关系
关系 用例与参与者之间的连线称为关系,关系也称为 关联或通信关联。它表示参与者与用例之间的通信。 这种通信是双向的,即参与者可以与用例通信,用例 也可以与参与者通信。图2-5表示了一个用例图中的关 系。
Use Case
Actor
7
2.2 泛化
• 泛化是一种表示UML中项目的继承关系 的技术。泛化可以应用于参与者和用例来表 示其子项从父项继承的功能,而且泛化还表 示了父项的每个子项都有略微不同的功能功 或目的以确保自己的惟一性。
• • • • • • • •
标识符[可选]

参与者[可选]

基本事件流 可选事件流(或者叫异常事件流) 频率(参与者使用此用例的频率) 前置条件 后置条件
11
2.4 用例之间的关系
• 用例描述系统满足需求的方式。当细化描述用例操 作步骤时,就可以发现有些用例以几种不同的模式或特列 在运行,而有些用例在整个执行期间会出现多重流程。如 果将用例中重要的可选性操作流程从用例中分隔出来,以 形成一个新的用例,这对整个系统的好处是显而易见的。 当分离可重复使用的用例后,用例之间就存在着某种特殊 关系。 • 包含和扩展是两个用例紧密相关时,关联用例的两种方法 。包含关系用于表示用例为执行其功能时需要从其他用例 引入功能。类似,扩展关系则表示用例的功能可以通过其 他用例的功能得到扩充。
• 1. 12306订票系统
• 2. 点菜系统
• 用例图+至少给出一个用例描述
24
end
25
15
• • • •
2.5.1 确定系统涉及的总体信息
• 图书管理系统是对图书馆中的藏书以及借 阅者进行统一管理的系统。系统的主要事务包括 ,图书管理员的书籍借出处理、书籍归还处理和 查看借阅者的借阅信息;还有系统管理员对系统 的维护,包括对管理员的维护、书籍的维护、借 阅者信息的维护等。在确定了系统的总体信息后 就可以分析系统的参与者,并确定系统用例。
1
本章学习要点:
• • • • • 用例图的组成 理解泛化 理解用例之间的关系 对用例进行描述 绘制用例图
相关文档
最新文档