物件導向系統分析與設計與UML.

Slides:



Advertisements
Similar presentations
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
Advertisements

<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
軟體工程 -物件導向程式設計與UML系統分析實作
第一章 绪论.
第8章 面向对象的软件工程 8.1 软件工程的新途径 8.2 面向对象建模 8.3 对象模型 8.4 动态模型 8.5 功能模型.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
Ch02物件導向程式設計 物件導向系統分析與設計.
第10章 領域、概念與分析模型 10-1 再談物件導向分析 10-2 找出類別建立領域模型 10-3 指定責任建立概念模型
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
史料數位化之METADATA與AUTHORITY CONTROL / 陳雪華
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
第一章 面向对象程序设计.
氣候變遷對南台灣降雨造成之影響 研究背景 結果與討論 研究方法 結論 朱振豪1 、彭康豪1 、莊煌甲1 、邱俊彥2,* 研究目的
第六讲 面向对象分析(6学时) 了解面向对象分析的概念 了解面向对象分析的发展 理解面向对象的基本概念 理解面向对象分析的过程、内容
第一章 軟體工程 (Software Engineering Introduction)
軟體工程 -物件導向程式設計與UML系統分析實作
第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型
新世代計算機概論 第14章 程式語言.
首席软件专家 张恂 博讯科技(上海)有限公司 浩方科技集团
第 9 讲 面向对象分析与设计
程設一.
抽象描述(abstract descriptions)那些需求被分析的系統
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
第二章 企業流程管理與企業資源規劃系統 Business Process Management &
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
軟體工程 -物件導向程式設計與UML系統分析實作
Chap 3 資料庫模型與處理架構.
第16章 VB.NET物件導向與.NET Framework
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
第12章 使用者介面塑模.
软件建模精要 面向对象软件建模技术.
Java软件设计基础 5. 继承与多态.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
C++ 與 物件導向 程式設計概念簡介 魏天君 2018/12/3.
CHAPTER 2 ELEMENTS OF UML
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
软件建模与UML.
資料庫系統導論.
UML类设计工具 任课老师:黄武 上午2时50分 10.
UML介绍.
面向对象的分析与设计 教学计划 研究生课程 主讲教师:邵维忠 助教: 朱彬,柳毅,尤朝,张磊,黄艺燕 2009年2月—7月
Php class 組員: 賴羿陵 林昱廷 莊正暉 張雅晴
A、資訊系統開發概論與課程簡介 何謂資訊系統? 為何需要系統分析師? 需要瞭解哪些知識? 領域知識? 資訊科技? 開發方法與技術? 課程簡介.
Advanced Basic Key Terms Dependency Actor Generation association
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
系統元件與結構塑模.
UML语言.
学习导航 学习导航.
管理信息系统 第九章 面向对象的系统开发方法.
第13章 設計模型 13-1 再談物件導向設計 13-2 建立互動圖 13-3 建立狀態機圖 13-4 設計模型的類別圖
第6章 使用案例圖 6-1 使用案例圖的基礎 6-2 使用案例圖的符號 6-3 動作者與使用案例的關係 6-4 繪製使用案例圖
ER Model.
課程報告 使用開放原始碼工具實作軟體產品線方法
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
确定属性(Identifying attribute)
第6章 面向对象开发的 分析与设计.
第11章 物件互動行為塑模.
MODELING GENERALIZATION & REFINING THE DOMAIN MODEL
第12章 狀態機圖 12-1 狀態機圖的基礎 12-2 狀態機圖的符號 12-3 再談狀態與轉換 12-4 狀態機圖的塑模範例
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
UML ISKM Lab.
面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
面向对象程序设计 C++教程 西安工业大学 于帆.
辅导课程二.
第 1 章 認識資料庫系統.
第十章 面向对象 (2).
Presentation transcript:

物件導向系統分析與設計與UML

目錄 物件導向的基本觀念 物件導向塑模語言UML簡介 UML各圖形介紹 結論

物件導向的基本觀念 物件導向的優點: 由於物件導向技術之引進,使軟體之開發與維護更有效率,亦提升了程式的再用性與可維護性。 物件導向技術(Object-Oriented Technique) 是繼結構化技術之後,系統開發上另一新的典範(Paradigm) 。 物件導向的優點: 更接近人類思維方式 程式的重複使用 程式易維護 程式易擴展 由於物件導向技術之引進,使軟體之開發與維護更有效率,亦提升了程式的再用性與可維護性。

物件導向的基本觀念(c.2) 物件導向的重要基本觀念包括: 物件 類別 封裝 繼承 同名異式

物件導向的基本觀念(c.3) 物件(Object) 物件是物件導向的基本思維單位,物件是一個具有識別(Identity)、狀態(State)與行為(Behavior) 的實體(Entity)或抽象化概念(Abstract Concept),物件的行為會影響其狀態。 物件包括: 名稱(Name)─識別 屬性(Attributes)─資料,其內容代表物件的狀態 操作 (Operations)或稱方法(Methods)─行為 例如物件名稱李四,有生日、年齡、住址、身高、體重與性別等為其屬性,而跳躍與走路為其操作。

物件導向的基本觀念(c.4) 類別(Class) 類別是具有相同結構及行為的物件所組成的集合。一個類別是一種定義(Definition)、樣板(Template)或模子(Mold),它是許多物件共同特徵的一種描述。 類別是物件經分類與抽象化後所得的結果。 將物件抽象化,就是剔除物件間的差異,而只考慮其相同的性質,然後組成一個群體,稱為類別。

物件導向的基本觀念(c.5) 類別包括: 例如:人類是一類別名稱,有生日、年齡、住址、身高、體重與性別等為其屬性,而跳躍與走路為其操作。 名稱(Name) 屬性(Attributes) 操作 (Operations)或稱方法(Methods) 例如:人類是一類別名稱,有生日、年齡、住址、身高、體重與性別等為其屬性,而跳躍與走路為其操作。 class name attributes: operations: 類別的表示法

物件導向的基本觀念(c.6) 封裝(Encapsulation) 將資料及使用此資料的所有方法包裝成一個物件,謂之。 也就是,物件是資料與方法『封裝』的結果。 資料與方法被 封裝在一起

物件導向的基本觀念(c.7) 封裝將物件的實作細節隱藏,使其與外界環境隔離,而只允許該物件之方法修改其資料,稱為資訊隱藏(Information Hiding)。 物件中的資料必須透過物件的方法取用,只要物件的方法對存取作控制,外界的物件便無法取用內部的資料,而達成物件保護的目的。 封裝之特性使物件導向的系統較容易維護。

物件導向的基本觀念(c.8) method # 1 data # 2 # 4 # 5 # 6 # 3 修改存取內部的資料

物件導向的基本觀念(c.9) 繼承(Inheritance) 繼承是類別間之關係,在此關係中某類別之資料結構與行為可供其關係中之類別分享。 繼承者稱為子類別(Subclass),被繼承者稱為父類別(Superclass)。 子類別將由父類別繼承來的屬性(變數、資料結構)或方法(行為)重新定義的動作稱為覆寫(overriding)。

物件導向的基本觀念(c.10) 男人 女人 人類 繼承

物件導向的基本觀念(c.11) 繼承之特性可利用一般化(Generalization) 的原則,萃取相關子類別的相同屬性和操作,並將之歸類為一個父類別來達成。 相反的,利用特殊化(Specialization)的原則,可以找出一個父類別的相關子類別。

物件導向的基本觀念(c.12) 類別的方法供本身及其所有子類別共用,因而達到程式的重用效果。 在物件導向技術中,繼承概念之運用對軟體工程有革命性之影響,如達成程式碼重用(Reuse),及產生可靠度較高的軟體等。

物件導向的基本觀念(c.13) 同名異式(Polymorphism) 多型的目的是希望簡化系統發展的複雜性並增加其彈性。 Polymorphism意指多種型式,簡稱多型,指的是一個方法可以有許多型式,也就是,相同的方法名稱,定義以不同的實作(implementation)。   多型的目的是希望簡化系統發展的複雜性並增加其彈性。

物件導向的基本觀念(c.14) 物件導向程式語言 如Java、C++、Ada、Small Talk、Object Pascal等。

物件導向塑模語言UML簡介 統一塑模語言(Unified Modeling Language, UML)是一種規格化(Specifying) 、視覺化(Visualizing)及文件化(Documenting)的軟體塑模語言,第一版UML包含以下九種圖形: 使用個案圖 類別圖 物件圖 循序圖 合作圖 狀態圖 活動圖 元件圖 部署圖

物件導向塑模語言UML簡介(c.2) 需求分析主要以使用個案圖作為表達工具。 而系統分析與設計主要以類別圖、物件圖、循序圖、、狀態圖、合作圖、元件圖與部署圖表達。

物件導向塑模語言UML簡介(c.3) 1. 使用個案圖 2. 類別圖 表示系統的使用個案和行為者之間互動的關係。

物件導向塑模語言UML簡介(c.4) 3. 物件圖 4. 循序圖 是用予描述一系統於某一時間點的靜態結構,該圖由一群相關之物件及其連結所組成,以表示系統在某一時間點之一例子。 4. 循序圖 用以描述系統運作時,物件間的互動行為且著重以時間為主軸的處理程序。

物件導向塑模語言UML簡介(c.5) 5. 合作圖 6. 狀態圖 該圖能同時展現物件間的資料流程、控制流程與訊息傳遞的活動。因此,合作圖是一個宏觀的總流程,能同步表達資料的產生與資料轉變的過程。 6. 狀態圖 用以表達物件在其生命週期中的狀態變化。狀態圖是以微觀物件為主,細分物件所發生的各項事件,並表達物件生命週期之狀態轉變及活動結果。

物件導向塑模語言UML簡介(c.6) 8.元件圖 7. 活動圖 9. 部署圖 該圖表達涉及於執行某一作業行為中之活動。一個活動圖描述一群循序與同步的活動,一個活動狀態表示一個工作流程步驟或一個運算的執行活動。 8.元件圖 它用來說明一群實體的軟體元件間的靜態結構關係,及說明其建構之細節。 9. 部署圖 它用來說明系統各軟硬體元件的配置與關聯。

分析與設計的流程

使用個案圖 使用個案圖主要是由行為者(Actors)和使用個案(Use Cases)兩個元件所組成,它標示行為者與使用個案間之互動,及使用個案間之關聯。

使用個案圖(c.2) 一個使用個案是系統中一系列相關的事件,以完成某一特定工作,並對系統之行為者產生可衡量的價值。 一個使用個案就是行為者透過介面要求系統所做一系列相關的事件,有起點亦有終點。 範例:

使用個案圖(c.3) 行為者

使用個案圖(c.4)

使用個案圖(c.5) 使用個案之描述:

類別圖與物件圖 類別是具有相同結構及行為的物件所組成的集合。 一個類別是一種定義(Definition)、樣板(Template)或模子(Mold),它是許多物件共同特徵的一種描述。

類別圖與物件圖(c.2) 類別具有名稱、屬性與操作。類別常由矩形表示。 物件亦常用矩形表示,名稱下加底線。

類別圖與物件圖(c.3) 類別圖是用來描述系統中的類別,以及類別間之關係。 物件圖是用於描述一系統於某一時間點的系統影像(Snapshot) 。

類別圖與物件圖(c.4) 類別間之關係與表示符號 相依(Dependency) 一般化(Generalization)/繼承 關聯(Association) 實現化(Realization)

類別圖與物件圖(c.5) 類別圖

類別圖與物件圖(c.6) 物件圖

循序圖 循序圖主要表達類別圖中各類別之物件間的訊息傳遞及操作。 基本上,描述各類別之物件間互動行為,需對每一個使用個案之類別圖建構一個對應的循序圖。

循序圖(c.2) 循序圖基本上是由下列元件所組成: 物件、 訊息、 操作、 生命線、 控制焦點、 框架 (UML 2 加入)。

循序圖(c.3)

循序圖(c.4) 框架 框架(Frame)是一種圖示標記,用以表達循序圖中,某一區段範圍內的一連串訊息與操作組合之控制流程、輸入、輸出等。 在循序圖中,框架之表達並非必須,使用者可依情況自行決定是否要表達。

循序圖(c.5) 多選一(Alternative)

合作圖 合作圖主要也是用於描述物件間之互動行為。 合作圖與循序圖合稱為互動圖。 循序圖著重以時間發生順序來表達物件間的訊息傳遞與處理之程序; 合作圖著重表達物件間之連結結構,並能同時展現物件間的訊息傳遞與處理之程序。

合作圖(c.2) 合作圖基本上是由下列元件所組成: 物件 連結 訊息 操作

狀態圖 若某物件或系統在其生命週期(從行為開始到結束)中有較複雜的狀態改變時,而這些改變在互動圖中不易表達,則可以用狀態圖詳細表達其所有狀態與狀態間之轉換。 對較單純者,不一定需要用狀態圖表達。 狀態圖也可用於表達某一使用個案、許多使用個案、子系統、使用者介面等等。 除軟體外,也可表達硬體之狀態轉換。

具深度的狀態:其內部的子狀態組成一狀態圖,描述其細部狀態轉換。 狀態圖(c.2) 狀態圖之主要元件包括: 狀態(states) 轉換(transitions) 一個狀態是一個被描述者在其生命週期中之一個情況(situation),在此情況中,它滿足某條件,可能正等待某些事件的發生,且可能正在執行某活動。 具深度的狀態:其內部的子狀態組成一狀態圖,描述其細部狀態轉換。

狀態圖(c.3) 狀態之轉換: 事件[成立條件]/動作 Event [Guard] / Action 此三個部分是具有選擇性的,不一定要同時都具備。

狀態圖(c.4) 描述洗衣機的狀態圖

狀態圖(c.5)

活動圖 若物件或系統涉及執行某些較複雜之行為時,例如循序的(sequential)或同時的(concurrent) 活動等,因為這些活動不易在互動圖中描述清楚,則可以用活動圖表達。 此外,也可用於表達某一使用個案、許多使用個案、子系統等之循序或同時的作業流程或行為。

活動圖(c.2) 銷售作業之活動圖

元件圖 元件圖(component diagrams)表達系統中,一群實體的軟體元件間的靜態結構關係,及說明其建構之細節。 元件圖之主要元素包括 元件 介面 關係

元件圖(c.2) – 元件以一個矩形貼上兩個小標籤表示,且需有一個唯一的名稱,名稱置於矩形內部。

元件圖(c.3) 介面 – 用來說明元件所提供的服務。 元件實作介所提供的服務,而其它元件透過介面來使用這個服務。 – 介面常以一小空心圓表示(稱簡單型式),介面也可以類別的符號表達(稱延伸型式)。

元件圖(c.4)

元件圖(c.5) 關係 – 關係(Relationships)是描述元件與元件間或元件與介面間的結合關係。 – 包括 相依(Dependency) 一般化(Generalization) 關聯(Association) 實現化(Realization)

元件圖(c.6)

元件圖(c.7) 上圖表示網路購物系統之元件圖。 「使用者介面模組」需透過iBook、iCart、iOrder三個介面使用系統所提供的功能。 三個ActiveX-DLL:「書籍產品型錄物件類別模組」、「購物車物件類別模組」、及「訂單物件類別模組」皆可存取後端資料庫。 書籍產品型錄、購物車與訂單三個元件屬執行檔,且皆可存取後端資料庫,因此這三個執行檔與資料庫間有相依關係。 使用者介面需透過iBook、iCart、iOrder三個介面完成訂購功能,所以使用者介面與這三個介面間也分別有相依關係。

元件圖(c.8) 下圖表示人力資源資料庫(database) 元件是由員工、獎懲、薪資、教育訓練、出勤考核五個資料表(tables)元件所組成。

部署圖 部署圖(deployment diagrams)表達系統中軟硬體元件間的靜態結構關係,及說明其建構之細節。 部署圖之主要元件包括 節點 連接

部署圖(c.2) 節點 – 節點(Nodes)代表著一種計算資源,也可說是一個硬體。 – 節點是以正方體圖形來表示,它必須有一個唯一的名稱以示區別。

部署圖(c.3) 連接 – 連接(Connections)表示節點間的溝通方式或路徑,也表示節點間之關係,包括相依(Dependency)、關聯(Association)等。 此外,節點與軟體元件間可能有相依關係。

部署圖(c.4) 區域網路之部署圖

部署圖(c.5) 主從式架構之部署圖

部署圖(c.6) WWW之部署圖

結論 物件導向為現今最廣為使用的開發技術,而UML又是目前物件導向開發最常使用的分析與設計的塑模工具。