《软体设计整》PPT课件.ppt
《《软体设计整》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软体设计整》PPT课件.ppt(50页珍藏版)》请在三一办公上搜索。
1、1,第10章 軟體設計,2,本章大綱,10.1何謂軟體設計?,10.2軟體架構,10.3軟體設計的基本法則,10.4系統設計的方法,10.5設計時應注意事項,10.6 結語,3,學習目標,瞭解何謂軟體設計,瞭解何謂軟體架構,瞭解軟體設計的法則,瞭解軟體設計的法則,4,軟體設計是軟體工程技術的核心。設計是管理系統複雜度的活動;將複雜的事物,用一套清楚的架構加以統御,使之不致於失控。良好的設計可將系統化繁為簡,減少系統開發的成本,提高系統的可靠度。且具有簡單、容易維護、易於擴充及變更等屬性。不當的設計隨著時間的演化,系統會變得複雜而瑣碎,不只維護成本增加,系統的穩定性也隨之降低。且會導致不穩定的系
2、統、不易測試及不易維護等問題。,何謂軟體設計?(1/4),軟體設計的意義,5,何謂軟體設計?(2/4),軟體工程是顧客或用戶提出需求,而工程師設法找出問題的解答。過程分為五個步驟:定義及描述問題(需求定義)。分析問題(需求分析)。尋找適當之解答(系統分析)。發展最佳的解決方案(系統設計)。實施解決方案(撰寫程式)。,軟體設計所處的階段,6,何謂軟體設計?(3/4),架構與風格:軟體有各種不同的架構類型,如資料流、貯藏庫、事件驅動、物件導向等,如何選擇牽涉到工程師的認知與信念,見仁見智,屬於價值觀或哲學的範疇。高階系統設計:包含發散與收斂兩個交互運用的過程,產出系統的概念架構。此時注重的是工程設
3、計原則的運用與設計方法的實踐。在發散階段,思考所有可能的解決方案;而在收斂階段,比較方案的好壞、成本與限制,找出可優先選擇的方案。低階細部設計:即演算法的展開。,軟體設計的層次,7,何謂軟體設計?(4/4),資料模型:資料設計是要建立資訊系統背後的資料模型,以存放從應用領域裡所產生的資料。系統結構:結構設計主要任務是決定系統需要哪些構成元件,並定義出它們的角色與彼此間的連結關係。用戶介面:介面設計主要的任務,是安排系統的操作畫面與人機互動的方式。軟體元件:元件設計將系統結構中的元件,轉換成以程式語言描述的執行步驟。,軟體系統的概念性描述:,8,圖10.2 SWEBOK與軟體設計有關的議題,9,
4、軟體架構(1/9),軟體架構:系統的基本組織,具體地表現在元件、元件對彼此與對環境間的關係,以及設計與演化的原則。軟體架構包含:一組用來執行系統功能的軟體元件。一組用來提供元件間溝通、協調與合作的連結器。一組描述元件間如何組成系統的限制。能夠讓設計者瞭解整個系統特性的語意模型。,10,軟體架構(2/9),結構:由多個元件所組織成的架構,元件被安排或組織起來的方式。框架:增加設計抽象化的層級,從相似的軟體中找出可重複使用的設計樣版,以提高設計的抽象層次。動態:著重在行為層面的程式架構,描述架構的動態行為。流程:著重在系統必須與企業的流程相互配合,描述系統的商業或技術流程。功能:表現系統功能面的階
5、層關係,系統的功能階層組織。,軟體架構的描述的模型:,11,軟體架構(3/9),資料流(又稱為連接管與過濾器):系統是由過濾器(元件)與連接管(連結器)所構成,在一個定義好的資料流上運作,過濾器負責資料的轉換並獨立運作;連接管則以串接的方式負責在過濾器間傳遞資料。,常見的軟體架構型態,12,圖10.3 連接管與過濾器示意圖,13,軟體架構(4/9),呼叫與回覆:呼叫與回覆架構的特色是控制流程隨著呼叫而轉移,中間包含資料(或參數)的傳遞,而被呼叫者執行完成後,控制權重新回到呼叫者。交互作用程序(又稱為間接呼叫):透過事件與作業系統,間接地連結呼叫者與被呼叫者;而兩個交互作用的程序或物件雙方,不必
6、知道對方的存在。本架構最大的好處,是元件再用與系統演化。缺點則是,宣告者元件無法知道誰會受到事件的影響、運算的順序、何時結束及資料交換問題。,14,軟體架構(5/9),系統架構會依功能或服務的不同,設計成多層系統,由外向內包覆(或由內向外擴充),每一層負責特定的功能,提供服務給它的上一層,同時扮演下一層的顧客。其優點是:符合軟體工程的原則、易於擴充與演化及非常適合設計再用。缺點則為:不是所有系統都可以用階層的方式設計、為了效能的考量,必須將邏輯上的高階函數與低階實作綁在一起,以及不容易找出適當的抽象階層。階層式系統的另一種類型是虛擬機架構。,階層式(又成多層式系統):,15,軟體架構(6/9)
7、,架構特點是有一個共同分享的資料中心,與一組相互獨立的元件。包含兩種模式:儲藏庫:負責保存系統的狀態與資料,被動地等待元件對它的存取和運算。具永久儲存資料的特性。看板:發號施令的中心,各個元件會解讀看板的指示訊息,然後進行相關運算。通常應用在人工智慧系統。,資料導向倉庫(又稱資料中心架構),16,圖10.5 儲存庫架構示意圖,17,軟體架構(7/9),每一種架構皆有其適用性,在開發系統前,設計者必須先瞭解系統的特性,才能依照需要挑選適當的架構進行系統開發。挑選的考量:共享相依:元件之間共用相同的資源。流程相依:類似生產者與消費者之間的相依性。限制性相依:代表一系列的活動中彼此之間的限制關係。,
8、架構的選擇,18,軟體架構(8/9),架構設計範例:“Key Word In Context”以資料流、主副程式、物件導向及間接呼叫等四種不同風格設計的架構圖為例,如圖10.6(a)、10.6(b)、10.6(c)及10.6(d)所示。,19,圖10.6(a)資料流架構示意圖,20,圖10.6(b)主副程式架構示意圖,21,圖10.6(c)物件導向架構示意圖,22,圖10.6(d)間接呼叫架構示意圖,23,軟體架構(9/9),資料流架構的複雜度最低,而其它三者大同小異。以演算法的彈性來說,間接呼叫最佳,資料流其次,其餘二者較差。對於資料結構的彈性,物件導向最好、間接呼叫其次,其餘二者較差。至於
9、系統效能,主副程式與物件導向最佳,其餘二者較差。對於功能的擴充性,主副程式與間接呼叫最佳,資料流其次,而物件導向較差。元件再用則是間接呼叫與資料流較好、物件導向其次,而主副程式最差。,綜合而言:,24,軟體設計的基本法則(1/9),分解與征服是一項傳統的解題智慧,將不易處理的問題,經過分解之後,簡化成更簡單的問題,然後再各個破解。抽象化將一個實體或活動模型化,只表達其中重要的事物與屬性,排除或隱藏與目的無關的細節,簡化事情的複雜度。讓人專注在一般性概念的層次上,而無須費心於不相關的細節,以便問題的全貌得以呈現,避免見樹不見林的缺點。,軟體設計的基本法則,25,軟體設計的基本法則(2/9),模組
10、化將系統模組化,意味著將系統分解成由簡單、相對獨立的組件所構成的集合。良好的模組化好處:降低系統複雜度、易於組裝、維護與再利用、減少溝通負荷、便於團隊合作、具有彈性,以及容易瞭解。模組化誤用的弊端,將不該分割的部位,強加分割,反而會升高而非降低系統的複雜度,不只無法獲取好處反而製造了問題。模組化的目的:將複雜的系統簡單化。,26,軟體設計的基本法則(3/9),檢驗模組化的好壞,其標準是模組的功能獨立性;決定模組功能獨立性的兩項指標為:內聚力:衡量模組執行唯一單項功能的程度,愈高愈能適應未來的變動與演化。耦合度:衡量模組之間相依的程度,耦合力愈低,表示模組變動的自由度愈高。,27,軟體設計的基本
11、法則(4/9),內聚力由低到高分為:巧合:模組內的零件只是碰巧在一起。邏輯相關:相似功能的元件聚集在一起。時間附著:同時啟動的元件聚集在一起。程序附著:程序相接的元件聚集在一起。溝通附著:模組內的零件接受相同的輸入,並產生相同的輸出。順序附著:模組內一部分零件的輸出,是另一部分的輸入。功能附著:模組內的每一部分零件,都是為了執行某個特定的功能所必要的。物件附著:每一項功能或運算,都是為了物件本身屬性的修改或查詢(但是繼承會弱化內聚力)。,28,軟體設計的基本法則(5/9),耦合度由低到高分為:資料:模組間的資料分享透過參數進行。戳記:模組間共享一個複合的資料結構,彼此不知道對方會使用其中的哪一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软体设计整 软体 设计 PPT 课件

链接地址:https://www.31ppt.com/p-4860911.html