清華面向?qū)ο蟪绦蛟O(shè)計(jì):第05章_第1頁
清華面向?qū)ο蟪绦蛟O(shè)計(jì):第05章_第2頁
清華面向?qū)ο蟪绦蛟O(shè)計(jì):第05章_第3頁
清華面向?qū)ο蟪绦蛟O(shè)計(jì):第05章_第4頁
清華面向?qū)ο蟪绦蛟O(shè)計(jì):第05章_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第5章 面向?qū)ο蟮能浖_發(fā)過程面向?qū)ο蟮能浖_發(fā)過程 5.1 5.1 軟件開發(fā)過程軟件開發(fā)過程 軟件開發(fā)過程軟件開發(fā)過程 指開發(fā)軟件產(chǎn)品的一整套活動,其中主指開發(fā)軟件產(chǎn)品的一整套活動,其中主 要包括軟件描述、軟件開發(fā)、軟件有效要包括軟件描述、軟件開發(fā)、軟件有效 性驗(yàn)證和軟件演化。不同的軟件開發(fā)商,性驗(yàn)證和軟件演化。不同的軟件開發(fā)商, 針對不同的開發(fā)項(xiàng)目可能會采用不同的針對不同的開發(fā)項(xiàng)目可能會采用不同的 方式組織上述方式組織上述4 4項(xiàng)活動的實(shí)施。項(xiàng)活動的實(shí)施。 軟件開發(fā)模型軟件開發(fā)模型 軟件開發(fā)模型是對軟件開發(fā)的全過程、活軟件開發(fā)模型是對軟件開發(fā)的全過程、活 動和任務(wù)的抽象描述。選擇合適的軟件

2、開動和任務(wù)的抽象描述。選擇合適的軟件開 發(fā)模型將有利于提高軟件開發(fā)的效率、軟發(fā)模型將有利于提高軟件開發(fā)的效率、軟 件產(chǎn)品的質(zhì)量,以及日后的軟件維護(hù)能力。件產(chǎn)品的質(zhì)量,以及日后的軟件維護(hù)能力。 5.1.1 5.1.1 軟件開發(fā)面臨的主要問題軟件開發(fā)面臨的主要問題 軟件開發(fā)主要面臨以下幾個迫切需要解決的問題:軟件開發(fā)主要面臨以下幾個迫切需要解決的問題: 1 1軟件可靠性軟件可靠性 軟件可靠性是指軟件系統(tǒng)能否在既定環(huán)境下運(yùn)行軟件可靠性是指軟件系統(tǒng)能否在既定環(huán)境下運(yùn)行 并達(dá)到預(yù)期的結(jié)果。并達(dá)到預(yù)期的結(jié)果。盡管通過對軟件進(jìn)行調(diào)試和盡管通過對軟件進(jìn)行調(diào)試和 測試可以排除大約測試可以排除大約40%40%的錯

3、誤,任何人也不能保證的錯誤,任何人也不能保證 任何一個軟件產(chǎn)品沒有錯誤。任何一個軟件產(chǎn)品沒有錯誤。 2 2軟件生產(chǎn)率軟件生產(chǎn)率 計(jì)算機(jī)硬件的迅猛發(fā)展,帶動了人們對軟件需求計(jì)算機(jī)硬件的迅猛發(fā)展,帶動了人們對軟件需求 的急劇增長。與計(jì)算機(jī)硬件的發(fā)展速度相比,軟的急劇增長。與計(jì)算機(jī)硬件的發(fā)展速度相比,軟 件的生產(chǎn)效率極其低下。件的生產(chǎn)效率極其低下。 3 3軟件重用性軟件重用性 不同的應(yīng)用領(lǐng)域要開發(fā)不同的應(yīng)用軟件,既使相不同的應(yīng)用領(lǐng)域要開發(fā)不同的應(yīng)用軟件,既使相 同的應(yīng)用目的也會由于需求上的微小差別,導(dǎo)致重同的應(yīng)用目的也會由于需求上的微小差別,導(dǎo)致重 新開發(fā)整個應(yīng)用軟件。新開發(fā)整個應(yīng)用軟件。 4 4軟

4、件維護(hù)性軟件維護(hù)性 多么優(yōu)秀的軟件開發(fā)隊(duì)伍也無法保證軟件產(chǎn)品在多么優(yōu)秀的軟件開發(fā)隊(duì)伍也無法保證軟件產(chǎn)品在 使用過程中不會出現(xiàn)任何錯誤,因此,日后的維護(hù)使用過程中不會出現(xiàn)任何錯誤,因此,日后的維護(hù) 工作將顯得格外重要,而修改和完善軟件產(chǎn)品在使工作將顯得格外重要,而修改和完善軟件產(chǎn)品在使 用過程中顯現(xiàn)出來的錯誤和不足之處是軟件維護(hù)階用過程中顯現(xiàn)出來的錯誤和不足之處是軟件維護(hù)階 段的主要任務(wù)。段的主要任務(wù)。 5.1.2 5.1.2 軟件的生命周期軟件的生命周期 軟件工程將按照工程化的方法組織和管理軟件的軟件工程將按照工程化的方法組織和管理軟件的 開發(fā)過程,具體地說,它將軟件開發(fā)過程劃分成若開發(fā)過程,

5、具體地說,它將軟件開發(fā)過程劃分成若 干個階段,每個階段按照制定的規(guī)范標(biāo)準(zhǔn)完成相應(yīng)干個階段,每個階段按照制定的規(guī)范標(biāo)準(zhǔn)完成相應(yīng) 的任務(wù)。軟件的生命周期是指從某個軟件的需求被的任務(wù)。軟件的生命周期是指從某個軟件的需求被 提出并開始著手開發(fā)到這個軟件被最終廢棄的整個提出并開始著手開發(fā)到這個軟件被最終廢棄的整個 過程。通常在這個過程中,應(yīng)該包括制定計(jì)劃、需過程。通常在這個過程中,應(yīng)該包括制定計(jì)劃、需 求分析,系統(tǒng)設(shè)計(jì)、程序編碼、系統(tǒng)測試、系統(tǒng)運(yùn)求分析,系統(tǒng)設(shè)計(jì)、程序編碼、系統(tǒng)測試、系統(tǒng)運(yùn) 行及維護(hù)階段。行及維護(hù)階段。 1 1制定計(jì)劃制定計(jì)劃 在正式開始開發(fā)軟件項(xiàng)目之前,充分在正式開始開發(fā)軟件項(xiàng)目之前,

6、充分 地研究、分析待開發(fā)項(xiàng)目的最終目標(biāo),地研究、分析待開發(fā)項(xiàng)目的最終目標(biāo), 整理出其功能、性能、可靠性及接口整理出其功能、性能、可靠性及接口 等方面的需求,計(jì)算出所需人力、物等方面的需求,計(jì)算出所需人力、物 力的資源開銷,推測日后可能獲取的力的資源開銷,推測日后可能獲取的 經(jīng)濟(jì)效益,提供支持該項(xiàng)目的技術(shù)能經(jīng)濟(jì)效益,提供支持該項(xiàng)目的技術(shù)能 力以及給出開發(fā)該項(xiàng)目的工作計(jì)劃。力以及給出開發(fā)該項(xiàng)目的工作計(jì)劃。 2 2需求分析需求分析 這個階段的任務(wù)需要系統(tǒng)分析員與用戶這個階段的任務(wù)需要系統(tǒng)分析員與用戶 共同完成。這是正式進(jìn)入軟件開發(fā)的標(biāo)共同完成。這是正式進(jìn)入軟件開發(fā)的標(biāo) 志性階段。其主要任務(wù)是對待開發(fā)

7、軟件志性階段。其主要任務(wù)是對待開發(fā)軟件 項(xiàng)目的需求進(jìn)行仔細(xì)地分析,并給出準(zhǔn)項(xiàng)目的需求進(jìn)行仔細(xì)地分析,并給出準(zhǔn) 確、詳細(xì)的定義。在此基礎(chǔ)上,劃清系確、詳細(xì)的定義。在此基礎(chǔ)上,劃清系 統(tǒng)邊界,明確哪些需求由軟件系統(tǒng)完成,統(tǒng)邊界,明確哪些需求由軟件系統(tǒng)完成, 哪些需求不屬于軟件系統(tǒng)的功能范疇等。哪些需求不屬于軟件系統(tǒng)的功能范疇等。 3 3系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)是整個軟件項(xiàng)目開發(fā)的核心階段,軟件系統(tǒng)設(shè)計(jì)是整個軟件項(xiàng)目開發(fā)的核心階段,軟件 設(shè)計(jì)人員需要根據(jù)軟件需求規(guī)格說明書,設(shè)計(jì)出系設(shè)計(jì)人員需要根據(jù)軟件需求規(guī)格說明書,設(shè)計(jì)出系 統(tǒng)的總體結(jié)構(gòu),劃分好模塊,并確定各模塊之間的統(tǒng)的總體結(jié)構(gòu),劃分好模塊,并

8、確定各模塊之間的 相互關(guān)系以及每個模塊所應(yīng)該完成的任務(wù)。相互關(guān)系以及每個模塊所應(yīng)該完成的任務(wù)。 4 4程序編碼程序編碼 利用某一種程序設(shè)計(jì)語言將系統(tǒng)設(shè)計(jì)階段描述的利用某一種程序設(shè)計(jì)語言將系統(tǒng)設(shè)計(jì)階段描述的 所有內(nèi)容用計(jì)算機(jī)可以接受的程序形式表達(dá)出來,所有內(nèi)容用計(jì)算機(jī)可以接受的程序形式表達(dá)出來, 并將其組裝起來加以調(diào)試是這個階段的主要任務(wù)。并將其組裝起來加以調(diào)試是這個階段的主要任務(wù)。 5 5系統(tǒng)測試系統(tǒng)測試 找出程序中存在的錯誤,利用設(shè)計(jì)的測試用例從找出程序中存在的錯誤,利用設(shè)計(jì)的測試用例從 不同角度檢測軟件的各個組成部分。測試主要包括不同角度檢測軟件的各個組成部分。測試主要包括 單元測試、集成

9、測試、確認(rèn)測試和系統(tǒng)測試,使用單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試,使用 的測試方式主要有白盒測試和黑盒測試。的測試方式主要有白盒測試和黑盒測試。 6 6系統(tǒng)運(yùn)行及維護(hù)系統(tǒng)運(yùn)行及維護(hù) 系統(tǒng)系統(tǒng)運(yùn)行期間可能會出現(xiàn)各種意想不到的異?,F(xiàn)運(yùn)行期間可能會出現(xiàn)各種意想不到的異常現(xiàn) 象,需要軟件維護(hù)人員及時找出問題所在,并給予象,需要軟件維護(hù)人員及時找出問題所在,并給予 修正。除此之外,由于軟件運(yùn)行環(huán)境的改變,可能修正。除此之外,由于軟件運(yùn)行環(huán)境的改變,可能 需要對原有軟件系統(tǒng)進(jìn)行適當(dāng)?shù)卣{(diào)整。需要對原有軟件系統(tǒng)進(jìn)行適當(dāng)?shù)卣{(diào)整。 5.1.3 5.1.3 軟件開發(fā)模型軟件開發(fā)模型 軟件開發(fā)模型是指軟件開發(fā)全過

10、程、活動和任務(wù)軟件開發(fā)模型是指軟件開發(fā)全過程、活動和任務(wù) 的結(jié)構(gòu)框架,它能夠清楚、直觀地表達(dá)軟件開發(fā)的的結(jié)構(gòu)框架,它能夠清楚、直觀地表達(dá)軟件開發(fā)的 全過程,明確各階段所需要完成的具體任務(wù),并對全過程,明確各階段所需要完成的具體任務(wù),并對 開發(fā)過程起到指導(dǎo)和規(guī)范化的作用。開發(fā)過程起到指導(dǎo)和規(guī)范化的作用。 瀑布模型瀑布模型 瀑布模型將軟件開發(fā)過程劃分為瀑布模型將軟件開發(fā)過程劃分為7 7個階段,前一個階段的成果個階段,前一個階段的成果 將作為后一個階段的輸入。整個開發(fā)過程形如瀑布流水。將作為后一個階段的輸入。整個開發(fā)過程形如瀑布流水。 系 統(tǒng) 需 求 軟 件 需 求 系 統(tǒng) 分 析 系 統(tǒng) 設(shè) 計(jì)

11、編 寫 代 碼 系 統(tǒng) 測 試 運(yùn) 行 維 護(hù) 演化模型演化模型 不要求用戶在開發(fā)系統(tǒng)之前,必須將全部的需求不要求用戶在開發(fā)系統(tǒng)之前,必須將全部的需求 提交出來,而是只提出系統(tǒng)的核心需求,開發(fā)者最提交出來,而是只提出系統(tǒng)的核心需求,開發(fā)者最 初只實(shí)現(xiàn)核心需求,并交給用戶試用,以便得到及初只實(shí)現(xiàn)核心需求,并交給用戶試用,以便得到及 時、有效的反饋意見,細(xì)化、增強(qiáng)系統(tǒng)功能的補(bǔ)充時、有效的反饋意見,細(xì)化、增強(qiáng)系統(tǒng)功能的補(bǔ)充 需求說明,軟件開發(fā)人員再根據(jù)用戶的反饋,對先需求說明,軟件開發(fā)人員再根據(jù)用戶的反饋,對先 前的系統(tǒng)進(jìn)行二次開發(fā),即迭代一次。與初次開發(fā)前的系統(tǒng)進(jìn)行二次開發(fā),即迭代一次。與初次開發(fā)

12、 一樣,同樣需要經(jīng)過需求分析、系統(tǒng)設(shè)計(jì)、編寫代一樣,同樣需要經(jīng)過需求分析、系統(tǒng)設(shè)計(jì)、編寫代 碼、系統(tǒng)測試等一系列過程。如果用戶試用之后還碼、系統(tǒng)測試等一系列過程。如果用戶試用之后還 不滿意,就繼續(xù)進(jìn)行第三次開發(fā),每一次重新開發(fā)不滿意,就繼續(xù)進(jìn)行第三次開發(fā),每一次重新開發(fā) 的結(jié)果都會更加逼近用戶的最終需求。的結(jié)果都會更加逼近用戶的最終需求。 噴泉模型噴泉模型 噴泉模型將軟件開發(fā)過程的各個階段描述為相互重疊和多噴泉模型將軟件開發(fā)過程的各個階段描述為相互重疊和多 次反復(fù)的過程,就好像泉水由泉眼噴出后又回落的場景,這次反復(fù)的過程,就好像泉水由泉眼噴出后又回落的場景,這 種開發(fā)模型主要用于支持面向?qū)ο蟮?/p>

13、開發(fā)過程。種開發(fā)模型主要用于支持面向?qū)ο蟮拈_發(fā)過程。 演化 系統(tǒng)維護(hù) 系統(tǒng)測試 編寫代碼 系統(tǒng)設(shè)計(jì) 系統(tǒng)分析 螺旋模型螺旋模型 螺旋模型是在瀑布模型和演化模型的基礎(chǔ)上,加螺旋模型是在瀑布模型和演化模型的基礎(chǔ)上,加 入風(fēng)險分析所形成的一種軟件開發(fā)模型。螺旋模型入風(fēng)險分析所形成的一種軟件開發(fā)模型。螺旋模型 將軟件開發(fā)過程刻畫為多次螺旋上升的過程,每向?qū)④浖_發(fā)過程刻畫為多次螺旋上升的過程,每向 前走一步都要為下一步做出風(fēng)險預(yù)測,一旦發(fā)現(xiàn)風(fēng)前走一步都要為下一步做出風(fēng)險預(yù)測,一旦發(fā)現(xiàn)風(fēng) 險過大,開發(fā)者和用戶無法承受,就應(yīng)該盡早終止險過大,開發(fā)者和用戶無法承受,就應(yīng)該盡早終止 開發(fā),以便將損失降到最低程

14、度。開發(fā),以便將損失降到最低程度。 原型開發(fā)模型原型開發(fā)模型 原型開發(fā)模型將軟件開發(fā)分為需求分析、構(gòu)造原型、運(yùn)行原原型開發(fā)模型將軟件開發(fā)分為需求分析、構(gòu)造原型、運(yùn)行原 型、評價原型和修改原型幾個階段,并不斷重復(fù)這個過程,型、評價原型和修改原型幾個階段,并不斷重復(fù)這個過程, 直到用戶滿意為止。直到用戶滿意為止。 評價 構(gòu)造 原型 運(yùn)行 分析/修改 基于構(gòu)件的軟件開發(fā)模型基于構(gòu)件的軟件開發(fā)模型 該模型融合了螺旋模型的許多特征,強(qiáng)調(diào)軟件開發(fā)該模型融合了螺旋模型的許多特征,強(qiáng)調(diào)軟件開發(fā) 過程的迭代性并利用預(yù)先包裝好的軟件構(gòu)件來構(gòu)造過程的迭代性并利用預(yù)先包裝好的軟件構(gòu)件來構(gòu)造 應(yīng)用系統(tǒng)。應(yīng)用系統(tǒng)。 標(biāo)識

15、候選構(gòu)件 在庫中查找構(gòu)件 提取/建造構(gòu)件 將構(gòu)件加入到庫中 構(gòu)造應(yīng)用系統(tǒng) 5.2 5.2 面向?qū)ο蟮能浖_發(fā)過程面向?qū)ο蟮能浖_發(fā)過程 5.2.1 5.2.1 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù) 對象對象: :面向?qū)ο蠹夹g(shù)的核心是對象,對象可面向?qū)ο蠹夹g(shù)的核心是對象,對象可 以被用來描述現(xiàn)實(shí)世界中的任何客體,現(xiàn)以被用來描述現(xiàn)實(shí)世界中的任何客體,現(xiàn) 實(shí)世界中的任何客體都可以通過建模轉(zhuǎn)換實(shí)世界中的任何客體都可以通過建模轉(zhuǎn)換 成對象。在軟件系統(tǒng)中,對象由一組屬性成對象。在軟件系統(tǒng)中,對象由一組屬性 和行為組成,屬性是對客體屬性狀態(tài)的靜和行為組成,屬性是對客體屬性狀態(tài)的靜 態(tài)描述,行為是對屬性狀態(tài)的有效操作,態(tài)

16、描述,行為是對屬性狀態(tài)的有效操作, 其中主要包括獲取狀態(tài)值,修改狀態(tài)值等。其中主要包括獲取狀態(tài)值,修改狀態(tài)值等。 類類:類與對象是兩個完全不同的概念,類與對象是兩個完全不同的概念, 但又存在著密不可分的關(guān)系。類是對但又存在著密不可分的關(guān)系。類是對 一組屬性和行為相同的對象的描述;一組屬性和行為相同的對象的描述; 對象是類的實(shí)例,在程序運(yùn)行后被創(chuàng)對象是類的實(shí)例,在程序運(yùn)行后被創(chuàng) 建,對象之間通過發(fā)送消息相互操作。建,對象之間通過發(fā)送消息相互操作。 我們將利用這種機(jī)制開發(fā)的軟件系統(tǒng)我們將利用這種機(jī)制開發(fā)的軟件系統(tǒng) 稱為面向?qū)ο筌浖到y(tǒng)。稱為面向?qū)ο筌浖到y(tǒng)。 面向?qū)ο筌浖到y(tǒng)應(yīng)該具備的特征面向?qū)ο?/p>

17、軟件系統(tǒng)應(yīng)該具備的特征 1.1.通過抽象機(jī)制,將問題域中各個成員表達(dá)成對象。通過抽象機(jī)制,將問題域中各個成員表達(dá)成對象。 2.2.通過類實(shí)現(xiàn)封裝。將抽象出來的對象屬性和行為通過類實(shí)現(xiàn)封裝。將抽象出來的對象屬性和行為 綁定在一起就形成了類。綁定在一起就形成了類。 3.3.對象之間通過傳遞消息相互驅(qū)動。系統(tǒng)中各個對對象之間通過傳遞消息相互驅(qū)動。系統(tǒng)中各個對 象不是象不是 孤立存在的,而是需要相互作用,共同孤立存在的,而是需要相互作用,共同 完成既定的任務(wù)。完成既定的任務(wù)。 4.4.對象生命周期。是指對象存在的時間段。對象生命周期。是指對象存在的時間段。 5.5.類層次結(jié)構(gòu)。類層次結(jié)構(gòu)可以刻畫不同類

18、之間的類層次結(jié)構(gòu)。類層次結(jié)構(gòu)可以刻畫不同類之間的 關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系。 6.6.多態(tài)性。多態(tài)性是面向?qū)ο笙到y(tǒng)最終表現(xiàn)出來的多態(tài)性。多態(tài)性是面向?qū)ο笙到y(tǒng)最終表現(xiàn)出來的 基本特征?;咎卣?。 5.2.2 5.2.2 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?面向?qū)ο蠓治觯嫦驅(qū)ο蠓治觯╫bject-oriented analysisobject-oriented analysis,縮,縮 寫寫OOAOOA)是軟件開發(fā)的初始階段,參與這個階段工)是軟件開發(fā)的初始階段,參與這個階段工 作的人員既有客戶,又有開發(fā)技術(shù)人員,他們的中作的人員既有客戶,又有開發(fā)技術(shù)人員,他們的中 心任務(wù)是實(shí)現(xiàn)需求分析和系統(tǒng)分析,即分析問題域

19、心任務(wù)是實(shí)現(xiàn)需求分析和系統(tǒng)分析,即分析問題域 的特征,確定問題的解決方案,并為目標(biāo)系統(tǒng)尋找的特征,確定問題的解決方案,并為目標(biāo)系統(tǒng)尋找 對象,明確對象的屬性和行為以及對象之間的各種對象,明確對象的屬性和行為以及對象之間的各種 關(guān)系,以便為最終的軟件系統(tǒng)建立一個分析模型,關(guān)系,以便為最終的軟件系統(tǒng)建立一個分析模型, 該模型將從不同的側(cè)面描述系統(tǒng)的基本特征。該模型將從不同的側(cè)面描述系統(tǒng)的基本特征。 OOAOOA應(yīng)該經(jīng)歷的主要過程應(yīng)該經(jīng)歷的主要過程 分析問題域,明確用戶需求分析問題域,明確用戶需求 在系統(tǒng)開發(fā)人員接收開發(fā)任務(wù)的最初階段,對項(xiàng)在系統(tǒng)開發(fā)人員接收開發(fā)任務(wù)的最初階段,對項(xiàng) 目的具體需求并不

20、完全明確,用戶給予的需求說明目的具體需求并不完全明確,用戶給予的需求說明 也往往含糊不清,這就需要開發(fā)人員與未來的用戶也往往含糊不清,這就需要開發(fā)人員與未來的用戶 共同合作,幫助開發(fā)人員盡快地理解業(yè)務(wù)領(lǐng)域的相共同合作,幫助開發(fā)人員盡快地理解業(yè)務(wù)領(lǐng)域的相 關(guān)知識,取得對問題域的一致認(rèn)識,明確用戶對未關(guān)知識,取得對問題域的一致認(rèn)識,明確用戶對未 來系統(tǒng)的需求,定義系統(tǒng)的職責(zé)范圍和邊界,探討來系統(tǒng)的需求,定義系統(tǒng)的職責(zé)范圍和邊界,探討 問題的初步解決方案。問題的初步解決方案。 標(biāo)識用況(標(biāo)識用況(Use CaseUse Case) 用況定義了在業(yè)務(wù)活動中的業(yè)務(wù)規(guī)則和任務(wù),反用況定義了在業(yè)務(wù)活動中的業(yè)

21、務(wù)規(guī)則和任務(wù),反 映了系統(tǒng)應(yīng)該如何支持這些業(yè)務(wù)活動的基本過程,映了系統(tǒng)應(yīng)該如何支持這些業(yè)務(wù)活動的基本過程, 它是構(gòu)造分析模型的起點(diǎn),是確定功能需求及未來它是構(gòu)造分析模型的起點(diǎn),是確定功能需求及未來 系統(tǒng)解決方案的重要依據(jù)。分析用況的主要目的是系統(tǒng)解決方案的重要依據(jù)。分析用況的主要目的是 通過描述外部活動者與系統(tǒng)的交互,定義未來系統(tǒng)通過描述外部活動者與系統(tǒng)的交互,定義未來系統(tǒng) 的功能需求。的功能需求。 在在UMLUML中,提供了一種被稱為中,提供了一種被稱為use-caseuse-case圖的表示圖的表示 法,專門用來描述活動者、用況以及它們之間的關(guān)法,專門用來描述活動者、用況以及它們之間的關(guān)

22、系,由此可以體現(xiàn)整個系統(tǒng)提供的基本功能。系,由此可以體現(xiàn)整個系統(tǒng)提供的基本功能。 UMLUML用例圖用例圖 interacts configures hom eow ner ( 房 主 ) 家 庭 安 全 系 統(tǒng) 在這個在這個use-caseuse-case圖中,標(biāo)識了兩個用況,表明該圖中,標(biāo)識了兩個用況,表明該 系統(tǒng)主要有兩個基本功能,一個是系統(tǒng)主要有兩個基本功能,一個是interactsinteracts(交(交 互),另一個是互),另一個是configuresconfigures(配置)。(配置)。 識別對象并將其抽象成類識別對象并將其抽象成類 哪些能夠成為最終系統(tǒng)的對象,需要參考下面哪

23、些能夠成為最終系統(tǒng)的對象,需要參考下面6 6 項(xiàng)特征:項(xiàng)特征: (1 1)這個對象的信息需要被記憶,否則系統(tǒng)無法正)這個對象的信息需要被記憶,否則系統(tǒng)無法正 常地工作;常地工作; (2 2)這個對象應(yīng)該具有一組確定的操作,通過它們)這個對象應(yīng)該具有一組確定的操作,通過它們 實(shí)現(xiàn)對對象屬性的修改;實(shí)現(xiàn)對對象屬性的修改; (3 3)這個對象應(yīng)該具有多于一個屬性;)這個對象應(yīng)該具有多于一個屬性; (4 4)能夠定義一組適用于所有實(shí)例的公共屬性;)能夠定義一組適用于所有實(shí)例的公共屬性; (5 5)能夠定義一組適用于所有實(shí)例的公共操作;)能夠定義一組適用于所有實(shí)例的公共操作; (6 6)屬于基本需求內(nèi)容

24、。)屬于基本需求內(nèi)容。 標(biāo)識對象的屬性和行為標(biāo)識對象的屬性和行為 目標(biāo)系統(tǒng)中選定的每個類都要有一定的職責(zé)。每目標(biāo)系統(tǒng)中選定的每個類都要有一定的職責(zé)。每 個類的職責(zé)將通過屬性和行為體現(xiàn),其中屬性標(biāo)識個類的職責(zé)將通過屬性和行為體現(xiàn),其中屬性標(biāo)識 了類的靜態(tài)特征,即類需要記錄的信息;行為標(biāo)識了類的靜態(tài)特征,即類需要記錄的信息;行為標(biāo)識 了類應(yīng)該具有的操作能力。明確每個類職責(zé)的過程了類應(yīng)該具有的操作能力。明確每個類職責(zé)的過程 就是尋找類的屬性和方法的過程,屬性可以從問題就是尋找類的屬性和方法的過程,屬性可以從問題 的陳述中抽取,或通過對類性質(zhì)的理解加以辨認(rèn);的陳述中抽取,或通過對類性質(zhì)的理解加以辨認(rèn);

25、 行為可以從對系統(tǒng)的處理敘述中獲得,即可以將動行為可以從對系統(tǒng)的處理敘述中獲得,即可以將動 詞標(biāo)識的動作作為候選行為。詞標(biāo)識的動作作為候選行為。 確定類職責(zé)應(yīng)該遵循下列確定類職責(zé)應(yīng)該遵循下列5 5條原則條原則: : (1 1)系統(tǒng)包含的所有職責(zé)應(yīng)該均勻地分擔(dān)到每個類)系統(tǒng)包含的所有職責(zé)應(yīng)該均勻地分擔(dān)到每個類 中,避免出現(xiàn)某些類的職責(zé)過大,而另一些類的中,避免出現(xiàn)某些類的職責(zé)過大,而另一些類的 職責(zé)過小的現(xiàn)象。職責(zé)過小的現(xiàn)象。 (2 2)每個職責(zé)應(yīng)該盡可能地被概括描述,即一般性)每個職責(zé)應(yīng)該盡可能地被概括描述,即一般性 的職責(zé)應(yīng)該被放置在較高層次的類中。的職責(zé)應(yīng)該被放置在較高層次的類中。 (3

26、3)屬性記錄的信息與相關(guān)的行為應(yīng)該位于同一個)屬性記錄的信息與相關(guān)的行為應(yīng)該位于同一個 類中,它體現(xiàn)了面向?qū)ο蟮姆庋b性。類中,它體現(xiàn)了面向?qū)ο蟮姆庋b性。 (4 4)反映一個事物的信息應(yīng)該被放置在一個類中,)反映一個事物的信息應(yīng)該被放置在一個類中, 而不要分散到多個類中。而不要分散到多個類中。 (5 5)在相關(guān)類之間共享職責(zé)。)在相關(guān)類之間共享職責(zé)。 定義類之間的關(guān)系定義類之間的關(guān)系 每個類主要以兩種方式完成它的職責(zé):每個類主要以兩種方式完成它的職責(zé): 一是應(yīng)用類自身的行為操作自己的屬性;一是應(yīng)用類自身的行為操作自己的屬性; 二是與其他類協(xié)作共同完成某項(xiàng)職責(zé)。二是與其他類協(xié)作共同完成某項(xiàng)職責(zé)。

27、通常協(xié)作是指客戶向服務(wù)器發(fā)出了某項(xiàng)通常協(xié)作是指客戶向服務(wù)器發(fā)出了某項(xiàng) 請求,以便完成客戶的某項(xiàng)職責(zé)。如果請求,以便完成客戶的某項(xiàng)職責(zé)。如果 為了完成某項(xiàng)職責(zé),一個對象需要向另為了完成某項(xiàng)職責(zé),一個對象需要向另 外一個對象發(fā)送消息,則我們說在這兩外一個對象發(fā)送消息,則我們說在這兩 個對象之間就產(chǎn)生了協(xié)作。個對象之間就產(chǎn)生了協(xié)作。 用戶界面需求用戶界面需求 用戶界面是系統(tǒng)的重要組成部分,在對系統(tǒng)進(jìn)行用戶界面是系統(tǒng)的重要組成部分,在對系統(tǒng)進(jìn)行 功能需求分析的同時,不要遺忘人機(jī)交互部分的探功能需求分析的同時,不要遺忘人機(jī)交互部分的探 察。對使用系統(tǒng)的人員進(jìn)行分析,可以有的放矢地察。對使用系統(tǒng)的人員進(jìn)行

28、分析,可以有的放矢地 設(shè)計(jì)出適合這些人員特點(diǎn)的交互方式和界面表現(xiàn)形設(shè)計(jì)出適合這些人員特點(diǎn)的交互方式和界面表現(xiàn)形 式;對人和機(jī)器交互過程進(jìn)行分析,可以明確操作式;對人和機(jī)器交互過程進(jìn)行分析,可以明確操作 人員如何向系統(tǒng)發(fā)出命令,以及系統(tǒng)如何提交操作人員如何向系統(tǒng)發(fā)出命令,以及系統(tǒng)如何提交操作 結(jié)果和反饋信息。結(jié)果和反饋信息。 5.2.3 5.2.3 面向?qū)ο笤O(shè)計(jì)面向?qū)ο笤O(shè)計(jì) 面向?qū)ο笤O(shè)計(jì)(面向?qū)ο笤O(shè)計(jì)(OODOOD)的主要任務(wù)是確定系統(tǒng)的)的主要任務(wù)是確定系統(tǒng)的 體系結(jié)構(gòu)和完成對象的設(shè)計(jì)。體系結(jié)構(gòu)和完成對象的設(shè)計(jì)。包含下列主要步驟:包含下列主要步驟: (1 1)系統(tǒng)分解與分層)系統(tǒng)分解與分層 (

29、2 2)確定任務(wù)管理策略和控制驅(qū)動機(jī)制)確定任務(wù)管理策略和控制驅(qū)動機(jī)制 (3 3)設(shè)計(jì)人機(jī)交互界面)設(shè)計(jì)人機(jī)交互界面 (4 4)確定實(shí)現(xiàn)數(shù)據(jù)管理的策略)確定實(shí)現(xiàn)數(shù)據(jù)管理的策略 (5 5)對象設(shè)計(jì))對象設(shè)計(jì) (6 6)評審設(shè)計(jì)模型,在必要的時候可以對此過程給)評審設(shè)計(jì)模型,在必要的時候可以對此過程給 予迭代予迭代 系統(tǒng)分解與分層系統(tǒng)分解與分層 系統(tǒng)分解是在系統(tǒng)設(shè)計(jì)階段使用的重要手段,系統(tǒng)分解是在系統(tǒng)設(shè)計(jì)階段使用的重要手段, 通常使用將分析模型劃分為子系統(tǒng)的方法對通常使用將分析模型劃分為子系統(tǒng)的方法對 系統(tǒng)進(jìn)行分解。子系統(tǒng)是對系統(tǒng)進(jìn)行分解。子系統(tǒng)是對OOAOOA模型中類的邏模型中類的邏 輯分組,每

30、個分組構(gòu)成一個子系統(tǒng),它是描輯分組,每個分組構(gòu)成一個子系統(tǒng),它是描 述實(shí)現(xiàn)用戶需求的組件,每個子系統(tǒng)可看成述實(shí)現(xiàn)用戶需求的組件,每個子系統(tǒng)可看成 一個高層次的模塊。一個高層次的模塊。 確定任務(wù)管理策略和控制驅(qū)動機(jī)制確定任務(wù)管理策略和控制驅(qū)動機(jī)制 在在OODOOD中由任務(wù)管理部分負(fù)責(zé)設(shè)計(jì)中由任務(wù)管理部分負(fù)責(zé)設(shè)計(jì) 管理并發(fā)行為的策略和控制驅(qū)動機(jī)管理并發(fā)行為的策略和控制驅(qū)動機(jī) 制。任務(wù)管理設(shè)計(jì)首先需要根據(jù)對制。任務(wù)管理設(shè)計(jì)首先需要根據(jù)對 象的動態(tài)模型分析、定義系統(tǒng)的并象的動態(tài)模型分析、定義系統(tǒng)的并 發(fā)性,并通過識別和建立控制流程發(fā)性,并通過識別和建立控制流程 (包括進(jìn)程或線程)來設(shè)計(jì)面向?qū)ΓòㄟM(jìn)程

31、或線程)來設(shè)計(jì)面向?qū)?象系統(tǒng)的任務(wù),選擇軟件實(shí)現(xiàn)的控象系統(tǒng)的任務(wù),選擇軟件實(shí)現(xiàn)的控 制方法。制方法。 設(shè)計(jì)人機(jī)交互界面設(shè)計(jì)人機(jī)交互界面 人機(jī)交互界面是軟件系統(tǒng)與用戶直接接觸的部人機(jī)交互界面是軟件系統(tǒng)與用戶直接接觸的部 分,它給予用戶的影響和感受最為明顯,所以人機(jī)分,它給予用戶的影響和感受最為明顯,所以人機(jī) 交互界面的質(zhì)量對于軟件系統(tǒng)能否成功具有至關(guān)重交互界面的質(zhì)量對于軟件系統(tǒng)能否成功具有至關(guān)重 要的作用。界面的設(shè)計(jì)應(yīng)該遵循下列基本過程和策要的作用。界面的設(shè)計(jì)應(yīng)該遵循下列基本過程和策 略:略: (1 1)選擇界面支持系統(tǒng))選擇界面支持系統(tǒng) (2 2)選擇界面元素)選擇界面元素 (3 3)用)用OOOO概念表示界面元素概念表示界面元素 確定實(shí)現(xiàn)數(shù)據(jù)管理的策略確定實(shí)現(xiàn)數(shù)據(jù)管理的策略 數(shù)據(jù)管理部分提供了數(shù)據(jù)在數(shù)據(jù)管理系統(tǒng)中存儲數(shù)據(jù)管理部分提供了數(shù)據(jù)在數(shù)據(jù)管理系統(tǒng)中存儲 和檢索對象的基本結(jié)構(gòu),它是建立在某種數(shù)據(jù)存儲和檢索對象的基本結(jié)構(gòu),它是建立在某種數(shù)據(jù)存儲 管理系統(tǒng)之上的系統(tǒng)存儲或檢索對象的基本設(shè)施。管理系統(tǒng)之上的系統(tǒng)存儲或檢索對象的基本設(shè)施。 它的作用是將目標(biāo)系統(tǒng)中依賴開發(fā)平臺的數(shù)據(jù)存取它的作用是將目標(biāo)系統(tǒng)中依賴開發(fā)平臺的數(shù)據(jù)存取 部分與其他功能分離開,使數(shù)據(jù)存取可以通過一般部分與其他功能分離開,使數(shù)據(jù)存取可以通過一般 的數(shù)據(jù)管理系統(tǒng)(不管是文件系統(tǒng)、關(guān)

溫馨提示

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

評論

0/150

提交評論