




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程導(dǎo)論復(fù)習(xí)課第1章 軟件工程學(xué)概述1、什么是軟件危機(jī),為什么會(huì)出現(xiàn)軟件危機(jī)?P1-3軟件危機(jī)是指在計(jì)算機(jī)軟件開發(fā)、使用與維護(hù)過程中遇到的一系列嚴(yán)重問題和難題。它包括兩方面:如何開發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求;如何維護(hù)數(shù)量不斷增長(zhǎng)的已有軟件。產(chǎn)生軟件危機(jī)的原因(1) 來自軟件自身的特點(diǎn) P3,P1415(2) 軟件開發(fā)與維護(hù)的方法不當(dāng) P34,P1724a.對(duì)軟件缺乏正確的認(rèn)識(shí),認(rèn)為“軟件就是程序,軟件開發(fā)就是編寫程序并使之運(yùn)行”;忽視問題定義、可行性研究和需求分析等;P20b.缺乏有力的方法學(xué)的指導(dǎo)和有效的開發(fā)工具的支持。軟件開發(fā)過多地依靠程序員的 “技巧”,從而加劇了軟件產(chǎn)品的個(gè)性化;c.只重視程序,而忽視軟件的完整配置;d.輕視軟件維護(hù)。另外,由于前面的原因?qū)е萝浖S護(hù)費(fèi)用急增;e.面對(duì)日益增長(zhǎng)的軟件需求,人們顯得力不從心。從某種意義上說,解決供求矛盾將是一個(gè)永恒的主題。2、什么是軟件工程,為什么會(huì)出現(xiàn)軟件工程,軟件工程的主要目標(biāo)是什么?P5軟件工程的定義采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。軟件工程從管理和技術(shù)兩個(gè)方面研究如何開發(fā)和維護(hù)計(jì)算機(jī)軟件,是計(jì)算機(jī)科學(xué)技術(shù)的一個(gè)新的研究領(lǐng)域。軟件工程的主要目標(biāo):使軟件系統(tǒng)向高性價(jià)比方向發(fā)展,在給定成本、進(jìn)度的前提下,最終獲得項(xiàng)目的成功。成功指的是達(dá)到以下幾個(gè)主要目標(biāo):(1) 付出較低的開發(fā)成本(2) 達(dá)到要求的軟件功能(3) 取得較好的軟件性能(時(shí)、空效率和可靠性)(4) 開發(fā)的軟件易于移植(5) 需要較低的維護(hù)費(fèi)用(6) 能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用。3、什么是軟件工程方法學(xué)?軟件工程的3要素(軟件工程方法學(xué)的3要素)是什么?分別包含什么內(nèi)容?P9,P課件6-7通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。軟件工程方法學(xué)包含3個(gè)要素:方法、工具和過程。其中,方法是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎樣做”的問題;工具是為運(yùn)用方法而提供的自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境;過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。4、常見軟件生命周期模型有哪些(課件中的前5類)?典型的傳統(tǒng)軟件生命周期模型、典型的面向?qū)ο筌浖芷谀P头謩e是哪個(gè)?它們的特點(diǎn)分別是什么?P課件13-17瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型第2章 可行性研究5、可行性研究的主要工作是什么?主要從哪3方面研究可行性?P35-36可行性研究工作是在初步的需求定義(澄清問題的定義)之后進(jìn)行的,其的目的是用最小的代價(jià)在盡量短的時(shí)間內(nèi)(總成本的5%10%)確定該項(xiàng)目是否值得去解決,是否存在可行的解決方案。以下幾個(gè)方面研究其可行性:(1) 經(jīng)濟(jì)可行性:這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?估算項(xiàng)目的開發(fā)成本和系統(tǒng)投入使用后可能帶來的利潤(rùn),進(jìn)行成本/效益分析,從經(jīng)濟(jì)角度判斷系統(tǒng)開發(fā)是否“合算”。(2) 技術(shù)可行性:使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?根據(jù)客戶提出的系統(tǒng)功能、性能要求,從開發(fā)者的技術(shù)實(shí)力、以往工作基礎(chǔ)、問題的復(fù)雜性等出發(fā),判斷系統(tǒng)開發(fā)在時(shí)間、費(fèi)用及其他各項(xiàng)約束條件限制下成功的可能性。(3) 運(yùn)行、操作可行性:系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎?主要研究系統(tǒng)的運(yùn)行方式在用戶單位是否可以被有效地實(shí)施,是否與原有其他系統(tǒng)相矛盾;系統(tǒng)的操作規(guī)程在用戶單位內(nèi)是否可行,它包括人事、科技政策、管理方法等等。(4) 法律可行性:系統(tǒng)的開發(fā)使用,在當(dāng)國當(dāng)?shù)禺?dāng)時(shí)合法嗎?研究系統(tǒng)的開發(fā)和使用是否會(huì)侵犯他人的權(quán)益,是否觸犯了國家和地方的法律法規(guī)。6、主要描述工具的概念和使用:系統(tǒng)流程圖:什么是,成份和基本符號(hào),描述什么模型,畫法;系統(tǒng)流程圖是概括地描述物理系統(tǒng)的傳統(tǒng)工具數(shù)據(jù)流圖:什么是,成份和基本符號(hào),描述什么模型,系統(tǒng)級(jí)和功能級(jí)、簡(jiǎn)單細(xì)化數(shù)據(jù)流圖的特點(diǎn),畫法;數(shù)據(jù)流圖數(shù)據(jù)流圖有4種成分:源點(diǎn)和終點(diǎn),處理,數(shù)據(jù)存儲(chǔ),數(shù)據(jù)流。數(shù)據(jù)字典:什么是,哪些內(nèi)容需要在數(shù)據(jù)字典中被定義,用到的符號(hào),定義的方法。P47數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。l 數(shù)據(jù)定義使用到的符號(hào)及意義:由數(shù)據(jù)元素組成數(shù)據(jù)的方式:(1) 順序 即以確定次序連接兩個(gè)或多個(gè)分量;(2) 選擇 即從兩個(gè)或多個(gè)可能的元素中選取一個(gè);(3) 重復(fù) 即把指定的分量重復(fù)零次或多次。(4) 可選 即一個(gè)分量是可有可無的(重復(fù)零次或一次)??刹捎孟铝蟹?hào):= 意思是定義為 (或等價(jià)于);(1) + 意思是和(即,連接兩個(gè)分量);(2) 意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)),通常用“|”號(hào)隔開供選擇的分量;(3) 意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量);(4) ( )意思是可選(即,圓括弧里的分量可有可無)。數(shù)據(jù)字典中定義數(shù)據(jù)的方法就是對(duì)數(shù)據(jù)自頂向下逐步分解,當(dāng)分解到不需要進(jìn)一步定義、每個(gè)和工程有關(guān)的人也都清楚數(shù)據(jù)元素的含義時(shí),這種分解過程就完成了。然后再用自然語言或符號(hào)語言描述數(shù)據(jù)元素組成數(shù)據(jù)的方式。第3章 需求分析7、需求分析得到的成果(文檔)是什么?其中包含哪些內(nèi)容?P62用自然語言 + 模型,完整、準(zhǔn)確、具體地描述系統(tǒng)的數(shù)據(jù)要求、功能需求、性能需求、可靠性和可用性要求、出錯(cuò)處理需求、接口需求、約束、逆向需求以及將來可能提出的要求。 P40軟件需求規(guī)格說明書,是需求分析階段得出的最主要的文檔。8、軟件需求通常包括哪些方面?如何獲取用戶需求?P課件1-8(1) 功能需求;(2) 性能需求;(3) 可靠性和可用性需求;(4) 出錯(cuò)處理需求;(5) 接口需求;(6) 約束;(7) 逆向需求;(8) 將來可能提出的要求(1) 訪談與會(huì)議-分析人員采用個(gè)別訪談或小組會(huì)議的形式與用戶進(jìn)行初步交流。在訪談和會(huì)議之前,分析人員根據(jù)對(duì)問題的初步描述精心準(zhǔn)備一系列問題,通過用戶對(duì)問題的回答或互相商討來逐步理解用戶的需求。(2) 問卷調(diào)查-當(dāng)需要調(diào)查大量人員的意見時(shí),向被調(diào)查人分發(fā)調(diào)查表是一個(gè)十分有效的做法。經(jīng)過仔細(xì)考慮寫出的書面回答可能比被訪者對(duì)問題的口頭回答更準(zhǔn)確。(3) 觀察用戶工作流程-提取系統(tǒng)的初步用戶需求,分析用戶提出的需求的合理性,補(bǔ)充用戶沒有意識(shí)到的需求,并能夠從軟件的角度改進(jìn)操作流程和操作規(guī)范,從而可獲得用戶滿意的結(jié)果。(4) 用戶和開發(fā)人員共同組成聯(lián)合小組(5) 情景分析技術(shù) P5859,P1718在這里,通常用戶扮演未來的用戶,分析人員扮演軟件系統(tǒng)。9、增加的主要描述工具的概念和使用:E-R圖:什么是,成份和基本符號(hào),描述什么模型;ER圖,即實(shí)體-聯(lián)系圖,是表示數(shù)據(jù)對(duì)象及其之間關(guān)系的圖形語言機(jī)制,是建立數(shù)據(jù)模型的圖形工具。l ER圖的基本成份和使用的符號(hào)實(shí)體(即數(shù)據(jù)對(duì)象)-矩形框關(guān)系-菱形框?qū)傩?橢圓形或圓角矩形狀態(tài)轉(zhuǎn)換圖:什么是,包含的成份,描述什么模型。狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。此外,狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作。因此,利用狀態(tài)轉(zhuǎn)換圖可以建立系統(tǒng)的行為模型。l 狀態(tài)轉(zhuǎn)換圖中的成份(1) 狀態(tài) P5657(2) 事件 事件是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象,也就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。(3) 狀態(tài)轉(zhuǎn)換 從一個(gè)狀態(tài)到另一個(gè)狀態(tài),變遷的方向。10、在結(jié)構(gòu)化分析中,3種模型分別是什么,分別用什么工具來描述? 建模的核心是什么? P62數(shù)據(jù)模型(E-R圖)、功能模型(數(shù)據(jù)流圖)、行為模型(狀態(tài)轉(zhuǎn)換圖)模型的核心是數(shù)據(jù)字典,它描述了所有的在目標(biāo)系統(tǒng)中使用的和生成的數(shù)據(jù)對(duì)象。圍繞著這個(gè)核心的有三種圖:實(shí)體-關(guān)系圖(ERD)描述數(shù)據(jù)對(duì)象及數(shù)據(jù)對(duì)象之間的關(guān)系-數(shù)據(jù)模型;數(shù)據(jù)流圖(DFD)描述數(shù)據(jù)在系統(tǒng)中如何被傳送或變換,以及描述如何實(shí)現(xiàn)對(duì)數(shù)據(jù)流進(jìn)行變換的功能(或子功能)-功能模型;狀態(tài)-遷移圖(STD)描述系統(tǒng)對(duì)外部事件如何響應(yīng),如何動(dòng)作-行為模型。因此,ERD用于數(shù)據(jù)建模,DFD用于功能建模,STD用于行為建模。11、什么是數(shù)據(jù)規(guī)范化?如何進(jìn)行? P64為-減少數(shù)據(jù)冗余,確保數(shù)據(jù)一致性;避免出現(xiàn)插入或刪除異常,簡(jiǎn)化數(shù)據(jù)的修改過程-而進(jìn)行的數(shù)據(jù)結(jié)構(gòu)規(guī)范化。l 進(jìn)行數(shù)據(jù)規(guī)范化(1) 將數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表(關(guān)系)。即:a. 表格中每個(gè)信息項(xiàng)必須是一個(gè)不可分割的數(shù)據(jù)項(xiàng),不可以是組項(xiàng);b. 表格中每一列(表示屬性)中所有信息項(xiàng)必須是同一類型,各列的名字(屬性名)互異,列的次序任意;c. 表格中各行(表示一個(gè)元組)互不相同,行的次序任意。(2) 通常用“范式(normal forms)”定義消除數(shù)據(jù)冗余的程度。a. 第一范式:每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含內(nèi)部結(jié)構(gòu)。例如:表1、表2、表3;b. 第二范式:滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。例如:表4、表5;(表1、2、3是嗎?)c. 第三范式:符合第二范式的條件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個(gè)非關(guān)鍵字屬性不能僅僅是對(duì)另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述(即一個(gè)非關(guān)鍵字屬性值不依賴于另一個(gè)非關(guān)鍵字屬性值)。第5章 總體設(shè)計(jì)12、總體設(shè)計(jì)階段的主要任務(wù)(主要工作)是什么?總體設(shè)計(jì)說明書中包含哪些內(nèi)容? P92-93l 系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的物理實(shí)現(xiàn)方案(1) 設(shè)想供選擇的方案在設(shè)想供選擇方案時(shí),以需求分析得到的數(shù)據(jù)流圖為出發(fā)點(diǎn),畫出自動(dòng)化邊界,形成不同的實(shí)現(xiàn)的物理方案。P6-8(2) 選取合理的方案 P9(3) 推薦最佳方案 P10l 結(jié)構(gòu)設(shè)計(jì)階段,確定軟件的結(jié)構(gòu)(4) 功能分解,從實(shí)現(xiàn)的角度細(xì)化邏輯模型 P12(5) 設(shè)計(jì)軟件結(jié)構(gòu) P13(6) 設(shè)計(jì)數(shù)據(jù)庫 P14(7) 制定測(cè)試計(jì)劃 P14(8) 書寫文檔 P1516(9) 審查和復(fù)審 P16包含內(nèi)容:(1) 系統(tǒng)說明:主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對(duì)最佳方案的概括描述,精華的數(shù)據(jù)流圖,用層次圖或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),用IPO圖或其他工具(例如PDL語言)簡(jiǎn)要描述的各個(gè)模塊的算法,模塊間的接口關(guān)系,以及需求、功能和模塊三者之間的交叉參照關(guān)系等。(2) 用戶手冊(cè):更具總體設(shè)計(jì)階段的結(jié)果,修改更正在需求分析階段產(chǎn)生的初步用戶手冊(cè)。(3) 測(cè)試計(jì)劃:包括測(cè)試策略,測(cè)試方案,預(yù)期的測(cè)試結(jié)果,測(cè)試進(jìn)度計(jì)劃等。(4) 詳細(xì)的實(shí)現(xiàn)計(jì)劃(5) 數(shù)據(jù)庫設(shè)計(jì)結(jié)果13、什么是模塊獨(dú)立性,度量(描述)它的兩個(gè)指標(biāo):內(nèi)聚、耦合,含義分別是什么?在面向數(shù)據(jù)流的方法中,內(nèi)聚、耦合各分為哪幾級(jí),每級(jí)的具體含義分別是什么?強(qiáng)度從弱到強(qiáng)如何排列? P97-99模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能,并且與其他模塊之間關(guān)系很簡(jiǎn)單。獨(dú)立的模塊(1)比較容易開發(fā),(2)比較容易維護(hù)。因此在設(shè)計(jì)軟件結(jié)構(gòu)時(shí),應(yīng)充分考慮模塊的獨(dú)立性。l 耦合(Coupling):是對(duì)軟件結(jié)構(gòu)內(nèi)不同模塊之間相互關(guān)聯(lián)程度的強(qiáng)弱的度量。它取決于各個(gè)模塊之間接口的復(fù)雜程度、進(jìn)入或訪問一個(gè)模塊的點(diǎn)以及哪些信息通過接口傳遞。模塊間的耦合程度直接影響系統(tǒng)的可理解性、可測(cè)試性、可靠性和可維護(hù)性。在設(shè)計(jì)軟件時(shí)應(yīng)追求盡可能松散耦合的系統(tǒng)。如果模塊間聯(lián)系較少,錯(cuò)誤在模塊間傳播的可能性也隨之變小。l 耦合度可以分為若干級(jí)別:(1) 非直接耦合-兩個(gè)模塊沒有直接關(guān)系(如模塊1和模塊2),每一個(gè)都能獨(dú)立地工作而不需要另一個(gè)模塊的存在。非直接耦合兩個(gè)模塊間的獨(dú)立性最強(qiáng)。非直接耦合(2) 數(shù)據(jù)耦合-兩個(gè)模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是簡(jiǎn)單的數(shù)據(jù)信息。這屬于松散耦合。(3) 標(biāo)記耦合-兩個(gè)模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)參數(shù)加以聯(lián)系(不是簡(jiǎn)單數(shù)據(jù),而是記錄、數(shù)組等),則稱這兩個(gè)模塊間存在標(biāo)記偶合。 數(shù)據(jù)耦合 標(biāo)記耦合(4) 特征耦合-屬于標(biāo)記耦合,把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞,而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素。P39控制耦合 公共環(huán)境耦合(5) 控制耦合-一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的某部分功能??刂岂詈显黾恿死斫夂途幊痰膹?fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴。去除模塊間控制耦合的方法:a.將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行b.被調(diào)用模塊分解成若干單一功能模塊(6) 外部耦合-一組模塊都訪問同一全局簡(jiǎn)單變量,而且不是通過參數(shù)傳遞該全局變量的信息。(7) 公共環(huán)境耦合-兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用。公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)、任何存儲(chǔ)介質(zhì)上的文件、物理設(shè)備等等。P39-40公共環(huán)境偶合必不可少,但耦合模塊的數(shù)目應(yīng)盡量少。(8) 內(nèi)容耦合P41內(nèi)容耦合l 內(nèi)聚(Cohesion):標(biāo)志同一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。高內(nèi)聚:模塊內(nèi)部完成單一的處理;低內(nèi)聚:模塊內(nèi)部各部分關(guān)聯(lián)不緊密,完成分散的多個(gè)處理任務(wù);設(shè)計(jì)時(shí)應(yīng)該力爭(zhēng)做到高內(nèi)聚。l 內(nèi)聚度也可以分為若干級(jí)別:(1) 偶然內(nèi)聚-當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)也很松散,則稱這種模塊為偶然內(nèi)聚模塊,它的內(nèi)聚程度最低。12(2) 邏輯內(nèi)聚-把幾種相關(guān)功能或邏輯上相似的功能組合在一個(gè)模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。SXYZWABCD(3) 時(shí)間內(nèi)聚-一個(gè)模塊包含若干必須在同一段時(shí)間內(nèi)執(zhí)行的任務(wù)。例如系統(tǒng)初始化模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時(shí)間性聚合模塊。(4) 過程內(nèi)聚-一個(gè)模塊內(nèi)的處理元素是相關(guān)的且僅有控制聯(lián)系,各處理元素必須以特定次序執(zhí)行。ClearbufferInput FileReset signalCountCalculateClose File(5) 通信內(nèi)聚-模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù)。(6) 順序內(nèi)聚-一個(gè)模塊內(nèi)的處理元素既包含數(shù)據(jù)聯(lián)系也包含控制聯(lián)系,而且這些處理必須順序執(zhí)行(通常一個(gè)處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù))。(7) 功能內(nèi)聚-一個(gè)模塊中各個(gè)部分都是完成某單一功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成同一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的,則稱該模塊為功能內(nèi)聚模塊。功能內(nèi)聚是最高程度的內(nèi)聚。信息內(nèi)聚-這種模塊完成多個(gè)功能,各個(gè)功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能有一個(gè)唯一的入口點(diǎn)。這個(gè)模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個(gè)功能。由于這個(gè)模塊的所有功能都是基于同一個(gè)數(shù)據(jù)結(jié)構(gòu),因此,它是一個(gè)信息內(nèi)聚的模塊。信息內(nèi)聚模塊可以看成是多個(gè)功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個(gè)模塊內(nèi),不為別的模塊所知曉。功能內(nèi)聚 信息內(nèi)聚14、保證模塊獨(dú)立性的設(shè)計(jì)原則是什么?P98,99耦合是影響軟件復(fù)雜程度的一個(gè)重要因素。應(yīng)該采取下述設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少量使用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不允許內(nèi)容耦合,最終降低模塊間接口的復(fù)雜性。設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,而且效果和高內(nèi)聚相差不多;但是,低內(nèi)聚很壞,不要使用。15、結(jié)構(gòu)化設(shè)計(jì)(SD)方法(面向數(shù)據(jù)流的設(shè)計(jì)方法)中,數(shù)據(jù)流劃分成哪兩類?如何將分析的結(jié)果(數(shù)據(jù)流圖)逐層分解、轉(zhuǎn)換成設(shè)計(jì)的初步結(jié)果(層次圖/結(jié)構(gòu)圖)-事務(wù)分析和變換分析的方法? 課件DFD中的數(shù)據(jù)流可分為兩類:變換型數(shù)據(jù)流、事務(wù)型數(shù)據(jù)流;5、變換分析-從變換流到變換型結(jié)構(gòu)的映射過程(1)(3) P7879(4) 確定輸入流和輸出流的邊界,從而孤立出變換中心;(5) 完成第一級(jí)分解,輸入流映射成輸入模塊,變換部分映射成變換(處理)模塊,輸出流映射成輸出模塊;頂層增加主控協(xié)調(diào)模塊;(6) 完成第二級(jí)分解,從變換中心的邊界開始,沿輸入流外推,先遇到的為上級(jí)模塊;沿輸出流外推,先遇到的為上級(jí)模塊;變換部分變?yōu)樗侥K;第二級(jí)分解后的SC圖(7) 得到完整的SC圖和對(duì)應(yīng)的層次圖,變換完成后,對(duì)每個(gè)模塊進(jìn)行簡(jiǎn)要的說明。數(shù)據(jù)流圖對(duì)應(yīng)的層次圖稍復(fù)雜一點(diǎn)的映射例子:P108-110模塊的說明:P87-88(8) 根據(jù)模塊獨(dú)立性原則和啟發(fā)式規(guī)則,對(duì)得到的軟件結(jié)構(gòu)進(jìn)一步優(yōu)化。對(duì)以上得到的軟件結(jié)構(gòu)進(jìn)行模塊分解或組合,讓模塊盡可能高的內(nèi)聚、盡可能松散的耦合,最重要的是,要得到一個(gè)易于實(shí)現(xiàn)、易于測(cè)試和易于維護(hù)的軟件結(jié)構(gòu)。P110111圖5.165.196、事物分析-從事物流到事物型結(jié)構(gòu)的映射過程基本步驟與變換分析相同(前三步相同),只是由數(shù)據(jù)流圖到軟件結(jié)構(gòu)的變換方法不同:第一級(jí)分解,輸入通路映射為接收模塊、事務(wù)中心直接變換為調(diào)度模塊、每個(gè)輸出通路映射成一個(gè)動(dòng)作模塊,另加一個(gè)主控模塊;輸入分支的第二級(jí)分解與變換流的方法類似;對(duì)輸出分支進(jìn)行第二級(jí)分解(每個(gè)分支進(jìn)行下一級(jí)的變換分析或事物分析);第一級(jí)分解第二級(jí)分解書上的例子:P97注意:P98模塊說明:為每一個(gè)模塊寫一份處理說明(IPO圖)、為每一個(gè)模塊提供一份接口說明、確定全局?jǐn)?shù)據(jù)結(jié)構(gòu)和局部數(shù)據(jù)結(jié)構(gòu)、指出所有的設(shè)計(jì)約束和限制。關(guān)于分層數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖的方法第6章 詳細(xì)設(shè)計(jì)16、詳細(xì)設(shè)計(jì)的任務(wù)(主要工作)有哪些?結(jié)束后得到哪些成果(文檔的內(nèi)容)? P課件1用一定的工具精確描述目標(biāo)系統(tǒng),從而方便在編碼階段可以把這種描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。(1) 確定每一模塊的算法(處理流程)(2) 確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu)(3) 確定本模塊的外部接口和用戶界面(4) 為每一模塊設(shè)計(jì)一組測(cè)試用例(單元測(cè)試計(jì)劃)詳細(xì)設(shè)計(jì)階段的任務(wù)還不是具體地編寫程序,而是要設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的程序代碼。因此,詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量??紤]程序代碼的質(zhì)量時(shí)必須注意,程序的“讀者”有兩個(gè),那就是計(jì)算機(jī)和人。詳細(xì)設(shè)計(jì)不僅要邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)出的處理過程容易閱讀和理解。17、詳細(xì)設(shè)計(jì)的描述工具的概念和使用:程序流程圖、盒圖、PAD圖、判定表等;什么是,基本符號(hào)和表示的意義如何? P124-128程序流程圖l 基本符號(hào)(較完整的符號(hào)集合P125圖6.3)可表示的控制結(jié)構(gòu)見前圖(結(jié)構(gòu)化程序設(shè)計(jì)中基本的控制流程)。盒圖(N-S圖)l 基本符號(hào)和表示的結(jié)構(gòu)3、PAD圖l 基本符號(hào)和表示的結(jié)構(gòu) P444、判定表和判定樹l 判定表的組成: P4818、計(jì)算程序模塊環(huán)形復(fù)雜度的方法怎樣?模塊的環(huán)形復(fù)雜度所表示的意義是什么? P137-138(1) 流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度區(qū)域:由邊和結(jié)點(diǎn)圍成的面積稱為區(qū)域。當(dāng)計(jì)算區(qū)域數(shù)時(shí)應(yīng)該包括圖外部未被圍起來的那個(gè)區(qū)域。即流圖的封閉區(qū)域數(shù)加1。(2) 流圖的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù)。(3) 流圖的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。第7章 實(shí)現(xiàn)(編碼和測(cè)試)19、在結(jié)構(gòu)化程序設(shè)計(jì)中,“好代碼”的主要標(biāo)準(zhǔn)是什么?程序的效率從哪幾方面體現(xiàn)?P147-149源程序?qū)嶋H上也是一種供人閱讀的文檔,有一個(gè)文檔的風(fēng)格問題。應(yīng)該使程序具有良好的風(fēng)格。源程序代碼的邏輯簡(jiǎn)明清晰、易讀易懂是好程序的一個(gè)重要標(biāo)準(zhǔn)。1、源程序文檔化源程序文檔化包括恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等等。l 正確、適當(dāng)?shù)某绦蜃⑨寠A在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段,注釋決不是可有可無的;一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個(gè)源程序的1/3到1/2,甚至更多。注釋分為序言性注釋和功能性注釋。l 視覺組織-空格、空行和移行l(wèi) 2、數(shù)據(jù)說明l 在設(shè)計(jì)階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在編寫程序時(shí),則需要注意數(shù)據(jù)說明的風(fēng)格。為了使程序中數(shù)據(jù)說明更易于理解和維護(hù),必須注意以下幾點(diǎn):變量命名時(shí)采用一定的規(guī)范, 數(shù)據(jù)說明的次序標(biāo)準(zhǔn)化;數(shù)據(jù)類型在說明中的次序:當(dāng)多個(gè)變量名在同一條語句中被說明時(shí),應(yīng)該按字母順序排列這些變量;如果設(shè)計(jì)時(shí)使用了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注釋說明用程序設(shè)計(jì)語言實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法和特點(diǎn)。3、語句構(gòu)造l 不要為了節(jié)省空間把多個(gè)語句寫在一行;l 避免過深的循環(huán)嵌套或條件嵌套;l 盡量避免復(fù)雜的條件測(cè)試(判斷),減少對(duì)“非”條件的測(cè)試(判斷);l 采用縮進(jìn)風(fēng)格,使程序呈現(xiàn)出階梯形式的清晰明顯的層次結(jié)構(gòu);l 利用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀;ll 統(tǒng)一程序書寫風(fēng)格。4、輸入輸出設(shè)計(jì)在設(shè)計(jì)和編寫程序時(shí)應(yīng)該考慮下述有關(guān)輸入輸出風(fēng)格的規(guī)則:l 對(duì)所有的輸入數(shù)據(jù)都要進(jìn)行檢驗(yàn),識(shí)別錯(cuò)誤的輸入,以保證每個(gè)數(shù)據(jù)的有效性;l 檢查輸入項(xiàng)的各種重要組合的合法性,必要時(shí)報(bào)告輸入狀態(tài)信息;l 使得輸入的步驟和操作盡可能簡(jiǎn)單,并保持簡(jiǎn)單的輸入格式;l 輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式輸入;l 應(yīng)允許缺省值;l 輸入一批數(shù)據(jù)時(shí),最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目;l 在交互式輸入時(shí),要在屏幕上使用提示符明確提示交互輸入的請(qǐng)求,指明可使用選擇項(xiàng)的種類和取值范圍。同時(shí),在數(shù)據(jù)輸入的過程中和輸入結(jié)束時(shí),也要在屏幕上給出狀態(tài)信息;l 當(dāng)程序設(shè)計(jì)語言對(duì)輸入輸出格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式與輸入語句的要求的一致性;l 給所有的輸出加注解,并設(shè)計(jì)輸出報(bào)表格式。5、程序的效率l 概述:程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存空間。程序編碼是最后提高運(yùn)行速度和節(jié)省存儲(chǔ)的機(jī)會(huì),因此在此階段不能不考慮程序的效率。l 運(yùn)行時(shí)間效率 P2324l 存儲(chǔ)效率在大中型計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)限制不再是主要問題。在這種環(huán)境下,對(duì)內(nèi)存采取基于操作系統(tǒng)的請(qǐng)求分頁式的虛擬存儲(chǔ)管理。存儲(chǔ)效率與操作系統(tǒng)的分頁功能直接有關(guān)。l I/O效率(1) 輸入輸出可分為兩種類型:a. 面向人(操作員)的輸入輸出b. 面向設(shè)備的輸入輸出(2) 如果操作員能夠十分方便、簡(jiǎn)單地錄入輸入數(shù)據(jù),或者能夠十分直觀、一目了然地了解輸出信息,則可以說面向人的輸入輸出是高效的。(3) 關(guān)于提高設(shè)備輸入/輸出效率的指導(dǎo)原則:a. 輸入/輸出的請(qǐng)求應(yīng)當(dāng)最小化;b. 對(duì)于所有的輸入/輸出操作,安排適當(dāng)?shù)木彌_區(qū),以減少頻繁的信息交換。c. 對(duì)輔助存儲(chǔ)(例如磁盤),選擇盡可能簡(jiǎn)單的,可接受的存取方法;d. 對(duì)輔助存儲(chǔ)的輸入/輸出,應(yīng)當(dāng)成塊傳送;e. 對(duì)終端或打印機(jī)的輸入/輸出,應(yīng)考慮設(shè)備特性,盡可能改善輸入/輸出的質(zhì)量和速度;f. 任何不易理解的、對(duì)改善輸入/輸出效果關(guān)系不大的措施都是不可取的;任何不易理解的所謂“超高效”的輸入/輸出是毫無價(jià)值的。20、軟件測(cè)試的目標(biāo)是什么? P150(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程(2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。21、軟件測(cè)試的三大階段:?jiǎn)卧獪y(cè)試、集成測(cè)試(組裝測(cè)試)、確認(rèn)測(cè)試(驗(yàn)收測(cè)試)的主要工作(目的)是什么?測(cè)試計(jì)劃分別在什么時(shí)候做? P151-152l 模塊測(cè)試-單元在設(shè)計(jì)得好的軟件系統(tǒng)中,每個(gè)模塊完成一個(gè)清晰定義的子功能,而且這個(gè)子功能和同級(jí)其他模塊的功能之間沒有相互依賴關(guān)系。因此,有可能把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來測(cè)試,而且通常比較容易設(shè)計(jì)檢驗(yàn)?zāi)K正確性的測(cè)試方案。模塊測(cè)試的目的是保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行,所以模塊測(cè)試通常又稱為單元測(cè)試。在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是詳細(xì)設(shè)計(jì)和編碼的錯(cuò)誤。l 子系統(tǒng)測(cè)試-局部子系統(tǒng)測(cè)試是把經(jīng)過單元測(cè)試的若干模塊放在一起形成一個(gè)子系統(tǒng)來測(cè)試。模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過程中的主要問題,因此,這個(gè)步驟著重測(cè)試模塊的接口。l 系統(tǒng)測(cè)試-全局系統(tǒng)測(cè)試是把經(jīng)過測(cè)試的若干子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來測(cè)試。在這個(gè)過程中不僅應(yīng)該發(fā)現(xiàn)設(shè)計(jì)和編碼的錯(cuò)誤,還應(yīng)該驗(yàn)證系統(tǒng)確實(shí)能提供需求說明書中指定的功能,而且系統(tǒng)的動(dòng)態(tài)特性也符合預(yù)定要求。在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤。不論是子系統(tǒng)測(cè)試還是系統(tǒng)測(cè)試,都兼有檢測(cè)和組裝兩重含義,通常合稱為集成測(cè)試。l 驗(yàn)收測(cè)試-用戶參與驗(yàn)收測(cè)試把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè)試基本類似,但是它是在用戶積極參與下進(jìn)行的,而且可能主要使用實(shí)際數(shù)據(jù)(系統(tǒng)將來要處理的信息)進(jìn)行測(cè)試。驗(yàn)收測(cè)試的目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿足用戶的需要,在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯(cuò)誤。驗(yàn)收測(cè)試也稱為確認(rèn)測(cè)試。分別是詳細(xì)設(shè)計(jì)之后,總體設(shè)計(jì)之后,需求分析之后22、什么是黑盒測(cè)試?什么是白盒測(cè)試? P課件12-14黑盒測(cè)試-已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以針對(duì)產(chǎn)品的每個(gè)(或主要)功能設(shè)計(jì)一組用例(包括輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)),通過測(cè)試來檢驗(yàn)是否每個(gè)功能都能正常使用白盒測(cè)試-知道產(chǎn)品的內(nèi)部工作流程,可以對(duì)每一條主要執(zhí)行通道設(shè)計(jì)一組用例,通過測(cè)試來檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行。23、典型的白/黑盒測(cè)試技術(shù)有哪幾個(gè),含義如何? P課件29-46典型的白合測(cè)試技術(shù)有:邏輯覆蓋測(cè)試-就是基于邏輯覆蓋的方法設(shè)計(jì)測(cè)試用例,是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù),包括:(1)語句覆蓋 (2)判定覆蓋(3)條件覆蓋 (4)判定/條件覆蓋(5)條件組合覆蓋(6)點(diǎn)覆蓋 (7)邊覆蓋 (8)路徑覆蓋典型的黑盒測(cè)試技術(shù)有:2、等價(jià)類劃分l 方法概述:將所有輸入數(shù)據(jù)(也稱軟件的輸入域)按有效的(合理的)和無效的(不合理的)劃分成若干個(gè)子集合(也稱為若干個(gè)等價(jià)類);合理假設(shè)每個(gè)等價(jià)類中的一個(gè)典型值在測(cè)試中的作用與這一子集中所有其它值的作用相同;這樣,測(cè)試每個(gè)等價(jià)類中的一個(gè)代表值的結(jié)果就等價(jià)于對(duì)該類其他所有值的測(cè)試。24、邏輯覆蓋測(cè)試中,各類測(cè)試發(fā)現(xiàn)錯(cuò)誤的能力強(qiáng)弱如何?簡(jiǎn)單的邏輯覆蓋測(cè)試用例如何設(shè)計(jì)。P162-165語句覆蓋 = 點(diǎn)覆蓋 判定覆蓋 = 邊覆蓋 條件覆蓋 = 判定/條件覆蓋 條件組合覆蓋 路徑覆蓋第8章 維護(hù)25、什么是軟件維護(hù)、軟件維護(hù)的特點(diǎn)? P課件1-4所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。改正性維護(hù)(Corrective Maintenance)-診斷和改正錯(cuò)誤的過程適應(yīng)性維護(hù)(Adaptive Maintenance )-為適應(yīng)變化了的環(huán)境而進(jìn)行的軟件修改活動(dòng)擴(kuò)充與完善性維護(hù)(Perfective Maintenance)預(yù)防性維護(hù)(Preventive Maintenance)軟件維護(hù)的特點(diǎn)1、結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大l 非結(jié)構(gòu)化維護(hù)-軟件配置的惟一成份是程序代碼,維護(hù)活動(dòng)從艱苦地評(píng)價(jià)程序代碼開始。 P8l 結(jié)構(gòu)化維護(hù)-有一套完整的軟件配置存在,維護(hù)工作從評(píng)價(jià)設(shè)計(jì)文檔開始。 P92、影響軟件維護(hù)的因素諸多系統(tǒng)大小、程序設(shè)計(jì)語言、系統(tǒng)年齡、是否應(yīng)用數(shù)據(jù)庫技術(shù)、是否采用較先進(jìn)的軟件開發(fā)技術(shù)、開發(fā)時(shí)是否考慮將來的修改、其他因素(應(yīng)用的類型、數(shù)學(xué)模型、任務(wù)的難度、開關(guān)與標(biāo)記、IF嵌套深度、索引或下標(biāo)數(shù)等)3、軟件維護(hù)的代價(jià)高昂l 首先,軟件維護(hù)需要的工作量很大,平均說來,大型軟件的維護(hù)成本高達(dá)開發(fā)成本的4倍左右。目前國外許多軟件開發(fā)組織把60%以上的人力用于維護(hù)已有的軟件,而且隨著軟件數(shù)量增多和使用壽命延長(zhǎng),這個(gè)百分比還在持續(xù)上升。l 有形的軟件維護(hù)成本是花費(fèi)了多少錢,而無形的維護(hù)成本有更大的負(fù)面影響。(1) 一些合理的修復(fù)或修改請(qǐng)求不能及時(shí)安排,使得客戶不滿意;(2) 變更的結(jié)果引入新的故障,使得軟件整體質(zhì)量下降;(3) 把軟件人員抽調(diào)到維護(hù)工作中,干擾了軟件開發(fā)工作。l 維護(hù)工作量的計(jì)算模型:其中:M 是維護(hù)中消耗的總工作量P 是生產(chǎn)性工作量K 是一個(gè)經(jīng)驗(yàn)常數(shù)c 是因缺乏好的設(shè)計(jì)和文檔而導(dǎo)致復(fù)雜性的度量d 是維護(hù)人員對(duì)軟件熟悉程度的度量模型表明,如果使用了不好的軟件開發(fā)方法(未按軟件工程要求做),原來參加開發(fā)的人員或小組不能參加維護(hù),則工作量(及成本)將按指數(shù)級(jí)增加。4、影響軟件維護(hù)的(維護(hù)軟件時(shí)將面對(duì)的)典型問題 P1416l 難以讀懂他人的程序l 無文檔或不全l 軟件人員流動(dòng)性大l 設(shè)計(jì)時(shí)未考慮修改需要,修改困難l 維護(hù)工作無吸引力,缺乏成就感l(wèi) 難以跟蹤軟件的創(chuàng)建過程、軟件版本的進(jìn)化過程,軟件的變化未在文檔中反映出來26、決定軟件可維護(hù)性的因素有哪些?P194-195l 可理解性 P33l 可測(cè)試性 P34l 可修改性 P35l 可移植性 P35l 可重用性 P363727、什么是軟件再工程,它由哪些部分組成?P課件9軟件再工程,也叫做修理或再生,是一類軟件工程活動(dòng)。它將逆向工程、重構(gòu)和正向工程組合起來,將現(xiàn)存系統(tǒng)重新構(gòu)造為新的形式。它從已存在的程序中重新獲得設(shè)計(jì)信息,而且使用這些信息來改建或重構(gòu)現(xiàn)有的系統(tǒng),同時(shí)加進(jìn)新的功能或改善它的性能,以提升它的綜合質(zhì)量。第9章、面向?qū)ο蠓椒▽W(xué)28、典型的面向?qū)ο筌浖こ躺芷谀P褪鞘裁??噴泉模型是近幾年提出來的軟件生命周期模型。它是以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ),以用戶需求為動(dòng)力,以對(duì)象來驅(qū)動(dòng)的模型?!皣娙币辉~本身體現(xiàn)了逐步求精(迭代)和無間隙特性。29、面向?qū)ο蠓椒ǖ闹饕卣魇鞘裁??P課件7-10l 封裝性封裝是一種信息隱蔽技術(shù),它體現(xiàn)在類的說明中,是對(duì)象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶只能見到對(duì)象的外特性(對(duì)象能接受哪些消息,具有那些處理能力),而對(duì)象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法)對(duì)用戶是隱蔽的。P61封裝的目的在于把對(duì)象的設(shè)計(jì)者和對(duì)象者的使用分開,使用者不必知曉行為實(shí)現(xiàn)的細(xì)節(jié),只須用設(shè)計(jì)者提供的消息來訪問該對(duì)象。l 繼承性繼承性是子類自動(dòng)共享父類的數(shù)據(jù)和方法的機(jī)制。它由類的派生功能體現(xiàn)。一個(gè)類直接繼承其父類的全部描述,同時(shí)允許修改和擴(kuò)充。P64 繼承具有傳遞性。繼承分為單繼承(一個(gè)子類只有一父類)和多重繼承(一個(gè)類有多個(gè)父類)。P65繼承性機(jī)制使得子類不僅可以重用其父類的數(shù)據(jù)結(jié)構(gòu)和程序代碼,而且可以在父類代碼的基礎(chǔ)上方便地修改和擴(kuò)充,這種修改并不影響對(duì)原有類的使用。在程序執(zhí)行期間,對(duì)對(duì)象某一性質(zhì)的查找是從該對(duì)象類在類等級(jí)中所在的層次開始,沿類等級(jí)逐層向上進(jìn)行的,并把第一個(gè)被找到的對(duì)該性質(zhì)的定義作為所要的性質(zhì)。因此,低層的性質(zhì)會(huì)屏蔽高層的同名性質(zhì)。例如:建立一個(gè)新類起重車。它的底盤、發(fā)動(dòng)機(jī)、輪胎、驅(qū)動(dòng)裝置等都在已有類汽車中。關(guān)系如右圖所示。新類是已有類的特殊情形。這時(shí)直接讓起重車類作為汽車類的子類即可。增加一個(gè)新類拖拉機(jī)。它的底盤、發(fā)動(dòng)機(jī)等與汽車不同,但驅(qū)動(dòng)裝置、輪胎等與汽車相同。關(guān)系如下左圖所示。調(diào)整繼承結(jié)構(gòu),建立一個(gè)新的一般的車輛類,把拖拉機(jī)與汽車類的共性放到車輛類中,拖拉機(jī)與汽車類都成為車輛類的子類。車輛是抽象類,相關(guān)操作到子類汽車找。l 多態(tài)性對(duì)象根據(jù)所接收的消息而做出動(dòng)作。同一消息被不同的對(duì)象接受時(shí)可產(chǎn)生完全不同的行動(dòng);當(dāng)對(duì)象處于不同狀態(tài)時(shí),做同一個(gè)操作所得到的效果也是不同的,這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個(gè)通用的信息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接受消息的對(duì)象自行決定,即對(duì)同一消息即可調(diào)用不同的方法。例如:想要在屏幕上畫一系列多邊形,多態(tài)性允許發(fā)送消息draw,根據(jù)消息接收對(duì)象的類型不同,畫出不同的多邊形。draw針對(duì)的是一系列的類型(類族)而不僅僅是一個(gè)類型。多態(tài)性的實(shí)現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實(shí)現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對(duì)象就能給通用消息以不同的響應(yīng)。l 重載: P7130、面向?qū)ο蟮姆治鲈O(shè)計(jì)中,建立的軟件的3種模型分別是什么?使用UML工具時(shí)分別用什么圖形來描述這3種模型?l 對(duì)象模型-描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),是最核心的、最基本的模型l 動(dòng)態(tài)模型-描述系統(tǒng)的控制結(jié)構(gòu),即在什么條件下執(zhí)行哪些操作l 功能模型-描述系統(tǒng)的功能,完成數(shù)據(jù)值的變化通常,使用UML的類圖來建立對(duì)象模型,使用UML的狀態(tài)圖來建立動(dòng)態(tài)模型,使用數(shù)據(jù)流圖和UML的用例圖來建立功能模型第13章 軟件項(xiàng)目管理31、軟件規(guī)模估算的兩種典型方法是什么?含義分別是什么? P305-3071、代碼行技術(shù)-是以整個(gè)軟件的代碼行數(shù)作為軟件規(guī)模的估算值l 估算方法(1) 了解軟件細(xì)節(jié)(軟件的功能、性能、限制、接口和可靠性等),將其細(xì)化分解成較詳細(xì)的任務(wù)單元;(2) 由多名有經(jīng)驗(yàn)的軟件工程師,每人分別對(duì)各單元的代碼行數(shù)做出估計(jì)(參照類似軟件的相近功能模塊),估計(jì)該程序模塊的最小規(guī)模(設(shè)為a)、最大規(guī)模(設(shè)為b)和最可能的規(guī)模(設(shè)為m);(3) 求出a、b、m的平均值,再用下式計(jì)算單元規(guī)模的估計(jì)值:(4) 把軟件的每個(gè)功能模塊的規(guī)模估計(jì)值累加,就是整個(gè)軟件的規(guī)模估計(jì)值;(5) 當(dāng)程序規(guī)模較小時(shí)常用的單位是代碼行數(shù)(LOC),當(dāng)程序規(guī)模較大時(shí)常用的單位是千行代碼數(shù)(KLOC)。l 優(yōu)、缺點(diǎn)(1) 簡(jiǎn)單、比較準(zhǔn)確、客觀(在有以往類似成果經(jīng)驗(yàn)值的基礎(chǔ)上);(2) 不太合理、不能適用于非過程語言,用不同語言完成同一項(xiàng)目估算值將不一樣。2、功能點(diǎn)技術(shù)-依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模。這種方法用功能點(diǎn)(FP)為單位度量軟件規(guī)模l 信息域特性: P810l 估算方法:(1) 根據(jù)產(chǎn)品的每個(gè)信息域特性值(即Inp、Out、Inq、Maf和Inf)和軟件產(chǎn)品所在的領(lǐng)域(軟件類型),將產(chǎn)品的每個(gè)信息域特性進(jìn)行分級(jí),分為簡(jiǎn)單級(jí)、平均級(jí)或復(fù)雜級(jí),并根據(jù)等級(jí)為每個(gè)特性分配一個(gè)功能點(diǎn)數(shù)。點(diǎn)數(shù)的值沒有硬性規(guī)定,例如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物化學(xué)(第4版)課件 第2章 核酸化學(xué)
- 氣候變化所致小島國損失損害補(bǔ)償責(zé)任問題研究
- 基于STSE教育理念的初中化學(xué)金屬和金屬材料的教學(xué)實(shí)踐研究
- 下雨天安全教育
- 關(guān)愛婦女心理健康:現(xiàn)狀與行動(dòng)指南
- 頸椎間盤的護(hù)理課件
- 爆炸安全知識(shí)培訓(xùn)
- 人事勞資培訓(xùn)
- 項(xiàng)目管理人員安全教育培訓(xùn)
- 項(xiàng)目介紹課件模版
- 糞便無害化處理廠建設(shè)方案
- 恢復(fù)執(zhí)行申請(qǐng)書
- 智慧的光芒普照每位學(xué)生 論文
- 銷售行業(yè)跑業(yè)務(wù)計(jì)劃書
- 政府采購詢價(jià)采購函報(bào)價(jià)單格式及論大學(xué)生寫作能力
- 建筑物拆除工程監(jiān)理實(shí)施細(xì)則
- LY/T 3256-2021全國優(yōu)勢(shì)喬木樹種(組)基本木材密度測(cè)定
- GB/T 25760-2010滾動(dòng)軸承滾針和推力球組合軸承外形尺寸
- 特勞特-定位課件
- 口腔工藝管理基教學(xué)課件
- 真石漆施工外墻涂料工藝方案課件
評(píng)論
0/150
提交評(píng)論