面向對象分析設計(講義稿)_第1頁
面向對象分析設計(講義稿)_第2頁
面向對象分析設計(講義稿)_第3頁
面向對象分析設計(講義稿)_第4頁
面向對象分析設計(講義稿)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1軟件工程軟件工程面向對象分析與設計面向對象分析與設計2面向對象分析面向對象分析分析分析 分析工作主要包括分析工作主要包括3項內容項內容:理解、表達和理解、表達和驗證。驗證。 在面向對象分析中,主要由對象模型、動在面向對象分析中,主要由對象模型、動態模型和功能模型組成。態模型和功能模型組成。面向對象分析面向對象分析 關鍵是識別出問題域內的類與對象,并分關鍵是識別出問題域內的類與對象,并分析它們相互間的關系,最終建立起問題域的簡析它們相互間的關系,最終建立起問題域的簡潔、精確、可理解的正確模型。其中對象模型潔、精確、可理解的正確模型。其中對象模型是最基本、最重要、最核心的。是最基本、最重要、最核

2、心的。3 不論采用哪種方法開發軟件,分析的過不論采用哪種方法開發軟件,分析的過程都是提取系統需求的過程。分析工作主要程都是提取系統需求的過程。分析工作主要包括包括3 3項內容,這就是理解、表達和驗證。首項內容,這就是理解、表達和驗證。首先,系統分析員通過與用戶及領域專家的充先,系統分析員通過與用戶及領域專家的充分交流,力求完全理解用戶需求和該應用領分交流,力求完全理解用戶需求和該應用領域中的關鍵性的背景知識,并用某種無二義域中的關鍵性的背景知識,并用某種無二義性的方式把這種理解表達成文檔資料。分析性的方式把這種理解表達成文檔資料。分析過程得出的最重要的文檔資料是軟件需求規過程得出的最重要的文檔

3、資料是軟件需求規格說明格說明( (在面向對象分析中,主要由對象模型、在面向對象分析中,主要由對象模型、動態模型和功能模型組成動態模型和功能模型組成) )。4 由于問題復雜,而且人與人之間的由于問題復雜,而且人與人之間的交流帶有隨意性和非形式化的特點,上交流帶有隨意性和非形式化的特點,上述理解過程通常不能一次就達到理想的述理解過程通常不能一次就達到理想的效果。因此,還必須進一步驗證軟件需效果。因此,還必須進一步驗證軟件需求規格說明的正確性、完整性和有效性,求規格說明的正確性、完整性和有效性,如果發現了問題則進行修正。顯然,需如果發現了問題則進行修正。顯然,需求分析過程是系統分析員與用戶及領域求分

4、析過程是系統分析員與用戶及領域專家反復交流和多次修正的過程。也就專家反復交流和多次修正的過程。也就是說,理解和驗證的過程通常交替進行,是說,理解和驗證的過程通常交替進行,反復迭代,而且往往需要利用原型系統反復迭代,而且往往需要利用原型系統作為輔助工具。作為輔助工具。5 為了更好地理解問題,人們常常采用建立為了更好地理解問題,人們常常采用建立問題模型的方法。所謂模型,就是為了理解事問題模型的方法。所謂模型,就是為了理解事物而對事物作出的一種抽象,是對事物的一種物而對事物作出的一種抽象,是對事物的一種無歧義的書面描述。通常,模型由一組圖示符無歧義的書面描述。通常,模型由一組圖示符號和組織這些符號的

5、規則組成,利用它們來定號和組織這些符號的規則組成,利用它們來定義和描述問題域中的術語和概念。更進一步講,義和描述問題域中的術語和概念。更進一步講,模型是一種思考工具,利用這種工具可以把知模型是一種思考工具,利用這種工具可以把知識規范地表示出來。識規范地表示出來。 模型可以幫助我們思考問題、定義術語、模型可以幫助我們思考問題、定義術語、在選擇術語時作出適當的假設,并且可以幫助在選擇術語時作出適當的假設,并且可以幫助我們保持定義和假設的一致性。我們保持定義和假設的一致性。6 為了開發復雜的軟件系統,系統分析員應該從不同角度抽象出目標系統的特性,使用精確的表示方法構造系統的模型,驗證模型是否滿足用戶

6、對目標系統的需求,并在設計過程中逐漸把和實現有關的細節加進模型中,直至最終用程序實現模型。 對于那些因過分復雜而不能直接理解的系統,特別需要建立模型,建模的目的主要是為了減少復雜性。人的頭腦每次只能處理一定數量的信息,模型通過把系統的重要部分分解成人的頭腦一次能處理的若干個子部分,從而減少系統的復雜程度。7 對象模型表示靜態的、結構化的系統的對象模型表示靜態的、結構化的系統的“數據數據”性質。性質。 面向對象方法強調圍繞對象而不是圍繞功能來面向對象方法強調圍繞對象而不是圍繞功能來構造系統。構造系統。 對象模型是對模擬客觀世界實體的對象以及對對象模型是對模擬客觀世界實體的對象以及對象彼此間的關系

7、的映射,描述了系統的靜態結構。象彼此間的關系的映射,描述了系統的靜態結構。為建立動態模型和功能模型,提供了實質性的框架。為建立動態模型和功能模型,提供了實質性的框架。 對象模型用類圖來描述。對象模型用類圖來描述。 對象模型對象模型8 動態模型表示瞬時的、行為化的系統的動態模型表示瞬時的、行為化的系統的“控制控制”性質,它規定了對象模型中的對象的合法變化序列。性質,它規定了對象模型中的對象的合法變化序列。 狀態是對對象屬性值的一種抽象。狀態是對對象屬性值的一種抽象。 各對象之間相互觸發(即作用)就形成了一系各對象之間相互觸發(即作用)就形成了一系列的狀態變化。列的狀態變化。 一個觸發行為稱作一個

8、事件。一個觸發行為稱作一個事件。 對象對事件的響應,取決于接受該觸發的對象對象對事件的響應,取決于接受該觸發的對象當時所處的狀態。當時所處的狀態。 動態模型動態模型9 一旦建立起對象模型之后,就需要考察對象的動態行為。所有對象都具有自己的生命周期(或稱為運行周期)。對一個對象來說,生命周期由許多階段組成,在每個特定階段中,都有適合該對象的一組運行規律和行為規則,用以規范該對象的行為。生命周期中的階段也就是對象的狀態。 狀態有持續性,它占用一段時間間隔。狀態與事件密不可分,一個事件分開兩個狀態,一個狀態隔開兩個事件。事件表示時刻,狀態代表時間間隔。 動態模型動態模型10 用用UML提供的狀態圖來

9、描繪對象的狀態、觸發提供的狀態圖來描繪對象的狀態、觸發狀態轉換的事件以及對象的行為(對事件的響應)。狀態轉換的事件以及對象的行為(對事件的響應)。 每個類的動態行為用一張狀態圖來描繪,各個每個類的動態行為用一張狀態圖來描繪,各個類的狀態圖通過共享事件合并起來,從而構成系統類的狀態圖通過共享事件合并起來,從而構成系統的動態模型。的動態模型。 動態模型是基于事件共享而互相關聯的一組狀動態模型是基于事件共享而互相關聯的一組狀態圖的集合。態圖的集合。 動態模型動態模型11 功能模型表示變化的系統的功能模型表示變化的系統的“功能功能”性質,它性質,它指明了系統應該指明了系統應該“做什么做什么”,直接地反

10、映了用戶對,直接地反映了用戶對目標系統的需求。目標系統的需求。 建立功能模型有助于軟件開發人員更深入地理建立功能模型有助于軟件開發人員更深入地理解問題域,改進和完善自己的設計。解問題域,改進和完善自己的設計。 用例圖進行需求分析和建立功能模型的強有力用例圖進行需求分析和建立功能模型的強有力工具。工具。 在在UML中把用用例圖建立起來的系統模型稱為中把用用例圖建立起來的系統模型稱為用例模型。用例模型。 功能模型功能模型12 通常,功能模型由一組數據流圖組成。通常,功能模型由一組數據流圖組成。在面向對象方法學中,數據流圖遠不如在結在面向對象方法學中,數據流圖遠不如在結構分析、設計方法中那樣重要。一

11、般說來,構分析、設計方法中那樣重要。一般說來,與對象模型和動態模型比較起來,數據流圖與對象模型和動態模型比較起來,數據流圖并沒有增加新的信息。并沒有增加新的信息。 用例模型描述的是外部行為者用例模型描述的是外部行為者(actor)所)所理解的系統功能。用例模型的建立是系統開理解的系統功能。用例模型的建立是系統開發者和用戶反復討論的結果,它描述了開發發者和用戶反復討論的結果,它描述了開發者和用戶對需求規格所達成的共識。者和用戶對需求規格所達成的共識。 功能模型功能模型13 面向對象建模技術所建立的面向對象建模技術所建立的3 3種模型,種模型,分別從分別從3 3個不同側面描述了所要開發的系統。個不

12、同側面描述了所要開發的系統。 這這3 3種模型相互補充、相互配合,使得種模型相互補充、相互配合,使得我們對系統的認識更加全面:功能模型指明我們對系統的認識更加全面:功能模型指明了系統應該了系統應該“做什么做什么”;動態模型明確規定;動態模型明確規定了什么時候了什么時候( (即在何種狀態下接受了什么事即在何種狀態下接受了什么事件的觸發件的觸發) )做;對象模型則定義了做事情的做;對象模型則定義了做事情的實體。實體。 3種模型之間的關系種模型之間的關系14 在面向對象方法學中,對象模型是最基在面向對象方法學中,對象模型是最基本最重要的,它為其他兩種模型奠定了基礎,本最重要的,它為其他兩種模型奠定了

13、基礎,我們依靠對象模型完成我們依靠對象模型完成3 3種模型的集成。下種模型的集成。下面扼要地敘述面扼要地敘述3 3種模型之間的關系。種模型之間的關系。 3種模型之間的關系種模型之間的關系15(1 1) 針對每個類建立的動態模型,描述了類實例針對每個類建立的動態模型,描述了類實例的生命周期或運行周期。的生命周期或運行周期。(2 2) 狀態轉換驅使行為發生,這些行為在數據流狀態轉換驅使行為發生,這些行為在數據流圖中被映射成處理,在用例圖中被映射成用例,它圖中被映射成處理,在用例圖中被映射成用例,它們同時與類圖中的服務相對應。們同時與類圖中的服務相對應。(3 3) 功能模型中的處理(或用例)對應于對

14、象模功能模型中的處理(或用例)對應于對象模型中的類所提供的服務。型中的類所提供的服務。(4 4) 數據流圖中的數據存儲,以及數據的源點數據流圖中的數據存儲,以及數據的源點/ /終點,通常是對象模型中的對象。終點,通常是對象模型中的對象。(5 5) 數據流圖中的數據流,往往是對象模型中對數據流圖中的數據流,往往是對象模型中對象的屬性值,也可能是整個對象。象的屬性值,也可能是整個對象。 3種模型之間的關系種模型之間的關系16(6 6) 用例圖中的行為者,可能是對象模型中的對用例圖中的行為者,可能是對象模型中的對象。象。(7 7) 功能模型中的處理(或用例)可能產生動態功能模型中的處理(或用例)可能

15、產生動態模型中的事件。模型中的事件。(8 8) 對象模型描述了數據流圖中的數據流、數據對象模型描述了數據流圖中的數據流、數據存儲以及數據源點存儲以及數據源點/ /終點的結構。終點的結構。 3種模型之間的關系種模型之間的關系17 面向對象分析的關鍵工作,是分析、確面向對象分析的關鍵工作,是分析、確定問題域中的對象及對象間的關系,并建立定問題域中的對象及對象間的關系,并建立起問題域的對象模型。起問題域的對象模型。 大多數分析模型都不是一次完成的,為大多數分析模型都不是一次完成的,為了理解問題域的全部含義,必須反復多次地了理解問題域的全部含義,必須反復多次地進行分析。因此,分析工作不可能嚴格地按進行

16、分析。因此,分析工作不可能嚴格地按照預定順序進行;分析工作也不是機械地把照預定順序進行;分析工作也不是機械地把需求陳述轉變為分析模型的過程。分析員必需求陳述轉變為分析模型的過程。分析員必須與用戶及領域專家反復交流、多次磋商,須與用戶及領域專家反復交流、多次磋商,及時糾正錯誤認識并補充缺少的信息。及時糾正錯誤認識并補充缺少的信息。18 分析模型是同用戶及領域專家交流時有分析模型是同用戶及領域專家交流時有效的通信手段。最終的模型必須得到用戶和效的通信手段。最終的模型必須得到用戶和領域專家的確認。在交流和確認的過程中,領域專家的確認。在交流和確認的過程中,原型往往能起很大的促進作用。原型往往能起很大

17、的促進作用。 一個好的分析模型應該正確完整地反映一個好的分析模型應該正確完整地反映問題的本質屬性,且不包含與問題無關的內問題的本質屬性,且不包含與問題無關的內容。分析的目標是全面深入地理解問題域,容。分析的目標是全面深入地理解問題域,其中不應該涉及具體實現的考慮。但是,在其中不應該涉及具體實現的考慮。但是,在實際的分析過程中完全不受與實現有關的影實際的分析過程中完全不受與實現有關的影響也是不現實的。響也是不現實的。19 雖然分析的目的是用分析模型取代需求雖然分析的目的是用分析模型取代需求陳述,并把分析模型作為設計的基礎,但是陳述,并把分析模型作為設計的基礎,但是事實上,在分析與設計之間并不存在

18、絕對的事實上,在分析與設計之間并不存在絕對的界線。界線。20面向對象設計面向對象設計 分析是提取和整理用戶需求,并建立問題域分析是提取和整理用戶需求,并建立問題域精確模型的過程。精確模型的過程。 設計則是把分析階段得到的需求轉變成符合設計則是把分析階段得到的需求轉變成符合成本和質量要求的、抽象的系統實現方案的過程。成本和質量要求的、抽象的系統實現方案的過程。 面向對象設計就是用面向對象觀點建立求解面向對象設計就是用面向對象觀點建立求解域模型的過程。域模型的過程。21 盡管分析和設計的定義有明顯區別,盡管分析和設計的定義有明顯區別,但是在實際的軟件開發過程中二者的界但是在實際的軟件開發過程中二者

19、的界限是模糊的。許多分析結果可以直接映限是模糊的。許多分析結果可以直接映射成設計結果,而在設計過程中又往往射成設計結果,而在設計過程中又往往會加深和補充對系統需求的理解,從而會加深和補充對系統需求的理解,從而進一步完善分析結果。因此,分析和設進一步完善分析結果。因此,分析和設計活動是一個多次反復迭代的過程。計活動是一個多次反復迭代的過程。22 面向對象方法學在概念和表示方法面向對象方法學在概念和表示方法上的一致性,保證了在各項開發活動之上的一致性,保證了在各項開發活動之間的平滑間的平滑( (無縫無縫) )過渡,領域專家和開發過渡,領域專家和開發人員能夠比較容易地跟蹤整個系統開發人員能夠比較容易

20、地跟蹤整個系統開發過程,這是面向對象方法與傳統方法比過程,這是面向對象方法與傳統方法比較起來所具有的一大優勢。較起來所具有的一大優勢。23 生命周期方法學把設計進一步劃分生命周期方法學把設計進一步劃分成總體設計和詳細設計兩個階段,類似成總體設計和詳細設計兩個階段,類似地,也可以把面向對象設計再細分為系地,也可以把面向對象設計再細分為系統設計和對象設計。系統設計確定實現統設計和對象設計。系統設計確定實現系統的策略和目標系統的高層結構。對系統的策略和目標系統的高層結構。對象設計確定解空間中的類、關聯、接口象設計確定解空間中的類、關聯、接口形式及實現服務的算法。系統設計與對形式及實現服務的算法。系統

21、設計與對象設計之間的界限,比分析與設計之間象設計之間的界限,比分析與設計之間的界限更模糊,本書不再對它們加以區的界限更模糊,本書不再對它們加以區分。分。24系統分解系統分解 軟件工程師在設計比較復雜的應用軟件工程師在設計比較復雜的應用系統時普遍采用的策略是,系統時普遍采用的策略是,“分而治之,分而治之,各個擊破各個擊破”。 系統的主要組成部分稱為子系統。系統的主要組成部分稱為子系統。通常根據所提供的功能來劃分子系統。通常根據所提供的功能來劃分子系統。25系統分解系統分解 人類解決復雜問題時普遍采用的策略人類解決復雜問題時普遍采用的策略是,是,“分而治之,各個擊破分而治之,各個擊破”。同樣,軟。

22、同樣,軟件工程師在設計比較復雜的應用系統時普件工程師在設計比較復雜的應用系統時普遍采用的策略,也是首先把系統分解成若遍采用的策略,也是首先把系統分解成若干個比較小的部分,然后再分別設計每個干個比較小的部分,然后再分別設計每個部分。這樣做有利于降低設計的難度,有部分。這樣做有利于降低設計的難度,有利于分工協作,也有利于維護人員對系統利于分工協作,也有利于維護人員對系統理解和維護。理解和維護。 系統的主要組成部分稱為子系統。通系統的主要組成部分稱為子系統。通常根據所提供的功能來劃分子系統。一般常根據所提供的功能來劃分子系統。一般說來,子系統的數目應該與系統規?;菊f來,子系統的數目應該與系統規模基

23、本匹配。匹配。26 各個子系統之間應該具有盡可能簡各個子系統之間應該具有盡可能簡單、明確的接口。接口確定了交互形式單、明確的接口。接口確定了交互形式和通過子系統邊界的信息流,但是無須和通過子系統邊界的信息流,但是無須規定子系統內部的實現算法。因此,可規定子系統內部的實現算法。因此,可以相對獨立地設計各個子系統。以相對獨立地設計各個子系統。 在劃分和設計子系統時,應該盡量在劃分和設計子系統時,應該盡量減少子系統彼此間的依賴性。減少子系統彼此間的依賴性。27 大多數系統的面向對象設計模型,大多數系統的面向對象設計模型,在邏輯上都由在邏輯上都由4大部分組成。大部分組成。系統分解系統分解28 這這4

24、4大部分對應于組成目標系統的大部分對應于組成目標系統的4 4個個子系統,它們分別是問題域子系統、人機交子系統,它們分別是問題域子系統、人機交互子系統、任務管理子系統和數據管理子系互子系統、任務管理子系統和數據管理子系統。統。 當然,在不同的軟件系統中,這四個當然,在不同的軟件系統中,這四個子系統的重要程度和規??赡芟嗖詈艽?,規子系統的重要程度和規模可能相差很大,規模過大的在設計過程中應該進一步劃分成更模過大的在設計過程中應該進一步劃分成更小的子系統,規模過小的可合并在其他子系小的子系統,規模過小的可合并在其他子系統中。某些領域的應用系統在邏輯上可能僅統中。某些領域的應用系統在邏輯上可能僅由由3

25、 3個個( (甚至少于甚至少于3 3個個) )子系統組成。子系統組成。29 使用面向對象方法開發軟件時,在使用面向對象方法開發軟件時,在分析與設計之間并沒有明確的分界線,對分析與設計之間并沒有明確的分界線,對于問題域子系統來說,情況更是如此。但于問題域子系統來說,情況更是如此。但是,分析與設計畢竟是性質不同的兩類開是,分析與設計畢竟是性質不同的兩類開發工作,分析工作可以而且應該與具體實發工作,分析工作可以而且應該與具體實現無關,設計工作則在很大程度上受具體現無關,設計工作則在很大程度上受具體實現環境的約束。在開始進行設計工作之實現環境的約束。在開始進行設計工作之前前( (至少在完成設計之前至少

26、在完成設計之前) ),設計者應該了,設計者應該了解本項目預計要使用的編程語言,可用的解本項目預計要使用的編程語言,可用的軟構件庫軟構件庫( (主要是類庫主要是類庫) )以及程序員的編程以及程序員的編程經驗。經驗。30設計問題域子系統設計問題域子系統 面向對象分析所得出的問題域精確模型,面向對象分析所得出的問題域精確模型,為設計問題域子系統奠定了良好的基礎,建立為設計問題域子系統奠定了良好的基礎,建立了完整的框架。了完整的框架。 面向對象設計僅需從實現角度對問題域模面向對象設計僅需從實現角度對問題域模型做一些補充或修改。型做一些補充或修改。31 通過面向對象分析所得出的問題域通過面向對象分析所得

27、出的問題域精確模型,為設計問題域子系統奠定了精確模型,為設計問題域子系統奠定了良好的基礎,建立了完整的框架。只要良好的基礎,建立了完整的框架。只要可能,就應該保持面向對象分析所建立可能,就應該保持面向對象分析所建立的問題域結構。通常,面向對象設計僅的問題域結構。通常,面向對象設計僅需從實現角度對問題域模型做一些補充需從實現角度對問題域模型做一些補充或修改,主要是增添、合并或分解類與或修改,主要是增添、合并或分解類與對象、屬性及服務,調整繼承關系等等。對象、屬性及服務,調整繼承關系等等。當問題域子系統過分復雜龐大時,應該當問題域子系統過分復雜龐大時,應該把它進一步分解成若干個更小的子系統。把它進

28、一步分解成若干個更小的子系統。32 在面向對象設計過程中,可能對面向對象分析在面向對象設計過程中,可能對面向對象分析所得出的問題域模型做的補充或修改有:所得出的問題域模型做的補充或修改有:1. 調整需求調整需求2. 重用已有的類重用已有的類3. 把問題域類組合在一起把問題域類組合在一起4. 增添一般化類以建立協議增添一般化類以建立協議5. 調整繼承層次調整繼承層次331. 1. 調整需求調整需求 有兩種情況會導致修改通過面向對象有兩種情況會導致修改通過面向對象分析所確定的系統需求:一是用戶需求分析所確定的系統需求:一是用戶需求或外部環境發生了變化;二是分析員對或外部環境發生了變化;二是分析員對

29、問題域理解不透徹或缺乏領域專家幫助,問題域理解不透徹或缺乏領域專家幫助,以致面向對象分析模型不能完整、準確以致面向對象分析模型不能完整、準確地反映用戶的真實需求。地反映用戶的真實需求。 無論出現上述哪種情況,通常都只需無論出現上述哪種情況,通常都只需簡單地修改面向對象分析結果,然后再簡單地修改面向對象分析結果,然后再把這些修改反映到問題域子系統中。把這些修改反映到問題域子系統中。342. 2. 重用已有的類重用已有的類 代碼重用從設計階段開始,在研究代碼重用從設計階段開始,在研究面向對象分析結果時就應該尋找使用已面向對象分析結果時就應該尋找使用已有類的方法。若因為沒有合適的類可以有類的方法。若

30、因為沒有合適的類可以重用而確實需要創建新的類,則在設計重用而確實需要創建新的類,則在設計這些新類的協議時,必須考慮到將來的這些新類的協議時,必須考慮到將來的可重用性??芍赜眯浴?53. 3. 把問題域類組合在一起把問題域類組合在一起 在面向對象設計過程中,設計者往往在面向對象設計過程中,設計者往往通過引入一個根類而把問題域類組合在通過引入一個根類而把問題域類組合在一起。事實上,這是在沒有更先進的組一起。事實上,這是在沒有更先進的組合機制可用時才采用的一種組合方法。合機制可用時才采用的一種組合方法。此外,這樣的根類還可以用來建立協議。此外,這樣的根類還可以用來建立協議。364. 4. 增添一般化

31、類以建立協議增添一般化類以建立協議 在設計過程中常常發現,一些具體在設計過程中常常發現,一些具體類需要有一個公共的協議,也就是說,類需要有一個公共的協議,也就是說,它們都需要定義一組類似的服務。在這它們都需要定義一組類似的服務。在這種情況下可以引入一個附加類種情況下可以引入一個附加類( (例如,根例如,根類類) ),以便建立這個協議,以便建立這個協議( (即命名公共服即命名公共服務集合,這些服務在具體類中仔細定義務集合,這些服務在具體類中仔細定義) )。375. 5. 調整繼承層次調整繼承層次 如果面向對象分析模型中包含了多重如果面向對象分析模型中包含了多重繼承關系,然而所使用的程序設計語言卻

32、繼承關系,然而所使用的程序設計語言卻并不提供多重繼承機制,則必須修改面向并不提供多重繼承機制,則必須修改面向對象分析的結果。即使使用支持多重繼承對象分析的結果。即使使用支持多重繼承的語言,有時也會出于實現考慮而對面向的語言,有時也會出于實現考慮而對面向對象分析結果作一些調整。對象分析結果作一些調整。38 從面向對象設計的角度補充設計人機交互從面向對象設計的角度補充設計人機交互子系統的策略:子系統的策略: 1. 分類用戶分類用戶 2. 描述用戶描述用戶 3. 設計命令層次設計命令層次 4. 設計人機交互類設計人機交互類設計人機交互子系統設計人機交互子系統39設計人機交互子系統設計人機交互子系統

33、在面向對象分析過程中,已經對用在面向對象分析過程中,已經對用戶界面需求做了初步分析,在面向對象戶界面需求做了初步分析,在面向對象設計過程中,則應該對系統的人機交互設計過程中,則應該對系統的人機交互子系統進行詳細設計,以確定人機交互子系統進行詳細設計,以確定人機交互的細節,其中包括指定窗口和報表的形的細節,其中包括指定窗口和報表的形式、設計命令層次等項內容。式、設計命令層次等項內容。40 人機交互部分的設計結果,將對用戶情緒人機交互部分的設計結果,將對用戶情緒和工作效率產生重要影響。人機界面設計得好,和工作效率產生重要影響。人機界面設計得好,則會使系統對用戶產生吸引力,用戶在使用系則會使系統對用

34、戶產生吸引力,用戶在使用系統的過程中會感到興奮,能夠激發用戶的創造統的過程中會感到興奮,能夠激發用戶的創造力,提高工作效率;相反,人機界面設計得不力,提高工作效率;相反,人機界面設計得不好,用戶在使用過程中就會感到不方便、不習好,用戶在使用過程中就會感到不方便、不習慣,甚至會產生厭煩和惱怒的情緒。慣,甚至會產生厭煩和惱怒的情緒。 由于對人機界面的評價,在很大程度上由由于對人機界面的評價,在很大程度上由人的主觀因素決定,因此,使用由原型支持的人的主觀因素決定,因此,使用由原型支持的系統化的設計策略,是成功地設計人機交互子系統化的設計策略,是成功地設計人機交互子系統的關鍵。系統的關鍵。設計人機交互

35、子系統設計人機交互子系統411. 1. 分類用戶分類用戶 人機交互界面是給用戶使用的,顯人機交互界面是給用戶使用的,顯然,為設計好人機交互子系統,設計者然,為設計好人機交互子系統,設計者應該認真研究使用它的用戶。應該深入應該認真研究使用它的用戶。應該深入到用戶的工作現場,仔細觀察用戶是怎到用戶的工作現場,仔細觀察用戶是怎樣做他們的工作的,這對設計好人機交樣做他們的工作的,這對設計好人機交互界面是非常必要的?;ソ缑媸欠浅1匾摹?2 為了更好地了解用戶的需要與愛好,為了更好地了解用戶的需要與愛好,以便設計出符合用戶需要的界面,設計以便設計出符合用戶需要的界面,設計者首先應該把將來可能與系統交互的

36、用者首先應該把將來可能與系統交互的用戶分類。通常從下列幾個不同角度進行戶分類。通常從下列幾個不同角度進行分類:分類: 按技能水平分類按技能水平分類( (新手、初級、中級、新手、初級、中級、高級高級) )。 按職務分類按職務分類( (總經理、經理、職員總經理、經理、職員) )。 按所屬集團分類按所屬集團分類( (職員、顧客職員、顧客) )。432. 2. 描述用戶描述用戶應該仔細了解將來使用系統的每類用戶的情況,應該仔細了解將來使用系統的每類用戶的情況,把獲得的下列各項信息記錄下來:把獲得的下列各項信息記錄下來:用戶類型。用戶類型。使用系統欲達到的目的。使用系統欲達到的目的。特征特征( (年齡、

37、性別、受教育程度、限制因素等年齡、性別、受教育程度、限制因素等) )。關鍵的成功因素關鍵的成功因素( (需求、愛好、習慣等需求、愛好、習慣等) )。技能水平。技能水平。完成本職工作的腳本。完成本職工作的腳本。443. 3. 設計命令層次設計命令層次設計命令層次的工作通常包含以下幾項內容。設計命令層次的工作通常包含以下幾項內容。(1) (1) 研究現有的人機交互含義和準則研究現有的人機交互含義和準則 現在,現在,WindowsWindows已經成了微機上圖形用戶已經成了微機上圖形用戶界面事實上的工業標準。所有界面事實上的工業標準。所有WindowsWindows應用程應用程序的基本外觀及給用戶的

38、感受都是相同的。序的基本外觀及給用戶的感受都是相同的。WindowsWindows程序通常還遵守廣大用戶習以為常的程序通常還遵守廣大用戶習以為常的許多約定。許多約定。 設計圖形用戶界面時,應該保持與普通設計圖形用戶界面時,應該保持與普通WindowsWindows應用程序界面相一致,并遵守廣大用應用程序界面相一致,并遵守廣大用戶習慣的約定,這樣才會被用戶接受和喜愛。戶習慣的約定,這樣才會被用戶接受和喜愛。45(2) (2) 確定初始的命令層次確定初始的命令層次 所謂命令層次,實質上是用過程抽所謂命令層次,實質上是用過程抽象機制組織起來的、可供選用的服務的象機制組織起來的、可供選用的服務的表示形

39、式。設計命令層次時,通常先從表示形式。設計命令層次時,通常先從對服務的過程抽象著手,然后再進一步對服務的過程抽象著手,然后再進一步修改它們,以適合具體應用環境的需要。修改它們,以適合具體應用環境的需要。(3) (3) 精化命令層次精化命令層次 為進一步修改完善初始的命令層次,為進一步修改完善初始的命令層次,應該考慮下列一些因素:應該考慮下列一些因素:46 次序:仔細選擇每個服務的名字,并在命令層的次序:仔細選擇每個服務的名字,并在命令層的每一部分內把服務排好次序。排序時或者把最常用的每一部分內把服務排好次序。排序時或者把最常用的服務放在最前面,或者按照用戶習慣的工作步驟排序。服務放在最前面,或

40、者按照用戶習慣的工作步驟排序。 整體整體- -部分關系:尋找在這些服務中存在的整體部分關系:尋找在這些服務中存在的整體- -部分模式,這樣做有助于在命令層中分組組織服務。部分模式,這樣做有助于在命令層中分組組織服務。 寬度和深度:由于人的短期記憶能力有限,命令寬度和深度:由于人的短期記憶能力有限,命令層次的寬度和深度都不應該過大。層次的寬度和深度都不應該過大。 操作步驟:應該用盡量少的單擊、拖動和擊鍵組操作步驟:應該用盡量少的單擊、拖動和擊鍵組合來表達命令,而且應該為高級用戶提供簡捷的操作合來表達命令,而且應該為高級用戶提供簡捷的操作方法。方法。474. 4. 設計人機交互類設計人機交互類 人

41、機交互類與所使用的操作系統及編人機交互類與所使用的操作系統及編程語言密切相關。例如,在程語言密切相關。例如,在WindowsWindows環境環境下運行的下運行的Visual C+Visual C+語言提供了語言提供了MFCMFC類庫,類庫,設計人機交互類時,往往僅需從設計人機交互類時,往往僅需從MFCMFC類庫類庫中選出一些適用的類,然后從這些類派中選出一些適用的類,然后從這些類派生出符合自己需要的類就可以了。生出符合自己需要的類就可以了。48設計任務管理子系統設計任務管理子系統 確定系統中哪些是必須同時動作的對象,確定系統中哪些是必須同時動作的對象,哪些是相互排斥的對象。然后進一步設計任務哪些是相互排斥的對象。然后進一步設計任務管理子系統。是設計工作的一項重要內容。管理子系統。是設計工作的一項重要內容。 1. 分析并發性分析并發性 2. 設計任務管理子系統設計任務管理子系統49設計任務管理子系統設計任務管理子系統 雖然從概念上說,不同對象可以并雖然從概念上說,不同對象可以并發地工作,但是,在實際系統中,許多發地工作,但是,在實際系統中,許多對象之間往往存在相互依賴關系。此外,對象之間往往存在相互依賴關系。此外,在實際使用的硬件中,可能僅由一個處在實際使用的硬件中,可能僅由一個處理器支持多個對象。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論