軟件工程知識點(diǎn)總結(jié)_第1頁
軟件工程知識點(diǎn)總結(jié)_第2頁
軟件工程知識點(diǎn)總結(jié)_第3頁
軟件工程知識點(diǎn)總結(jié)_第4頁
軟件工程知識點(diǎn)總結(jié)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

一、軟件工程概述軟件特點(diǎn)軟件:計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料,以及計(jì)算機(jī)程序運(yùn)行時所需要的數(shù)據(jù)。軟件是計(jì)算機(jī)系統(tǒng)中的邏輯成分,具有無形性。其主要內(nèi)容包括:程序、配置文件、系統(tǒng)文檔、用戶文檔等。2.軟件分類按功能劃分:系統(tǒng)軟件、支撐軟件、應(yīng)用軟件。按工作方式劃分:實(shí)時處理軟件、分時處理軟件、交互式軟件、批處理軟件。按規(guī)模劃分:微型軟件、小型軟件、中型軟件、大型軟件。按服務(wù)對象劃分:通用軟件、定制軟件。軟件發(fā)展階段程序設(shè)計(jì)時代(20世紀(jì)50年代)。程序系統(tǒng)時代(20世紀(jì)60年代)。軟件工程時代(20世紀(jì)70年代起)。軟件危機(jī)危機(jī)現(xiàn)象:軟件開發(fā)成本與進(jìn)度估計(jì)不準(zhǔn)確,軟件產(chǎn)品與用戶要求不一致,軟件產(chǎn)品質(zhì)量可靠性差,軟件文檔不完整不一致,軟件產(chǎn)品可維護(hù)性差,軟件生產(chǎn)率低。危機(jī)原因:軟件的不可見性,系統(tǒng)規(guī)模龐大,生產(chǎn)工程化程度低,對用戶需求關(guān)心不夠,對維護(hù)不夠重視,開發(fā)工具自動化程度低。軟件工程軟件工程:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料。軟件工程是一門關(guān)于軟件開發(fā)與維護(hù)的工程學(xué)科,它涉及軟件生產(chǎn)的各個方面,能夠?yàn)榻?jīng)濟(jì)、高效地開發(fā)高質(zhì)量的軟件產(chǎn)品提供最有效的支持。工程方法:結(jié)構(gòu)化方法、JSD方法、面向?qū)ο蠓椒?。軟件工具:具有自動化特征的軟件開發(fā)集成支撐環(huán)境。工程過程:在軟件工具支持下的一系列工程活動,基本活動是軟件定義、軟件開發(fā)、軟件驗(yàn)證、軟件維護(hù)。工程管理:項(xiàng)目規(guī)劃,項(xiàng)目資源調(diào)配,軟件產(chǎn)品控制。工程原則:分階段生命周期計(jì)劃,階段評審制度,嚴(yán)格的產(chǎn)品控制,采用先進(jìn)的技術(shù),成果能清楚地審查,開發(fā)隊(duì)伍精練,不斷改進(jìn)工程實(shí)踐。工程目標(biāo):開發(fā)成本較低,軟件功能能滿足用戶需求,軟件性能較好,軟件可靠性高,軟件易于使用、維護(hù)與移植,能按時完成開發(fā)任務(wù)并及時交付使用。工程文化:包括工程價值、工程思想和工程行為三個方面的內(nèi)容。二、軟件工程過程模型軟件生命周期如同任何事物都有一個發(fā)生、發(fā)展、成熟直至衰亡的全過程一樣,軟件系統(tǒng)或軟件產(chǎn)品也有一個定義、開發(fā)、運(yùn)行維護(hù)直至被淘汰這樣的全過程,我們把軟件將要經(jīng)歷的這個全過程稱為軟件的生命周期。它包含:軟件定義、軟件開發(fā)、軟件運(yùn)行維護(hù)三個時期,并可以細(xì)分為可行性研究、項(xiàng)目計(jì)劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)與單元測試、系統(tǒng)集成測試、系統(tǒng)確認(rèn)驗(yàn)證、系統(tǒng)運(yùn)行與維護(hù)等幾個階段。軟件定義期軟件定義是軟件項(xiàng)目的早期階段,主要由軟件系統(tǒng)分析人員和用戶合作,針對有待開發(fā)的軟件系統(tǒng)進(jìn)行分析、規(guī)劃和規(guī)格描述,確定軟件是什么,為今后的軟件開發(fā)做準(zhǔn)備。這個時期往往需要分階段地進(jìn)行以下幾項(xiàng)工作。1.軟件任務(wù)立項(xiàng)軟件項(xiàng)目往往開始于任務(wù)立項(xiàng),并需要以“軟件任務(wù)立項(xiàng)報(bào)告”的形式針對項(xiàng)目的名稱、性質(zhì)、目標(biāo)、意義和規(guī)模等作出回答,以此獲得對準(zhǔn)備著手開發(fā)的軟件系統(tǒng)的最高層描述。項(xiàng)目可行性分析在軟件任務(wù)立項(xiàng)報(bào)告被批準(zhǔn)以后,接著需要進(jìn)行項(xiàng)目可行性分析??尚行苑治鍪轻槍?zhǔn)備進(jìn)行的軟件項(xiàng)目進(jìn)行的可行性風(fēng)險評估。因此,需要對準(zhǔn)備開發(fā)的軟件系統(tǒng)提出高層模型,并根據(jù)高層模型的特征,從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性這三個方面,以“可行性研究報(bào)告”的形式,對項(xiàng)目作出是否值得往下進(jìn)行的回答,由此決定項(xiàng)目是否繼續(xù)進(jìn)行下去。制定項(xiàng)目計(jì)劃在確定項(xiàng)目可以進(jìn)行以后,接著需要針對項(xiàng)目的開展,從人員、組織、進(jìn)度、資金、設(shè)備等多個方面進(jìn)行合理的規(guī)劃,并以“項(xiàng)目開發(fā)計(jì)劃書”的形式提交書面報(bào)告。軟件需求分析軟件需求分析是軟件規(guī)格描述的具體化與細(xì)節(jié)化,是軟件定義時期需要達(dá)到的目標(biāo)。需求分析要求以用戶需求為基本依據(jù),從功能、性能、數(shù)據(jù)、操作等多個方面,對軟件系統(tǒng)給出完整、準(zhǔn)確、具體的描述,用于確定軟件規(guī)格。其結(jié)果將以“軟件需求規(guī)格說明書”的形式提交。在軟件項(xiàng)目進(jìn)行過程中,需求分析是從軟件定義到軟件開發(fā)的最關(guān)鍵步驟,其結(jié)論不僅是今后軟件開發(fā)的基本依據(jù),同時也是今后用戶對軟件產(chǎn)品進(jìn)行驗(yàn)收的基本依據(jù)。軟件開發(fā)期在對軟件規(guī)格完成定義以后,接著可以按照“軟件需求規(guī)格說明書”的要求對軟件實(shí)施開發(fā),并由此制作出軟件產(chǎn)品。這個時期需要分階段地完成以下幾項(xiàng)工作。軟件概要設(shè)計(jì)概要設(shè)計(jì)是針對軟件系統(tǒng)的結(jié)構(gòu)設(shè)計(jì),用于從總體上對軟件的構(gòu)造、接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)環(huán)境等給出設(shè)計(jì)說明,并以“概要設(shè)計(jì)說明書”的形式提交書面報(bào)告,其結(jié)果將成為詳細(xì)設(shè)計(jì)與系統(tǒng)集成的基本依據(jù)。模塊是概要設(shè)計(jì)時構(gòu)造軟件的基本元素,因此,概要設(shè)計(jì)中軟件也就主要體現(xiàn)在模塊的構(gòu)成與模塊接口這兩個方面上。結(jié)構(gòu)化設(shè)計(jì)中的函數(shù)、過程,面向?qū)ο笤O(shè)計(jì)中的類、對象,它們都是模塊。概要設(shè)計(jì)時并不需要說明模塊的內(nèi)部細(xì)節(jié),但是需要進(jìn)行全部的有關(guān)它們構(gòu)造的定義,包括功能特征、數(shù)據(jù)特征和接口等。在進(jìn)行概要設(shè)計(jì)時,模塊的獨(dú)立性是一個有關(guān)質(zhì)量的重要技術(shù)性指標(biāo),可以使用模塊的內(nèi)聚、耦合這兩個定性參數(shù)對模塊獨(dú)立性進(jìn)行度量。軟件詳細(xì)設(shè)計(jì)設(shè)計(jì)工作的第二步是詳細(xì)設(shè)計(jì),它以概要設(shè)計(jì)為依據(jù),用于確定軟件結(jié)構(gòu)中每個模塊的內(nèi)部細(xì)節(jié),為編寫程序提供最直接的依據(jù)。詳細(xì)設(shè)計(jì)需要從實(shí)現(xiàn)每個模塊功能的程序算法和模塊內(nèi)部的局部數(shù)據(jù)結(jié)構(gòu)等細(xì)節(jié)內(nèi)容上給出設(shè)計(jì)說明,并以“詳細(xì)設(shè)計(jì)說明書”的形式提交書面報(bào)告。編碼和單元測試編碼是對軟件的實(shí)現(xiàn),一般由程序員完成,并以獲得源程序基本模塊為目標(biāo)。編碼必須按照“詳細(xì)設(shè)計(jì)說明書”的要求逐個模塊地實(shí)現(xiàn)。在基于軟件工程的軟件開發(fā)過程中,編碼往往只是一項(xiàng)語言轉(zhuǎn)譯工作,即把詳細(xì)設(shè)計(jì)中的算法描述語言轉(zhuǎn)譯成某種適當(dāng)?shù)母呒壋绦蛟O(shè)計(jì)語言或匯編語言。為了方便程序調(diào)試,針對基本模塊的單元測試也往往和編碼結(jié)合在一起進(jìn)行。單元測試也以“詳細(xì)設(shè)計(jì)說明書”為依據(jù),用于檢驗(yàn)每個基本模塊在功能、算法與數(shù)據(jù)結(jié)構(gòu)上是否符合設(shè)計(jì)要求。系統(tǒng)集成測試所謂系統(tǒng)集成也就是根據(jù)概要設(shè)計(jì)中的軟件結(jié)構(gòu),把經(jīng)過測試的模塊,按照某種選定的集成策略,例如漸增集成策略,將系統(tǒng)組裝起來。在組裝過程中,需要對整個系統(tǒng)進(jìn)行集成測試,以確保系統(tǒng)在技術(shù)上符合設(shè)計(jì)要求,在應(yīng)用上滿足需求規(guī)格要求。系統(tǒng)確認(rèn)驗(yàn)證在完成對系統(tǒng)的集成之后,接著還要對系統(tǒng)進(jìn)行確認(rèn)驗(yàn)證。系統(tǒng)確認(rèn)驗(yàn)證需要以用戶為主體,以需求規(guī)格說明書中對軟件的定義為依據(jù),由此對軟件的各項(xiàng)規(guī)格進(jìn)行逐項(xiàng)地確認(rèn),以確保已經(jīng)完成的軟件系統(tǒng)與需求規(guī)格的一致性。為了方便用戶在系統(tǒng)確認(rèn)期間能夠積極參入,也為了系統(tǒng)在以后的運(yùn)行過程中能夠被用戶正確使用,這個時期往往還需要以一定的方式對用戶進(jìn)行必要的培訓(xùn)。在完成對軟件的驗(yàn)收之后,軟件系統(tǒng)可以交付用戶使用,并需要以“項(xiàng)目開發(fā)總結(jié)報(bào)告”的書面形式對項(xiàng)目進(jìn)行總結(jié)。軟件運(yùn)行與維護(hù)期軟件系統(tǒng)的運(yùn)行是一個比較長久的過程,跟軟件開發(fā)機(jī)構(gòu)有關(guān)的主要任務(wù)是對系統(tǒng)進(jìn)行經(jīng)常性的有效維護(hù)。軟件的維護(hù)過程,也就是修正軟件錯誤,完善軟件功能,由此使軟件不斷進(jìn)化升級的過程,以使系統(tǒng)更加持久地滿足用戶的需要。因此,對軟件的維護(hù)也可以看成為對軟件的再一次開發(fā)。在這個時期,對軟件的維護(hù)主要涉及三個方面的任務(wù),即改正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。瀑布模型瀑布模型誕生于20世紀(jì)70年代,是最經(jīng)典的并獲得最廣泛應(yīng)用的軟件過程模型。瀑布模型中的“瀑布”是對這個模型的形象表達(dá),即山頂傾瀉下來的水,自頂向下、逐層細(xì)化。特點(diǎn):線性化模型、階段具有里程碑特征、基于文檔的驅(qū)動、階段評審機(jī)制。作用:為軟件項(xiàng)目按規(guī)程管理提供了便利,為其他過程模型的推出提供了一個良好的拓展平臺。局限性:主要適合于需求明確且無大的需求變更的軟件開發(fā),但不適合分析初期需求模糊的項(xiàng)目。原型模型快速原型方法:是原型模型在軟件分析、設(shè)計(jì)階段的應(yīng)用,用來解決用戶對軟件系統(tǒng)在需求上的模糊認(rèn)識,或用來試探某種設(shè)計(jì)是否能夠獲得預(yù)期結(jié)果。原型進(jìn)化模型:針對有待開發(fā)的軟件系統(tǒng),先開發(fā)一個原型給用戶使用,然后根據(jù)用戶的使用意見,對原型不斷修改,使它逐步接近,并最終到達(dá)開發(fā)目標(biāo)。

增量模型增量模型結(jié)合了瀑布模型與原型進(jìn)化模型的優(yōu)點(diǎn)。在整體上按照瀑布模型的流程實(shí)施開發(fā),以方便對項(xiàng)目的管理。但在軟件的實(shí)際創(chuàng)建中,則將軟件系統(tǒng)按功能分解為許多增量構(gòu)件逐個地創(chuàng)建與交付,直到全部構(gòu)件創(chuàng)建完畢,并都被集成到系統(tǒng)之中交付使用。比較瀑布模型、原型進(jìn)化模型,增量模型具有非常顯著的優(yōu)越性。但增量模型對軟件設(shè)計(jì)有更高的技術(shù)要求。螺旋模型螺旋模型是一種引入了風(fēng)險分析與規(guī)避機(jī)制的過程模型,是瀑布模型、快速原型方法和風(fēng)險分析方法的有機(jī)結(jié)合。其基本方法是,在各個階段創(chuàng)建原型進(jìn)行項(xiàng)目試驗(yàn),以降低各個階段可能遇到的項(xiàng)目風(fēng)險。昆險獨(dú)機(jī)颯歐務(wù)析料3陰T廊皇原血原型I慎魅期試開裝計(jì)制君素規(guī)劃耳I土布周期晚劍產(chǎn)屈/計(jì)操作裾意/果㈱泓/確能目標(biāo).遺擇方撾,配罡約況條件昆險獨(dú)機(jī)颯歐務(wù)析料3陰T廊皇原血原型I慎魅期試開裝計(jì)制君素規(guī)劃耳I土布周期晚劍產(chǎn)屈/計(jì)操作裾意/果㈱泓/確能目標(biāo).遺擇方撾,配罡約況條件集成與測試“劃逃劃卜?階演設(shè)讓臉孑驗(yàn)收楠試姐行蝶護(hù)一訐筑、鈴證F巍產(chǎn)珞評姑方案、祝利并排雕風(fēng)鴕噴泉模型是專門針對面向?qū)ο筌浖_發(fā)方法而提出的?!皣娙币辉~用于形象地表達(dá)面向?qū)ο筌浖_發(fā)過程中的迭代和無縫過渡。組件復(fù)用模型組件復(fù)用方法是最近幾年發(fā)展起來的先進(jìn)的軟件復(fù)用技術(shù),在基于組件復(fù)用的軟件開發(fā)中,軟件由組件裝配而成,這就如同用標(biāo)準(zhǔn)零件裝配汽車一樣。因此,組件復(fù)用模型能夠有效地提高軟件生產(chǎn)率。三、項(xiàng)目分析與規(guī)劃計(jì)算機(jī)系統(tǒng)分析計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)是一個非常復(fù)雜并具有智能特性的開發(fā)系統(tǒng),包括:硬件系統(tǒng)、軟件系統(tǒng)、網(wǎng)絡(luò)通信系統(tǒng)、人工操作系統(tǒng)等諸多子系統(tǒng)。系統(tǒng)分析系統(tǒng)分析是對軟件項(xiàng)目的高層分析,需要獲取的是有關(guān)系統(tǒng)的框架描述,并需要使系統(tǒng)從它所處的環(huán)境中分離出來,為劃分系統(tǒng)邊界與確定系統(tǒng)構(gòu)架提供依據(jù)。系統(tǒng)分析模型分析模型是指采用作圖方式對系統(tǒng)進(jìn)行直觀的描述。系統(tǒng)前期分析過程中經(jīng)常使用的圖形模型有系統(tǒng)框架圖和系統(tǒng)流程圖。其中,系統(tǒng)框架圖用于說明系統(tǒng)的基本構(gòu)造框架,而系統(tǒng)流程圖則用于表現(xiàn)系統(tǒng)的基本加工流程。項(xiàng)目可行性分析意義?以少量的費(fèi)用對項(xiàng)目能否實(shí)施盡早作出決斷。?根據(jù)項(xiàng)目條件限制,對系統(tǒng)的體系構(gòu)造、工作模式等作出高層抉擇。?其結(jié)果可作為一個高層框架被用于需求分析之中。分析內(nèi)容?技術(shù)可行性:從技術(shù)與技術(shù)資源這兩個方面作出可行性評估。?經(jīng)濟(jì)可行性:從項(xiàng)目投資和經(jīng)濟(jì)效益這兩個方面作出可行性評估。?應(yīng)用可行性:從法律法規(guī)、用戶操作規(guī)程等方面作出可行性評估。(3)分析過程?建立系統(tǒng)模型。?進(jìn)行可行性評估。?撰寫可行性研究報(bào)告。項(xiàng)目成本效益分析(1)項(xiàng)目成本估算方法:基于軟件規(guī)模的成本估算;基于任務(wù)分解的成本估算。(2)項(xiàng)目效益分析指標(biāo):純收入;投資回收期;投資回收率。項(xiàng)目規(guī)劃(1)項(xiàng)目開發(fā)計(jì)劃項(xiàng)目開發(fā)計(jì)劃涉及的內(nèi)容包括:?開發(fā)團(tuán)隊(duì)的組織結(jié)構(gòu),人員組成與分工。?項(xiàng)目成本預(yù)算。?項(xiàng)目對硬件、軟件的資源需求。?項(xiàng)目任務(wù)分解和每項(xiàng)的任務(wù)里程碑標(biāo)志。?基于里程碑的進(jìn)度計(jì)劃和人員配備計(jì)劃。?項(xiàng)目風(fēng)險計(jì)劃。?項(xiàng)目監(jiān)督計(jì)劃。(2)項(xiàng)目進(jìn)度表項(xiàng)目進(jìn)度是基于里程碑制定的,可以使用進(jìn)度圖表來描述項(xiàng)目進(jìn)度。甘特圖表是一種常用的項(xiàng)目進(jìn)度圖表,可以直觀地描述項(xiàng)目任務(wù)的活動分解,以及活動之間的依賴關(guān)系、資源配置情況、各項(xiàng)活動的進(jìn)展情況等。四、軟件需求分析需求分析任務(wù)(1)用戶需求用戶需求是用戶關(guān)于軟件的一系列意圖、想法的集中體現(xiàn),是用戶關(guān)于軟件的外界特征的規(guī)格表述。(2)系統(tǒng)需求系統(tǒng)需求是比用戶需求更具有技術(shù)特性的需求陳述,是提供給開發(fā)者或用戶方技術(shù)人員閱讀的,并將作為軟件開發(fā)人員設(shè)計(jì)系統(tǒng)的起點(diǎn)與基本依據(jù)。主要包括:功能、數(shù)據(jù)、性能、安全等諸多方面的需求問題。需求分析過程需求分析是對軟件系統(tǒng)的后期分析,需要進(jìn)行的活動包括:分析用戶需求、建立需求原型、分析系統(tǒng)需求和進(jìn)行需求驗(yàn)證等。用戶需求獲?。?)用戶調(diào)查是最基本的用戶需求信息收集方法,比較常用的調(diào)查方法包括:訪談用戶、開座談會、問卷調(diào)查、跟班作業(yè)、收集用戶資料。(2)需求原型可被用來解決用戶對軟件系統(tǒng)在需求認(rèn)識上的不確定性。一般情況下,開發(fā)人員將軟件系統(tǒng)中最能夠被用戶直接感受的那一部分東西構(gòu)造成為原型。例如,界面、報(bào)表或數(shù)據(jù)查詢結(jié)果。結(jié)構(gòu)化分析建模所謂模型,就是對問題所做的一種符號抽象。可以把模型看作為一種思維工具,利用這種工具可以把問題規(guī)范地表示出來。主要的分析模型包括:(1)功能層次模型。它使用矩形來表示系統(tǒng)中的子系統(tǒng)或功能模塊,使用樹形連線結(jié)構(gòu)來表達(dá)系統(tǒng)所具有的功能層級關(guān)系。(2)數(shù)據(jù)流模型。用于描述系統(tǒng)對數(shù)據(jù)的加工過程,其圖形符號是一些具有抽象意義的邏輯符號,主要的圖形符號包括:數(shù)據(jù)接口、數(shù)據(jù)流、數(shù)據(jù)存儲和數(shù)據(jù)處理??梢砸揽繑?shù)據(jù)流圖來實(shí)現(xiàn)從用戶需求到系統(tǒng)需求的過渡。結(jié)構(gòu)化分析就是基于數(shù)據(jù)流的細(xì)化實(shí)現(xiàn)的,它是結(jié)構(gòu)化分析方法的關(guān)鍵。(3)數(shù)據(jù)關(guān)系模型。也稱為ER圖,是應(yīng)用最廣泛的數(shù)據(jù)庫建模工具。需要通過數(shù)據(jù)實(shí)體、數(shù)據(jù)關(guān)系和數(shù)據(jù)屬性這三類圖形元素建立數(shù)據(jù)關(guān)系模型。(4)系統(tǒng)狀態(tài)模型。通過系統(tǒng)的外部事件、內(nèi)部狀態(tài)為基本元素來描繪系統(tǒng)的工作流程,這種建模方式比較適合于描述一些依賴于外部事件驅(qū)動的實(shí)時系統(tǒng)。需求有效性驗(yàn)證需求有效性驗(yàn)證是指對已經(jīng)產(chǎn)生的需求結(jié)論所要進(jìn)行的檢查與評價。一般需要對需求文檔草稿從有效性、一致性、完整性、現(xiàn)實(shí)性、可檢驗(yàn)性等幾個方面進(jìn)行有效性驗(yàn)證。比較常用的需求有效性驗(yàn)證方法與工具包括:需求評審、需求原型評價和基于CASE工具的需求一致性分析。需求規(guī)格定義需求規(guī)格說明書是需求分析階段需要交付的基本文檔,將成為開發(fā)者進(jìn)行軟件設(shè)計(jì)和用戶進(jìn)行軟件驗(yàn)證的基本依據(jù),涉及引言、術(shù)語定義、用戶需求、系統(tǒng)體系結(jié)構(gòu)、系統(tǒng)需求等有關(guān)軟件需求及其規(guī)格的諸多描述與定義。五、軟件概要設(shè)計(jì)1.設(shè)計(jì)過程與任務(wù)概要設(shè)計(jì)中首先需要進(jìn)行的是系統(tǒng)構(gòu)架設(shè)計(jì),然后是軟件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)等方面的設(shè)計(jì)。主要有以下幾個方面的設(shè)計(jì)任務(wù):制定規(guī)范、系統(tǒng)構(gòu)架設(shè)計(jì)、軟件結(jié)構(gòu)設(shè)計(jì)、公共數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、安全性設(shè)計(jì)、故障處理設(shè)計(jì)、可維護(hù)性設(shè)計(jì)、編寫文檔、設(shè)計(jì)評審。系統(tǒng)構(gòu)架設(shè)計(jì)集中式結(jié)構(gòu)集中式系統(tǒng)由一臺計(jì)算機(jī)主機(jī)和多個終端設(shè)備組成。其具有非常好的工作穩(wěn)定性和安全保密性。但系統(tǒng)建設(shè)費(fèi)用、運(yùn)行費(fèi)用比較高,靈活性不夠好,結(jié)構(gòu)不便于擴(kuò)充。客戶機(jī)/服務(wù)器結(jié)構(gòu)客戶機(jī)/服務(wù)器結(jié)構(gòu)依靠網(wǎng)絡(luò)將計(jì)算任務(wù)分布到許多臺不同的計(jì)算機(jī)上,但通過其中的服務(wù)器計(jì)算機(jī)提供集中式服務(wù)。其優(yōu)越性是結(jié)構(gòu)靈活、便于系統(tǒng)逐步擴(kuò)充。多層客戶機(jī)/服務(wù)器結(jié)構(gòu)?兩層結(jié)構(gòu):將信息表示與應(yīng)用邏輯處理都放在了客戶機(jī)上,服務(wù)器只需要管理數(shù)據(jù)庫事務(wù)。?三層結(jié)構(gòu):將兩層結(jié)構(gòu)的客戶機(jī)上的容易發(fā)生變化的應(yīng)用邏輯部分提取出來,并放到一個專門的“應(yīng)用服務(wù)器”上。?B/S結(jié)構(gòu):是Web技術(shù)與客戶機(jī)/服務(wù)器結(jié)構(gòu)的結(jié)合。其優(yōu)點(diǎn)是不需要對客戶機(jī)進(jìn)行專門的維護(hù)。組件對象分布式結(jié)構(gòu)通過組件進(jìn)行計(jì)算分布。它依賴于對象中間件建立,具有靈活的構(gòu)架,系統(tǒng)伸縮性好,能夠給系統(tǒng)的功能調(diào)整與擴(kuò)充帶來便利。軟件結(jié)構(gòu)設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)是對組成系統(tǒng)的各個子系統(tǒng)的進(jìn)一步分解與規(guī)劃。主要設(shè)計(jì)內(nèi)容有:確定模塊元素、定義模塊功能、定義模塊接口、確定模塊調(diào)用與返回、進(jìn)行結(jié)構(gòu)優(yōu)化。模塊概念?模塊化:使用構(gòu)造程序,可使軟件問題簡化。?抽象化:概要設(shè)計(jì)中的模塊被看成是一個抽象化的功能黑盒子。?信息隱蔽:每個模塊的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)對于其他模塊來說是隱蔽的。模塊的獨(dú)立性軟件系統(tǒng)中每個模塊都只涉及自己特定的子功能,并且接口簡單,與軟件中其他模塊沒有過多的聯(lián)系。一般采用耦合和內(nèi)聚這兩個定性的技術(shù)指標(biāo)進(jìn)行度量。耦合用來反映模塊相互關(guān)聯(lián)程度,模塊間連接越緊密,耦合性就越高。內(nèi)聚用來反映模塊內(nèi)元素的結(jié)合程度,模塊內(nèi)元素結(jié)合越緊密,則內(nèi)聚性就越高。為提高模塊獨(dú)立性,要求模塊高內(nèi)聚、低耦合。耦合形式由低至高是:非直接耦合、數(shù)據(jù)耦合、控制耦合、公共耦合、內(nèi)容耦合。內(nèi)聚形式由低至高是:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。設(shè)計(jì)建模?軟件結(jié)構(gòu)圖:由Yourdon于20世紀(jì)70年代提出,被廣泛應(yīng)用于軟件結(jié)構(gòu)設(shè)計(jì)中,能夠有效說明軟件中模塊之間的調(diào)用與通信。?HIPO圖:由美國IBM公司推出。其中,H圖用于描述軟件的分層調(diào)用關(guān)系,作用類似軟件結(jié)構(gòu)圖,IPO圖用于說明描述模塊的輸入一處理一輸出特征。軟件結(jié)構(gòu)優(yōu)化主要優(yōu)化設(shè)計(jì)原則有:使模塊功能完整、使模塊大小適中、使模塊功能可預(yù)測、盡量降低模塊接口的復(fù)雜程度、使模塊作用范圍限制在其控制范圍之內(nèi)、模塊布局合理。面向數(shù)據(jù)流的結(jié)構(gòu)設(shè)計(jì)變換分析軟件結(jié)構(gòu)由輸入、變換和輸出三個部分組成。事務(wù)分析軟件結(jié)構(gòu)由接收事務(wù)與事務(wù)活動兩個部分組成?;旌狭鞣治雠c設(shè)計(jì)軟件系統(tǒng)是變換流與事務(wù)流的混合。對于這樣的系統(tǒng),通常采用變換分析為主、事務(wù)分析為輔的方式進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì)。5.數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)?設(shè)計(jì)數(shù)據(jù)表?規(guī)范數(shù)據(jù)表?關(guān)聯(lián)數(shù)據(jù)表?設(shè)計(jì)數(shù)據(jù)視圖物理結(jié)構(gòu)設(shè)計(jì)?數(shù)據(jù)存儲結(jié)構(gòu)?數(shù)據(jù)索引與聚集?數(shù)據(jù)完整性六、面向?qū)ο蠓治雠c設(shè)計(jì)1.面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠹夹g(shù)涉及面向?qū)ο蠓治?OOA)、面向?qū)ο笤O(shè)計(jì)(OOD)和面向?qū)ο缶幊虒?shí)現(xiàn)(OOP)這三個方面的問題。基本概念?類:面向?qū)ο竽K單位,作用是為創(chuàng)建對象實(shí)例提供模板。其具有數(shù)據(jù)與行為這兩個方面的特征,并需要通過屬性、操作和方法進(jìn)行描述。?屬性、操作與方法:類具有數(shù)據(jù)與行為這兩個方面的特征,并需要通過屬性、操作和方法進(jìn)行描述。?類的繼承性:指上級父類能夠把自己的屬性、操作傳遞給下級子類。?類的多態(tài)性:子類對象可以像父類對象那樣使用,它們可以共享一個操作名,然而卻有不同的實(shí)現(xiàn)方法。?對象:對象是類模塊實(shí)例化的結(jié)果。?消息:指對象之間的通信。優(yōu)越性?跟現(xiàn)實(shí)世界更加接近?可使軟件系統(tǒng)結(jié)構(gòu)更加穩(wěn)定?軟件具有更好的可重用性?軟件更加便于維護(hù)與擴(kuò)充面向?qū)ο蠓治鼋C嫦驅(qū)ο蠓治鼋P枰⒌氖擒浖到y(tǒng)的用戶領(lǐng)域模型,需要從系統(tǒng)業(yè)務(wù)流程、組織結(jié)構(gòu)和行為過程等幾個方面對系統(tǒng)進(jìn)行分析。用例圖用例圖涉及參入者、用例等元素,用于描述用戶與系統(tǒng)之間的交互關(guān)系,說明系統(tǒng)所具有的業(yè)務(wù)能力和業(yè)務(wù)流程,能夠方便開發(fā)者理解用戶領(lǐng)域的專有術(shù)語和業(yè)務(wù)內(nèi)容?;顒訄D活動圖是一種行為模型,主要用于描述用例圖中用例的內(nèi)部活動狀態(tài)與活動轉(zhuǎn)換過程,以獲得對用例的交互行為與工作流程的細(xì)節(jié)說明。涉及活動狀態(tài)、活動轉(zhuǎn)換等元素。分析類圖建立類圖的概念模型,描述體現(xiàn)現(xiàn)實(shí)世界中數(shù)據(jù)構(gòu)造的實(shí)體類及其它們之間的關(guān)系。序列圖以用例圖中的用例為描述單位,以類圖中的類為對象依據(jù),以活動圖中的活動轉(zhuǎn)換為行為依據(jù),建立與時間順序有關(guān)的用例中對象之間的交互模型。面向?qū)ο笤O(shè)計(jì)建模面向?qū)ο笤O(shè)計(jì)建模需要把分析階段的結(jié)果擴(kuò)展成技術(shù)解決方案,需要建立的是軟件系統(tǒng)的技術(shù)構(gòu)造模型。設(shè)計(jì)類圖設(shè)計(jì)類圖中的類是構(gòu)造系統(tǒng)的基本模塊單位,需要在分析類圖基礎(chǔ)上進(jìn)行更加完整的面向設(shè)計(jì)的描述。除了實(shí)體類,設(shè)計(jì)類圖中還需要考慮用于向外提供操作接口的邊界類和用于實(shí)現(xiàn)內(nèi)部協(xié)調(diào)的控制類。協(xié)作圖描述對象交互時的鏈接關(guān)系和基于鏈接而產(chǎn)生的消息通信及其操作接口。狀態(tài)圖描述一個特定對象的所有可能的狀態(tài)以及引起狀態(tài)轉(zhuǎn)換的事件。構(gòu)件圖描述組成系統(tǒng)的物理構(gòu)件及其它們之間的關(guān)系。構(gòu)件之間關(guān)系主要是依賴關(guān)系。部署圖描述系統(tǒng)運(yùn)行時的物理架構(gòu),涉及物理節(jié)點(diǎn)、節(jié)點(diǎn)之間的連接關(guān)系以及部署到各個節(jié)點(diǎn)上的構(gòu)件的實(shí)例等。七、用戶界面設(shè)計(jì)圖形用戶界面(GUI)所具有的特點(diǎn)比較容易學(xué)習(xí)和使用。用戶可利用多屏幕(窗口)與系統(tǒng)進(jìn)行交互,并可通過任務(wù)窗方便地由一個任務(wù)轉(zhuǎn)換到另一個任務(wù)??梢詫?shí)現(xiàn)快速、全屏的交互,能很快在屏幕上的任何地方進(jìn)行操作。圖形用戶界面設(shè)計(jì)已不是設(shè)計(jì)人員能夠獨(dú)立解決的了,需要邀請圖形設(shè)計(jì)人員、系統(tǒng)分析人員、系統(tǒng)設(shè)計(jì)人員、程序員、用戶應(yīng)用領(lǐng)域方面的專家和社會行為學(xué)方面的專家以及最終用戶的共同參入?;谠偷挠脩艚缑嬖O(shè)計(jì)用戶界面設(shè)計(jì)是一個迭代的過程,其基本過程包括三個步驟:建立界面需求規(guī)格模型。以界面需求模型為依據(jù)創(chuàng)建界面原型。評價界面原型。界面設(shè)計(jì)中需要考慮的因素用戶界面設(shè)計(jì)將會受諸多用戶因素的影響,并主要體現(xiàn)在以下幾個方面:用戶工作環(huán)境與工作習(xí)慣。用戶操作定勢。界面一致性。界面動作感。界面信息反饋。個性化。容錯性。審美性與可用性。界面類型在基于圖形界面的應(yīng)用系統(tǒng)中,用戶界面一般由若干個窗體組成,其窗體類型包括:單窗體界面(SDI)。其特點(diǎn)是應(yīng)用程序一次只能打開一個獨(dú)立窗體。多窗體界面(MDI)。由一個MDI主窗體和多個MDI子窗體組成。其中MDI主窗體如同容器用來裝載MDI子窗體,而MDI子窗體則被限制于MDI主窗體之內(nèi),不能獨(dú)立存在。諸多公共操作都被放置在MDI主窗體上。輔助窗體。通常也叫做對話框,它是對主窗體的補(bǔ)充,用于擴(kuò)展主窗體的功能。輔助窗體的種類主要有:登錄窗、消息窗、設(shè)置窗等。Web頁面。當(dāng)采用到基于Web的B/S結(jié)構(gòu)時,系統(tǒng)中的某個Web頁面可能會被作為Web應(yīng)用的進(jìn)入點(diǎn),則它可以作為一個特殊的主窗體看待。界面功能特征在進(jìn)行用戶界面設(shè)計(jì)時,需要考慮界面的功能問題。大體上說來,用戶界面的功能主要體現(xiàn)在以下方面:用戶交互。指用戶與計(jì)算機(jī)系統(tǒng)之間的信息交流。信息表示。指系統(tǒng)提供給用戶信息,信息可以采用文本形式表示,也可以采用圖形形式表示。用戶聯(lián)機(jī)支持。指系統(tǒng)給用戶提供的應(yīng)用指導(dǎo)。界面導(dǎo)航設(shè)計(jì)界面導(dǎo)航所指的是如何由一個界面轉(zhuǎn)換到另一個界面??梢允褂没顒訄D來描述界面之間的轉(zhuǎn)換關(guān)系,其中活動圖中的每一個活動狀態(tài)可用來表示系統(tǒng)中的每一個界面。八、程序算法設(shè)計(jì)與編碼結(jié)構(gòu)化程序特征結(jié)構(gòu)化程序的基本特征是程序的任何位置是單入口、單出口的。因此,結(jié)構(gòu)化程序設(shè)計(jì)中,GOTO語句的使用受到了限制,并且程序控制也要求采用結(jié)構(gòu)化的控制結(jié)構(gòu),以確保程序是單入口和單出口的。程序算法設(shè)計(jì)工具程序流程圖程序流程圖又稱為程序框圖,其歷史悠久、應(yīng)用廣泛,從20世紀(jì)40年代末到70年代中期,它一直是程序算法設(shè)計(jì)的主要工具。程序流程圖的主要優(yōu)點(diǎn)是能夠非常直觀的描述程序的控制流程。但是,傳統(tǒng)的程序流程圖卻是一種非結(jié)構(gòu)化的程序算法設(shè)計(jì)工具。N-S圖為了滿足結(jié)構(gòu)化程序設(shè)計(jì)對算法設(shè)計(jì)工具的需要,Nassi和Shneiderman推出了盒圖,又稱為N-S圖。它是一種嚴(yán)格符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具。N-S圖的基本特點(diǎn)是通過矩形框描述模塊內(nèi)部程序的各個功能區(qū)域,并通過由外到內(nèi)的矩形框嵌套表示程序的多層控制嵌套。PAD圖PAD是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,由日本日立公司首先推出,并得到了廣泛的應(yīng)用。它是符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具。PAD圖的基本特點(diǎn)是使用二維樹形結(jié)構(gòu)表示程序的控制流程,從上至下是程序進(jìn)程方向,從左至右是程序控制嵌套關(guān)系。PDL語言PDL語言也稱為偽碼,或過程設(shè)計(jì)語言,它一般是某種高級語言稍加改造后的產(chǎn)物,可以使用普通的正文編輯軟件或文字處理系統(tǒng)進(jìn)行PDL的書寫和編輯。PDL語言的語法規(guī)則分外部語法和內(nèi)部語法。其中,外部語法用于定義程序中的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),內(nèi)部語法則用于表示程序中的加工計(jì)算或條件。判定表判定表是算法設(shè)計(jì)輔助工具,專門用于對復(fù)雜的條件組合關(guān)系及其對應(yīng)的動作行為等給出更加清晰的說明,能夠簡潔而又無歧義地描述涉及條件判斷的處理規(guī)則。3.Jackson程序設(shè)計(jì)方法1983年法國科學(xué)家Jackson提出了一種以軟件中的數(shù)據(jù)結(jié)構(gòu)為基本依據(jù)的程序算法設(shè)計(jì)方法。在以數(shù)據(jù)處理為主要內(nèi)容的信息系統(tǒng)開發(fā)中,具有一定的應(yīng)用價值。Jackson程序設(shè)計(jì)方法的基本設(shè)計(jì)途徑是通過分析輸入數(shù)據(jù)與輸出數(shù)據(jù)的層次結(jié)構(gòu),由此對程序算法的層次結(jié)構(gòu)進(jìn)行推論。為了方便由數(shù)據(jù)結(jié)構(gòu)映射出程序結(jié)構(gòu),Jackson將軟件系統(tǒng)中所遇到的數(shù)據(jù)分為順序、選擇和重復(fù)三種結(jié)構(gòu),并使用圖形方式加以表示。Jackson程序結(jié)構(gòu)也是順序、選擇和重復(fù)這三種結(jié)構(gòu),并可以使用與數(shù)據(jù)結(jié)構(gòu)相同的圖形符號表示。4.程序編碼在完成程序算法設(shè)計(jì)之后,接著需要編碼。編程語言種類?低級語言:包括第一代機(jī)器語言與匯編語言,它們是直接面向機(jī)器的語言。?高級語言:指面向問題求解過程的語言,使用了與人的思維體系更加接近的概念和符號,一般不依賴于實(shí)現(xiàn)這種語言的計(jì)算機(jī),具有較好的可移植性。?第四代語言(4GL):指一些面向問題的高級語言,第四代語言是在更高一級抽象的層次上表示數(shù)據(jù)與猜想結(jié)構(gòu),它不需要規(guī)定程序算法細(xì)節(jié)。選擇編程語言的依據(jù)在對軟件系統(tǒng)進(jìn)行編碼之前,必須抉擇使用什么樣的程序設(shè)計(jì)語言實(shí)現(xiàn)這個軟件系統(tǒng)。在選擇編程語言時往往需要考慮諸多方面的因素,例如軟件項(xiàng)目的應(yīng)用領(lǐng)域、軟件問題的算法復(fù)雜性、軟件的工作環(huán)境、軟件在性能上的需要、軟件中數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性、軟件開發(fā)人員的知識水平和心理因素等。編程風(fēng)格與質(zhì)量編程風(fēng)格是編寫程序時需要遵守的一些規(guī)則。在衡量程序質(zhì)量時,源程序代碼的邏輯簡明清晰、易讀易懂是一個重要因素,而這些都與編程風(fēng)格有著直接的關(guān)系。影響程序工作效率的因素一般說來,程序工作效率會受到處理器計(jì)算速度、存儲器存儲容量和輸入輸出速度等幾個方面因素的影響,并與程序設(shè)計(jì)語言、操作系統(tǒng)、硬件環(huán)境等有著直接關(guān)系。因此,在考慮程序工作效率時,需要將諸多因素綜合起來分析。5.程序算法復(fù)雜性度量程序算法復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性。比較著名的程序算法復(fù)雜性度量方法是McCabe度量法,其對程序復(fù)雜性的度量采用的是程序的環(huán)形復(fù)雜度,計(jì)算公式是:V(G)=m-n+p其中,V(G)是程序有向圖G中的環(huán)數(shù),m是程序有向圖G中的弧數(shù),n是程序有向圖G中的節(jié)點(diǎn)數(shù),p是程序有向圖G中分離部分的數(shù)目。九、軟件測試測試目標(biāo)盡力發(fā)現(xiàn)軟件中的錯誤,而不是為了驗(yàn)證軟件的正確性。測試方法黑盒測試:基于程序的外部功能規(guī)格而進(jìn)行的測試,又稱為功能測試。白盒測試:基于程序的內(nèi)部結(jié)構(gòu)與處理過程而進(jìn)行的測試,又稱為結(jié)構(gòu)測試。單元測試單元測試的對象是單元模塊,一般以白盒測試為主,以黑盒測試為輔。測試內(nèi)容包括模塊接口測試、局部數(shù)據(jù)結(jié)構(gòu)測試、路徑測試、錯誤處理測試、邊界測試。單元測試通常在編碼階段進(jìn)行。測試時需要用到輔助模塊,如驅(qū)動模塊、樁模塊。集成測試系統(tǒng)集成時主要有非漸增組裝測試和漸增組裝測試這兩種方法:非漸增組裝測試:一種一次性地進(jìn)行系統(tǒng)組裝的方法。漸增組裝測試:一種將單元模塊的確認(rèn)測試與集成測試結(jié)合在一起的測試方法,它比非漸增組裝測試是具有更大的優(yōu)越性??梢宰皂斚蛳聺u增集成,也可以自底向上漸增集成。確認(rèn)測試確認(rèn)測試又稱有效性測試,其任務(wù)是驗(yàn)證軟件的功能、性能及其他特性是否與用戶的要求一致。在進(jìn)行確認(rèn)測試時,可以采用Alpha測試或Beta測試。其中,Alpha測試是在開發(fā)環(huán)境下由用戶進(jìn)行的測試,而Beta測試則是由軟件用戶在軟件實(shí)際使用環(huán)境下進(jìn)行的測試。測試用例設(shè)計(jì)設(shè)計(jì)測試用例就是為測試準(zhǔn)備測試數(shù)據(jù)。由于測試用例不同,發(fā)現(xiàn)程序錯誤的能力也就不同,為了提高測試效率降低測試成本,應(yīng)該選用高效的測試用例。白盒測試用例設(shè)計(jì)主要采用邏輯覆蓋,包括語句覆蓋、判定覆蓋、條件覆蓋、判定一條件覆蓋、條件組合覆蓋和路徑覆蓋。黑盒測試用例設(shè)計(jì)包括等價劃分、邊界值分析和錯誤推測等幾種方法。面向?qū)ο鬁y試面向?qū)ο髥卧獪y試不能孤立地測試單個操作,而應(yīng)該把操作作為類的一部分來測試。面向?qū)ο蠹蓽y試?基于線程的測試。?基于使用的測試。面向?qū)ο蟠_認(rèn)測試研究系統(tǒng)的用例模型和活動模型,設(shè)計(jì)出確認(rèn)測試時的用戶操作腳本。8.軟件調(diào)試軟件調(diào)試也叫做排錯,涉及診斷與排錯這兩個步驟。但調(diào)試的關(guān)鍵是診斷。常用的調(diào)試方法有:輸出存儲器內(nèi)容、在程序中插入輸出語句、使用自動調(diào)式工具。常用的調(diào)試策略有:試探法、回溯法、對分查找法、歸納法、演繹法。自動測試工具常用的自動測試工具有:測試數(shù)據(jù)生成程序、動態(tài)分析程序、靜態(tài)分析程序、模塊測試、程序。軟件可靠性評估軟件可靠性的定

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論