1. 程式人生 > >【軟工視訊】——面向物件技術

【軟工視訊】——面向物件技術

面向物件的概念

什麼時面向物件
Coad和Yourdon給出了一個定義:
面向物件=物件+類+繼承+通訊
如果一個軟體系統時使用這樣四個概念設計和實現的,則我們認為這個軟體系統是面向物件的。

物件
物件是面向物件開發的模式的基本成分
每個物件可用它本身的一組屬性和它可以執行的一組操作來定義
屬性一般只能通過執行物件的操作來改變
操作又稱為方法或服務,它描述了物件執行的功能,若通過訊息傳遞,還可以為其他物件使用。

訊息
訊息是一個物件與另一個物件的通訊單元,是要求某個物件執行類中定義的某個操作的規格說明
在這裡插入圖片描述
在這裡插入圖片描述

類是一組具有相同資料結構和相同操作的物件的集合
類的定義包括一組資料的屬性和在資料上的一組合法操作

繼承(Inheritance)
繼承是使用已存在的定義作為基礎建立新定義的技術
新類的定義可以是即存在類所宣告的資料和新類所增加的宣告的組合
在這裡插入圖片描述

在這裡插入圖片描述

面向物件的開發過程

       面向物件方法改進了在生存期各個階段之間的的介面,因為在生存期各個階段所開發出來的“部件”都是類
       在面向物件生存期的各個階段對各個類的資訊進行細化,類成為分析,設計和實現的基本單元

在這裡插入圖片描述

論域分析
論語分析開發問題論域的模型
考察問題論域內的一個較寬的範圍,分析覆蓋的範圍應用比直接要解決的問題更多。
建立大致的系統的問題更多

應用分析
應用分析則根據特定應用的需求進行論域分析
應用分析細化在論域分析階段所開發出來的資訊,把注意力集中於當前要解決的問題。
在這裡插入圖片描述


類的定義
一旦標識了一個類,就給出了它的規格說明,其中包括類的例項可執行的操作和它們的資料標識
對每一個,無論是哪一個階段標識的類都如此,
類的規格說明定義了施加於物件的資料儲存上的一組操作。

類的實現
通過變數的宣告,操作介面的實現及支援介面操作的函式的實現,可實現一個類的預期行為和狀態
物件是語言有關的。一個好的面嚮物件語言應當分離共有介面與其內部實現。

類的測試
如果類的定義提供介面比較狹窄,那麼窮舉測試就有可能實現,
類的測試在最抽象的層次開始,沿繼承關係繼續鄉下進行。,
已經測試過的部分不需要從新測試

求精和維護
這是一個軟體在生存期中花費時間的部分
傳統的維護活動是針對應用的,而求精過程是針對類,針對把類繼承在一起的結構,
我們可以標識抽象的抽象,使得繼承結構通過一般化增加新的層次,即在既存的跟類之上增加新的層次

面向物件分析和模型化

在這裡插入圖片描述
物件模型
是三個模型中最關鍵的一個模型,它的作用是描述系統靜態結構,包括構成系統的類和物件,他們的屬性和操作,及他們時間的關係。
在OMT中類與類之間的關係叫關聯

狀態圖(描述一個物件的型為)
狀態圖是一個狀態和事件的網路,側重於描述每一類物件的動態行動
在狀態圖中,狀態是對某一時刻中屬性特徵的概擴。而狀態遷移表示這一類物件在何時對系統內外發生的那些事情做出何種響應。
在這裡插入圖片描述
操作時一個伴隨狀態遷移瞬間時發生的行為,與出發事件一起表示在有關的狀態遷移之上
狀態模型由多個狀態圖組成
各個狀態圖併發地執行,可以獨立地改變狀態

事件
事件追蹤圖(描述多個物件的行為)
功能模型

功能模型表明,通過計算,從輸入資料能得到什麼樣的輸出資料,不考慮參加計算的資料按什麼時序執行,
功能模型由多個數據流程圖組成,他們指明從外部輸入,通過操作和內部儲存,直到外部輸出,這整個的資料流情況。
功能模型中所有的資料流程圖往往形成一個層次結構
在這個層次結構中,一個數據流程圖中的過程可以下一層的資料流程圖做進一步的說明。
資料流圖中允許加入控制流,但這樣做將與動態模型重複,不提倡夾帶控制流。
在這裡插入圖片描述
基於三個模型的分析過程(omt)
功能模型著重於系統內部資料的傳遞和處理。
功能模型定義“做什麼”
動態模型定義“何時做”
物件模型定義“對誰做”

構造OOA物件概念模型的層次
構造和評審OOA概念模型的順序和由五個層次組成
這五個層次是分析過程中的層次
每個層次的工作都是為系統的規格說明增加了一個組成部分
五個層次是“類與物件,屬性,服務,結構和主題
在這裡插入圖片描述
選擇累和物件的原則
目標系統必須記住類和物件的某些事情
標識結構
標識Gen-Spec結構的方法和策略
標識Whole-Part結構的方法和策略
標識屬性
標識屬性的方法和策略
定義服務的方法和策略
訊息連線的標識
找出訊息連線的方法及策略
識別主題(類構成的集合)

面向物件的設計
高層設計
高層設計階段開發系統結構,即構造應用軟體的架構模型
在這裡插入圖片描述
高層設計的特點
高層設計可以表徵為標識和定義模組的過程
模組可以是一個單個的類,也可以是由一些類組合成的子系統
定義過程是指責驅動的

高層設計應遵循的原則
應使得在子系統的各個高層部件之間的通訊量達到最小
子系統應當把那些組成的類大包,形成搞高度的內聚
邏輯功能分組,提供一個一個單元,識別並定位問題事件
Coad與Yourdon高層設計方法
設計階段中繼續採用分析階段中提到的五個層次
在設計階段中,五個層次用於建立胸痛的四個組成成份

問題論語部分
人機互動部分
任務管理部分
資料管理部分

使用者介面部分的設計
使用者分類
按技能層次分類
按組織層次分類
按職能分類

描述人及其他任務的指令碼
對以上定義的每一類使用者,列出對以下問題做出的考慮:什麼人,目的,特點,成功的關鍵因素,熟練程度以及任務指令碼
設計命令層
研究現行的人機互動活動的內容和準則
建立一個初始的命令層
細化命令層
設計詳細的互動
使用者介面設計有若干原則,包括
一致性,採用一致的術語,一致的步驟和一致的活動。操作步驟少
不“要啞播放

繼續做原型
使用者介面原型是使用者介面設計的重要工作
使用快速原型工具做出原型讓使用者使用,通過使用者反饋,修改,演示的迭代,使介面越來越有效
設計HIC(人機互動)類
視窗需要進一步細化
設計HIC類,首先從組織視窗和部件的使用者界介面的設計開始

面向物件的分析

面向物件程式的設計與測試

單元測試(類測試)
基於定義的測試
基於程式的測試
測試類操作的測試用例組

類測試的種類

組裝測試
類組裝
總體組裝
基於線索測試(Thread-based Test)
基於應用的測試(Use-based -Test)
確認測試(類之間的關聯)
按不同層次進行測試
類的測試用例組
類測試