《软件工程项目实践教程》教学课件—项目5 面向对象分析与设计技术

合集下载

《C 面向对象程序设计项目教程》教学课件 项目五

《C 面向对象程序设计项目教程》教学课件 项目五

任务一 学习编译时多态性的实现
任务说明
在本任务中,我们就来学习编译时多态性的实现。
预备知识 一、函数重载 二、运算符重载
一、函数重载
所谓函数重载是指同一个函数名可以对应着多个不同的函数实现。 每一类实现对应着一个函数体,这些函数的名字相同,功能相同, 只是参数的类型或参数的个数不同。例如:
int sum(int x,int y) { return x+y; } float sum(float x,float y) { return x+y; } int sum(int x,int y,int z) { return x+y+z; }
2.单目运算符重载作为类的成员函数
单目运算符重载作为类的成员函数时,操作数为访问该重载运 算符的对象本身的数据,也由this指针指出,因此,单目运算符重 载函数没有参数。例如:
int operator++(); //对单目运算符++的重载
与双目运算符的重载类似,单目运算符重载作为类的成员 函数后,也有显式和隐式两种调用方法。例如:
void main()
{ int i;
double d;
i=max(3,7);
d=max(3.4,4.4,1.2);
cout<<"max(3,7)="<<i<<endl; //求两个整数中的最大值
cout<<"max(3.4,4.4,1.2)="<<d<<endl; //求三个浮点数中的最大值
}
int max(int x,int y)
项目五项目五任务一学习编译时多态性的实现任务二学习运行时多态性的实现多态性提高开发效率的妙招之二多态性提高开发效率的妙招之二任务说明任务说明预备知识预备知识任务一学习编译时多态性的实现在本任务中我们就来学习编译时多态性的实现工程五ຫໍສະໝຸດ 多态性 提高开发效率的妙招之二

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

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

面向过程
围绕功能,函数,数据公用,兼顾很多细节 系统规模大、数据多、操作烦杂,程序员难以应付 厂长,直接指挥每一个工人选用材料生产汽车
面向对象
面对的是一个个对象 实际上,每一组数据有特定的用途,一组操作调用一组数据,
将这组数据和操作代码,封装成一个对象,与外界相对隔离, 相对独立 厂长-车间1(发动机)车间2(轮胎)车间3(底盘)…… 类,对象,对象间接送消息,完成任务 降低难度,减少出错机会
面向对象分析的基本过程
面向对象分析法体现 在过程上的特点:不 强调活动的顺序,允 许各种活动的交替、 回溯进行
定义use case
发现对象


型 开
定义属性及服务
细 说


建立结构与连接
划分主题
建立交互图
1.23
© 2009 by Duym
Software Engineering
面向过程(po)与面向对象(OO)
利用自己已建立的类,或别人的放在类库中的类,缩短开 发周期
1.14
© 2009 by Duym
Software Engineering
2.5多态(polymorphism)
一班、二班、三班 铃声响了,走进不同的教室,上不同的课程
向不同的对象,发出相同的消息,执行不同的 操作
鼠标双击文件,exe文件则运行该文件,doc文件则运行 word打开该文档
对象模型是客观世界对象、属性以及对象彼 此间关系的抽象表达,描述了系统的静态结 构
表示方法
类与对象 结构与连接
一般特殊关系,分类关系,归纳关系,继承 整体部分关系,组成关系 实例连接,对象间属性之间的静态联系 消息连接,对象行为之间的动态联系

面向对象分析及设计第5章软件开发的方法学PPT课件

面向对象分析及设计第5章软件开发的方法学PPT课件

6
5.2.1 需求
第5章 软件开发的方法学
需求包括:
◦ 业务需求:反映了组织机构或客户对系 统、产品高层次的目标要求
◦ 用户需求:描述了用户使用产品必须要 完成的任务
◦ 功能需求 :定义了开发人员必须实现的 软件功能,使得用户能完成他们的任务, 从而满足了业务需求。
◦ 非功能需要:对系统性能、界面等的要 求
规范:对软件开发过程的清晰、明确的 描述,指出软件组件的用法、如何正确 操作。
规范是按合同设计的、至关重要的 底层规则
5.2.5 实现
实现:编写代码,形成子系统,各种子 系统协同工作,形成整个系统
2020/7/28
9
5.2.6 测试
第5章 软件开发的方法学
测试:根据系统需求验证系统的实现 包括单元测试、集成测试和移交测试
方法学涉及软件开发、阶段管理、 资源管理、规划、调度和其他管理 任务的建议或技术
优秀的、适用范围广的方法学是成 熟软件业的基础。
2020/7/28
5
第5章 软件开发的方法学
5.2 软件开发中的经典阶段
① 需求 ② 分析 ③ 设计 ④ 规范
⑤ 实现 ⑥ 测试 ⑦ 部署 ⑧ 维护
2020/7/28
5.2.7 部署
部署:将硬件和软件交付给最终用户, 并提供手册和培训材料
2020/7/28
10
5.2.8 维护
第5章 软件开发的方法学
维护:包括改正性维护、完善性维护和 适应性维护
5.2.9 关键问题
通过一些关键问题可以帮助了解、记 住个软件开发阶段及其目的。(略)
2020/7/28
11
第5章 软件开发的方法学
2020/7/28

软件工程面向对象分析——实例PPT课件

软件工程面向对象分析——实例PPT课件
37
确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。
• 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
38
确定关联
• 标识关联的启发式准则如下:
28
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
26
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件;

软件工程面向对象技术概述PPT教学课件

软件工程面向对象技术概述PPT教学课件
UML是一种定义良好,易于表达, 功能强大且普遍实用的建模语言。
UML的开发历程 UML2.0
UML 1.3 OMG采用,11/97 OMG修正,9/97 UML 1.1
OMG审核,1/97 UML 1.0
OMG认证
10/96 & 9/96 UML 0.9&0.91
UML同行 专家意见
10/95ຫໍສະໝຸດ UML 0.8同阶段。
UML的应用
UML是一种建模语言,不是一 种方法,它独立于过程。利于它建模 时,可遵循任何类型的建模过程。
UML的主要内容
(1)UML融合了Booch、OMT和OOSE方法 中的基本概念,而且这些基本概念与其他面向 对象技术中的基本概念大多相同;
(2)UML不仅仅是上述方法的简单汇合,而 是扩展了现有方法的应用范围;
(2) UML表示法
定义UML符号的表示法,为开发者或开发工 具使用这些图形符号和文本语法为系统建模提 供了标准。这些图形符号和文字所表达的是应 用级的模型,在语义上它是UML元模型的实例。
模型内容的组织和UML表述
UML的用于描述模型的基本词汇(“构造块”):
• 事物(Things) • 关系(Relationships) • 图 (Diagrames)
• Booch方法 • Coad-Yourdon方法 • Rumbaugh 方法(简称OMT)
(Object Modeling Technology)
• Jacobson 方法(简称OOSE) • 由Rumbaugh 、 Booch 、 Jacobson
提出的统一建模语言 (Unify Modeing Language简称UML)
Booch’93 OMT-2

软件工程第五章面向对象分析与设计PPT课件

软件工程第五章面向对象分析与设计PPT课件

记录全部访谈内容 ④ 安排补充会议 访谈之后 ⑤ 根据标准模版撰写软件需求规格说明(SRS),
打客户需求草稿 ⑥ 通过电子邮件征求客户意见
对于不同类型的应用,用例方法是一种获取和 表达需求的有效方法。
某些需求需要通过数据流图或状态图与用户沟 通。
5.1.2 描述客户需求
需求可以看成是应用与应用的外部代理(如用户) 之间的交互。可利用用例作为表达工具。
3) 标识用例 当双方确定了一组场景后,开发人 员从该场景抽象出一组用例,描述所有可能的 情况。用力表达了系统的范围。
4) 求精用例 细化每一个用例。引入带有出错处 理或带有异常处理的用例,描述系统的行为, 保证需求的描述是完全的。
5) 标识用例之间的关系 描述用例之间的依赖关 系,提取相同功能,建立用例模型。
2. 访谈用户代表 识别各种需要与要求 使用工具帮助表达用户需求 绘制GUI草图 确定硬件环境
请用户评审
3. 用标准文档格式撰写客户需求
4. 核查用户需求 用户批准后
5. 构建详细需求(分析建模)
5.1.1 与用户交互
1) 需求的来源 不同类型应用能从人员处获取需求的比例:
不受限制的
应 用 的 类 型
馆藏图书(对象)的状态图
在架 报废
注销
丢失
出借
返还
上架
损坏
借出
修补
丢失
丢失
图书管理员借书操作的状态图
login (登录)
预约图书
借书
reserve
borrow
(预约)
(借阅)
检验图书 检验读者
借书
findTitle findBorrower (检索图书) (查找借阅者)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二是面向对象技术中生存期的一个阶段到下一个阶段的高度连续性,即在
一个阶段所用的组成部分与下一个阶段所使用的组成部分是衔接的或无缝
连接的;三是把面向对象分析(OOA)、面向对象的设计(OOD)和面向
对象程序设计(OOP)集成到软件生存期对应的不同阶段。
• 下面就来详细学习有关面向对象的一些基本概念:
• 1. 对象(Object):对象由一组属性和对这组属性进行操作的一组方法 (即服务)组成。如图5.1所示是对象在ROSE中的表示形式
各自相应的实现。即对象根据所接收的消息而做出动作,同样的消息被不 同的对象接收时可导致完全不同的行为的这种现象属于多态性。 • 具有多态的函数或操作在运行时才根据实际的对象类型,执行相应实现程 序的连接,称为动态绑定(Dynamic binding)。即动态绑定是指在执行期 间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相 应的方法。动态绑定又称为运行时绑定(runtime binding),它能允许程 序推迟调用正确的方法,直到程序开始执行时。 • 7.重载(Overloading) • 重载方法是指一个类中的方法与另一个方法同名,但是参数表不同,这种 方法称之为重载。重载方法可以分为两种类型:函数重载和运算符重载。 • 函数重载是指在同一作用范围内的若干个参数特征不同的函数可以使用相 同的函数名字。 • 运算符重载是指同一个运算符可以施加于不同类型的操作数上面。
•一个对象则是其对应类的一个实例(Instance)。 •类和对象的关系是:类是对象的抽象,类是对象的“模板”,类用 于创建对象;对象是类的实例。
5.1 面向对象基本概念和特征
• 3.消息和方法(message and method)

消息就是两个对象之间传递的信息或发出的服务请求。消息是
对象之间通信的手段,一个对象向另一对象发送消息来请求其服务。
• 继承性有两种类型:一个子类只有唯一的一个父类,这种继承称为单继 承;一个子类也可以有多个父类,它可以从多个父类中继承特性,这种 继承称为多继承。继承具有传递性。
5.1 面向对象基本概念和特征
• 6.多态性(Polymorphism)与动态绑定(Dynamic binding) • 多态性(Polymorphism)是指同名的函数或操作可在不同类型的对象中有
面向对象分析与设计技术
本章 要点
掌握面向对象方法的基本思想、面向对象基
本概念和特征;
理解OOA的主要任务和三种模型的建立方
法,并学会创建三种模型;
理解并掌握OOD模型中四个组成部分及五
个层次的主要设计内容;
了解面向对象程序设计语言,关注面向对象
的开发过程和新技术 。
面向对象分析与设计技术
学习内容
5.1 面向对象基本概念和特征 5.2 面向对象的分析与建模 5.3 面向对象设计 5.4 面向对象的程序设计与实现 5.5 案例分析——网上购书系统的OOA和
5.1 面向对象基本概念和特征
• 5.继承性(Inheritance)
• 继承性是面向对象程序设计语言不同于其他语言的最重要的特点。继承 性是父类和子类之间共享数据和方法的机制,也是类之间的一种关系。
• 如果某几个类之间具有共性的东西 (信息结构和行为),抽取出来放在一 个泛化类中,将各个类的特有东西放在特殊类中分别描述,则可建立起 特殊类对泛化类的继承。继承是使用已有的类定义作为基础建立新类的 定义技术。已有的类可当做基类来引用,则新类相应地可当作派生类来 引用。
• 图5.1 对象的表示
图5.2 消息的传递方式
5.1 面向对象基本概念和特征
•2. 类(Class)
•类是具有相同特征(即属性)和行为(或操作)的一组对象的集合。 即类是关于对象的抽象描述,反映了该对象类型的所有对象的性质, 例如:班级类,汽车类等。 •以C++为例,类的一般定义格式如下:
class <类名> { public: <成员函数或数据成员的说明> private: <数据成员或成员函数的说明> }; <各个成员函数的实现>

消息的使用类似于函数调用,消息中指定了接收消息的某一个
对象(或实例)名称,一个消息标识符(也称消息名或操作名)和
一个参数表 (零个或多个参数,可能是空的) 。接收消息的实例执行
消息中指定的操作,并将形式参数与参数表中相应的值结合起来。


例如: MyCycle.Show(Red);

方法是类中操作的实现过程,一个方法通常包含方法名、参数
• 所谓封装包含有两方面含义,一个是指把对象的全部属性和全部操作(即 方法)结合起来,形成一个不可分割的独立单位(即对象);另一个是指 信息隐蔽,即尽可能隐蔽对象内部的行为实现细节。
• 类(或对象)是封装的基本单位。在类中定义的接收对方消息的方法称为 类的接口。 封装使对象形成两个部分,接口部分和实现部分。接口部分是 可见的,供外界通过消息来访问该对象,而实现部分不可见。
• 什么叫面向对象?Cord和Yourdon给出如下用公式表示面向对象的定义:
面向对象= 对象+类+继承+通信
即如果一个软件系统是使用这四个概念来设计和实现的,就可以认为该软
件系统是面向对象的。
5.1 面向对象基本概念和特征

面向对象技术具有许多特色,一是面向对象方法的唯一性,即面向对
象方法是对软件开发过程所有阶段进行综合考虑而得到的唯一有效方法;
和方法体。当一个对象接收到一条消息后,它所包含的方法决定对
象该做怎样的处理。对象的内部信息是隐蔽的(私有的),对象私
有的数据是用它的方法来访问的,而对象间的访问只能通过消息来
连接。
5.1 面向对象基本概念和特征
• 4.封装(Encapsulation)
• 封装的目的在于将对象的使用者和对象的设计者分开,使用者不必知道所 访问对象的内部行为细节,只须用设计者提供的消息来访问对象。封装是 一种信息隐蔽技术,用户只能见到对象封装界面上的信息,而对象内部的 实现细节对用户是隐藏的。
OOD报告
5.1 面向对象基本概念和特征

面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代
软件开发方法的主流。目前,面向对象的概念和应用已超越了程序设计和软
件开发,扩展到一个很宽的范围。如数据库系统、交互式界面、应用结构、
应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
相关文档
最新文档