




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一 面向對象軟件工程概述 軟件工程是一門研究如何用系統化、規范化、產業化等工程原則和方法實施軟件的開發和維護的學科。 1968年秋季,NATO的科技委員會召集了近50名一流的編程人員、計算機科學家和工業界巨頭,討論和制定擺脫“軟件危機”的對策。在那次會議上第一次提出了軟件工程(Software Engineering)這個概念。到今年,軟件工程整整走過了33年的歷程。軟件研究人員不斷探索新的軟件開發方法,至今已形成八類軟件開發方法:(1) 最早的Parnas方法。這一方法不能獨立使用,只能作為其它方法的補充。 (2) 1978年,E.Yourdon和L.L.Constan-tine提出的結構化
2、方法,即SASD方法,也可稱為面向功能的軟件開發方法或面向數據流的軟件開發方法。(3) 面向數據結構的軟件開發方法。(4) 20世紀80年代末由日立公司提出的問題分析法PAM(Problem Analysis Method)。(5) 面向對象的軟件開發方法。(6) 可視化開發方法。(7) ICASE(Integrated Computer-Aided Software Engineering)。(8) 軟件重用和組件連接。軟件開發的面向對象方法于20世紀60年代后期提出,到20世紀90年代前半期,面向對象軟件工程成為開發人員的首選范型。面向對象方法是一種自底向上和自頂向下相結合的方法,它以對象
3、建模為基礎,不僅考慮了輸入、輸出數據結構,實際上也包含了所有對象的數據結構。OO技術在需求分析、可維護性和可靠性這三個軟件開發的關鍵環節和質量指標上有了實質性的突破。面向對象方法的特點有:(1) 自底向上的歸納(2) 自頂向下的分解(3) 基礎是對象模型(4) 需求分析徹底(5) 可維護性大大改善本文將介紹用面向對象方法設計瀏覽器X的過程。二 項目概述瀏覽器X是一個全功能的通用型網絡瀏覽器,其功能主要有:(1) 瀏覽。最基本的功能,保證瀏覽的正確性。(2) 緩存。緩存結構保持網站存儲結構的原貌。(3) 提供一個系統化的解決方案。提供網頁編輯、收發Email等功能。(4) 離線瀏覽。能定義下載的
4、層數,能定義下載的文件類型,能定義是否跨網站下載。(5) 網頁內容分析。通過對網頁內容的分析,得出用戶關心的網頁的主題,獲取相關的網頁。我們采用迭代型軟件開發模型來開發本軟件。本文描述的是第一輪迭代的原型過程。在這一輪迭代中,我們要實現的功能是瀏覽以及緩存(緩存結構要求保持網站存儲結構的原貌)。三 項目設計1 需求分析 在需求分析階段,我們的焦點是“做什么”,而不是“怎么做”。不是具體地解決問題,而是準確地確定“為了解決這個問題,目標系統必須做什么”。主要是確定目標系統必須具備哪些功能。用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整、準確地表達出他們的要求,更不知道怎樣利用計算機來
5、解決他們的問題;軟件開發人員知道怎樣使用軟件實現人們的要求,但是對特定用戶的具體要求并不完全清楚。因此在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確認的系統邏輯模型。并與軟件開發技術人員進行交流,以保證在目前現有的人員條件和技術條件下,用戶需求是可實現的,系統邏輯模型是合理可行的。面向對象分析的目標是開發一系列的模型,這些模型被用來描述滿足一組客戶需求的計算機軟件。我們首先是與用戶交流,獲取他們的各種需求。由于用戶以前使用過網絡,對IE等主流瀏覽器使用較多,因此提出的需求也比較細致。這些需求有的是功能需求,有的是性能需求。具體如下:(1) 在URL框中輸入網址,敲回車鍵后,在
6、顯示框中顯示網頁,并在Cache文件夾中按網站的組織結構保存網頁。(2) 用戶點擊顯示框中的超鏈接,則顯示目標頁面,在Cache文件夾中按網站的組織結構保存網頁,并在URL框中顯示當前網頁地址。(3) 用戶點擊刷新按鈕時,重新顯示當前頁面,并在Cache文件夾中按網站的組織結構保存網頁。(4) 當用戶點擊后退按鈕時,顯示上一個頁面,并在URL框中顯示當前網頁地址。(5) 當用戶點擊前進按鈕時,顯示下一個頁面,并在URL框中顯示當前網頁地址。(6) 打開本地文件,在顯示框中顯示網頁,并在URL框中顯示當前網頁地址。(7) 點擊Cache按鈕,則在顯示框左側打開一個樹型目錄框,顯示Cache的結構
7、,點擊其中的網頁文件名,則在顯示框中顯示網頁。(8) 按下脫機按鈕,則瀏覽時在Cache中獲取網頁,不上網獲取網頁。(9) 要求前進和后退可進行10步。(10) 網頁顯示時內容要快一些出來,不要讓用戶等待長時間而窗口無任何顯示。(11) 要求盡可能使用在本機上緩存的網頁,以提高瀏覽速度。通過對需求的分析,可以發現該系統的特點是:(1) 純軟件系統。這就不用考慮硬件環境,這是此軟件的簡單之處。(2) 沒有明顯的外部實體。這對分析找出對象產生了難度。因此,我們從和此系統打交道的外部實體入手。確定了四個實體:(1) 用戶。此系統的使用者。(2) Web服務器。在網絡遠端,向用戶提供服務。(3) 硬盤
8、。緩存文件以及向用戶提供本機瀏覽的服務。(4) 顯示器。向用戶顯示結果。為了和上述4個外部實體打交道,可由四個基本的對象處理:(1) 輸入控制:與用戶打交道。(2) 網頁獲取:與遠端Web服務器打交道。(3) 緩存管理:與硬盤打交道。(4) 網頁顯示:與顯示器打交道。然后,為了控制系統,協調工作,又確定了系統控制和消息傳遞兩個對象。對這六個對象建立“類責任協作者”模型。(見附錄二4.3)這些對象的關系如圖1所示: 圖1 對象關系圖根據用戶需求,得出事件的流程。(見附錄二圖3)通過進一步分析可知,輸入控制和網頁顯示功能是很單一的,消息傳遞和系統控制在實現時將會得到環境的支持而變得簡單。網頁獲取和
9、緩存管理會因情況的不同而作出不同反應,為了保證需求分析的準確性,對上述兩個對象的狀態轉換進行分析。(見附錄二圖4與圖5)在對象的劃分確定后,為了保證做出來的軟件使用戶操作起來方便,在獲得用戶意見的同時參考IE的界面,對瀏覽器X的界面進行了規定。(見附錄二第五部分)最后編寫數據字典,并對一些問題進行了說明。在需求分析階段,我們建立了一系列的模型。他們是系統結構圖、“類責任協作者”模型、“對象關系”模型、“對象行為”模型(系統事件軌跡圖、對象的狀態轉換圖)。這些模型描述了滿足客戶需求的計算機軟件,也為設計階段打下了基礎。2 設計面向對象設計將現實世界的OOA模型轉換為可以用軟件實現的OOD模型。設
10、計分為兩個階段:總體設計階段與詳細設計階段。在總體設計階段,決定如何解決需求問題,確定解決問題的策略以及目標系統需要的程序,并設計軟件的結構。在詳細設計階段,決定怎樣具體地實現系統,并設計出程序的詳細規格說明。 在總體設計階段,首先確定了環境,即操作系統以及編譯器。這樣,就可以以需求分析說明書為依據,針對環境進行有針對性的設計。根據需求分析,將系統劃分成5個子系統:(1) 用戶界面子系統(2) 控制子系統。進行系統控制及消息傳遞(3) 網頁顯示子系統(4) 網頁獲取子系統。從遠端Web服務器獲取文件,以及文件信息(5) 數據管理子系統。執行數據庫管理,以及緩存文件 各子系統間的關系見附錄三圖1
11、。然后,依據需求分析中建立的“類責任協作者”模型,在各子系統中確定出類。(1) 在用戶界面子系統,根據用戶界面各元素,劃分出8個類:主菜單類、菜單項類、工具欄類、按鈕類、URL標簽類、URL輸入框類、狀態欄類、Cache結構顯示類。這些類全部可以復用編譯器提供的控件。(2) 在控制子系統,消息傳遞交由操作系統完成,不需要特定的類,只需要一個控制類進行系統控制,這個類也可以復用控件。(3) 在數據管理子系統,需要兩個類,一個執行數據庫管理(有控件可以復用),一個緩存文件。(4) 在網頁顯示子系統,因為網頁顯示很復雜,新技術日新月異,所以目前采用IE提供的顯示功能進行顯示,只需要一個網頁顯示類,有
12、控件可以復用。但用IE顯示會產生一個問題,就是有時候IE會自動去遠端Web服務器獲取網頁,這對緩存造成了麻煩,也對進一步開發造成了困難。所以采用對IE設置本機代理的方法,讓顯示子系統獲取的網頁全部是由網頁獲取子系統獲取,由數據管理子系統緩存到Cache中的網頁。(5) 在網頁獲取子系統中,要實現代理與遠端Web服務器文件獲取功能,所以需要兩個類。一個是遠程文件獲取服務端類,用來接受來自網頁顯示子系統的請求。一個是遠程文件獲取客戶端類,用來到遠端Web服務器獲取文件及文件相關信息。這兩個類都有控件可以復用。 依據需求分析中建立的“對象關系”模型和“對象行為”模型,得出各類間的協作關系如圖2所示:
13、 圖2 類協作圖在詳細設計階段,我們發現:為了實現系統,需要建立幾個底層的用于轉換類間數據格式的類。它們是網頁獲取子系統中的HTTP請求消息類和HTTP響應消息類。這兩個類用來分析和處理HTTP消息包。在數據管理子系統中增加地址類。這個類用來進行URL和硬盤路徑間的相互轉換。這三個類在系統中的位置如圖3和圖4所示: 圖3 地址類位置圖 圖4 HTTP消息請求/響應類位置圖在確定出所有的類后,我們對幾個不能復用控件的類進行了詳細的規格說明。(見附錄四第三部分)在設計階段,我們確定出了系統的總體結構,以及要實現系統所需要的類,并對類進行了說明。這為編碼階段打下了基礎。3 編碼這個階段的關鍵任務是寫
14、出正確的容易理解、容易維護的程序模塊。并且仔細測試編寫出的每一個模塊。在本階段,我們以設計文檔為依據,充分利用操作系統和編譯器提供的便利進行編碼。大量的類復用了編譯器提供的控件,節省了編碼時間。而對于控制類和起基礎作用的幾個位于底層的類,嚴格按照詳細說明書的說明進行編碼。各單元編碼結束后,進行單元測試。因為人手有限,我們采用的方法是程序員互相交換代碼進行測試,要求做到代碼覆蓋。單元測試結束后,進行系統組裝,得到了一個完整的軟件瀏覽器X。4 測試這個階段的關鍵任務是通過各種類型的測試及相應的調試,使軟件達到預定的的要求。最基本的測試是集成測試和驗收測試。所謂集成測試是根據設計的軟件結構,把經過單
15、元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程序進行必要的測試。所謂驗收測試則是按照規格說明書的規定,由用戶對目標系統進行驗收。本軟件的測試是從分析階段就已經開始了的。在得出分析模型后,我們對分析模型進行了復審,以確保OOA模型覆蓋了用戶的所有需求。在得出設計模型后,對設計模型進行復審,確保OOD模型源于OOA模型,并滿足OOA模型的所有需求,然后還與技術人員進行了交流,以確保OOD模型的現實可實現性。單元編碼結束后,進行了單元級測試,做到代碼覆蓋。系統集成后,對瀏覽器X進行系統級測試。測試的重點是顯示功能和緩存到硬盤上的文件組織結構,為此我們選擇了一個已知其文件組織結構的網站作為
16、瀏覽對象。依據用戶提出的需求,編寫了測試說明書,然后按照測試說明書對瀏覽器X進行了測試。在軟件通過測試后,我們得到了瀏覽器X的可發行版本瀏覽器X 0.1版。這個版本將被發行并接受廣大用戶的測試。四 設計評估本軟件在分析階段,從信息域、功能域、行為域多角度分析了用戶需求,建立了系統結構圖、“類責任協作者”模型、“對象關系”模型、“對象行為”模型(系統事件軌跡圖、類的狀態轉換圖)等大量的模型,這使我們比較正確、全面的理解與表述了用戶需求。設計依據分析說明書,編碼依據設計說明書,每個階段均經過嚴格的復審,因此做出的軟件滿足用戶提出的需求。本軟件劃分的子系統功能明確。子系統中的類基本上只與同一子系統中
17、的其他類傳遞信息,子系統間的信息通過控制子系統傳遞。設計的各個類功能簡單,屬性數和方法數少。類的接口少,獨立性非常強,除控制類外,每個類均可被其他的系統復用。繼承類主要繼承編譯器提供的控件,而該編譯器提供的控件庫是經典控件庫,保證了本系統有著良好的繼承關系。本系統在設計時,以用戶需求為根本,同時考慮到了實現環境,因此設計較有針對性。設計出來的系統在編碼時可以大量復用已有控件,大大節省了編碼時間,而且降低了錯誤發生的幾率。軟件在設計時,考慮了以后的擴充,在整體結構和數據設計時都為以后的擴充做了準備。因此,此設計為軟件的進一步開發提供了一個比較好的基礎。五 小結面向對象技術是當今最流行的軟件開發技術。面向對象軟件工程在需求分析、可維護性和可靠性這三個軟件開發的關鍵環節和質量指標上有了實質性的突破。用面向對象方法可以更快的開發出高質量的程序,程序更易于維護,易于進行適應性修改及伸縮。在本文中,介紹了用面向對象軟件工程方法開發瀏覽器X的思路以及過程。介紹了面向對象的需求分析、設計、測試、編碼過程,并對設計進行了評估。在整個過程中,需求分析階段是關鍵的。在此階段不僅要確定用戶的需求,而且建立了大量的模型。“類責任協作者”模型、“對象關
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文件分類歸檔清單表
- 一次意外的相遇我與小狗的故事(4篇)
- 雪國夢幻般的情感描寫:初中語文閱讀理解教案
- 旅游地理學區域景點考察題庫
- 交通行業汽車保險投保情況表格
- 農民教育與職業技能提升的長效機制建設
- 鄉村健康教育與文化傳承的結合
- 食品安全與質量控制管理知識要點梳理
- 高校預算管理一體化實施的困境與對策研究
- 2025年音樂教育專業考試試卷及答案支持
- 湖南省長沙市2024年七年級下學期數學期末考試試題附答案
- 消化道穿孔患者的護理課件
- 作物栽培學智慧樹知到期末考試答案章節答案2024年中國農業大學
- 汽車修理廠應急預案汽修廠安全生產事故應急救援綜合預案2019-2020新標準完整版實施文件
- 建筑智能化系統工程掛靠協議
- 司法鑒定的奧秘智慧樹知到期末考試答案2024年
- 2024春期國開電大專本科《教育學》在線形考 (形考論壇4)試題及答案
- MOOC 高速鐵路運營與維護-西南交通大學 中國大學慕課答案
- 11-輪藻植物門課件
- (2024年)健康評估教學教案心電圖檢查教案
- 方法模型:展開圖、還原立體圖形
評論
0/150
提交評論