第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型

Slides:



Advertisements
Similar presentations
讀經教育  第一組:吳碧霞、陳鍾仁  第二組:吳雪華、謝濰萁  第三組:邱國峰、林佳玫. 不論上智下愚 成功的教育 讓每個孩子 都能成為最優秀的人才.
Advertisements

熱烈歡迎 各級長官 貴賓 全體會員 蒞臨會場.
教育部 輔導教官:林家豪 年度育達商職紫錐花運動 強化反毒健康小學堂輔導課程 簡 報.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
任务二 面向对象的建模 4. UML静态建模 类图 对象图 包图 组件图.
我们向往新的飞翔 青岛顺兴路小学.
任务二:面向对象的建模 3 需求分析阶段的用例建模 用例图 活动图.
第一章 绪论.
第8章 面向对象的软件工程 8.1 软件工程的新途径 8.2 面向对象建模 8.3 对象模型 8.4 动态模型 8.5 功能模型.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
管理信息系统-MIS 5 面向对象方法学 5.1 面向对象方法学的产生及其发展 传统的开发方法存在的问题:
Ch02物件導向程式設計 物件導向系統分析與設計.
第3章 需求分析(续) 学习目标 什么是需求建模? 需求分析建模方法 掌握实体—关系图(E—R图); 掌握状态转换图;
十二年國民基本教育 高雄區入學方式說明 報告人:中山工商 楊薇主任.
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
第八章 信息系统开发概述.
吳 慎 宜 文化大學勞動暨人力資源系講師 FM91.3 台北勞工教育電台台長
第10章 面向对象的设计方法 教学目的:了解面向对象设计的概念和方法 教学重点:理解面向对象的设计的基本原理,掌 握面向对象的设计方法。
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
欢迎各位 Nice to Meet U.
第一章 面向对象程序设计.
第六讲 面向对象分析(6学时) 了解面向对象分析的概念 了解面向对象分析的发展 理解面向对象的基本概念 理解面向对象分析的过程、内容
第10章 考试系统的分析与设计 1.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
類別與物件 Class & Object.
軟體工程 -物件導向程式設計與UML系統分析實作
新世代計算機概論 第14章 程式語言.
第八章 分析與設計階段 – 物件導向設計(OOD)
你的潜能是无限的 ——高三心理辅导.
第 9 讲 面向对象分析与设计
抽象描述(abstract descriptions)那些需求被分析的系統
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
軟體工程 -物件導向程式設計與UML系統分析實作
第10章 使用個案塑模.
物件導向系統分析與設計與UML.
软件建模精要 面向对象软件建模技术.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
C++ 與 物件導向 程式設計概念簡介 魏天君 2018/12/3.
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
软件建模与UML.
主題:踏出宣教路 使12:11 彼得醒悟過來,說:「我現在真知道主差遣 他的使者,救我脫離希律的手和猶太百姓一
UML介绍.
第六章 : 資料模型之繪製 1. 前言 資料流程圖 ( DFD ) 及 處理邏輯工具
面向对象的分析与设计 教学计划 研究生课程 主讲教师:邵维忠 助教: 朱彬,柳毅,尤朝,张磊,黄艺燕 2009年2月—7月
校園小記者.
Php class 組員: 賴羿陵 林昱廷 莊正暉 張雅晴
A、資訊系統開發概論與課程簡介 何謂資訊系統? 為何需要系統分析師? 需要瞭解哪些知識? 領域知識? 資訊科技? 開發方法與技術? 課程簡介.
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
類別與物件 I (Classes and Objects I)
UML语言.
学习导航 学习导航.
管理信息系统 第九章 面向对象的系统开发方法.
ER Model.
用例.
确定属性(Identifying attribute)
Object-Oriented Programming in C++ 第二章 类和对象
第6章 面向对象开发的 分析与设计.
业务流程重组 1.概念 业务流程重组(BPR ,Business Process Reengineering)强调以业务流程为改造对象和中心、以关心客户的需求和满意度为目标、对现有的业务流程进行根本的再思考和彻底的再设计,利用先进的制造技术、信息技术以及现代化的管理手段、最大限度地实现技术上的功能集成和管理上的职能集成,以打破传统的职能型组织结构(Function-Organization),建立全新的过程型组织结构(Process-Oriented.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第一讲 面向对象方法学与信息系统建模.
构件图和部署图.
UML ISKM Lab.
OOA/OOD UML RUP Architecture Pattern MDA
I、使用個案塑模-使用個案圖 行為者(Actor) 使用個案(Use Case) 連接線 系統邊界 使用個案間之關係
面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
JAVA 程式設計與資料結構 第三章 物件的設計.
面向对象程序设计 C++教程 西安工业大学 于帆.
UML建模语言及工具.
Presentation transcript:

第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系

§1 面向对象方法学概述 面向对象的概念起源于20世纪60年代中期的Simula 67。80年代中期OOP模式进入主流。80年代中后期,面向对象分析与设计的研究开始发展。进入90年代,面向对象软件工程成了许多软件产品的开发模式。

面向对象方法学OOM(Object-Oriented Methodology)

Post_office.Send (request, payment) 例: 成都 北 京 Message Post-office Send by method 我想把邮局搬到 我家门口,多加几个 邮递员,24小时都开门 …… Attributes: location; employee; …… Object 唉,那就先送束花吧 —— Post_office.Send (request, payment) 对不起, 本邮局不提供 此类服务 Methods: send; sell; …… 对象Object = 属性Attribute + 操作Method 注意:对象内部的属性不允许外部用户直接改动,只有当它提供了相应的服务操作时,用户才能通过发送消息来提请它执行。 4

OOM = Object+Class+Inheritance+Communication with messages ② 类 (class) :具有相同属性和操作的对象可划分为类;单个对象可视为某一类的实例 (instance)。 ③ 继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。 ④ 消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。 5

OOM相比传统方法的优点: ① 传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。 OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。  Class:由特殊到一般的归纳  Inheritance:由一般到特殊的演绎

② 传统方法:结构依赖于功能,不稳定。 OOM:以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。 ③传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的“柔性”,难以适应不同场合的不同需要。 OOM:一个class所有的 instances 都可重用它的代码;由 inheritance 派生出的新的 class 可重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。

④ 传统方法:可维护性是最令人头痛的问题。 OOM:从以下几方面改善了可维护性 —— 稳定性好:软件功能需求的变化不牵动全局,只需局部修改; Class 独立性强:只要修改不涉及class的对外接口,则内部修改完全不影响外部调用; Inheritance和多态性(polymorphism)使其很容易被修改和扩充; 容易理解; 注:OOM并不是减少了开发时间,而是通过提高可重用性、可维护性,进行扩充和修改的容易程度等,从长远角度改进了软件的质量。OOM与Prototyping结合使用效果好。

§2 面向对象的概念 1、对象 特点: ① 以数据为中心,不设与数据无关的操作; ② Object主动处理而不 被动地等待被处理,外部只能通过message请求操作; ③ 具有封装性:外部操作时,无须知道该object内部的数据结构及算法; ④ 具有并行性:不同object各自独立地处理自身数据,彼此间仅通过传递message完成通信; ⑤ 模块独立性好:内聚强、耦合松

2、类:具有相同数据和相同操作的一组对象; 实例:某个class描述的具体对象; 3、消息: object_ID. method_ID (parameter(s)); 4、方法(操作): object能做的操作,亦称为service, 在 class 中须定义相应的代码; 5、属性 :object 的固有数据; 6、封装:把内部实现细节隐藏起来,使其他外部对象无法访问,仅仅提供某些功能。使对象形成接口部分和实现部分

7、继承:子类自动共享父类的attributes 和methods ,而不必重复定义。 Class 中国人 中国人 Attributes 中国人 Methods 张三 (instance) Class 中国人 张三的 Attributes 例: Class 成都人 (子类) 成都人 Attributes 成都人 Methods Class 中国人 李四 (instance) 中国人李四的 Attributes 成都人李四的 Attributes Class 成都人 特点:① 若成都人的 methods中有与中国人的同名,则李四执行该 method 时以成都人为准,不执行中国人中定义的同名 method。 ② 传递性:AB、BC  AC 一个 class 继承了上层全部 classes 的一切性质。 11

③ 一个子类只 有 一 个父类称为单 继 承, 一个子类可有多个父类称为多重继承。 例: Female Chinese Scholar CardDeck GraphicalObject 例: Method: Draw := take a card from a deck Method: Draw := display a graphical object 注意:多重继承在定义中应避免二义性,即两二个父类中定义重名,但各具不同性质。 GraphicalDeck Method: Draw := ? ④ 修改与扩充可以很容易地通过派生子类来完成。

8、多态性与动态联编 多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。 不同层次的 classes 可共享一个method名,但按各自的方式来实现这种 method。 如虚函数机制能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属于的类,决定到底执行哪个特定的版本,称为动态联编,也叫滞后联编。 9、重载 在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。 在C++语言中函数重载通过静态联编(也叫先前联编)实现。

§3 面向对象建模 模型:为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。 3种面向对象的模型: ①   描述系统数据结构的对象模型。 ②   描述系统控制结构的动态模型。 ③   描述系统功能的功能模型。

几种面向对象开发方法: Booch方法 Booch是面向对象方法最早的提出者之一,提出了面向对象软件工程的概念。 Booch认为软件开发是一个螺旋上升的过程。 Coad-Yourdon方法 著名的OOA/OOD方法,也是最早的面向对象的分析与设计方法之一。简单、易学。 Rumbaugh方法(简称OMT-Object Modeling Technology) 该方法强调了三种模型,并将软件开发过程划分为系统分析、系统设计、对象设计等几个阶段。 Jacobson 方法(简称OOSE) 最大特点是强调使用用例(Use-Case),每一个用例就是一个使用系统的方式,用例的执行将引发执行一系列与行为相关的事务。

统一建模语言UML 由Rumbaugh、Booch、Jacobson提出的统一建模语言(Unified Modeing Language ) ,简称UML。 产生于90年代中期。它不仅统一了Booch、OMT和OOSE方法中的概念和表示法,而且对其作了进一步扩展,最终成为在面向对象技术领域占主导地位的、并被大众所接受的标准建模语言。UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和面向对象方法使用它。

§4 对象模型 对象模型表现了客观世界实体对象的相互关系。通常使用UML提供的类图来建立对象模型。 类图用来描述系统中的类及类和类之间的静态关系。 可访问性通常有3种: 公有的(public) 私有的(private) 保护的(protected), 分别用加号(+)、减号(-)和井号(#)表示。 类图的基本符号 类的表示: 类的完整表示 类名 类的简单表示 例如:

表示关系的符号 ---1、关联 关联表示两个类的对象之间存在某种语义上的联系。 类1 角色表示该类在这个关联中的作用。如果没有显式标出角色名,则意味着用类名作为角色名。 重数:该类有多少个对象与对方的一个对象连接。 角色 关联名 重数 角色 类2

默认关联名是has(有),省略重数默认1。 每一个董事会没有或者有3~8个董事会成员(有角色名,可以省略关联名) (1) 普通关联——最常见的关联关系。 例如: 公司 董事会 默认关联名是has(有),省略重数默认1。 人员 董事会成员 0,3..8 * 董事会 每一个董事会没有或者有3~8个董事会成员(有角色名,可以省略关联名)

(2)递归关联 即一个类与它本身有关联关系。 例如:

也叫受限关联,两个类及一个限定词组成,限定词是一种特定的属性,用来有效地减少关联的重数。在类图中把限定词放在关联关系末端的一个小方框内。 (3) 限定关联 也叫受限关联,两个类及一个限定词组成,限定词是一种特定的属性,用来有效地减少关联的重数。在类图中把限定词放在关联关系末端的一个小方框内。 例如:

一个多对多关联。“成绩”属性不能放在任何一方 与带有关联类的多对多关联等价的两个一对多关联的图 (4) 关联类 在一些情况下关联可能需要记录一些信息,但这些信息不能放在任何一个类中,可引入一个关联类记录这些信息。关联类通过一条虚线与关联连接。 学生 * 选修 * 课程 一个多对多关联。“成绩”属性不能放在任何一方 学生 * * 课程 选修成绩 创建一个关联类来保存成绩 学生 * 选修 * 成绩 课程 与带有关联类的多对多关联等价的两个一对多关联的图

表示关系的符号--- 2、聚集: 表示“整体-部分”的特殊关联 整体类 部分类 例如: 共享聚集 组合聚集 例如: 组合是一种强类型的聚集,整体类和部分类共存亡,如果整体类被撤销,部分类也不存在。

表示关系的符号--- 3、泛化 由一个超类和几个直接子类构成的结构通常称为泛化 。表示一般-特殊关系或继承关系。 (1)普通泛化 例如: 一般类 特殊类 人员 教师 学生

(2) 受限泛化 给泛化关系附加约束条件。预定义的约束有4种: 多重、不相交、完全和不完全。 多重继承指的是,一个子类可以同时多次继承同一个上层基类,要指定{多重}约束。如果图中没有指定{多重}约束,则是不相交继承。 例如: 完全继承指的是父类的所有子类都已在类图中穷举出来了,要指定{完全}约束。否则是不完全继承。

表示关系的符号--- 4、依赖和细化 (1) 依赖关系 描述两个模型元素(类、用例等)之间的语义连接关系: 其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素。 独立类 不独立 版类标签:说明依赖的种类 例如: 友元关系使得类B的操作可以使用A类中私有的或保护的成员。

当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。 如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。 (2) 细化关系 当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。 如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。 A B

也可对类和对象用有区别的画法: 表示属于该类 的对象 Class Name Attributes Methods Class-&-Object Class Name Attributes Methods Class

§5 动态模型 动态模型:表示系统瞬时的控制性质 状态图 三要素: ① 事件 :引发 object 状态改变的控制信息(瞬时)。 ② 状态:即 object 的 attributes 所处的情形(可持续)。 ③ 活动:Object 要达到某种 status 所做的操作(耗时)。 状态1 do/活动1 状态2 do/活动2 事件[条件] / 动作 其中:状态内部的“活动”不引起状态转移;箭头上的“动作”指状态转移时要执行的动作。 注:当描述循环运行过程时,通常不关心是怎样启动的。

闲 置 拨号音 do:响拨号音 超 时 do:响蜂鸣音 存储的信息 do:播放信息 拨 号 忙 音 do:响忙音 接通中 do:试接通 挂断电话 挂断电话 拿起听筒 例:电话的 状态图 拨号音 do:响拨号音 超 时 do:响蜂鸣音 超 时 超时 数字 数字 无效号码 存储的信息 do:播放信息 拨 号 有效号码 信息播完 忙 音 do:响忙音 接通中 do:试接通 占 线 已接通 振 铃 do:振 铃 受话人回话 通 话 受话人挂断电话 断 线

UML提供的用例图也是建立功能模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型,一个用例模型由若干幅用例图组成。 §6 功能模型 功能模型:表明系统应该做什么 通常的表示方法:数据流图(DFD) UML提供的用例图也是建立功能模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型,一个用例模型由若干幅用例图组成。 用例图仅仅从参与者使用系统的角度描述系统,不反映内部的处理方式。因此用例图定义的是系统的功能需求。 一幅用例图包含的模型元素有系统、行为者、用例及用例之间的关系。

例如:

又如: 签定一份 保险单 客户 保险销 售人员 销售统计 客户统计 某保险业务的用例图

可用的构造型元素: 当描述一般行为时有例外、任选或异常处理时,采用《extend》(或《扩展》 )。 当在两个或多个用例中出现重复描述(有共用行为)而又想避免重复时,采用《include》 (或《使用》 ) 。 例如: 34

又如: 某金融贸易系统用例图 设置边界 风险分析 交易估价 进行交易 超越边界 更新帐目 评价 交易 人员 经理 计帐 系统 销售员 《extend》 《include》 注:“设置边界”用例是指对某个特定用户规定最大贸易量

§7 三种模型之间的关系 这三种模型都涉及到数据、控制和操作等概念,只是每种模型描述的侧重点不同。它们各自从不同的侧面反映了系统的实质性内容,综合起来则全面反映了对目标系统的需求。 4)三者关系 OM:操作的实体How DM:何时做 When FM:做什么 What

对每个object (class) 建立DM; FM中的数据流对应OM中的attribute,或是整个 object; 建立顺序: OM DM FM Object DM Process Method Action Data storage Event Data flow Attribute 对每个object (class) 建立DM; FM中的数据流对应OM中的attribute,或是整个 object; Action对应DFD中的 process 以及OM中的 method; FM中的 process 产生DM中的 event; FM中的 process 对应OM中的method; OM描述了FM中的动作对象、数据存储及数据流的结构。 FM中的数据存储及数据的源/终点对应OM中的 object;