第五章 物件導向方法 RUP

2021-08-31 20:33:50 字數 4385 閱讀 6481

一種軟體開發方法學至少由3部分組成,一是用於表達基本資訊的術語;二是用於組織基本資訊的表達格式;三是在不同抽象層之間進行「對映」的過程指導。

統一軟體開發過程(unitied software development process)是物件管理組織(object management group,omg)所推薦的乙個有關過程的標準,它由uml語言的開發者們提出,其中權衡了三十餘年的軟體開發實踐,吸取了數百個使用者多年的實際經驗以及rational公司多年的工作成果,因此統一軟體開發過程往往寫為rational unified process,簡稱rup。

5.1 rup 的特點

rup的突出特點是,它是一種以用況(use case)為驅動的、以體系結構為中心的迭代、增量式開發。

1.以用況為驅動

2.以體系結構為中心

以體系結構為中心是指在系統的生存週期中,開發的任何階段(rup規定了4個階段,即初始階段、細化階段、構造階段和移交階段)都要給出相關模型視角下有關體系結構的描述,作為構思、構造、管理和改善系統的主要製品。

3.迭代、增量式開發

迭代、增量式開發是指通過開發活動的迭代,不斷地產生相應的增量。在rup中,規定了4個開發階段:初始階段(the inception phase)、精化階段(the elaboration phase)、構造階段(the construction phase)和移交階段(the transition phase)。

兩次相鄰迭代所得到的發布版本之差,稱為乙個增量,因此增量式系統中乙個較小的、可管理的部分(乙個或幾個構造塊)。

rup的迭代、增量式開發是演化模型的乙個變體,即規定了「大的」迭代數目——4個階段,並規定了每次迭代的目標。

初始階段的基本目標是:獲得與特定用況和平台無關的系統體系結構輪廓,以此建立產品功能範圍;編制初始的業務例項,從業務角度指出該項目的價值,減少專案主要的錯誤風險。

精化階段的基本目標是:通過捕獲並描述系統的大部分需求(一些關鍵用況),建立系統體系結構基線的第乙個版本,主要包括用況模型和分析模型,減少次要的錯誤風險;到該階段末,就能夠估算成本、進度,斌跟你過詳細地規劃構造階段。

構造階段的基本目標是:通過演化,形成最終的系統體系結構基線(包括系統的各種模型和各模型視角下的體系結構描述),開發完整的系統,確保產品可以開始向客戶交付,即具有初始操作能力。

移交階段的基本目標是:確保有乙個實在的產品發布給使用者群。期間,培訓使用者如何使用該軟體。

5.2 核心工作流

在rup的每次迭代中都要經歷乙個核心工作流,即需求獲取、分析、設計、實現和測試。

5.2.1 需求獲取

rup採用use case技術來獲取需求。其目標是:使用uml中的用況、參與者以及依賴等術語來抽象客觀實際問題,形成系統的需求獲取模型—— 一種特定的系統/產品模型,並產生該模型視角下的體系結構描述。

1.列出候選需求

特徵是乙個新的項(item)及其簡要描述(shrinks)。

2.理解系統語境

在rup中,領域模型一般是以類圖予以表達的,用於捕獲系統語境中的一些重要領域物件類,其中領域物件表達系統工作環境中存在的事物或發生的事件。一般來說,領域類以3種形態出現。

l 業務物件:表示那些由業務操縱(manipulate)的事物(thing),如訂單、賬目和合同。

l 實在物件(real-world objects)和概念:如教室、運動場地。

l 事件(events):如上課鈴響、討論開始等。

在rup中,為了捕獲業務處理和其中的業務物件,通過以下兩個層次來抽象乙個業務:

(1)業務用況模型。業務用況模型是以用況圖予以表達的。其中包含一些「業務用況」和一些「業務參與者」,每乙個業務用況對應乙個業務處理,每乙個業務參與者對應客戶。

(2)業務物件模型。為了精化業務用況模型中的每乙個業務用況,rup引入了3個術語,用於表達參與業務的業務物件:工作人員(workers)、業務實體(business entities)和工作單元(work units)。其中,工作人員用於表達參與業務處理的各類人員;業務實體用於表達在乙個業務用況中所使用的某一事物,如一張發票;工作單元是對終端使用者而言可形成乙個認知整體的實體集合。

業務物件模型可以通過互動圖和活**予以表達。

3.捕獲系統功能需求

該步的目標是,建立系統的用況模型,用以表達客戶認可的需求——系統必須滿足的條件和能力,作為客戶和開發人員之間的一種共識。

用況模型是系統的一種概念模型,是對系統功能的抽象,包括系統參與者、系統用況以及它們之間的關係。其中,「以用況表達的系統」給出的是用況模型的頂層包。

在uml中,用況是系統向它的參與者提供結果(值)的功能塊,表達參與者使用系統的方式,因此乙個用況可用於規約系統可執行的、與參與者進行互動的乙個動作序列,包括其中一些可選的動作序列,並且用況還有自己的屬性。

5.2.2 需求分析

rup的需求分析目標是:在系統用況模型的基礎上,建立系統分析模型以及在該分析模型視角下的體系結構描述。其中,所建立系統分析模型也是系統的一種概念模型,解決系統用況模型中存在的二義性和不一致性等問題,並以一種系統化的形式準確地表達使用者的需求。

為了支援系統分析,rup引入了以下術語:分析類、分析包和用況細化,並通過這些術語以及描述它們之間的特定關係的術語,定義了乙個抽象層。

1.基本術語

(1)分析類。在rup中,分析類(analysis class)是類的一種衍型,很少有操作和特徵標記,而用責任來定義其行為,並且其屬性和關係也是概念性的。

分析類分為邊界類、實體類和控制類3種。

1)邊界類(boundary classes)。邊界類用於規約系統與其參與者之間的互動,該互動一般涉及向使用者/外部系統發出請求和從他們那裡接受資訊。

2)實體類(entity classes)。實體類用於規約那些需要長期駐留在系統中的模型化物件以及與行為相關的某些現象,如人的資訊以及實際的乙個事件。

3)控制類(control classes)。控制類用於規約基本動作和控制流的處理與協調,涉及向其他物件(如邊界類物件、實體類物件)委派工作。換言之,可用控制類來模型化系統的動態性,即可表達協同、定序、事務以及對其他物件的控制。

(2)用況細化(use case realization)。用況細化是乙個協作。針對乙個用況,其行為可用多個分析類之間的相互作用來細化,並記為用況細化[分析]。

(3)分析包(analysis package)。分析包是一種控制資訊組織複雜性的機制,提供了分析製品的一種組織手段,形成了一些可管理的部分。

2.分析模型的表達

在rup中,乙個系統的分析模型是由乙個「分析系統」定義的,該分析系統包含一種具有層次結構的包,每乙個包中可能包含一些分析類和用況細化[分析];並且一些分析類和用況細化[分析]還可單獨地出現在分析模型中,以凸顯它們在系統體系結構方面的作用。

3.分析的主要活動

建立系統的分析模型,一般應進行體系結構分析、用況分析、類的分析以及包的分析4項活動。

處理分析包之間共性的一般方法:抽取一些包中的共享分析類,而後把這些共享類放到乙個包中,並讓其他包依賴該類或依賴該類所在的包。

在rup中服務是指功能上緊密相關的、可被多個用況使用的一組動作。服務的主要特徵是:服務是不能分割的,系統或完整地提供,或不提供;並且服務是針對客戶而言的,而用況是針對使用者而言的,即當細化乙個用況時,可能需要多個服務,即乙個用況需要多個不同服務中的動作。

4.小結

5.2.3 設計

一般地說,軟體設計是定義滿足需求規約所需要的軟體結構。因此,rup的設計目標是,定義滿足系統/產品分析模型所規約需求的軟體結構。

1.設計層的術語

(1)設計類(design class),乙個設計類是對系統實現中乙個類或類似構造的乙個無縫抽象。設計類的主要特徵:操作、屬性、關係、方法、實現需求、是否為主動類。

(2)用況細化[設計]。用況細化[設計]是設計模型中的乙個協作,其中使用設計類及其物件,描述乙個特定用況是如何予以細化的,是如何執行的。

(3)設計子系統。設計子系統可以包含設計類、用況細化、介面,以及其他子系統,通過對其操作來顯示其功能。

(4)介面(inte***ce)。介面用於規約由設計類和設計子系統提供的操作。

2.設計模型、部署模型以及相關視角下的體系結構描述。 3.

設計的主要活動 4.

rup設計小結

5.2.4 rup的實現和測試

1.rup的實現

rup實現的目標是:基於設計類和子系統生成構件;對構件進行單元測試,進行整合和連線;把可執行的構件對映到部署模型。

2.rup的測試

rup的測試包括內部測試、中間測試和最終測試。

5.3 本章小結

rup是一種軟體開發過程框架,基於物件導向符號體系給出了有關軟體開發過程組織及實施的指導。該框架體現了3個突出特徵,即以用況驅動、體系結構為中心以及迭代、增量式開發。

rup和uml是一對「姐妹」,它們構成了一種特定的軟體開發方法學。其中,uml作為一種視覺化建模語言,給出了表達事物和事物之間關係的基本術語,給出了多種模型的表達工具;而rup利用這些術語定義了需求獲取層、系統分析層、設計層、實現層,並給出了實現各層模型之間對映的基本活動以及相關的指導。

第五章 物件導向程式設計

一.單選題 共6題,100.0分 1以下關於c 中方法過載的說法正確的是 a 如果兩個方法名稱不同,而引數的個數不同,那麼它們可以構成方法過載 b 如果兩個方法名稱相同,而返回值的資料型別不同,那麼它們可以構成方法過載 c 如果兩個方法名稱相同,而引數的資料型別不同,那麼它們可以構成方法過載 d 如...

物件導向第五章知識點

1.通過多型可以減少類中的 量,可以提高 的可擴充套件性和可維護性。繼承是多型的基礎,沒有繼承就沒有多型。2.把子類轉換為父類稱為向上轉型,自動進行型別轉換,把父類轉換為子類稱為向下轉型,必須進行強制型別轉換。3.向上轉型後通過父類引用變數呼叫的方法是子類覆蓋或繼承父類的方法,通過父類引用變數無法呼...

第五章 適用物件

第一節 字元型別 單個的字元 char public class main 輸出3 字元 char 和整數 int 可以互相轉換 大小寫轉換 1.大寫 小寫 public class main 2.小寫到大寫 public class main 第二節包裹型別 基礎型別 boolean char i...