




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程與項(xiàng)目管理 軟件學(xué)院M.P.: 1軟件工程項(xiàng)目管理可行性與需求分析 系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)測(cè)試維護(hù)軟件工程與項(xiàng)目管理的主要環(huán)節(jié)2第四章 系統(tǒng)設(shè)計(jì)3目錄軟件系統(tǒng)設(shè)計(jì)基本概念 體系結(jié)構(gòu)設(shè)計(jì)用戶界面設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)模塊設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)4軟件系統(tǒng)設(shè)計(jì)基本概念基本概念 設(shè)計(jì)師與程序員的地位。系統(tǒng)設(shè)計(jì)的技術(shù)難度要比編程、測(cè)試的高。所以程序員、測(cè)試員稱為“員”,而設(shè)計(jì)師尊稱為“師”。 5系統(tǒng)設(shè)計(jì)的好壞在根本上決定了軟件系統(tǒng)的優(yōu)劣。我們可以斷言“差的系統(tǒng)設(shè)計(jì)必定產(chǎn)生差的軟件系統(tǒng)”,但是不能保證“好的系統(tǒng)設(shè)計(jì)必定產(chǎn)生好的軟件系統(tǒng)”。因?yàn)樵谠O(shè)計(jì)之前有需求開發(fā)工作,在設(shè)計(jì)之后還有編程、測(cè)試和維護(hù)工作,無(wú)論哪個(gè)
2、環(huán)節(jié)出了差錯(cuò),都會(huì)把好事搞砸了。6系統(tǒng)設(shè)計(jì)的目標(biāo)目標(biāo)使所設(shè)計(jì)的系統(tǒng)能夠被開發(fā)方順利地實(shí)現(xiàn),并且恰如其分地滿足用戶的需求,使開發(fā)方和用戶的利益極大化。開發(fā)人員不能偏離需求,為了追求技術(shù)的先進(jìn)性而開展系統(tǒng)設(shè)計(jì)工作。 7任務(wù) 可行性分析的任務(wù) 需求分析的任務(wù) 系統(tǒng)設(shè)計(jì)的任務(wù) 通過給出新系統(tǒng)物理模型的方式,描述如何實(shí)現(xiàn)在系統(tǒng)分析中規(guī)定的系統(tǒng)功能。 做還是不做? 怎么做? 做什么,不做什么?系統(tǒng)設(shè)計(jì)的任務(wù)8系統(tǒng)設(shè)計(jì)兩步驟高層設(shè)計(jì),將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。 高層設(shè)計(jì)階段的重點(diǎn)是體系結(jié)構(gòu)設(shè)計(jì)。9系統(tǒng)設(shè)計(jì)兩步驟詳細(xì)設(shè)計(jì),即過程設(shè)計(jì)。通過對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。 詳
3、細(xì)設(shè)計(jì)階段的重點(diǎn)是用戶界面設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、模塊設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)等。 10系統(tǒng)設(shè)計(jì)11系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫(kù)模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體12軟件系統(tǒng)與人體的比喻 體系結(jié)構(gòu) 如果某個(gè)家伙的骨架是猴子,那么無(wú)論怎樣喂養(yǎng)和美容,這家伙始終都是猴子,不會(huì)成為人。人的身材大小取決于骨架大小,天生小個(gè)子的人基本上不可能成為威猛的大漢,后天再努力(例如鍛煉和吃喝)也白搭。 體系結(jié)構(gòu)乃是系統(tǒng)設(shè)計(jì)的重中之重。 =骨架13系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫(kù)模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體14軟件系統(tǒng)與人體的比喻 用戶界面 最容易讓人一見鐘
4、情或一見惡心。象人類追求心靈美和外表美那樣,軟件系統(tǒng)也追求(內(nèi)在的)功能強(qiáng)大和(外表的)界面友好。在設(shè)計(jì)軟件時(shí)不要沉迷于技術(shù),而要多多思考什么樣的界面才能讓用戶更加喜歡。= 外表15系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫(kù)模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體16軟件系統(tǒng)與人體的比喻 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)是存儲(chǔ)和處理數(shù)據(jù)用的。人體的數(shù)據(jù)庫(kù)是大腦,知識(shí)相當(dāng)于數(shù)據(jù),全存在大腦里。 如果腦子里存儲(chǔ)的知識(shí)很多,那么這個(gè)人就顯得博學(xué)。如果腦子處理知識(shí)的速度很高,那么這個(gè)人就顯得聰明。數(shù)據(jù)庫(kù)設(shè)計(jì)的主要挑戰(zhàn)是“高速處理大容量的數(shù)據(jù)”。 = 大腦17系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫(kù)模塊數(shù)據(jù)結(jié)構(gòu)
5、與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體18軟件系統(tǒng)與人體的比喻 模塊 每個(gè)器官都具有特定的功能,器官們依附在骨架上。模塊是軟件系統(tǒng)的部件,它們安插在體系結(jié)構(gòu)上(否則運(yùn)行起來(lái)掉光光了)。在設(shè)計(jì)模塊時(shí)要重視功能獨(dú)立性,還要追求“高內(nèi)聚、低耦合” 。 = 器官19系統(tǒng)與人體的比喻 體系結(jié)構(gòu)用戶界面數(shù)據(jù)庫(kù)模塊數(shù)據(jù)結(jié)構(gòu)與算法外表大腦器官骨架神經(jīng)和肌肉系統(tǒng)人體20軟件系統(tǒng)與人體的比喻 數(shù)據(jù)結(jié)構(gòu)與算法 人的神經(jīng)和肌肉分布在全身,讓器官具有生命并能發(fā)揮功能。人之所以能夠全身運(yùn)動(dòng),那是無(wú)數(shù)的神經(jīng)和肌肉在起作用。如果局部的神經(jīng)和肌肉失效了,那么會(huì)導(dǎo)致對(duì)應(yīng)的器官殘廢。如果全局的神經(jīng)和肌肉失效了,那么人就癱瘓了。數(shù)
6、據(jù)結(jié)構(gòu)與算法也有全局和局部之分,都要慎重設(shè)計(jì)。= 神經(jīng)和肌肉21體系結(jié)構(gòu)設(shè)計(jì)(1)體系結(jié)構(gòu)設(shè)計(jì)原則漫畫家可以“幾筆”就把一個(gè)人畫出來(lái),不管怎么美化或丑化,就是活像。為什么?因?yàn)槟恰皫坠P”不是別的,而是拓?fù)鋵W(xué)中的特征不變量,這是事物最本質(zhì)的東西。體系結(jié)構(gòu)是指軟件系統(tǒng)的基本和主體的形態(tài),也就是軟件系統(tǒng)中“最本質(zhì)”的東西。一個(gè)軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)得好不好,可以用“合適性、結(jié)構(gòu)穩(wěn)定性、可擴(kuò)展性、可復(fù)用性”這些特征量來(lái)評(píng)估。22體系結(jié)構(gòu)設(shè)計(jì)(2)體系結(jié)構(gòu)設(shè)計(jì)流程6個(gè)步驟23體系結(jié)構(gòu)設(shè)計(jì)(3)層次結(jié)構(gòu)層次結(jié)構(gòu)是最常見的體系結(jié)構(gòu)模式它體現(xiàn)了“分而治之”的思想:當(dāng)我們沒法一口氣解決復(fù)雜的原始問題時(shí),就把該問
7、題切割成許多個(gè)小的相對(duì)簡(jiǎn)單的問題,然后逐個(gè)解決。24用戶界面設(shè)計(jì)什么是好的用戶界面用戶界面“好不好”主要看它是否“容易使用”和“美觀”。易用性是指用戶使用軟件的容易程度。美觀的界面能消除用戶由感覺引起的乏味、緊張和疲勞,大大提高用戶的工作效率,從而進(jìn)一步為發(fā)揮用戶技能和為用戶完成任務(wù)作出貢獻(xiàn)。25數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)是存儲(chǔ)和處理數(shù)據(jù)用的。數(shù)據(jù)庫(kù)設(shè)計(jì)的主要工作是:設(shè)計(jì)數(shù)據(jù)庫(kù)的表(數(shù)據(jù)就存在表里面),表的結(jié)構(gòu)就是數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。對(duì)這些表中的數(shù)據(jù)進(jìn)行操作,常見操作如查詢、插入、修改、刪除等。26模塊設(shè)計(jì)(1)模塊:泛指軟件系統(tǒng)的功能部件。在軟件的體系結(jié)構(gòu)設(shè)計(jì)完成之際,我們就已經(jīng)確定了所有模塊的功能,并且
8、把模塊們安放在體系結(jié)構(gòu)的恰當(dāng)位置上。27模塊設(shè)計(jì)(2)每個(gè)模塊都具有特定的、明確的功能(否則不能成為模塊)。人們?cè)谠O(shè)計(jì)模塊時(shí)應(yīng)當(dāng)盡量使模塊的功能獨(dú)立,因?yàn)楣δ塥?dú)立的模塊可以降低開發(fā)、測(cè)試、維護(hù)的代價(jià)。但是功能獨(dú)立并不意味著模塊是絕對(duì)孤立的。所有的模塊應(yīng)當(dāng)能夠被集成為一個(gè)系統(tǒng),所以模塊之間必定要交流信息、相互配合。 28模塊設(shè)計(jì)(3)比如手和腳是兩個(gè)“功能獨(dú)立”的模塊。沒有腳時(shí),手照樣能干活。沒有手時(shí),腳仍可以走路。但如果想讓人跑得快,那么邁左腳時(shí)一定要伸右臂甩左臂,邁右腳時(shí)則要伸左臂甩右臂。所以在設(shè)計(jì)模塊時(shí)不僅要考慮“這個(gè)模塊應(yīng)當(dāng)有什么樣的功能”,還要考慮“這個(gè)模塊應(yīng)該怎樣與其它模塊交流信息”
9、。 29模塊設(shè)計(jì)(4)“模塊化”(Modularization) 將系統(tǒng)分解為一系列功能模塊,然后逐一實(shí)現(xiàn)這些模塊,最后把所有的模塊集成為原來(lái)的系統(tǒng)。這樣做的好處是能夠大大降低系統(tǒng)的開發(fā)難度。30模塊設(shè)計(jì)(5)問:是否將系統(tǒng)分解得非常細(xì)、得到的功能模塊越多越好呢?答:不是的。雖然這樣做可以使實(shí)現(xiàn)模塊的代價(jià)更低,但是把功能模塊集成為原來(lái)系統(tǒng)的代價(jià)卻增大了很多,得不償失,所以一個(gè)系統(tǒng)的模塊數(shù)量不能過多也不能過少。那么多少算是恰如其分呢?不知道,要靠設(shè)計(jì)師的判斷。 31模塊設(shè)計(jì)(6)設(shè)計(jì)原則信息隱藏:為盡量避免某個(gè)模塊的行為干擾同一系統(tǒng)中的其它模塊,在設(shè)計(jì)模塊時(shí)就要注意信息隱藏。應(yīng)該讓模塊僅僅公開必
10、須要讓外界知道的東西,而隱藏其它一切內(nèi)容。接口設(shè)計(jì)是模塊設(shè)計(jì)的核心工作之一,體現(xiàn)了信息隱藏這一原則。接口是模塊的外部特征,應(yīng)當(dāng)公開;而數(shù)據(jù)結(jié)構(gòu)、算法、實(shí)現(xiàn)體等則是模塊的內(nèi)部特征,應(yīng)當(dāng)隱藏。32模塊設(shè)計(jì)(7)高內(nèi)聚內(nèi)聚(Cohesion)是一個(gè)模塊內(nèi)部各成分之間相關(guān)聯(lián)程度的度量。 7種內(nèi)聚類型,繪制了模塊的“內(nèi)聚譜系”,內(nèi)聚程度從低到高大致劃分為低端、中段和高端。模塊設(shè)計(jì)者沒有必要確定內(nèi)聚的精確級(jí)別,重要的是盡量爭(zhēng)取高內(nèi)聚,避免低內(nèi)聚。 33模塊設(shè)計(jì)(8)低耦合耦合(Coupling)是模塊之間依賴程度的度量。內(nèi)聚和耦合是密切相關(guān)的,與其它模塊存在強(qiáng)耦合的模塊通常意味著弱內(nèi)聚,而強(qiáng)內(nèi)聚的模塊通常
11、意味著與其它模塊之間存在弱耦合。模塊設(shè)計(jì)應(yīng)當(dāng)爭(zhēng)取“高內(nèi)聚、低耦合”,而避免“低內(nèi)聚、高耦合”。34數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)設(shè)計(jì)流程數(shù)據(jù)結(jié)構(gòu)與算法有全局和局部之分,先設(shè)計(jì)全局的,后設(shè)計(jì)局部的(通常在模塊設(shè)計(jì)時(shí)進(jìn)行)。 根據(jù)問題的特征,先查找已經(jīng)存在的數(shù)據(jù)結(jié)構(gòu)與算法,挑選最合適的(并不一定是最先進(jìn)的)。如果不存在現(xiàn)成的,那么自己設(shè)計(jì)。 設(shè)計(jì)并且編寫代碼之后要進(jìn)行測(cè)試,如果不滿足性能要求,那么要進(jìn)一步優(yōu)化數(shù)據(jù)結(jié)構(gòu)和算法。35數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)設(shè)計(jì)高效率的程序是基于良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是基于編程小技巧。36系統(tǒng)設(shè)計(jì) 課后習(xí)題以下不屬于詳細(xì)設(shè)計(jì)階段的是( )A. 體系結(jié)構(gòu)設(shè)計(jì) B. 數(shù)據(jù)庫(kù)設(shè)計(jì)C. 模塊
12、設(shè)計(jì) D.數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)詳細(xì)設(shè)計(jì)的基本任務(wù)是確定每個(gè)模塊的( )設(shè)計(jì)A功能 B調(diào)用關(guān)系C輸入輸出數(shù)據(jù) D.數(shù)據(jù)結(jié)構(gòu)和算法37詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序的()A代碼的規(guī)模B運(yùn)行速度C質(zhì)量 D可維護(hù)性內(nèi)聚表示一個(gè)模塊()的程度A細(xì)化B模塊內(nèi)部成分之間關(guān)聯(lián)C模塊之間依賴D僅關(guān)注在一件事情上38耦合表示一個(gè)模塊( )的程度。A細(xì)化 B模塊內(nèi)部成分之間關(guān)聯(lián)C模塊之間依賴 D僅關(guān)注在一件事情上關(guān)于模塊化設(shè)計(jì)的錯(cuò)誤敘述是( )。A.軟件的功能便于擴(kuò)充 B.程序易于理解也便于糾錯(cuò) C.便于由多人分工編制大型軟件 D.程序設(shè)計(jì)方便,但難以維護(hù)39模塊( ),則說明模塊的獨(dú)立性越強(qiáng)。A耦合越強(qiáng) B. 扇入數(shù)越高 C. 耦合越弱 D. 扇入數(shù)越低在模
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷熱療法考試試題及答案
- 農(nóng)業(yè)電商的國(guó)際化策略試題及答案
- 探討2025年創(chuàng)新政策試題及答案
- 小學(xué)教育教學(xué)反思的評(píng)估標(biāo)準(zhǔn)與方法試題及答案
- 2025年大學(xué)物理考試科學(xué)技能在物理學(xué)習(xí)中的促進(jìn)作用研究試題及答案
- 2025年新工人入場(chǎng)安全培訓(xùn)考試試題附答案(基礎(chǔ)題)
- 2024-2025新進(jìn)廠職工安全培訓(xùn)考試試題及答案高清
- 大學(xué)物理計(jì)算能力試題及答案
- 農(nóng)村金融服務(wù)創(chuàng)新模式研究-2025年農(nóng)村金融信息化建設(shè)與金融服務(wù)優(yōu)化報(bào)告
- 2025年企業(yè)戰(zhàn)略管理考試試題及答案
- 《體育舞蹈》課件
- 高三一??偨Y(jié)主題班會(huì)課件
- 幼兒園優(yōu)質(zhì)公開課:中班語(yǔ)言繪本《明天我再來(lái)吃掉你》第二版課件
- 注塑APQP資料參考
- 類比法-創(chuàng)新思維
- DB4403T339-2023城市級(jí)實(shí)景三維數(shù)據(jù)規(guī)范
- 設(shè)備維護(hù)工程師簡(jiǎn)歷
- 2023版押品考試題庫(kù)必考點(diǎn)含答案
- 口腔與健康智慧樹知到答案章節(jié)測(cè)試2023年溫州醫(yī)科大學(xué)
- 挖孔樁基施工方案(水磨鉆)
- 變電檢修技能考試計(jì)算
評(píng)論
0/150
提交評(píng)論