軟件制造工程程序設(shè)計(jì)_第1頁(yè)
軟件制造工程程序設(shè)計(jì)_第2頁(yè)
軟件制造工程程序設(shè)計(jì)_第3頁(yè)
軟件制造工程程序設(shè)計(jì)_第4頁(yè)
軟件制造工程程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩123頁(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)介

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第1頁(yè)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第2頁(yè)。程序設(shè)計(jì)概述

__程序設(shè)計(jì)在軟件開(kāi)發(fā)中的位置軟件工程管理規(guī)劃階段需求分析A開(kāi)發(fā)階段內(nèi)部設(shè)計(jì)B外部設(shè)計(jì)移植、安裝、維護(hù)移植安裝維護(hù)HD程序設(shè)計(jì)·制造E組合測(cè)試F系統(tǒng)測(cè)試G運(yùn)行測(cè)試以內(nèi)部設(shè)計(jì)書(shū)為基礎(chǔ),對(duì)程序單元內(nèi)的功能模塊進(jìn)行分割和功能模塊的功能處理給予說(shuō)明,作出程序設(shè)計(jì)書(shū)。按照程序設(shè)計(jì)書(shū)進(jìn)行程序編碼。按照程序設(shè)計(jì)書(shū)進(jìn)行程序單元測(cè)試。C軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第3頁(yè)。程序設(shè)計(jì)概述_概念概要設(shè)計(jì)又稱為總體設(shè)計(jì)或外部設(shè)計(jì),詳細(xì)設(shè)計(jì)又稱為過(guò)程設(shè)計(jì)或內(nèi)部設(shè)計(jì)。程序設(shè)計(jì)程序設(shè)計(jì)是以詳細(xì)設(shè)計(jì)為基礎(chǔ),對(duì)程序單元內(nèi)的功能模塊進(jìn)行細(xì)化,對(duì)功能模塊的功能處理要求和實(shí)現(xiàn)方法給予說(shuō)明,并作出程序設(shè)計(jì)書(shū)。程序設(shè)計(jì)的結(jié)果將是編程工程和測(cè)試工程的主要依據(jù)。近年來(lái),由于很多應(yīng)用系統(tǒng)在開(kāi)發(fā)周期短、開(kāi)發(fā)成本低的條件下進(jìn)行設(shè)計(jì),常常把詳細(xì)設(shè)計(jì)和程序設(shè)計(jì)的階段合為一體。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第4頁(yè)。程序設(shè)計(jì)概述_作業(yè)流程及描述D1開(kāi)發(fā)準(zhǔn)備工作D1.1詳細(xì)設(shè)計(jì)成果物的確認(rèn)D1.1.1確認(rèn)詳細(xì)設(shè)計(jì)成果物D1.2制定工作計(jì)劃D1.2.1制定工作計(jì)劃D1.3檢查工作計(jì)劃D1.3.1檢查工作計(jì)劃在進(jìn)行程序設(shè)計(jì)·制造作業(yè)之前,要確認(rèn)詳細(xì)設(shè)計(jì)的成果物。為了進(jìn)行程序設(shè)計(jì)·制造的進(jìn)度管理和項(xiàng)目運(yùn)營(yíng)管理,要作出項(xiàng)目開(kāi)發(fā)體制表和詳細(xì)的日程計(jì)劃表(中、小日程表)

對(duì)于制定的工作計(jì)劃,要進(jìn)行檢查,確認(rèn)作業(yè)內(nèi)容。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第5頁(yè)。程序設(shè)計(jì)概述_作業(yè)流程及描述D2程序設(shè)計(jì)D2.1程序設(shè)計(jì)D2.1.1模塊劃分D2.1.2模塊功能設(shè)計(jì)工作區(qū)變量定義D2.1.3模塊邏輯設(shè)計(jì)D2.1.4D2.2程序設(shè)計(jì)檢查D2.2.1程序設(shè)計(jì)檢查以詳細(xì)設(shè)計(jì)中確認(rèn)的程序單元為基礎(chǔ),對(duì)程序單元內(nèi)的功能模塊進(jìn)行分割處理。對(duì)程序功能結(jié)構(gòu)圖中的功能處理給與說(shuō)明。

定義程序中使用的公用變量和重要變量。設(shè)計(jì)各個(gè)模塊的處理內(nèi)容及其算法。對(duì)程序設(shè)計(jì)說(shuō)明書(shū)進(jìn)行檢查,作出程序設(shè)計(jì)檢查結(jié)果報(bào)告。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第6頁(yè)。程序設(shè)計(jì)概述–作業(yè)流程及描述D3程序編碼D3.1程序編碼D3.1.1程序編碼D3.1.2編譯連接D3.2程序代碼檢查D3.2.1程序代碼檢查以程序設(shè)計(jì)說(shuō)明書(shū)為基礎(chǔ),按照選定的語(yǔ)言和編碼規(guī)則,進(jìn)行各個(gè)程序單元(模塊)的代碼編制。對(duì)程序代碼進(jìn)行編譯,修改語(yǔ)法錯(cuò)誤,生成可以執(zhí)行的目標(biāo)程序。進(jìn)行程序邏輯和規(guī)范化檢查。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第7頁(yè)。程序設(shè)計(jì)概述–作業(yè)流程及描述D4程序單元測(cè)試D4.1程序單元測(cè)試的準(zhǔn)備D4.1.1設(shè)定測(cè)試項(xiàng)目按照程序設(shè)計(jì)說(shuō)明書(shū)寫出程序測(cè)試項(xiàng)目表(PCL),對(duì)設(shè)定的測(cè)試項(xiàng)目進(jìn)行檢查,填寫質(zhì)量匯總數(shù)據(jù)表。D4.1.3作出測(cè)試數(shù)據(jù)按照程序測(cè)試項(xiàng)目表,做出要使用的測(cè)試數(shù)據(jù),設(shè)定好相關(guān)的數(shù)據(jù)庫(kù)表及其文件中的數(shù)據(jù)。D4.2組合測(cè)試環(huán)境的再度確認(rèn)D4.2.1組合測(cè)試環(huán)境的確認(rèn)D4.3程序單元測(cè)試的實(shí)施D4.3.1程序單元測(cè)試實(shí)施程序單元測(cè)試過(guò)程中發(fā)生問(wèn)題時(shí),要填寫B(tài)票(問(wèn)題處理表),如果問(wèn)題的原因是由于設(shè)計(jì)書(shū)所產(chǎn)生的情況下,要通知修改程序設(shè)計(jì)說(shuō)明書(shū)。D4.1.2測(cè)試項(xiàng)目檢查為進(jìn)入下一個(gè)測(cè)試工程階段,而對(duì)組合測(cè)試環(huán)境再度確認(rèn),以做好組合測(cè)試準(zhǔn)備。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第8頁(yè)。程序設(shè)計(jì)概述–作業(yè)流程及描述D5開(kāi)發(fā)結(jié)束工作D5.1確認(rèn)程序測(cè)試的質(zhì)量狀況D5.1.1程序單元測(cè)試報(bào)告把各種反映程序質(zhì)量的數(shù)據(jù)收集起來(lái),填寫到質(zhì)量數(shù)據(jù)匯總表中,作為能否轉(zhuǎn)入下一個(gè)測(cè)試工程進(jìn)行測(cè)試的依據(jù)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第9頁(yè)。程序設(shè)計(jì)概述_工作用表質(zhì)量數(shù)據(jù)匯總表D5開(kāi)發(fā)結(jié)束工作問(wèn)題處理票(B票)簡(jiǎn)單問(wèn)題處理票質(zhì)量數(shù)據(jù)匯總表(程序單元)程序單元測(cè)試項(xiàng)目表(矩陣型)程序單元測(cè)試項(xiàng)目表D4程序單元測(cè)試問(wèn)題記錄一覽表檢查記錄表模塊功能的定義說(shuō)明書(shū)工作緩沖區(qū)格式定義表程序追加處理說(shuō)明書(shū)程序功能結(jié)構(gòu)圖D2程序設(shè)計(jì)問(wèn)題記錄一覽表檢查記錄表開(kāi)發(fā)體制表工作計(jì)劃表(小日程表)工作計(jì)劃表(中日程表)基本/詳細(xì)設(shè)計(jì)作業(yè)內(nèi)容檢查表(確認(rèn)基本/詳細(xì)設(shè)計(jì)的成果物)D1`開(kāi)發(fā)準(zhǔn)備工作工作用表名稱作業(yè)階段軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第10頁(yè)。程序設(shè)計(jì)原理設(shè)計(jì)的原則:

(l)分解—協(xié)調(diào)的原則。

(2)信息隱蔽,抽象的原則,即上層模塊只規(guī)定下層模塊做什么和所屬模塊間的協(xié)調(diào)關(guān)系,但不規(guī)定怎么做,以保證模塊的相對(duì)獨(dú)立性和內(nèi)部結(jié)構(gòu)的合理性,使得模塊與模塊之間層次分明,易于理解,易于實(shí)施,易于維護(hù)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第11頁(yè)。程序設(shè)計(jì)原理設(shè)計(jì)的原則:

(3)自頂向下原則:首先抓住總的功能目標(biāo),然后逐層分解,即先確定上層模塊的功能,再確定下層模塊的功能。

(4)一致性原則:要保證整個(gè)軟件設(shè)計(jì)過(guò)程中具有統(tǒng)一的規(guī)范,統(tǒng)一的標(biāo)準(zhǔn),統(tǒng)一的文件模式等等。

(5)面向用戶的原則,每個(gè)模塊必須功能明確,接口明確,堅(jiān)決消除多重功能和無(wú)用接口。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第12頁(yè)。程序設(shè)計(jì)的一個(gè)重要課題就是模塊劃分和模塊設(shè)計(jì),把開(kāi)發(fā)的軟件系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),使每一部分完成簡(jiǎn)單的功能且各個(gè)部分之間又保持一定的聯(lián)系,這種功能設(shè)計(jì)所包括的內(nèi)容有:采用某種設(shè)計(jì)原理和方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分為成模塊的層次結(jié)構(gòu);確定每個(gè)模塊的功能,建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系;確定模塊間的調(diào)用關(guān)系;確定模塊間的接口,設(shè)計(jì)接口的信息結(jié)構(gòu);評(píng)估模塊劃分的質(zhì)量及導(dǎo)出模塊結(jié)構(gòu)的規(guī)則。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第13頁(yè)。1、模塊化模塊的概念在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元。程序設(shè)計(jì)單元都被看成為“模塊”,所謂模塊就是程序?qū)ο蟮挠忻值募?,例如,過(guò)程、函數(shù)、子程序、宏等。模塊化模塊化是把程序劃分成若干個(gè)獨(dú)立的模塊,每個(gè)模塊完成一個(gè)特定的子功能。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第14頁(yè)。模塊具有以下幾種基本屬性:接口:指模塊的輸入與輸出;功能:指模塊實(shí)現(xiàn)什么功能;邏輯:描述內(nèi)部如何實(shí)現(xiàn)要求的功能所需的數(shù)據(jù)和處理流程;狀態(tài):指該模塊的運(yùn)行環(huán)境,即模塊的調(diào)用與被調(diào)用關(guān)系。功能、狀態(tài)與接口反映模塊的外部特性,邏輯反映它的內(nèi)部特性。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第15頁(yè)。模塊的概念一個(gè)模塊的規(guī)模應(yīng)當(dāng)取決于它的功能和用途。

應(yīng)減少接口的代價(jià),提高模塊的獨(dú)立性。

模塊的獨(dú)立性可以由兩個(gè)定性標(biāo)準(zhǔn)度量,這兩個(gè)標(biāo)準(zhǔn)分別稱為聚合和耦合。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第16頁(yè)。成本(工作量)軟件成本接口成本最小區(qū)域成本/模塊模塊數(shù)M程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第17頁(yè)。2、抽象與逐步求精抽象是認(rèn)識(shí)復(fù)雜現(xiàn)象過(guò)程中使用的思維工具,即抽出事物本質(zhì)的共同的特性而暫不考慮它的細(xì)節(jié),不考慮其他因素。通過(guò)抽象,可以確定組成軟件的過(guò)程實(shí)體。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第18頁(yè)。抽象軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。在最高的抽象層次上,可以使用問(wèn)題所處環(huán)境的語(yǔ)言概括地描述問(wèn)題的解法。在較低的抽象層次上,則采用過(guò)程化的方法。在從概要設(shè)計(jì)到詳細(xì)設(shè)計(jì)的過(guò)程中,抽象化的層次逐次降低。當(dāng)產(chǎn)生源程序時(shí)到達(dá)最低抽象層次。

程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第19頁(yè)。2、抽象與逐步求精逐步求精是一種先總體,后局部的思維原則,先抓住主要問(wèn)題并給予解決,然后分階段逐步深入考慮問(wèn)題的細(xì)節(jié),也就是逐層分解,分而治之的方法。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第20頁(yè)。3、信息隱蔽“為了得到最好的一組模塊,應(yīng)該怎樣分解軟件呢?”信息隱蔽指在設(shè)計(jì)和確定模塊時(shí),使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。通過(guò)信息隱蔽,可以定義和實(shí)施對(duì)模塊的過(guò)程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。“隱蔽”意味著有效的模塊化可以通過(guò)定義一組獨(dú)立的模塊而實(shí)現(xiàn),這些獨(dú)立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第21頁(yè)。在一節(jié)不和諧的課堂里,老師嘆氣道:“要是坐在后排聊天的同學(xué)能象中間打牌的同學(xué)那么安靜,就不會(huì)影響到前排睡覺(jué)的同學(xué)。”這個(gè)故事告訴我們,如果不想讓壞事傳播開(kāi)來(lái),就應(yīng)該把壞事隱藏起來(lái),“家丑不可外揚(yáng)”就是這個(gè)道理。為了盡量避免某個(gè)模塊的行為去干擾同一系統(tǒng)中的其它模塊,在設(shè)計(jì)模塊時(shí)就要注意信息隱藏。應(yīng)該讓模塊僅僅公開(kāi)必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第22頁(yè)。4、模塊獨(dú)立性模塊獨(dú)立性指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。用兩個(gè)定性的度量標(biāo)準(zhǔn)耦合性(coupling)和內(nèi)聚性(cohesion)來(lái)衡量模塊的獨(dú)立性。

程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第23頁(yè)。4、模塊獨(dú)立性(1)耦合性(coupling)耦合性也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強(qiáng),模塊的獨(dú)立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第24頁(yè)。耦合按從弱到強(qiáng)的順序可分為以下七種類型:非直接耦合、數(shù)據(jù)耦合、標(biāo)記耦合、控制耦合、外部耦合、共通耦合、內(nèi)容耦合。按上述順序,耦合性逐漸升高,模塊獨(dú)立性逐漸降低。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第25頁(yè)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第26頁(yè)。

非直接耦合(NondirectCoupling)

兩個(gè)模塊之間沒(méi)有直接關(guān)系,它們之間的聯(lián)系完是通過(guò)主模塊的控制和調(diào)用來(lái)實(shí)現(xiàn)的。非直接耦合的模塊獨(dú)立性最強(qiáng)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第27頁(yè)。數(shù)據(jù)耦合(DataCoupling)

一個(gè)模塊訪問(wèn)另一個(gè)模塊時(shí),彼此之間是通過(guò)簡(jiǎn)單數(shù)據(jù)參數(shù)

(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來(lái)交換輸入、輸出信息的。舉例:

floatB(floatw){//計(jì)算水費(fèi)

….}軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第28頁(yè)。標(biāo)記耦合(StampCoupling)

一組模塊通過(guò)參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。這個(gè)記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡(jiǎn)單變量。舉例:

floatB(structFeee){//計(jì)算水費(fèi)

….}structFee{floatw;//水的用量

floath;//房子的面積}軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第29頁(yè)。控制耦合(ControlCoupling)

如果一個(gè)模塊通過(guò)傳送開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第30頁(yè)。外部耦合(ExternalCoupling)

模塊之間通過(guò)指定的外部設(shè)備、通信協(xié)議等環(huán)境因素耦合在一起,則稱之為外部耦合。公共耦合(CommonCoupling)

若一組模塊都訪問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第31頁(yè)。內(nèi)容耦合(ContentCoupling)

如果發(fā)生下列情形,兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合

(1)一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù);

(2)一個(gè)模塊不通過(guò)正常入口轉(zhuǎn)到另一模塊內(nèi)部;

(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語(yǔ)言中);軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第32頁(yè)。內(nèi)容耦合舉例:intc;A(int*a,int*b){c=*a;*a=*b;*b=c;}B(…){c=d;//訪問(wèn)了A的內(nèi)部數(shù)據(jù)}軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第33頁(yè)。原則:

盡量使用數(shù)據(jù)耦合和標(biāo)記耦合,少用控制耦合,限制外部耦合和公共耦合的范圍,完全不用內(nèi)容耦合。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第34頁(yè)。4、模塊獨(dú)立性(2)內(nèi)聚性內(nèi)聚性又稱塊內(nèi)聯(lián)系。指模塊的功能強(qiáng)度的度量,即一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。若一個(gè)模塊內(nèi)各元素(語(yǔ)名之間、程序段之間)聯(lián)系的越緊密,則它的內(nèi)聚性就越高。程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第35頁(yè)。4、模塊獨(dú)立性(2)內(nèi)聚性內(nèi)聚按強(qiáng)度從低到高共分七級(jí):巧合內(nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚、過(guò)程內(nèi)聚、通信內(nèi)聚、信息內(nèi)聚、功能內(nèi)聚。內(nèi)聚性逐漸加強(qiáng),功能趨于單一,模塊獨(dú)立性也逐漸加強(qiáng)。

程序設(shè)計(jì)原理軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第36頁(yè)。(2)內(nèi)聚4、模塊獨(dú)立性軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第37頁(yè)。功能內(nèi)聚(FunctionalCohesion)

模塊中的所有成員都是為了實(shí)現(xiàn)某一單一功能。比如根據(jù)生日計(jì)算雇員年齡的子程序就是功能內(nèi)聚性的,因?yàn)樗煌瓿梢豁?xiàng)工作,而且完成得很好。

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第38頁(yè)。信息內(nèi)聚(順序內(nèi)聚)

(InformationalCohesion)

一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序進(jìn)行。例:假設(shè)有一個(gè)按給出的生日計(jì)算雇員年齡、退休時(shí)間的子程序,如果它是利用所計(jì)算的年齡來(lái)確定雇員將要退休的時(shí)間,那么它就具有順序內(nèi)聚性。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第39頁(yè)。通信內(nèi)聚(CommunicationCohesion)

模塊內(nèi)所有處理元素都在同一個(gè)數(shù)據(jù)結(jié)構(gòu)上的操作。在一個(gè)模塊中,兩個(gè)操作只是使用相同數(shù)據(jù),而不存在其它任何聯(lián)系時(shí)產(chǎn)生的。比如,在GetNameAndChangePhoneNumber()這個(gè)子程序中,如果Name和PhoneNumber是放在同一個(gè)用戶記錄中的,那么這個(gè)子程序就是通訊內(nèi)聚性。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第40頁(yè)。過(guò)程內(nèi)聚(ProceduralCohesion)

使用流程圖做為工具設(shè)計(jì)程序時(shí),把流程圖中的某一部分劃出組成模塊,就得到過(guò)程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計(jì)算部分分成三個(gè)模塊,這三個(gè)模塊都是過(guò)程內(nèi)聚模塊。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第41頁(yè)。時(shí)間內(nèi)聚(ClassicalCohesion)

時(shí)間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第42頁(yè)。邏輯內(nèi)聚(LogicalCohesion)

這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的判定參數(shù)來(lái)確定該模塊應(yīng)執(zhí)行哪一種功能。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第43頁(yè)。巧合內(nèi)聚(CoincidentalCohesion)

巧合內(nèi)聚(偶然內(nèi)聚)。當(dāng)模塊內(nèi)各部分之間沒(méi)有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為巧合內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第44頁(yè)。

事實(shí)上,確定內(nèi)聚的精確級(jí)別是不必要的,重要的是盡量爭(zhēng)取高內(nèi)聚和識(shí)別低內(nèi)聚。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第45頁(yè)。模塊化的設(shè)計(jì)原則

(1)改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性(2)模塊規(guī)模應(yīng)該適中(3)保持適當(dāng)?shù)纳热牒蜕瘸觯?)模塊的作用范圍應(yīng)在控制范圍之內(nèi)(5)力爭(zhēng)降低模塊接口的復(fù)雜程度(6)設(shè)計(jì)單入口單出口的模塊(7)模塊功能應(yīng)該可以預(yù)測(cè)以上啟發(fā)式規(guī)則多數(shù)是經(jīng)驗(yàn)數(shù)據(jù),對(duì)改進(jìn)設(shè)計(jì),提高軟件質(zhì)量,有重要的參考價(jià)值

模塊化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第46頁(yè)。例:若其中B、C、D之間存在內(nèi)容耦合,可將它們合并為一個(gè)模塊BCD,若E、F中有一個(gè)公共的子功能,可將該子功能獨(dú)立成一個(gè)模塊。ABCDEFABCDE′F′E′F′模塊化設(shè)計(jì)的啟發(fā)式原則(1)改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第47頁(yè)。(2)模塊規(guī)模應(yīng)該適中經(jīng)驗(yàn)表明,模塊的規(guī)模要在一頁(yè)以內(nèi),模塊的總行數(shù)最好在30~60行,這種規(guī)模易于閱讀和理解。過(guò)長(zhǎng)的模塊往往是分解不充分的表現(xiàn),會(huì)增加閱讀理解的難度;但小模塊太多也會(huì)使模塊之間聯(lián)系變得復(fù)雜,增大系統(tǒng)在模塊調(diào)用時(shí)傳遞信息所花費(fèi)的開(kāi)銷,不值得單獨(dú)存在,可以把它合并到上級(jí)模塊中去。由于種種原因如功能和用途的約束,一個(gè)模塊可能會(huì)大于一頁(yè),要以不影響程序的清晰為前提。模塊化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第48頁(yè)。(3)保持適當(dāng)?shù)纳热牒蜕瘸鲆粋€(gè)模塊的扇入表示有多少個(gè)模塊直接調(diào)用它,一個(gè)模塊的扇出表該模塊控制的其它模塊的數(shù)量,深度表示軟件結(jié)構(gòu)中控制的層數(shù)。經(jīng)驗(yàn)表明,一個(gè)設(shè)計(jì)得好的典型系統(tǒng)平均扇出通常是3或4(扇出的上限通常是5~9)。模塊化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第49頁(yè)。(3)保持適當(dāng)?shù)纳热牒蜕瘸錾瘸錾热肷疃饶K化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第50頁(yè)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第51頁(yè)。(4)模塊的作用范圍應(yīng)在控制范圍之內(nèi)一個(gè)模塊的作用范圍(或稱影響范圍)指受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。一個(gè)模塊的控制范圍指模塊本身以及其所有下屬模塊(直接或間接從屬于它的模塊)的集合。一個(gè)模塊的作用范圍應(yīng)在其控制范圍之內(nèi),且判定所在的模塊應(yīng)在其影響的模塊在層次上盡量靠近。模塊化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第52頁(yè)。(5)力爭(zhēng)降低模塊接口的復(fù)雜程度模塊接口復(fù)雜是軟件發(fā)生錯(cuò)誤的一個(gè)主要原因,應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡(jiǎn)單并且和模塊的功能一致。接口復(fù)雜或不一致(即看起來(lái)傳遞的數(shù)據(jù)之間沒(méi)有聯(lián)系)是低內(nèi)聚的表現(xiàn),應(yīng)該重新分析這個(gè)模塊的獨(dú)立性。模塊化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第53頁(yè)。(6)設(shè)計(jì)單入口單出口的模塊

不要使模塊間出現(xiàn)內(nèi)容耦合;從頂部進(jìn)入模塊并且從底部退出,軟件比較容易理解,因此也比較容易維護(hù)。模塊化設(shè)計(jì)的啟發(fā)式原則軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第54頁(yè)。模塊化設(shè)計(jì)的啟發(fā)式原則(7)模塊功能應(yīng)該可以預(yù)測(cè)如果將一個(gè)模塊看做黑盒子,就是說(shuō),只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個(gè)模塊的功能就是可以預(yù)測(cè)的。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第55頁(yè)。模塊化設(shè)計(jì)的啟發(fā)式原則(7)模塊功能應(yīng)該可以預(yù)測(cè)具有內(nèi)部狀態(tài)的模塊,其輸出不僅與輸入有關(guān),而且還取決于模塊的當(dāng)前狀態(tài),其功能是不可預(yù)測(cè)的,這就增加了模塊的測(cè)試和維護(hù)難度,這條原則不是絕對(duì)的,如對(duì)于實(shí)時(shí)系統(tǒng)來(lái)說(shuō),針對(duì)不定時(shí)的輸入,系統(tǒng)狀態(tài)要不斷發(fā)生變化,這種變化又直接影響下一個(gè)輸入引起的輸出。對(duì)于這種不可避免的情況,要引起充分注意,要將相應(yīng)模塊做特殊處理。無(wú)論測(cè)試還是維護(hù)都把模塊狀態(tài)作為一個(gè)重要影響因素來(lái)考慮軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第56頁(yè)。intcount(ints){intsum=0;for(inti=1;i<=s;i++){sum+=i;}returnsum;}此模塊功能可以預(yù)測(cè)嗎?Y軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第57頁(yè)。intcount(ints){staticintsum=0;for(inti=1;i<=s;i++){sum+=i;}returnsum;}此模塊功能可以預(yù)測(cè)嗎?N軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第58頁(yè)。結(jié)構(gòu)化設(shè)計(jì)的基本思想是把需求和求解的方法分離,把相關(guān)信息(數(shù)據(jù)結(jié)構(gòu)和算法)集中在一個(gè)模塊中,和其它模塊隔離,外界不能隨便訪問(wèn)這個(gè)模塊的內(nèi)部信息,在這種模式中,程序設(shè)計(jì)的首要任務(wù)是劃分模塊,數(shù)據(jù)則隱蔽在模塊中。程序設(shè)計(jì)方法_結(jié)構(gòu)化方法軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第59頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化方法結(jié)構(gòu)化程序設(shè)計(jì)的內(nèi)容使用三種控制結(jié)構(gòu),有效地限制使用goto語(yǔ)句自頂向下,逐步求精的設(shè)計(jì)方法軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第60頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化方法fgcfgcf(c)(a)(b)I=?f1f2f3fn123n(d)fcT(e)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第61頁(yè)。逐步細(xì)化的例子

例1

在一組數(shù)中找出其中的最大數(shù)解:第一步:1輸入一組數(shù)2找出一個(gè)最大數(shù)3輸出最大數(shù)第二步:2.1任取一個(gè)數(shù),假設(shè)它是最大數(shù)2.2將該數(shù)與其余各數(shù)逐一比較;2.3若發(fā)現(xiàn)有任何大于該一假設(shè)的最大數(shù),即取而代之第三步:1.1輸入一個(gè)數(shù)組;2.1.1令“最大數(shù)”=數(shù)組的第一個(gè)元素;2.2.1從第二個(gè)元素至最末的一個(gè)元素依次做:2.3.1如果新元素>”最大數(shù)”則“最大數(shù)”=新元素;3.1輸出“最大數(shù)”軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第62頁(yè)。自頂向下,逐步求精方法的優(yōu)點(diǎn)符合人們解決復(fù)雜問(wèn)題的普遍規(guī)律。可提高軟件開(kāi)發(fā)的成功率和生產(chǎn)率用先全局后局部,先整體后細(xì)節(jié),先抽象后具體的逐步求精的過(guò)程開(kāi)發(fā)出來(lái)的程序具有清晰的層次結(jié)構(gòu),程序容易閱讀和理解每一步工作僅在上層節(jié)點(diǎn)的基礎(chǔ)上做不多的設(shè)計(jì)擴(kuò)展,便于檢查,驗(yàn)證程序正確性。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第63頁(yè)。結(jié)構(gòu)化程序設(shè)計(jì)工具流程圖盒圖(N-S圖)問(wèn)題分析圖(PAD圖)HIPO圖判定表判定樹(shù)過(guò)程設(shè)計(jì)語(yǔ)言

(PDL)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第64頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具流程圖處理用四方形圖表示條件判斷用菱形圖表示用連接線把這些圖形連接起來(lái)表示處理的流程

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第65頁(yè)。程序流程圖使用五種基本控制結(jié)構(gòu)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第66頁(yè)。例2

例1(在一組數(shù)中找出其中的最大數(shù))的流程圖MAX=A(1)J=2J<=N?MAX<A(J)MAX=A(J)J=J+1FFT入口出口軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第67頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具盒圖(N-S圖)

盒圖是Nassi和Shneiderman提出來(lái)的,又稱N-S圖,沒(méi)有箭頭,不允許隨意轉(zhuǎn)移。在NS圖中,每個(gè)“處理步驟”是用一個(gè)盒子表示的,所謂“處理步驟”可以是語(yǔ)句或語(yǔ)句序列。需要時(shí),盒子中還可以嵌套另一個(gè)盒子,嵌套深度一般沒(méi)有限制,只要整張圖在一頁(yè)紙上能容納得下,由于只能從上邊進(jìn)入盒子然后從下邊走出,除此之外沒(méi)有其他的入口和出口,所以,NS圖限制了隨意的控制轉(zhuǎn)移,

保證了程序的良好結(jié)構(gòu)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第68頁(yè)。盒圖(N-S圖)五種基本控制結(jié)構(gòu)由五種圖形構(gòu)件表示。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第69頁(yè)。例3

例1的N-S圖MAX=A(1)FORJ=2TONMAX<A(J)TFMAX=A(J)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第70頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具PAD圖

PAD圖是日本日立公司于1973年發(fā)明的,指問(wèn)題分析圖(ProblemAnalysisDiagram),它是一種自左往右展開(kāi)的二維樹(shù)型結(jié)構(gòu)。

控制流程為自上而下、從左到右的執(zhí)行。由機(jī)器自動(dòng)通過(guò)走樹(shù)的辦法生成相應(yīng)的源代碼,大大提高了軟件的生產(chǎn)率。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第71頁(yè)。

PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第72頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第73頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具例:1求A、B、C三個(gè)數(shù)中的最大值。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第74頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具例:2猴子吃桃問(wèn)題:有一堆桃子不知數(shù)目,猴子第一天吃掉一半,覺(jué)得不過(guò)癮,又多吃了一只,第二天照此辦理,吃掉剩下桃子的一半另加一個(gè),天天如此,到第十天早上,猴子發(fā)現(xiàn)只剩一只桃子了,問(wèn)這堆桃子原來(lái)有多少個(gè)?軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第75頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具例:2軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第76頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具HIPO圖(層次圖加輸入/處理/輸出圖)

HIPO圖由下面三部分組成:H(分層)圖。即以方框形式表示程序的主要功能、次要功能及其與模塊間的關(guān)系??傆[IPO(Input-Process-Output)圖。為H圖提供輸入變量表、處理功能表和輸出變量表。詳細(xì)IPO圖。為底層模塊提供輸入變量表、處理功能表和輸出變量表。

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第77頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具HIPO圖(層次圖加輸入/處理/輸出圖)

HIPO圖是一種圖解式設(shè)計(jì)工具。在概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序設(shè)計(jì)、測(cè)試和維護(hù)的不同階段,都可以使用HIPO圖對(duì)設(shè)計(jì)進(jìn)行描述

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第78頁(yè)。例學(xué)生成績(jī)管理系統(tǒng)的H圖學(xué)生成績(jī)管理系統(tǒng)1學(xué)生基本成績(jī)登錄2學(xué)生平均成績(jī)計(jì)算3班級(jí)平均成績(jī)計(jì)算4學(xué)生成績(jī)表生成1.1初期處理1.2輸入處理1.3刪除軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第79頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具班級(jí)號(hào)、學(xué)號(hào)學(xué)生姓名語(yǔ)、數(shù)、外成績(jī)輸入顯示處理DB存在檢查處理輸出DB顯示處理顯示處理輸入數(shù)據(jù)檢查DB登錄學(xué)生基本成績(jī)表班級(jí)號(hào)、學(xué)號(hào)學(xué)生姓名語(yǔ)、數(shù)、外成績(jī)錯(cuò)誤信息不存在存在正確不正確HIPO圖(層次圖加輸入/處理/輸出圖)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第80頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定表在許多軟件設(shè)計(jì)中,常常需要設(shè)計(jì)一個(gè)模塊,根據(jù)多種條件的復(fù)雜組合,選擇執(zhí)行相應(yīng)的動(dòng)作,這種設(shè)計(jì)過(guò)程用判定表表示比較合適。判定表可作為輸入數(shù)據(jù),被直接讀入機(jī)器,由“表驅(qū)動(dòng)”算法程序自動(dòng)處理,判定表的第一行是規(guī)則號(hào),每一列對(duì)應(yīng)一條處理規(guī)則,它根據(jù)不同的條件組合選擇執(zhí)行相應(yīng)的動(dòng)作。為了能表示出總的控制流程,單單用這個(gè)工具是不行的,還需加上其他信息。通常,判定表可以有效地用來(lái)作為其他詳細(xì)設(shè)計(jì)工具的補(bǔ)充。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第81頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定表判定表采用以下步驟進(jìn)行處理:列出與一個(gè)具體過(guò)程(或)有關(guān)的所有處理;列出過(guò)程執(zhí)行期間的所有條件(或所有判斷);將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合;將右部每一縱列規(guī)定為一個(gè)處理規(guī)則。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第82頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定表舉例1軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第83頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定表舉例2

某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)30公斤的行李。當(dāng)行李重量超過(guò)30公斤時(shí),對(duì)頭等艙的乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的乘客超重部分每公斤收費(fèi)6元,對(duì)外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客每公斤收費(fèi)比正常乘客少一半。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第84頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定表舉例2軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第85頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定樹(shù)判定樹(shù)是判定表的變種,能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。判定樹(shù)的優(yōu)點(diǎn)是:由于是一種圖形表示,形式簡(jiǎn)單,不需任何說(shuō)明,易看出含義,易于掌握和使用。缺點(diǎn)是:簡(jiǎn)潔性不如判定表,相同的數(shù)據(jù)元素往往要重復(fù)寫多遍,而且越接近樹(shù)的葉端重復(fù)次數(shù)越多。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第86頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具判定樹(shù)舉例思考:將行李重量作為最后一個(gè)分支,將會(huì)是幾片葉子

答案:16片葉子

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第87頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具過(guò)程設(shè)計(jì)語(yǔ)言(PDL,ProcessDesignLanguage)是一個(gè)籠統(tǒng)的名字,由許多種不同的過(guò)程設(shè)計(jì)語(yǔ)言。過(guò)程設(shè)計(jì)語(yǔ)言用于描述模塊中算法和加工的具體細(xì)節(jié),以便在開(kāi)發(fā)人員之間比較精確的進(jìn)行交流。過(guò)程設(shè)計(jì)語(yǔ)言的外層語(yǔ)法描述結(jié)構(gòu),采用與一般編程語(yǔ)言類似的確定的關(guān)鍵字,內(nèi)層語(yǔ)法描述操作,可以采用任意的自然語(yǔ)句(如:英語(yǔ)、漢語(yǔ))由于過(guò)程設(shè)計(jì)語(yǔ)言與程序很相似,也稱為偽程序,或偽碼(PseudoCode)。但它僅僅是對(duì)算法的一種描述,是不可執(zhí)行的。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第88頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具過(guò)程設(shè)計(jì)語(yǔ)言(PDL)PDL的優(yōu)點(diǎn):(1)可以作為注釋直接插在源程序中間。這樣做能促使維護(hù)人員在修改程序代碼的同時(shí)也相應(yīng)地修改PDL注釋,因此有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。(2)可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書(shū)寫和編輯工作。(3)已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第89頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具過(guò)程設(shè)計(jì)語(yǔ)言(PDL)PDL的缺點(diǎn)是不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第90頁(yè)。例1的PDL描述:輸入一個(gè)數(shù)組A;令MAX=A的第一個(gè)元素;DOFOR從A的第二個(gè)元素到最末的一個(gè)元素

IF這個(gè)元素的值>MAXthen

令MAX=這個(gè)元素的值;

ENDIFENDDO打印最大值MAX;

外層語(yǔ)法DOFOR-ENDDO,IF-THEN-ENDIF是確定的,內(nèi)層語(yǔ)法是不確定的。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第91頁(yè)。程序設(shè)計(jì)方法_結(jié)構(gòu)化工具過(guò)程設(shè)計(jì)語(yǔ)言(PDL,ProcessDesignLanguage)例:統(tǒng)計(jì)空格seq打開(kāi)文件讀入字符串Totalsum=0程序體iteruntil文件結(jié)束……程序體end打印總數(shù)seq打印出空格總數(shù)打印總數(shù)end關(guān)閉文件停止統(tǒng)計(jì)空格end

順序結(jié)構(gòu):AseqBlock1Block2Block3Aend選擇結(jié)構(gòu):Aselectcond1Block1Aorcond2Block2Aorcond3Block3Aend重復(fù)結(jié)構(gòu):AiteruntilcondBlock1AendAiterwhilecondBlock1Aend

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第92頁(yè)。程序設(shè)計(jì)方法_面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮姆椒ㄩ_(kāi)始也只是著眼于編程,后來(lái)才形成了從分析、設(shè)計(jì)到編程、測(cè)試與維護(hù)一整套的軟件工程體系,即產(chǎn)生了面向?qū)ο蠓治觯∣OA)、面向?qū)ο笤O(shè)計(jì)(OOD)、面向?qū)ο缶幊蹋∣OP)、面向?qū)ο鬁y(cè)試(OOT)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第93頁(yè)。程序設(shè)計(jì)方法_面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)的特征面向?qū)ο蟮某绦蛟O(shè)計(jì)將計(jì)算看作是一個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程,系統(tǒng)由對(duì)象組成,經(jīng)歷一連串的狀態(tài)變化以完成計(jì)算任務(wù)。面向?qū)ο蟪绦虻幕A(chǔ)構(gòu)件是對(duì)象和類,從程序設(shè)計(jì)角度來(lái)看,對(duì)象是一種不信賴于外界的模塊,對(duì)應(yīng)著存儲(chǔ)器的一塊被劃分的區(qū)域。它包含數(shù)據(jù),在邏輯上包含作用于這些數(shù)據(jù)的過(guò)程,這些過(guò)程稱為方法。

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第94頁(yè)。程序設(shè)計(jì)方法_面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)的特征面向?qū)ο蟪绦蛟O(shè)計(jì)的基本機(jī)制是繼承性、消息和方法,還有在特定方面提供更為專門的、靈活的機(jī)制,如重置、多態(tài)等。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第95頁(yè)。程序設(shè)計(jì)方法_面向?qū)ο蟮某绦蛟O(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)就是把內(nèi)部設(shè)計(jì)中的功能模塊的設(shè)計(jì)、功能模塊間接口的設(shè)計(jì)、數(shù)據(jù)庫(kù)的定義等詳細(xì)化的設(shè)計(jì)過(guò)程。而面向?qū)ο箝_(kāi)發(fā)時(shí),在OOD階段已把各個(gè)類直到接口(方法)都已定義,程序設(shè)計(jì)的對(duì)象就如同結(jié)構(gòu)化程序設(shè)計(jì)一樣就是進(jìn)行類內(nèi)部處理的詳細(xì)化設(shè)計(jì)。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第96頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解《程序設(shè)計(jì)書(shū)主要內(nèi)容》(交互式處理)○程序處理概要圖○程序概要說(shuō)明書(shū)○程序功能結(jié)構(gòu)圖○程序追加處理說(shuō)明書(shū)○工作緩沖區(qū)格式定義表○模塊功能定義書(shū)○模塊功能定義書(shū)(補(bǔ)充)○輸入數(shù)據(jù)檢查處理說(shuō)明書(shū)〈參照以下基本設(shè)計(jì)資料〉○屏幕設(shè)計(jì)說(shuō)明書(shū)○報(bào)表/文件輸出編輯說(shuō)明書(shū)○DB設(shè)計(jì)說(shuō)明書(shū)○共通處理設(shè)計(jì)說(shuō)明書(shū)○公共子程序設(shè)計(jì)說(shuō)明書(shū)程序設(shè)計(jì)書(shū)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第97頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解程序處理概要圖是內(nèi)部設(shè)計(jì)階段的成果文檔,是程序設(shè)計(jì)階段的輸入,他是程序設(shè)計(jì)書(shū)的重要內(nèi)容,主要描述該程序單元的處理概要,輸入輸出文件和屏幕、報(bào)表的關(guān)連圖,給出了與該程序相關(guān)的文件ID、文件名稱、屏幕ID、名稱、報(bào)表名稱等。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第98頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解程序處理概要說(shuō)明書(shū)也是內(nèi)部設(shè)計(jì)階段的成果文檔,是程序設(shè)計(jì)階段的輸入,是程序設(shè)計(jì)書(shū)的重要內(nèi)容,它對(duì)于程序處理概要圖中的程序處理概要進(jìn)行展開(kāi),給出了程序的各個(gè)功能模塊的處理概要說(shuō)明,小型的或簡(jiǎn)單的程序可以從程序功能概要說(shuō)明書(shū)入手編寫代碼。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第99頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解程序功能結(jié)構(gòu)圖是程序設(shè)計(jì)階段的成果文檔,它是程序結(jié)構(gòu)設(shè)計(jì)的圖形結(jié)果,在開(kāi)發(fā)周期短,程序設(shè)計(jì)時(shí)間不足的情況下,程序功能結(jié)構(gòu)圖可以省略。有程序功能結(jié)構(gòu)圖的情況下,要注意編寫的程序結(jié)構(gòu)是否實(shí)現(xiàn)了程序功能結(jié)構(gòu)圖的要求。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第100頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解程序追加處理說(shuō)明書(shū)是在程序概要說(shuō)明書(shū)的基礎(chǔ)上,對(duì)程序設(shè)計(jì)階段所增加的功能進(jìn)行補(bǔ)充說(shuō)明。在程序編碼之前,一定要注意確認(rèn)程序追加處理說(shuō)明書(shū)的功能是否能夠?qū)崿F(xiàn),有無(wú)設(shè)計(jì)上的問(wèn)題或文字上的疏漏。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第101頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解

工作緩沖區(qū)格式定義表給出了程序中使用的主要工作緩沖區(qū)和變量的命名、類型、長(zhǎng)度、初期值和編輯方法等說(shuō)明。在理解工作緩沖區(qū)格式定義表中的各個(gè)變量的定義時(shí),一定要對(duì)照相關(guān)的程序設(shè)計(jì)書(shū)的內(nèi)容。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第102頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解

模塊功能定義書(shū)是在程序處理概要說(shuō)明書(shū)的基礎(chǔ)上對(duì)于每個(gè)程序模塊的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的說(shuō)明,對(duì)于復(fù)雜的程序單元,一定要注意理解各個(gè)模塊功能定義書(shū)的詳細(xì)處理說(shuō)明。對(duì)于程序設(shè)計(jì)階段補(bǔ)充的功能模塊和個(gè)別模塊的補(bǔ)充功能,在模塊功能定義書(shū)(補(bǔ)充)中給出了詳細(xì)說(shuō)明。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第103頁(yè)。程序設(shè)計(jì)書(shū)的構(gòu)成和理解

輸入數(shù)據(jù)檢查處理說(shuō)明書(shū)主要說(shuō)明屏幕輸入項(xiàng)目的檢查條件,所有登錄到數(shù)據(jù)庫(kù)的數(shù)據(jù)都必須通過(guò)屏幕輸入檢查處理,以保證用戶數(shù)據(jù)的完整性和一致性。軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第104頁(yè)。DB/文件設(shè)計(jì)說(shuō)明書(shū)是內(nèi)部設(shè)計(jì)階段的成果文檔,是程序設(shè)計(jì)階段的輸入。主要描述該程序中所使用的數(shù)據(jù)庫(kù)表/文件的存儲(chǔ)格式和各字段名的變量定義。程序設(shè)計(jì)書(shū)的構(gòu)成和理解軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第105頁(yè)。程序設(shè)計(jì)實(shí)例系統(tǒng)概要說(shuō)明:本案例是一個(gè)學(xué)生成績(jī)管理子系統(tǒng)。它包含學(xué)生基本成績(jī)登錄、學(xué)生平均成績(jī)計(jì)算、班級(jí)平均成績(jī)計(jì)算、學(xué)生成績(jī)表生成等4個(gè)程序模塊

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第106頁(yè)。程序設(shè)計(jì)實(shí)例基本成績(jī)登錄畫面學(xué)生成績(jī)管理子系統(tǒng)學(xué)生基本成績(jī)文件學(xué)生平均成績(jī)計(jì)算(XSCJP001)學(xué)生基本成績(jī)文件學(xué)生平均成績(jī)文件學(xué)生成績(jī)表生成(XSCJP003)班級(jí)平均成績(jī)計(jì)算(XSCJP002)學(xué)生基本成績(jī)文件班級(jí)平均成績(jī)文件學(xué)生平均成績(jī)文件學(xué)生基本成績(jī)文件學(xué)生成績(jī)表文件學(xué)生基本成績(jī)登錄(XSCJP000)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第107頁(yè)。程序設(shè)計(jì)實(shí)例開(kāi)發(fā)準(zhǔn)備確認(rèn)基本/詳細(xì)設(shè)計(jì)的成果物;制定工作計(jì)劃,作出開(kāi)發(fā)計(jì)劃中日程表和開(kāi)發(fā)計(jì)劃小日程表;確立開(kāi)發(fā)體制(開(kāi)發(fā)人員的構(gòu)成和組織體制);檢查所制定的工作計(jì)劃和工作內(nèi)容軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第108頁(yè)。程序設(shè)計(jì)實(shí)例程序設(shè)計(jì)“學(xué)生成績(jī)管理系統(tǒng)流程圖”的處理要求,該系統(tǒng)由四個(gè)處理模塊構(gòu)成,它們是:①學(xué)生基本成績(jī)登錄;②學(xué)生平均成績(jī)計(jì)算;③班級(jí)平均成績(jī)計(jì)算;④學(xué)生成績(jī)表生成。

軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第109頁(yè)。學(xué)生基本成績(jī)登錄的程序設(shè)計(jì)書(shū)①程序處理概要圖:說(shuō)明學(xué)生基本成績(jī)登錄處理的目的和處理概要;(詳見(jiàn)工作用表D3.1.1)②程序處理概要說(shuō)明書(shū):說(shuō)明學(xué)生基本成績(jī)登錄處理時(shí)的初期處理設(shè)計(jì),數(shù)據(jù)登錄處理要求和登錄結(jié)束處理要求;(詳見(jiàn)工作表D3.1.2)③程序功能結(jié)構(gòu)圖:描述學(xué)生基本成績(jī)登錄處理的處理邏輯;(詳見(jiàn)工作用表D3.1.3)④模塊功能定義書(shū):描述在“保存”按鈕按下時(shí)的基本處理功能和在“取消”按鈕按下時(shí)的基本處理功能;(詳見(jiàn)工作用表D3.1.4)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第110頁(yè)。⑤模塊功能定義書(shū)(補(bǔ)充):進(jìn)一步補(bǔ)充輸入數(shù)據(jù)編輯方法的處理功能;(詳見(jiàn)工作用表D3.1.5);⑥輸入數(shù)據(jù)檢查說(shuō)明書(shū):詳細(xì)說(shuō)明輸入數(shù)據(jù)的檢查內(nèi)容及處理要求,以保證輸入數(shù)據(jù)的合法性和有效性;(詳見(jiàn)工作用表D3.1.6)⑦窗體設(shè)計(jì)說(shuō)明書(shū):這是面向用戶的實(shí)際窗顯示設(shè)計(jì)。(詳見(jiàn)工作用表D3.1.7和D3.1.8)⑧數(shù)據(jù)庫(kù)/文件格式定義表:學(xué)生基本成績(jī)表的文件結(jié)構(gòu)定義(詳見(jiàn)工作用表D3.1.10)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第111頁(yè)。團(tuán)隊(duì)開(kāi)發(fā)與協(xié)作團(tuán)隊(duì)的含義構(gòu)成團(tuán)隊(duì)的重要要素團(tuán)隊(duì)與群體團(tuán)隊(duì)的類型軟件團(tuán)隊(duì)的組織形式軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第112頁(yè)。團(tuán)隊(duì)團(tuán)隊(duì)的含義:

團(tuán)隊(duì)是由員工和管理人員組成的一個(gè)共同體,該共同體合理利用每一個(gè)成員的知識(shí)和技能協(xié)同工作,解決問(wèn)題,達(dá)到共同的目標(biāo)軟件制造工程程序設(shè)計(jì)全文共128頁(yè),當(dāng)前為第113頁(yè)。團(tuán)隊(duì)構(gòu)成團(tuán)隊(duì)的重要要素目標(biāo)(知道要向何處去)

人(人員的能力如何,技能是否互補(bǔ),人員的經(jīng)驗(yàn)如何)團(tuán)隊(duì)的定位(團(tuán)隊(duì)在企業(yè)中處于什么位置,由誰(shuí)選擇和決定團(tuán)隊(duì)的成員,團(tuán)隊(duì)最終應(yīng)對(duì)誰(shuí)負(fù)責(zé),團(tuán)隊(duì)采取什么方式激勵(lì)下屬;作為成員在團(tuán)隊(duì)中扮演什么角色?是訂計(jì)劃還是具體實(shí)施或評(píng)估

溫馨提示

  • 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)論