chapter 2 物件導向系統分析設計
章節 |
大綱 |
2-1 |
物件與物件導向概念 |
2-2 |
UML與物件基本原理 |
2-3 |
物件導向分析設計工具 |
2-4 |
物件導向分析設計程序 |
物件與物件導向分析設計程序
程序
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Step1 訪談並確認利害關係人的目標或利益
需求訪談要整理需求成為利害關係人目標表(Stakeholder-goal list)。通過編碼、需求、來源、備註可成為事後核定內容。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Step3 描述使用案例並繪製使用案例圖
- 描述時將系統看成一個黑箱,只描述參與者要求系統進行工作,系統如何處理工作並回應訊息給參與者即可,也就是角色要在系統中做的事。
- 此步驟的類別稱之概念類別,找出系統所需要的類別,即是進入定義領域模型的工作。
- 通常使用案例與事件找出系統涉及哪些類別,通常利害關係人與行為者都可能是主要類別,此外餐廳、庫存、運送等工作項目也有可能。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Step4 尋找概念類別並描繪初步類別圖
可通過使用腦力激盪、名詞片語法,畫出概念性類別圖。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Step6 擬定合約
將事件已前置條件和後置條件的方式詳細的描述
軟體SOP(Standard Operation Process)
工作步驟
- Step1 需求
訪談用戶需求,了解用戶對於軟體目標和軟體幫助他解決什麼事情。 範例:需求修改紀錄-客戶許願清單
- Step2 分析
通過訪談內容與合約,描述系統內的規格內容與限制。
- Step3 設計
產出內容包括
chapter2 何謂物件導向系統分析設計 old
章節 |
大綱 |
2-1 |
物件與物件導向概念 |
2-2 |
UML與物件基本原理 |
2-3 |
物件導向分析設計工具 |
2-4 |
物件導向分析設計程序 |
2-1 物件與物件導向概念
物件(thing)可以指人事物或文件.ex:房子、桌子、椅子、杯子、客戶、訂單、產品規格、產品
- 實體的東西
- 營業交易
- 產品或服務
- 地點或角色
- 交易項目
- 產品規格
- 組織單位
- 容器或容器元素
物件與程式之間的關聯:系統由物件組成,物件又由程式組成
- 系統到系統是由一個一個東西所組成
- 軟體系統他模擬現實環境所構建構而成的模型,故他是由一個一個物件類別組成
- 程式物件寫成程式碼構成了軟體系統
例如:真實世界物件包含貓、人、狗、車,物件方式轉換成貓、人、狗、車類別,在講貓、人、狗、車的程式要怎麼寫。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
物件屬性:學生
範例1
學生>>物件物件內容>>>物件屬性:學生姓名、學生學號、學生班級
三位學生>>>類別:學生 的概念
一個類別可以產生非常多物件
物件或是名稱:學生妹
屬性(attribue):姓名、類別、科系、學號、年級
物件行為或是方法(method):會做的事情. 打招呼、自我介紹、問資料、邀約
物件:小弟弟
屬性:藍衣服、黑頭髮
行為:跑步、游泳
從以上可以整理出,類別是一個集合體的概念故稱之為物件類別(Object Class),個別的物件稱之為物件實體(Object Instance)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
範例2:汽車
汽車類別 tayota、susuki
物件屬性
故在物件導向概念中:
系統由模組行程>模組由物件組成>物件由程式組成
目標若為已物件導向概念設計系統
- 找出系統由什麼模組組成()
- 模組包含哪些物件(跟客戶訂單相關的物件、跟客戶訂單相關的類別)
- 物件
例如1:處理客戶訂單的系統可能包括客戶訂單的物件(簡單)或類別(詳盡)
類別:產品、訂單、客戶、產品類別
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
例如2: 小吃店、飯店、五星飯店系統,物件互動會不一樣
點餐系統類別?屬性有哪些?如何互動
補充:
內聚力cohesion
純水
耦合力
水變成飲料
完成一件複雜的工作若是要多個物件合作,物件間的合作不需要牽涉操作其他物件的內部運作,只需透過訊息的傳達即刻。不干涉另一個物件內部運作,保持每個物件的獨立性。
會說 有很高的內聚力和很低的耦合力,好的系統要有此特徵。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
範例:



2-2 UML 與物件基本原理
2-2-1 UML
UML定義:
- 為一個描述物件導向方西設計的圖形化工作
- 被定義14種圖示(diagram):
靜態>圖示結構式圖示
動態>行為式圖示
靜態範例(類別圖)

動態範例(循序圖)

UML符號:
- 使用一條線連結有訊息傳遞的類別,稱為關聯(association)。
- 多個物件產生關聯,必須用數字在連結兩端將其標示稱之多重性(multiplicity)。

名稱 |
特性 |
定義 |
使用案例圖 Use Case Diagram |
靜態圖形 |
表現系統所有使用案例與環境間的關係 |
活動圖 Activity Diagram |
動態圖形 |
用法1:描述使用案例內的運作流程 |
|
|
用法2:描述使用案例內的程式流程 |
循序圖 Sequence Diagram |
動態圖形 |
描述使用案例中如何透過物件間訊息的傳遞有次序的完成系統事件 |
溝通圖Communication Diagram |
動態圖形 |
比循序圖更能表現物件間互動溝通關係 |
類別圖Class Diagram |
靜態圖形 |
將類別和類別間的關係以關聯符號來表現 |
sample
1.使用案例圖
最陽春選課案例
延伸選課案例
2.活動圖
維基百科說明
3.循序圖
菜鳥工程師教你怎麼畫
4.溝通圖/合作圖
學習筆記-合作圖型
5.類別圖
軟體路上不孤單-陽春案例教學
2-2-2 基本原理
- 封裝
概念指每一個物件就像一塊IC板,單一物件功能完整且獨立,與其他物件關聯程度進量降到最低。物件之間若要通訊則就像由電路角等其他媒介通電。
是一群相關的屬性和操作所組成的型態。

封裝概念延伸:資訊隱藏
定義:將困難的設計或是可能改變設計要傳遞的主資訊部分做隱藏。比如手錶由齒輪構成。
- 繼承
讓已經寫過程式碼,別再重複。
是指類別所定義的屬性和方法可以被其他的類別所使用。
所以通常只需宣告父類別,使用繼承的方式

概念延伸:
- 特殊化:先有父類別、再有子類別
使用繼承的方式來繼承原有的類別,僅加上不同的屬性和方法的設計方式。
- 一般化:先有子類別、將子類別相似地方歸納成父類別
在一群類別中將共通的部分抽離出來形成另一個類別的設計方式。
- 多型
指不同類別中,可以存在相同的方法名稱,但其操作內容可以不同。每個子類別有其獨特性。
覆載(Overrride)是多型的另一個性質:子類別繼承了父類別的方法與屬性,在使用子類別時以子類別的屬性與方法為主

2-3 物件導向分析設計工具
物件導向與設計的做法:
- 使用案例:使用文字來描述參與者(actor)與系統互動的過程。描述人做哪些事稱之


*參與者是指與系統互動的人或個體
*互動過程是參與者與系統之間一連串動作的敘述稱之情節(Scenario),情節包含成功與失敗
*可以簡單分成簡略、中等、完整三種層次
合約:
- 操作(Operation):操作名稱和參數
- 交互參照(Cross References):使案例名稱,操作所發生的地方作為前後參考
- 前置條件:操作成立的條件,也就是操作執行前的系統狀態
- 後置條件:操作執行後的系統狀態
-
互動圖(interaction diagram)
包括溝通圖與循序圖,用不同方式表達同內容:
(1)溝通圖:用類似網路方式描述物件互動,物件可被擺設在圖中任何位置
(2)循序圖:以類似柵欄的方式描述物件的互動,每加一個新物件就加入到圖的右邊

-
類別圖:用來描述整體系統的個別內容和類別之間的關係圖,表達出整體系統的靜態結構
-
設計類別圖:清楚說明屬性與操作,稱之設計類別圖
(1)必須在類別中增加類別操作
(2)類別間必須增加導覽箭頭
(3)在墓地物件的導覽箭頭下加上角色名稱relename
(4)在目的物件表現出多重性
(5)去除關聯名稱

詞彙補充
概念類別conceptual class