軟件工程與項(xiàng)目管理(第六課)_第1頁(yè)
軟件工程與項(xiàng)目管理(第六課)_第2頁(yè)
軟件工程與項(xiàng)目管理(第六課)_第3頁(yè)
軟件工程與項(xiàng)目管理(第六課)_第4頁(yè)
軟件工程與項(xiàng)目管理(第六課)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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è)試員稱(chēng)為“員”,而設(shè)計(jì)師尊稱(chēng)為“師”。 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ì)之前有需求開(kāi)發(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)能夠被開(kāi)發(fā)方順利地實(shí)現(xiàn),并且恰如其分地滿足用戶的需求,使開(kāi)發(fā)方和用戶的利益極大化。開(kāi)發(fā)人員不能偏離需求,為了追求技術(shù)的先進(jìn)性而開(kāi)展系統(tǒng)設(shè)計(jì)工作。 7任務(wù) 可行性分析的任務(wù) 需求分析的任務(wù) 系統(tǒng)設(shè)計(jì)的任務(wù) 通過(guò)給出新系統(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ì),即過(guò)程設(shè)計(jì)。通過(guò)對(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)與人體的比喻 用戶界面 最容易讓人一見(jiàn)鐘

4、情或一見(jiàn)惡心。象人類(lèi)追求心靈美和外表美那樣,軟件系統(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ì)原則漫畫(huà)家可以“幾筆”就把一個(gè)人畫(huà)出來(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àn)的體系結(jié)構(gòu)模式它體現(xiàn)了“分而治之”的思想:當(dāng)我們沒(méi)法一口氣解決復(fù)雜的原始問(wèn)題時(shí),就把該問(wèn)

7、題切割成許多個(gè)小的相對(duì)簡(jiǎn)單的問(wèn)題,然后逐個(gè)解決。24用戶界面設(shè)計(jì)什么是好的用戶界面用戶界面“好不好”主要看它是否“容易使用”和“美觀”。易用性是指用戶使用軟件的容易程度。美觀的界面能消除用戶由感覺(jué)引起的乏味、緊張和疲勞,大大提高用戶的工作效率,從而進(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)行操作,常見(jiàn)操作如查詢(xú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ú)立的模塊可以降低開(kāi)發(fā)、測(cè)試、維護(hù)的代價(jià)。但是功能獨(dú)立并不意味著模塊是絕對(duì)孤立的。所有的模塊應(yīng)當(dāng)能夠被集成為一個(gè)系統(tǒng),所以模塊之間必定要交流信息、相互配合。 28模塊設(shè)計(jì)(3)比如手和腳是兩個(gè)“功能獨(dú)立”的模塊。沒(méi)有腳時(shí),手照樣能干活。沒(méi)有手時(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)的開(kāi)發(fā)難度。30模塊設(shè)計(jì)(5)問(wèn):是否將系統(tǒng)分解得非常細(xì)、得到的功能模塊越多越好呢?答:不是的。雖然這樣做可以使實(shí)現(xiàn)模塊的代價(jià)更低,但是把功能模塊集成為原來(lái)系統(tǒng)的代價(jià)卻增大了很多,得不償失,所以一個(gè)系統(tǒng)的模塊數(shù)量不能過(guò)多也不能過(guò)少。那么多少算是恰如其分呢?不知道,要靠設(shè)計(jì)師的判斷。 31模塊設(shè)計(jì)(6)設(shè)計(jì)原則信息隱藏:為盡量避免某個(gè)模塊的行為干擾同一系統(tǒng)中的其它模塊,在設(shè)計(jì)模塊時(shí)就要注意信息隱藏。應(yīng)該讓模塊僅僅公開(kāi)必

10、須要讓外界知道的東西,而隱藏其它一切內(nèi)容。接口設(shè)計(jì)是模塊設(shè)計(jì)的核心工作之一,體現(xiàn)了信息隱藏這一原則。接口是模塊的外部特征,應(yīng)當(dāng)公開(kāi);而數(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)聚類(lèi)型,繪制了模塊的“內(nèi)聚譜系”,內(nèi)聚程度從低到高大致劃分為低端、中段和高端。模塊設(shè)計(jì)者沒(méi)有必要確定內(nèi)聚的精確級(jí)別,重要的是盡量爭(zhēng)取高內(nèi)聚,避免低內(nèi)聚。 33模塊設(shè)計(jì)(8)低耦合耦合(Coupling)是模塊之間依賴(lài)程度的度量。內(nèi)聚和耦合是密切相關(guān)的,與其它模塊存在強(qiáng)耦合的模塊通常意味著弱內(nèi)聚,而強(qiáng)內(nèi)聚的模塊通常意味著與其它模塊之間存在弱耦合。模塊設(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ì)局部

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論