軟件工程與項目管理(第六課)2_第1頁
軟件工程與項目管理(第六課)2_第2頁
軟件工程與項目管理(第六課)2_第3頁
軟件工程與項目管理(第六課)2_第4頁
軟件工程與項目管理(第六課)2_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程與項目管理 軟件學院M.P.: 1軟件工程項目管理可行性與需求分析 系統設計程序設計測試維護軟件工程與項目管理的主要環節2第四章 系統設計3目錄軟件系統設計基本概念 體系結構設計用戶界面設計數據庫設計模塊設計數據結構與算法設計4軟件系統設計基本概念基本概念 設計師與程序員的地位。系統設計的技術難度要比編程、測試的高。所以程序員、測試員稱為“員”,而設計師尊稱為“師”。 5系統設計的好壞在根本上決定了軟件系統的優劣。我們可以斷言“差的系統設計必定產生差的軟件系統”,但是不能保證“好的系統設計必定產生好的軟件系統”。因為在設計之前有需求開發工作,在設計之后還有編程、測試和維護工作,無論哪個

2、環節出了差錯,都會把好事搞砸了。6系統設計的目標目標使所設計的系統能夠被開發方順利地實現,并且恰如其分地滿足用戶的需求,使開發方和用戶的利益極大化。開發人員不能偏離需求,為了追求技術的先進性而開展系統設計工作。 7任務 可行性分析的任務 需求分析的任務 系統設計的任務 通過給出新系統物理模型的方式,描述如何實現在系統分析中規定的系統功能。 做還是不做? 怎么做? 做什么,不做什么?系統設計的任務8系統設計兩步驟高層設計,將軟件需求轉化為數據結構和軟件的系統結構。 高層設計階段的重點是體系結構設計。9系統設計兩步驟詳細設計,即過程設計。通過對結構表示進行細化,得到軟件的詳細的數據結構和算法。 詳

3、細設計階段的重點是用戶界面設計、數據庫設計、模塊設計、數據結構與算法設計等。 10系統設計11系統與人體的比喻 體系結構用戶界面數據庫模塊數據結構與算法外表大腦器官骨架神經和肌肉系統人體12軟件系統與人體的比喻 體系結構 如果某個家伙的骨架是猴子,那么無論怎樣喂養和美容,這家伙始終都是猴子,不會成為人。人的身材大小取決于骨架大小,天生小個子的人基本上不可能成為威猛的大漢,后天再努力(例如鍛煉和吃喝)也白搭。 體系結構乃是系統設計的重中之重。 =骨架13系統與人體的比喻 體系結構用戶界面數據庫模塊數據結構與算法外表大腦器官骨架神經和肌肉系統人體14軟件系統與人體的比喻 用戶界面 最容易讓人一見鐘

4、情或一見惡心。象人類追求心靈美和外表美那樣,軟件系統也追求(內在的)功能強大和(外表的)界面友好。在設計軟件時不要沉迷于技術,而要多多思考什么樣的界面才能讓用戶更加喜歡。= 外表15系統與人體的比喻 體系結構用戶界面數據庫模塊數據結構與算法外表大腦器官骨架神經和肌肉系統人體16軟件系統與人體的比喻 數據庫 數據庫是存儲和處理數據用的。人體的數據庫是大腦,知識相當于數據,全存在大腦里。 如果腦子里存儲的知識很多,那么這個人就顯得博學。如果腦子處理知識的速度很高,那么這個人就顯得聰明。數據庫設計的主要挑戰是“高速處理大容量的數據”。 = 大腦17系統與人體的比喻 體系結構用戶界面數據庫模塊數據結構

5、與算法外表大腦器官骨架神經和肌肉系統人體18軟件系統與人體的比喻 模塊 每個器官都具有特定的功能,器官們依附在骨架上。模塊是軟件系統的部件,它們安插在體系結構上(否則運行起來掉光光了)。在設計模塊時要重視功能獨立性,還要追求“高內聚、低耦合” 。 = 器官19系統與人體的比喻 體系結構用戶界面數據庫模塊數據結構與算法外表大腦器官骨架神經和肌肉系統人體20軟件系統與人體的比喻 數據結構與算法 人的神經和肌肉分布在全身,讓器官具有生命并能發揮功能。人之所以能夠全身運動,那是無數的神經和肌肉在起作用。如果局部的神經和肌肉失效了,那么會導致對應的器官殘廢。如果全局的神經和肌肉失效了,那么人就癱瘓了。數

6、據結構與算法也有全局和局部之分,都要慎重設計。= 神經和肌肉21體系結構設計(1)體系結構設計原則漫畫家可以“幾筆”就把一個人畫出來,不管怎么美化或丑化,就是活像。為什么?因為那“幾筆”不是別的,而是拓撲學中的特征不變量,這是事物最本質的東西。體系結構是指軟件系統的基本和主體的形態,也就是軟件系統中“最本質”的東西。一個軟件系統的體系結構設計得好不好,可以用“合適性、結構穩定性、可擴展性、可復用性”這些特征量來評估。22體系結構設計(2)體系結構設計流程6個步驟23體系結構設計(3)層次結構層次結構是最常見的體系結構模式它體現了“分而治之”的思想:當我們沒法一口氣解決復雜的原始問題時,就把該問

7、題切割成許多個小的相對簡單的問題,然后逐個解決。24用戶界面設計什么是好的用戶界面用戶界面“好不好”主要看它是否“容易使用”和“美觀”。易用性是指用戶使用軟件的容易程度。美觀的界面能消除用戶由感覺引起的乏味、緊張和疲勞,大大提高用戶的工作效率,從而進一步為發揮用戶技能和為用戶完成任務作出貢獻。25數據庫設計數據庫是存儲和處理數據用的。數據庫設計的主要工作是:設計數據庫的表(數據就存在表里面),表的結構就是數據的存儲結構。對這些表中的數據進行操作,常見操作如查詢、插入、修改、刪除等。26模塊設計(1)模塊:泛指軟件系統的功能部件。在軟件的體系結構設計完成之際,我們就已經確定了所有模塊的功能,并且

8、把模塊們安放在體系結構的恰當位置上。27模塊設計(2)每個模塊都具有特定的、明確的功能(否則不能成為模塊)。人們在設計模塊時應當盡量使模塊的功能獨立,因為功能獨立的模塊可以降低開發、測試、維護的代價。但是功能獨立并不意味著模塊是絕對孤立的。所有的模塊應當能夠被集成為一個系統,所以模塊之間必定要交流信息、相互配合。 28模塊設計(3)比如手和腳是兩個“功能獨立”的模塊。沒有腳時,手照樣能干活。沒有手時,腳仍可以走路。但如果想讓人跑得快,那么邁左腳時一定要伸右臂甩左臂,邁右腳時則要伸左臂甩右臂。所以在設計模塊時不僅要考慮“這個模塊應當有什么樣的功能”,還要考慮“這個模塊應該怎樣與其它模塊交流信息”

9、。 29模塊設計(4)“模塊化”(Modularization) 將系統分解為一系列功能模塊,然后逐一實現這些模塊,最后把所有的模塊集成為原來的系統。這樣做的好處是能夠大大降低系統的開發難度。30模塊設計(5)問:是否將系統分解得非常細、得到的功能模塊越多越好呢?答:不是的。雖然這樣做可以使實現模塊的代價更低,但是把功能模塊集成為原來系統的代價卻增大了很多,得不償失,所以一個系統的模塊數量不能過多也不能過少。那么多少算是恰如其分呢?不知道,要靠設計師的判斷。 31模塊設計(6)設計原則信息隱藏:為盡量避免某個模塊的行為干擾同一系統中的其它模塊,在設計模塊時就要注意信息隱藏。應該讓模塊僅僅公開必

10、須要讓外界知道的東西,而隱藏其它一切內容。接口設計是模塊設計的核心工作之一,體現了信息隱藏這一原則。接口是模塊的外部特征,應當公開;而數據結構、算法、實現體等則是模塊的內部特征,應當隱藏。32模塊設計(7)高內聚內聚(Cohesion)是一個模塊內部各成分之間相關聯程度的度量。 7種內聚類型,繪制了模塊的“內聚譜系”,內聚程度從低到高大致劃分為低端、中段和高端。模塊設計者沒有必要確定內聚的精確級別,重要的是盡量爭取高內聚,避免低內聚。 33模塊設計(8)低耦合耦合(Coupling)是模塊之間依賴程度的度量。內聚和耦合是密切相關的,與其它模塊存在強耦合的模塊通常意味著弱內聚,而強內聚的模塊通常

11、意味著與其它模塊之間存在弱耦合。模塊設計應當爭取“高內聚、低耦合”,而避免“低內聚、高耦合”。34數據結構與算法設計設計流程數據結構與算法有全局和局部之分,先設計全局的,后設計局部的(通常在模塊設計時進行)。 根據問題的特征,先查找已經存在的數據結構與算法,挑選最合適的(并不一定是最先進的)。如果不存在現成的,那么自己設計。 設計并且編寫代碼之后要進行測試,如果不滿足性能要求,那么要進一步優化數據結構和算法。35數據結構與算法設計設計高效率的程序是基于良好的數據結構與算法,而不是基于編程小技巧。36系統設計 課后習題以下不屬于詳細設計階段的是( )A. 體系結構設計 B. 數據庫設計C. 模塊

12、設計 D.數據結構與算法設計詳細設計的基本任務是確定每個模塊的( )設計A功能 B調用關系C輸入輸出數據 D.數據結構和算法37詳細設計的結果基本決定了最終程序的()A代碼的規模B運行速度C質量 D可維護性內聚表示一個模塊()的程度A細化B模塊內部成分之間關聯C模塊之間依賴D僅關注在一件事情上38耦合表示一個模塊( )的程度。A細化 B模塊內部成分之間關聯C模塊之間依賴 D僅關注在一件事情上關于模塊化設計的錯誤敘述是( )。A.軟件的功能便于擴充 B.程序易于理解也便于糾錯 C.便于由多人分工編制大型軟件 D.程序設計方便,但難以維護39模塊( ),則說明模塊的獨立性越強。A耦合越強 B. 扇入數越高 C. 耦合越弱 D. 扇入數越低在模

溫馨提示

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

評論

0/150

提交評論