軟體工程 -物件導向程式設計與UML系統分析實作

Slides:



Advertisements
Similar presentations
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Advertisements

早自修課推動班級家長說故事及 經驗分享活動。 寒假親師生戶外參訪 ~ 原鄉文化、田園野趣學 習之旅 ~ 造訪鍾理和紀 念館、文學步道。親師生戶外參訪.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
台北市立南港高工 建築科 Architecture 建築科之精神:活力、責任、效率 建築科之展望:共築美麗人生 綜合高中 土木建築學程簡介  綜高土建升學進路  未來出路展望  專業證照考試  未來展望圖例  綜高土建學程課程架構  土建群統一入學測驗考科  升學人數統計.
第 9 章 物件的建構.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
任务二 面向对象的建模 4. UML静态建模 类图 对象图 包图 组件图.
軟體工程 -物件導向程式設計與UML系統分析實作
台北市立聯合醫院南軟門診部 皮膚科醫師簡介 溫素瑩醫師 學經歷: 中山醫學院醫學系畢業 台北醫學大學醫學資訊研究所碩士
走向现代的博物馆 中国博物馆协会 宋新潮 2014年3月29日.
第1章 Java语言概述.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
第一章 绪论.
第一章 認識程式語言.
第8章 面向对象的软件工程 8.1 软件工程的新途径 8.2 面向对象建模 8.3 对象模型 8.4 动态模型 8.5 功能模型.
赴日本理光工作实习生 和软件工程师项目简介.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
Ch02物件導向程式設計 物件導向系統分析與設計.
防制學生藥物濫用 高雄市教育局校外分會 林永興教官.
科技成就未来 ——曹家齐组.
第一章 面向对象程序设计.
校園霸凌事件處理、申復流程暨狀況模擬 林華杉教官 此範本可作為群組設定中簡報訓練教材的起始檔案。 章節
2009年 初夏 某天 我 一個人 一輛車 計劃 沒有計劃 只想 漫無目的 到處亂晃 感覺夏天的散漫.
班級:夜師資一甲 指導老師:蘇國榮老師 姓名:929201林佑蓉 石依縈 李玉玫 桂秀媛
第一章 軟體工程 (Software Engineering Introduction)
類別與物件 Class & Object.
第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型
新世代計算機概論 第14章 程式語言.
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
品質管理 (Quality Management)
CHAPTER 9 建構方法 ROBERT.
Chap 3 資料庫模型與處理架構.
第16章 VB.NET物件導向與.NET Framework
Java 程式設計 講師:FrankLin.
物件導向系統分析與設計與UML.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Java软件设计基础 5. 继承与多态.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
C++ 與 物件導向 程式設計概念簡介 魏天君 2018/12/3.
面向对象程序设计 、.
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
Java程序设计 第9章 继承和多态.
Java
软件学院 张 慧 清华大学软件学院.
第 1 章 Java 簡介.
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
第16章 虛擬與多形 16-1 虛擬函數 16-2 純虛擬函數與抽象類別 16-3 多形 16-4 虛擬繼承與虛擬解構子.
管理信息系统 第九章 面向对象的系统开发方法.
面向方面的软件开发方法 CSAI华东区首席顾问 徐 锋.
第13章 設計模型 13-1 再談物件導向設計 13-2 建立互動圖 13-3 建立狀態機圖 13-4 設計模型的類別圖
為什麼要學 OOP?.
飯店業的介紹.
課程報告 使用開放原始碼工具實作軟體產品線方法
陳維魁 博士 儒林圖書公司 第三章 變數與繫結 陳維魁 博士 儒林圖書公司.
第十一章 物件資料結構塑模.
程式語言 程式語言發展史 資料型態 程式指令 程序定義和使用.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
第1章 历史回顾与语言分类 说明程序设计语言的发展阶段,并列出每一个阶段出现的两到三种最重要语言。
Object-Oriented Programming in C++ 第二章 类和对象
第1章 历史回顾与语言分类 说明程序设计语言的发展阶段,并列出每一个阶段出现的两到三种最重要语言。
方法進階及物件導向基礎 Lecturer: 楊昌樺.
2009年 初夏 某天 我 一個人 一輛車 計劃 沒有計劃 只想 漫無目的 到處亂晃 感覺夏天的散漫 按鍵換頁--輕音樂欣賞.
第一讲 面向对象方法学与信息系统建模.
OOA/OOD UML RUP Architecture Pattern MDA
我會看年曆.
方格紙上畫正方形.
面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
面向对象程序设计 C++教程 西安工业大学 于帆.
Presentation transcript:

軟體工程 -物件導向程式設計與UML系統分析實作 第三章 物件導向的觀念 軟體工程 -物件導向程式設計與UML系統分析實作

3.1 模組與物件 在物件導向程式設計的觀念提出之前,軟體開發者,大多是使用結構化的程式設計。

模組 模組就是用一個單一的函式所組成一連串的程式敘述, 可解決一最小的問題。

圖3-1汽車行駛程式呼叫的模組圖 [註:以流程圖來表現,每個方塊代表一個模組]

物件導向語言 物件導向語言顧名思義就是以物件為程式設計時最主要考慮到的對象。

圖3-2物件之間靠傳遞訊息,啟動某些操作

3.2物件導向基本觀念 世界是由各種「物件」(Object)所組成,同類的物件可以再加以抽象化而成「類別」(Class),而每一類別具有自己的「屬性」(Attribute)來描述其特性與「方法」(Method)來描述其動態之行為,彼此間之互動是藉由「訊息」(Message)傳遞來溝通。

類別(Class) 為了簡化問題必須將各個物件加以分類,分類的結果便是產生類別(Class)  圖3-3 物件導向類別圖表示法

實體 (Instance) 實體也就是物件實體,是經由類別描述過的物件,可說是類別的實體化,也就是產生一個一個的物件。

屬性(Attribute) 屬性是物件所擁有的資料描述或項目,亦有稱為資料結構或狀態。有的將靜態的資料稱為屬性,動態的資料稱為狀態(State)。

方法(Method) 方法亦稱為操作(Operation)或行為(Behavior),方法是物件的動作,不同的訊息會對應到不同的處理方法。

訊息(Message) 訊息是物件之間互相溝通的工具,當物件收到訊息後,物件會依據訊息內容而執行不同的動作。

3.3 物件重要特性 封裝性(Encapsulation) 繼承(Inheritance) 多型 (Polymorphism) 覆蓋(Overriding) 動態連結(Dynamic Binding)

封裝性(Encapsulation) 封裝即所謂資訊隱藏(Information Hiding),主要是將物件的內外部份分開來,其他物件只能藉由外部的界面取得其提供的資料,物件內部的細節資料則隱藏起來,其他物件即無法瞭解此物件的內部細節,若不經過允許之窗口(即此物件提供之方法)便無從更動此物件內之資料。

圖3-5 物件的封裝性

繼承(Inheritance) :又稱為一般化(Generalization)與特殊化(Specialization)的關係,A繼承B乃指物件類別A是物件類別B的一種,因此物件類別A可以繼承物件類別B的屬性與方法。兩個以上類別一般化後之類別稱為超類別(Superclass)。

圖3-6 類別的繼承

多型 (Polymorphism) 所謂多型是指類別內同名的「方法」,因在不同的類別中定義,執行時會有不同結果的功能。

圖3-7多型

覆蓋(Overriding) 每一類別會定義所屬之屬性與方法,當此類別被要求提供某種服務而需執行某方法時,若此類別本身定義有此方法,則可以直接執行此方法,否則此類別會沿著類別階層由下往上找,直至找到為止。

圖3-8 覆蓋

動態連結(Dynamic Binding) 所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding)

圖3-9 動態繫結圖

3.4內聚力與耦合力 評估一個系統設計的好壞,亦即計算獨立性的標準,有內聚力(cohesion)與耦合力(coupling)兩種。

3.4.1 耦合力分類 程式設計的領域時,表示程式單元之間牽連相依的程度,模組之間的耦合度欲寬鬆愈好。

耦合力 耦合力是指兩個模組之間的獨立性高低,以物件導向程式而言是指物件與物件之間的獨立性高低。

圖3-10耦合力由低至高

3.4.2 內聚力分類 程式的內聚力則是愈強愈好。

內聚力(Cohesion) 內聚力(Cohesion)指的就是事物凝聚的狀態或程度。

圖3-11 內聚力的由低至高

3.4.3 物件的內聚力和耦合力 物件導向語言的特性,剛好符合了「高內聚力」和「低耦合力」,這是物件導向的優點,也更促進了軟體的可重覆再使用的能力。

3.5 物件導向語言的種類 4個基本的分支: 1. 基於Smalltalk語言的;包括Smalltalk的5個版本,以Smalltalk-80爲代表。 2. 基於C語言的;包括 objective-C、 C++、 Java。(編輯註:及 Microsoft 近來所提出的 C#)。 3. 於LISP語言的;包括 Flavors、 XLISP、 LOOPS、 CLOS。 4. 於PASCAL語言的;包括 Object Pascal (ex:Delphi)、 Turbo Pascal、 Eiffel、 Ada 95。

3.6 Java Java是個純物件導向語言,為Sun公司所發展。

圖3-12 Java的吉祥物Duke和代表Java的Java咖啡杯

JAVA的歷史 將此語言定名為GREEN團隊成員平時都愛喝的咖啡名稱JAVA。 1995年5月23日,SUN正式對外發表了JAVA語言

JAVA程式語言的特性 1. 熟悉且簡易(simple and familiar) 2. 物件導向(object oriented) 3.  分散式(distributed) 4.  直譯式(interpreted) 5.  堅韌性(robust) 6.  安全(secure) 7.  架構中立(architecture neutral) 8.  高效率(high performance)且多執行緒(multithreaded) 9.  bytecides能迅速轉成機械碼。 10.而多執行緒是指各程式碼能同時進行各自的工作。 11.動態(dynamic)連結。

3.7 案例研討-訂房系統

3.8 總結 隨著經驗的積累,物件導向的發展將日漸流行,物件導向技術也將日趨成熟。