版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件工程與項目管理 軟件學(xué)院M.P.: 1軟件工程項目管理可行性與需求分析 系統(tǒng)設(shè)計程序設(shè)計測試維護(hù)軟件工程與項目管理的主要環(huán)節(jié)2第四章 系統(tǒng)設(shè)計3目錄軟件系統(tǒng)設(shè)計基本概念 體系結(jié)構(gòu)設(shè)計用戶界面設(shè)計數(shù)據(jù)庫設(shè)計模塊設(shè)計數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計4軟件系統(tǒng)設(shè)計基本概念基本概念 設(shè)計師與程序員的地位。系統(tǒng)設(shè)計的技術(shù)難度要比編程、測試的高。所以程序員、測試員稱為“員”,而設(shè)計師尊稱為“師”。 5系統(tǒng)設(shè)計的好壞在根本上決定了軟件系統(tǒng)的優(yōu)劣。我們可以斷言“差的系統(tǒng)設(shè)計必定產(chǎn)生差的軟件系統(tǒng)”,但是不能保證“好的系統(tǒng)設(shè)計必定產(chǎn)生好的軟件系統(tǒng)”。因為在設(shè)計之前有需求開發(fā)工作,在設(shè)計之后還有編程、測試和維護(hù)工作,無論哪個
2、環(huán)節(jié)出了差錯,都會把好事搞砸了。6系統(tǒng)設(shè)計的目標(biāo)目標(biāo)使所設(shè)計的系統(tǒng)能夠被開發(fā)方順利地實現(xiàn),并且恰如其分地滿足用戶的需求,使開發(fā)方和用戶的利益極大化。開發(fā)人員不能偏離需求,為了追求技術(shù)的先進(jìn)性而開展系統(tǒng)設(shè)計工作。 7任務(wù) 可行性分析的任務(wù) 需求分析的任務(wù) 系統(tǒng)設(shè)計的任務(wù) 通過給出新系統(tǒng)物理模型的方式,描述如何實現(xiàn)在系統(tǒng)分析中規(guī)定的系統(tǒng)功能。 做還是不做? 怎么做? 做什么,不做什么?系統(tǒng)設(shè)計的任務(wù)8系統(tǒng)設(shè)計兩步驟高層設(shè)計,將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。 高層設(shè)計階段的重點是體系結(jié)構(gòu)設(shè)計。9系統(tǒng)設(shè)計兩步驟詳細(xì)設(shè)計,即過程設(shè)計。通過對結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。 詳
3、細(xì)設(shè)計階段的重點是用戶界面設(shè)計、數(shù)據(jù)庫設(shè)計、模塊設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計等。 10系統(tǒng)設(shè)計11系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體12軟件系統(tǒng)與人體的比喻 體系結(jié)構(gòu) 如果某個家伙的骨架是猴子,那么無論怎樣喂養(yǎng)和美容,這家伙始終都是猴子,不會成為人。人的身材大小取決于骨架大小,天生小個子的人基本上不可能成為威猛的大漢,后天再努力(例如鍛煉和吃喝)也白搭。 體系結(jié)構(gòu)乃是系統(tǒng)設(shè)計的重中之重。 =骨架13系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體14軟件系統(tǒng)與人體的比喻 用戶界面 最容易讓人一見鐘
4、情或一見惡心。象人類追求心靈美和外表美那樣,軟件系統(tǒng)也追求(內(nèi)在的)功能強(qiáng)大和(外表的)界面友好。在設(shè)計軟件時不要沉迷于技術(shù),而要多多思考什么樣的界面才能讓用戶更加喜歡。= 外表15系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體16軟件系統(tǒng)與人體的比喻 數(shù)據(jù)庫 數(shù)據(jù)庫是存儲和處理數(shù)據(jù)用的。人體的數(shù)據(jù)庫是大腦,知識相當(dāng)于數(shù)據(jù),全存在大腦里。 如果腦子里存儲的知識很多,那么這個人就顯得博學(xué)。如果腦子處理知識的速度很高,那么這個人就顯得聰明。數(shù)據(jù)庫設(shè)計的主要挑戰(zhàn)是“高速處理大容量的數(shù)據(jù)”。 = 大腦17系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫模塊數(shù)據(jù)結(jié)構(gòu)
5、與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體18軟件系統(tǒng)與人體的比喻 模塊 每個器官都具有特定的功能,器官們依附在骨架上。模塊是軟件系統(tǒng)的部件,它們安插在體系結(jié)構(gòu)上(否則運(yùn)行起來掉光光了)。在設(shè)計模塊時要重視功能獨立性,還要追求“高內(nèi)聚、低耦合” 。 = 器官19系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體20軟件系統(tǒng)與人體的比喻 數(shù)據(jù)結(jié)構(gòu)與算法 人的神經(jīng)和肌肉分布在全身,讓器官具有生命并能發(fā)揮功能。人之所以能夠全身運(yùn)動,那是無數(shù)的神經(jīng)和肌肉在起作用。如果局部的神經(jīng)和肌肉失效了,那么會導(dǎo)致對應(yīng)的器官殘廢。如果全局的神經(jīng)和肌肉失效了,那么人就癱瘓了。數(shù)
6、據(jù)結(jié)構(gòu)與算法也有全局和局部之分,都要慎重設(shè)計。= 神經(jīng)和肌肉21體系結(jié)構(gòu)設(shè)計(1)體系結(jié)構(gòu)設(shè)計原則漫畫家可以“幾筆”就把一個人畫出來,不管怎么美化或丑化,就是活像。為什么?因為那“幾筆”不是別的,而是拓?fù)鋵W(xué)中的特征不變量,這是事物最本質(zhì)的東西。體系結(jié)構(gòu)是指軟件系統(tǒng)的基本和主體的形態(tài),也就是軟件系統(tǒng)中“最本質(zhì)”的東西。一個軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計得好不好,可以用“合適性、結(jié)構(gòu)穩(wěn)定性、可擴(kuò)展性、可復(fù)用性”這些特征量來評估。22體系結(jié)構(gòu)設(shè)計(2)體系結(jié)構(gòu)設(shè)計流程6個步驟23體系結(jié)構(gòu)設(shè)計(3)層次結(jié)構(gòu)層次結(jié)構(gòu)是最常見的體系結(jié)構(gòu)模式它體現(xiàn)了“分而治之”的思想:當(dāng)我們沒法一口氣解決復(fù)雜的原始問題時,就把該問
7、題切割成許多個小的相對簡單的問題,然后逐個解決。24用戶界面設(shè)計什么是好的用戶界面用戶界面“好不好”主要看它是否“容易使用”和“美觀”。易用性是指用戶使用軟件的容易程度。美觀的界面能消除用戶由感覺引起的乏味、緊張和疲勞,大大提高用戶的工作效率,從而進(jìn)一步為發(fā)揮用戶技能和為用戶完成任務(wù)作出貢獻(xiàn)。25數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是存儲和處理數(shù)據(jù)用的。數(shù)據(jù)庫設(shè)計的主要工作是:設(shè)計數(shù)據(jù)庫的表(數(shù)據(jù)就存在表里面),表的結(jié)構(gòu)就是數(shù)據(jù)的存儲結(jié)構(gòu)。對這些表中的數(shù)據(jù)進(jìn)行操作,常見操作如查詢、插入、修改、刪除等。26模塊設(shè)計(1)模塊:泛指軟件系統(tǒng)的功能部件。在軟件的體系結(jié)構(gòu)設(shè)計完成之際,我們就已經(jīng)確定了所有模塊的功能,并且
8、把模塊們安放在體系結(jié)構(gòu)的恰當(dāng)位置上。27模塊設(shè)計(2)每個模塊都具有特定的、明確的功能(否則不能成為模塊)。人們在設(shè)計模塊時應(yīng)當(dāng)盡量使模塊的功能獨立,因為功能獨立的模塊可以降低開發(fā)、測試、維護(hù)的代價。但是功能獨立并不意味著模塊是絕對孤立的。所有的模塊應(yīng)當(dāng)能夠被集成為一個系統(tǒng),所以模塊之間必定要交流信息、相互配合。 28模塊設(shè)計(3)比如手和腳是兩個“功能獨立”的模塊。沒有腳時,手照樣能干活。沒有手時,腳仍可以走路。但如果想讓人跑得快,那么邁左腳時一定要伸右臂甩左臂,邁右腳時則要伸左臂甩右臂。所以在設(shè)計模塊時不僅要考慮“這個模塊應(yīng)當(dāng)有什么樣的功能”,還要考慮“這個模塊應(yīng)該怎樣與其它模塊交流信息”
9、。 29模塊設(shè)計(4)“模塊化”(Modularization) 將系統(tǒng)分解為一系列功能模塊,然后逐一實現(xiàn)這些模塊,最后把所有的模塊集成為原來的系統(tǒng)。這樣做的好處是能夠大大降低系統(tǒng)的開發(fā)難度。30模塊設(shè)計(5)問:是否將系統(tǒng)分解得非常細(xì)、得到的功能模塊越多越好呢?答:不是的。雖然這樣做可以使實現(xiàn)模塊的代價更低,但是把功能模塊集成為原來系統(tǒng)的代價卻增大了很多,得不償失,所以一個系統(tǒng)的模塊數(shù)量不能過多也不能過少。那么多少算是恰如其分呢?不知道,要靠設(shè)計師的判斷。 31模塊設(shè)計(6)設(shè)計原則信息隱藏:為盡量避免某個模塊的行為干擾同一系統(tǒng)中的其它模塊,在設(shè)計模塊時就要注意信息隱藏。應(yīng)該讓模塊僅僅公開必
10、須要讓外界知道的東西,而隱藏其它一切內(nèi)容。接口設(shè)計是模塊設(shè)計的核心工作之一,體現(xiàn)了信息隱藏這一原則。接口是模塊的外部特征,應(yīng)當(dāng)公開;而數(shù)據(jù)結(jié)構(gòu)、算法、實現(xiàn)體等則是模塊的內(nèi)部特征,應(yīng)當(dāng)隱藏。32模塊設(shè)計(7)高內(nèi)聚內(nèi)聚(Cohesion)是一個模塊內(nèi)部各成分之間相關(guān)聯(lián)程度的度量。 7種內(nèi)聚類型,繪制了模塊的“內(nèi)聚譜系”,內(nèi)聚程度從低到高大致劃分為低端、中段和高端。模塊設(shè)計者沒有必要確定內(nèi)聚的精確級別,重要的是盡量爭取高內(nèi)聚,避免低內(nèi)聚。 33模塊設(shè)計(8)低耦合耦合(Coupling)是模塊之間依賴程度的度量。內(nèi)聚和耦合是密切相關(guān)的,與其它模塊存在強(qiáng)耦合的模塊通常意味著弱內(nèi)聚,而強(qiáng)內(nèi)聚的模塊通常
11、意味著與其它模塊之間存在弱耦合。模塊設(shè)計應(yīng)當(dāng)爭取“高內(nèi)聚、低耦合”,而避免“低內(nèi)聚、高耦合”。34數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計設(shè)計流程數(shù)據(jù)結(jié)構(gòu)與算法有全局和局部之分,先設(shè)計全局的,后設(shè)計局部的(通常在模塊設(shè)計時進(jìn)行)。 根據(jù)問題的特征,先查找已經(jīng)存在的數(shù)據(jù)結(jié)構(gòu)與算法,挑選最合適的(并不一定是最先進(jìn)的)。如果不存在現(xiàn)成的,那么自己設(shè)計。 設(shè)計并且編寫代碼之后要進(jìn)行測試,如果不滿足性能要求,那么要進(jìn)一步優(yōu)化數(shù)據(jù)結(jié)構(gòu)和算法。35數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計設(shè)計高效率的程序是基于良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是基于編程小技巧。36系統(tǒng)設(shè)計 課后習(xí)題以下不屬于詳細(xì)設(shè)計階段的是( )A. 體系結(jié)構(gòu)設(shè)計 B. 數(shù)據(jù)庫設(shè)計C. 模塊
12、設(shè)計 D.數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計詳細(xì)設(shè)計的基本任務(wù)是確定每個模塊的( )設(shè)計A功能 B調(diào)用關(guān)系C輸入輸出數(shù)據(jù) D.數(shù)據(jù)結(jié)構(gòu)和算法37詳細(xì)設(shè)計的結(jié)果基本決定了最終程序的()A代碼的規(guī)模B運(yùn)行速度C質(zhì)量 D可維護(hù)性內(nèi)聚表示一個模塊()的程度A細(xì)化B模塊內(nèi)部成分之間關(guān)聯(lián)C模塊之間依賴D僅關(guān)注在一件事情上38耦合表示一個模塊( )的程度。A細(xì)化 B模塊內(nèi)部成分之間關(guān)聯(lián)C模塊之間依賴 D僅關(guān)注在一件事情上關(guān)于模塊化設(shè)計的錯誤敘述是( )。A.軟件的功能便于擴(kuò)充 B.程序易于理解也便于糾錯 C.便于由多人分工編制大型軟件 D.程序設(shè)計方便,但難以維護(hù)39模塊( ),則說明模塊的獨立性越強(qiáng)。A耦合越強(qiáng) B. 扇入數(shù)越高 C. 耦合越弱 D. 扇入數(shù)越低在模
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年高級保安員模擬試題(輕巧奪冠)
- 中醫(yī)院科普宣傳欄設(shè)置方案
- 病房患者隱私保護(hù)設(shè)計方案
- 儲備糧倉庫項目資金管理方案
- 醫(yī)院人力資源管理優(yōu)化方案
- 2025年武漢信息傳播職業(yè)技術(shù)學(xué)院單招(計算機(jī))考試參考題庫附答案
- 婦幼保健院醫(yī)護(hù)人員激勵機(jī)制方案
- 2025年安慶師范大學(xué)輔導(dǎo)員考試參考題庫附答案
- 邊坡圍欄設(shè)置方案
- 小學(xué)藝術(shù)教育課程拓展方案
- 關(guān)節(jié)脫位院前急救
- 2024年山東省濟(jì)南市中考化學(xué)試卷( 含答案)
- 建筑結(jié)構(gòu)改造設(shè)計和加固技術(shù)綜合分析的開題報告
- 管理會計學(xué) 第10版 課件 第1、2章 管理會計概論、成本性態(tài)與變動成本法
- 喪葬費(fèi)用補(bǔ)助申請的社保授權(quán)委托書
- 2024年度初會《經(jīng)濟(jì)法基礎(chǔ)》高頻真題匯編(含答案)
- 課例研究報告
- 啤酒營銷促銷實戰(zhàn)技巧之經(jīng)銷商管理技巧知識培訓(xùn)
- 建筑工程各部門職能及各崗位職責(zé)201702
- 機(jī)柜端口對應(yīng)表
- GB/T 3934-2003普通螺紋量規(guī)技術(shù)條件
評論
0/150
提交評論