首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 繽紛校園 英語學(xué)習(xí) | ||
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院 | ||
四六級 | 商務(wù)英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福 | ||
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點(diǎn)英、法、德、日、韓語 | 在職申碩英語 | ||
在職攻碩英語 | 成人英語三級 | ||
等級考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證 | ||
公務(wù)員 | 報(bào)關(guān)員 | 報(bào)檢員 | 外銷員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國際商務(wù)師 | 跟單員 | ||
單證員 | 物流師 | 價(jià)格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師 | ||
期貨從業(yè)資格 | 社會工作者 | ||
會計(jì)職稱 | 注會CPA | 經(jīng)濟(jì)師 | 統(tǒng)計(jì)師 | 注冊稅務(wù)師 | 評估師 | 精算師 | 高會 | ACCA | 審計(jì)師 | ||
法律顧問 | 會計(jì)證 | ||
一級建造師 | 二級建造師 | 造價(jià)師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評價(jià)師 | ||
房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價(jià)員 | ||
投資項(xiàng)目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評價(jià) | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師 | ||
公路造價(jià)工程師 | 招標(biāo)師 | ||
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格 |
1.面向?qū)ο蠹夹g(shù)
思維方式?jīng)Q定解決問題的方式,傳統(tǒng)軟件開發(fā)采用自頂向下的思想指導(dǎo)程序設(shè)計(jì),即將目標(biāo)劃分為若干子目標(biāo),子目標(biāo)再進(jìn)一步劃分下去,直到目標(biāo)能被編程實(shí)現(xiàn)為止。面向?qū)ο蠹夹g(shù)給軟件設(shè)計(jì)領(lǐng)域帶來極大的變化,它利用軟件對象來進(jìn)行程序開發(fā),所謂對象是包含數(shù)據(jù)和對數(shù)據(jù)操作的代碼實(shí)體,或者說是在傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)中加入一些被稱為成員函數(shù)的過程,因而賦予對象以動(dòng)作。而在程序設(shè)計(jì)中,對象具有與現(xiàn)實(shí)世界的某種對應(yīng)關(guān)系,我們正是利用這種關(guān)系對問題進(jìn)行分解。
從程序語言角度來看,在一個(gè)對象中代碼和(或)數(shù)據(jù)可以是這個(gè)對象私有的,不能被對象外的部分直接訪問。因而對象提供了一種高級保護(hù)以防止程序被無關(guān)部分錯(cuò)誤修改或錯(cuò)誤地使用了對象的私有部分。當(dāng)從對象外部試圖直接對受保護(hù)的內(nèi)部數(shù)據(jù)進(jìn)行修改時(shí),將被程序拒絕,只有通過對象所提供的對外服務(wù)函數(shù)才能夠?qū)ζ鋬?nèi)部數(shù)據(jù)進(jìn)行必要的加工,從而保證了數(shù)據(jù)加工的合法性。從這一意義上講,把這種代碼和數(shù)據(jù)的聯(lián)系稱為"封裝"。換句話說,封裝是將對象封閉保護(hù)起來,是將內(nèi)部細(xì)節(jié)隱蔽起來的能力。
2.面向?qū)ο笤O(shè)計(jì)要點(diǎn)
下面是根據(jù)我個(gè)人的設(shè)計(jì)經(jīng)驗(yàn),總結(jié)的在面向?qū)ο笤O(shè)計(jì)時(shí)需要注意的問題。
。1)為實(shí)際工作設(shè)計(jì):軟件是一種工具,一種實(shí)現(xiàn)目標(biāo)的方法,所以我們的軟件設(shè)計(jì)一定要建立在軟件需求基礎(chǔ)上,根據(jù)需求確定軟件的工作范圍,再根據(jù)確定的工作范圍來進(jìn)行軟件設(shè)計(jì),另外,我們不要迷失在各種技術(shù)的誘惑之中,不能為了嘗試某些新技術(shù)而試圖解決實(shí)際不存在的問題,這樣會使軟件設(shè)計(jì)處于一片混亂之中。
。2)理解要實(shí)現(xiàn)的東西:我們應(yīng)該在建立模型上花大量的時(shí)間,偶爾寫一些源代碼來驗(yàn)證設(shè)計(jì)過程中所遇到的問題,這樣做可以使我們的設(shè)計(jì)方案更加可行。如果我們不了解我們的軟件設(shè)計(jì)要實(shí)現(xiàn)什么目標(biāo),這個(gè)設(shè)計(jì)注定是失敗的。
。3)需求的重要性:留出時(shí)間努力去充分收集相關(guān)信息和分析軟件用戶的需求。讓用戶參與到這個(gè)過程中,但不要盲目接受用戶或客戶提出的功能需求。保證在開發(fā)過程中引入一種有效的方法去收集、組織、驗(yàn)證支撐工作的信息,要學(xué)習(xí)問題領(lǐng)域的描述語言和掌握相關(guān)工作的流程。如果沒有需求,就不要?jiǎng)邮肿鋈魏问虑椋晒Φ能浖Q于時(shí)間、預(yù)算和是否滿足用戶的需求,如果不能確切地知道用戶需要的是什么,那么所做的軟件必定是失敗的。
(4)在現(xiàn)有任務(wù)中應(yīng)用多個(gè)模型:當(dāng)收集需求的時(shí)候,應(yīng)該考慮使用用例模型、用戶界面模型和領(lǐng)域級的類模型。當(dāng)設(shè)計(jì)軟件時(shí),應(yīng)該考慮制作類模型、順序圖、狀態(tài)圖、協(xié)作圖和最終的軟件實(shí)際物理模型。僅僅使用一個(gè)模型而實(shí)現(xiàn)的軟件要么不能滿足用戶的需求,要么很難擴(kuò)展。
。5)用例的重要性:在一個(gè)軟件系統(tǒng)中,用例可大可小,但它必須是對一個(gè)具體的用戶目標(biāo)實(shí)現(xiàn)的完整描述。通過用例圖把系統(tǒng)和外界的交互描述出來,以便來鑒別和劃分系統(tǒng)功能。
。6)文檔的重要性:擁有準(zhǔn)確的技術(shù)文檔不僅對于整個(gè)開發(fā)小組非常有益,而且也能讓客戶從中受益。由于軟件開發(fā)在某種程度上要依賴技術(shù)文檔來進(jìn)行說明,因此文檔必須十分準(zhǔn)確可靠。在編寫文檔時(shí),要明確該文檔的目的和對象,同時(shí),要保證文檔之間的前后一致性。
(7)證明軟件的設(shè)計(jì)在實(shí)踐中是可行的:在設(shè)計(jì)的時(shí)候應(yīng)先建立一個(gè)技術(shù)模型,或者稱為"點(diǎn)到點(diǎn)"的原型,用此來證明我們的設(shè)計(jì)是可行的。如果軟件的設(shè)計(jì)方案是不可行的,在編碼時(shí)采用任何策略都是毫無用處的。
。8)應(yīng)用已知的模式:一般來說,應(yīng)該避免重新設(shè)計(jì)已經(jīng)成熟的并被廣泛使用的設(shè)計(jì)方法或者設(shè)計(jì)模式。
。9)類的內(nèi)聚性:一個(gè)類應(yīng)該有且僅有一個(gè)職責(zé)。所謂一個(gè)類的職責(zé)是指引起該類變化的原因,如果一個(gè)類具有一個(gè)以上的職責(zé),那么就會有多個(gè)不同的原因引起該類變化,其實(shí)就是耦合了多個(gè)互不相關(guān)的職責(zé),降低這個(gè)類的內(nèi)聚性。
。10)充分考慮軟件的可移植性:當(dāng)使用了某個(gè)操作系統(tǒng)的特性,或者利用某個(gè)數(shù)據(jù)庫專用語言寫了存儲過程,這個(gè)軟件和特定產(chǎn)品的結(jié)合度就已經(jīng)很高了。所以,為了增強(qiáng)軟件的可移植性,應(yīng)該把這些特有的實(shí)現(xiàn)細(xì)節(jié)封裝在一個(gè)類中,這樣,當(dāng)它們改變的時(shí)候,只需要更改那個(gè)類的代碼就可以了。
。11)建立對象數(shù)據(jù)辭典:為了便于內(nèi)部重用和共享,應(yīng)該建立電子化的對象數(shù)據(jù)辭典,以便對對象進(jìn)行統(tǒng)一歸類管理。