




免費(fèi)預(yù)覽已結(jié)束,剩余9頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章緒論軟件:是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來。軟件危機(jī):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。主要是兩個(gè)問題:1. 如何開發(fā)軟件,怎樣滿足對(duì)軟件的日益增長(zhǎng)的需求。2. 如何維護(hù)數(shù)量不斷膨脹的已有軟件。主要表現(xiàn):1. 對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確2. 用戶不滿意3. 軟件質(zhì)量不高、可靠性差4. 軟件常常不可維護(hù)、錯(cuò)誤難以改正5. 缺乏適當(dāng)?shù)奈臋n資料6. 軟件成本占系統(tǒng)總成本的比例逐年上升7. 軟件開發(fā)速度跟不上計(jì)算機(jī)發(fā)展速度產(chǎn)生軟件危機(jī)的原因1. 與軟件本身的特點(diǎn)有關(guān):軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)的邏輯部件而不是物理部件。在寫出程序代碼并在計(jì)算機(jī)運(yùn)行之前,軟件開發(fā)過程的進(jìn)展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評(píng)價(jià)。因此,管理和控制軟件開發(fā)過程相當(dāng)困難。2. 軟件不易于維護(hù):(1軟件維護(hù)通常意味著改正或修改原來的設(shè)計(jì),客觀上使軟件較難維護(hù)。(2軟件不同于一般程序,它的規(guī)模大,不易于維護(hù)。3. 在軟件開發(fā)過程中,或多或少地采用了錯(cuò)誤的方法和技術(shù)。4. 對(duì)用戶需求沒有完整準(zhǔn)確的認(rèn)識(shí),就匆忙著手編寫程序。解決軟件危機(jī)的途徑:研制新一代體系結(jié)構(gòu)的智能計(jì)算機(jī),以改變軟件的實(shí)現(xiàn)方式,降低軟件的復(fù)雜性。目前尚未研制成功。采用工程化、規(guī)范化的開發(fā)方法來指導(dǎo)軟件的開發(fā):這就是產(chǎn)生“軟件工程學(xué)”的背景,并在70年代形成了結(jié)構(gòu)化分析、設(shè)計(jì)方法。在求解方法上采用面向?qū)ο蟮能浖O(shè)計(jì)方法。即在軟件開發(fā)中,以客觀世界的問題空間入手進(jìn)行軟件設(shè)計(jì),以減少求解方法空間與客觀世界問題空間存在的“鴻溝”?!吧芷诜ā钡钠鹪?軟件工程采用的“生命周期法”,就是從時(shí)間角度對(duì)軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生存的漫長(zhǎng)周期依次劃分為若干個(gè)階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),然后再逐步完成每個(gè)階段的任務(wù).生命周期劃分的原則:任務(wù)的性質(zhì)盡可能相同,從而降低每個(gè)階段任務(wù)的復(fù)雜性,簡(jiǎn)化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理。生命周期的劃分:軟件生命周期一般分為:軟件定義(問題定義、可行性研究、需求分析、軟件開發(fā)(總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試、軟件使用與維護(hù)等三個(gè)時(shí)期八個(gè)階段。問題定義:“要解決什么問題?”可行性研究:“上一個(gè)階段所確定的問題是否有行得通的解決辦法”目的:用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決需求分析:“系統(tǒng)必須做什么”對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義、編寫軟件需求規(guī)格說明書、提交管理機(jī)構(gòu)評(píng)審概要設(shè)計(jì):把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對(duì)應(yīng)詳細(xì)設(shè)計(jì):對(duì)每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)、編寫設(shè)計(jì)說明書,提交評(píng)審。編碼:把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”、寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的軟件測(cè)試:單元測(cè)試:查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正組裝測(cè)試:將已測(cè)試過的模塊按一定順序組裝起來,按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測(cè)試,決定已開發(fā)的軟件是否合格,能否交付用戶使用軟件維護(hù)改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護(hù):為了增強(qiáng)軟件的功能需做變更軟件工程三要素:過程(為軟件工程的過程和方法提供自動(dòng)化或半自動(dòng)化的工具支持、方法(完成項(xiàng)目的技術(shù)手段(傳統(tǒng)方法學(xué)、面向?qū)ο蠓椒▽W(xué)和工具(為軟件工程的過程和方法提供自動(dòng)化或半自動(dòng)化的工具支持軟件工程釆用層次化的方法,每個(gè)層次都包括過程、方法、工具三要素.方法支撐過程和工具、過程和工具促進(jìn)方法學(xué)的研究。將系統(tǒng)的、規(guī)范的、可量化的方法運(yùn)用到軟件工程的始終,滲透到軟件工程的過程、方法和工具中。傳統(tǒng)方法學(xué)(生命周期方法學(xué)原理: 采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術(shù)的運(yùn)用,即把軟件生命周期的全過程依次劃分為若干階段,然后順序地完成每個(gè)階段的任務(wù)。軟件的生存周期及其開發(fā)模型:一、瀑布模型:優(yōu)點(diǎn):通過設(shè)置里程碑,明確每階段的任務(wù)與目標(biāo)??蔀槊侩A段制定開發(fā)計(jì)劃,進(jìn)行成本預(yù)算,組織開發(fā)力量。通過階段評(píng)審,將開發(fā)過程納入正確軌道。嚴(yán)格的計(jì)劃性保證軟件產(chǎn)品的按時(shí)交付。缺點(diǎn):缺乏靈活性,不能適應(yīng)用戶需求的改變。開始階段的小錯(cuò)誤被逐級(jí)放大,可能導(dǎo)致軟件產(chǎn)品報(bào)廢。返回上一級(jí)的開發(fā)需要十分高昂的代價(jià)。隨著軟件規(guī)模和復(fù)雜性的增加,軟件產(chǎn)品成功的機(jī)率大幅下降。適應(yīng)范圍:它主要適應(yīng)于小規(guī)模和需求較為穩(wěn)定的的軟件開發(fā)。瀑布模型一般適用于功能、性能明確、完整、無重大變化的軟件系統(tǒng)的開發(fā)。例如操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)等系統(tǒng)軟件的開發(fā)。應(yīng)用有一定的局限性。二、快速原型模型:基本思想:在獲取一組基本的需求定義后,利用高級(jí)軟件工具的可開發(fā)環(huán)境,快速地建立一個(gè)目標(biāo)系統(tǒng)的最初版本,并把它交給用戶試用、補(bǔ)充和修改,再進(jìn)行新的版本開發(fā)。反復(fù)進(jìn)行這個(gè)過程,直到得出系統(tǒng)的“精確解”,即用戶滿意為止。經(jīng)過這樣一個(gè)反復(fù)補(bǔ)充和修改的過程,應(yīng)用系統(tǒng)的“最初版本”就逐步演變?yōu)橄到y(tǒng)的“最終版本”。三、增量模型:一種非整體開發(fā)的模型。根據(jù)增量的方式和形式的不同,分為基于瀑布模型的漸增模型和基于原型的快速原型模型。使用增量模型開發(fā)模型時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能完成特定的功能。第一個(gè)增量構(gòu)件往往提供最核心的功能。注意:在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個(gè)階段的工作之前,必須完成前一階段的所有細(xì)節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細(xì)節(jié),從而較早地產(chǎn)生工作軟件。四、螺旋模型:在原型基礎(chǔ)上,進(jìn)行多次原型反復(fù)并增加風(fēng)險(xiǎn)評(píng)估,形成螺旋模型。模型、優(yōu)點(diǎn)、缺點(diǎn):瀑布模型、文檔驅(qū)動(dòng)、系統(tǒng)可能不滿足客戶的需求;快速原型模型、關(guān)注滿足客戶需求、可能導(dǎo)致系統(tǒng)設(shè)計(jì)差、效率低,難于維護(hù);增量模型、開發(fā)早期反饋及時(shí),易于維護(hù)、需要開放式體系結(jié)構(gòu),可能會(huì)設(shè)計(jì)差、效率低;螺旋模型、風(fēng)險(xiǎn)驅(qū)動(dòng)、風(fēng)險(xiǎn)分析人員需要有經(jīng)驗(yàn)且經(jīng)過充分訓(xùn)練第二章可行性分析可行性分析就是解決一個(gè)項(xiàng)目是否有可行解以及是否值得去解的問題。該階段的主要任務(wù)就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠得到解決。主要任務(wù):具體地說,分析員應(yīng)從下面三個(gè)方面對(duì)項(xiàng)目做出可行性分析:(1技術(shù)可行性:使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?(2經(jīng)濟(jì)可行性:這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?(詳細(xì)在后面介紹成本/效益分析(3操作可行性:系統(tǒng)的操作方式在該用戶組織內(nèi)行得通嗎?必要時(shí)還應(yīng)該進(jìn)一步從法律、社會(huì)效益等更廣泛的角度研究每種解法的可行性。計(jì)算成本/效益分析“可行性報(bào)告”中最主要的內(nèi)容是:(1項(xiàng)目的背景:問題描述、實(shí)現(xiàn)環(huán)境和限制條件等(2管理概要與建議:重要的研究結(jié)果(結(jié)論、說明、勸告和影響等(3推薦的方案(不止一個(gè):候選系統(tǒng)的配置與選擇最終方案的原則(4簡(jiǎn)略的系統(tǒng)范圍描述:分配元素的可行性(5經(jīng)濟(jì)可行性分析結(jié)果:經(jīng)費(fèi)概算和預(yù)期的經(jīng)濟(jì)效益等(6技術(shù)可行性(技術(shù)風(fēng)險(xiǎn)評(píng)價(jià):技術(shù)實(shí)力分析、已有的工作及技術(shù)基礎(chǔ)和設(shè)備條件等等(7法律可行性分析結(jié)果描述(8可用性評(píng)價(jià):匯報(bào)用戶的工作制度和人員的素質(zhì),確定人機(jī)交互功能界面需求(9其他項(xiàng)目相關(guān)的問題:如可能會(huì)發(fā)生的變更等等可行性研究報(bào)告由系統(tǒng)分析員撰寫,交由項(xiàng)目負(fù)責(zé)人審查,再上報(bào)給上級(jí)主管審閱。在可行性研究報(bào)告中,應(yīng)當(dāng)明確項(xiàng)目“可行還是不可行”,如果認(rèn)為可行,接下來還要制定項(xiàng)目開發(fā)計(jì)劃書。第三章軟件需求分析需求分析:準(zhǔn)確地定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需求系統(tǒng)必須做什么。用 規(guī)范的形式準(zhǔn)確地表達(dá)用戶的需求。任務(wù):確定對(duì)系統(tǒng)的綜合要求、分析系統(tǒng)的數(shù)據(jù)要求、導(dǎo)出系統(tǒng)的邏輯模型、修正系統(tǒng)開發(fā)計(jì)劃。確定對(duì)系統(tǒng)的綜合要求:1. 功能需求:這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能2. 性能需求:性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間、信息量速率、主存容量、磁盤容量、安全性等方面的需求3. 可靠性和可用性需求:可靠性需求定量地指定系統(tǒng)的可靠性4. 出錯(cuò)處理需求:這類需求說明系統(tǒng)對(duì)環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)5. 接口需求:接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求6. 約束:設(shè)計(jì)約束或?qū)崿F(xiàn)約束描述在設(shè)計(jì)或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時(shí)應(yīng)遵守的限制條件。常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺(tái)7. 逆向需求:逆向需求說明軟件系統(tǒng)不應(yīng)該做什么8. 將來可能提出的要求:應(yīng)該明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會(huì)提出來的要求。分析系統(tǒng)的數(shù)據(jù)要求:分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個(gè)重要任務(wù)。分析系統(tǒng)的數(shù)據(jù)要求通常采用建立數(shù)據(jù)模型的方法(ER圖考點(diǎn)、數(shù)據(jù)字典、層次方框圖、Wariner圖等工具導(dǎo)出系統(tǒng)的邏輯模型:綜合上述兩項(xiàng)分析的結(jié)果可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)據(jù)流圖、實(shí)體-聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述這個(gè)邏輯模型。修正系統(tǒng)開發(fā)計(jì)劃:根據(jù)在分析過程中獲得的對(duì)系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計(jì)劃。需求獲取的常用方法:1.客戶訪談:發(fā)放調(diào)查表和情景分析2. 面向數(shù)據(jù)流自頂向下求精:數(shù)據(jù)字典、數(shù)據(jù)流圖3.簡(jiǎn)易的應(yīng)用規(guī)格說明:面向團(tuán)隊(duì)需求收集法4.快速建立原型:要點(diǎn):建立用戶看的見得功能、快速、易修改需求建模:所謂模型,就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種無歧義的書面描述。通常,模型由一組圖形符號(hào)和組織這些符號(hào)的規(guī)則組成。模型化或模型方法是通過抽象、概括和一般化,把研究的對(duì)象或問題轉(zhuǎn)化為本質(zhì)(關(guān)系或結(jié)構(gòu)相同的另一對(duì)象或問題,從而加以解決的方法。需求分析的模型(結(jié)構(gòu)化分析:數(shù)據(jù)模型ER圖;功能模型數(shù)據(jù)流圖P41;行為模型狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典(DD,DataDictionaryDD是對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對(duì)于輸入、輸出、存儲(chǔ)成分和中間計(jì)算有共同的理解。數(shù)據(jù)詞典是結(jié)構(gòu)化分析方法中采用的表達(dá)數(shù)據(jù)元素的工具。它對(duì)數(shù)據(jù)流圖中所有自定義的數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)文件、數(shù)據(jù)流等進(jìn)行嚴(yán)密而精確的定義。加工說明:在數(shù)據(jù)流圖中,每一個(gè)加工框中只是簡(jiǎn)單地賦予了一個(gè)加工名,這顯然不能表述加工的全部?jī)?nèi)容。一個(gè)軟件系統(tǒng)的功能就是由這些加工的協(xié)同配合才得以實(shí)現(xiàn)的。因此,需求分析中必須對(duì)每一個(gè)加工進(jìn)行說明。描述加工邏輯的工具:結(jié)構(gòu)化語言:介于自然語言和形式語言之間的語言特點(diǎn):無確定語法、可分層、嵌套判定表:描述多條件、多目標(biāo)動(dòng)作的形式化工具判定樹:由條件1、條件2得到結(jié)果第四章軟件設(shè)計(jì)軟件設(shè)計(jì)分為兩個(gè)階段:(1概要設(shè)計(jì)(總體設(shè)計(jì)確定軟件的結(jié)構(gòu)以及各組成成分(子系統(tǒng)或模塊之間的相互關(guān)系。分為:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。設(shè)想供選擇的方案、選取合理的方案、推薦最佳方案、功能分解、設(shè)計(jì)軟件結(jié)構(gòu)、設(shè)計(jì)數(shù)據(jù)庫(kù)、制定測(cè)試計(jì)劃、書寫文檔、審查和復(fù)查(2詳細(xì)設(shè)計(jì)確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過程的詳細(xì)文檔。軟件設(shè)計(jì)遵循的原則:模塊化(模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο髽?gòu)成并執(zhí)行相對(duì)獨(dú)立功能的邏輯實(shí)體,它可以單獨(dú)命名而且可以實(shí)現(xiàn)按名訪問。例如,過程、函數(shù)、子程序、宏等等都可以看作模塊。模塊化是指把大型軟件按照規(guī)定的原則劃分為一個(gè)個(gè)較小的,相對(duì)獨(dú)立但又相關(guān)的模塊。模塊化是一種“分而治之,各個(gè)擊破”式的問題求解方式,它降低了問題的復(fù)雜程度,簡(jiǎn)化了軟件的設(shè)計(jì)過程、抽象(軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。抽象是人類特有的一種思維方法,其原理是從事物的共性中抽取出所關(guān)注的本質(zhì)特征而暫時(shí)忽略事物的有關(guān)細(xì)節(jié)、逐步求精(為了能集中精力解決主要問題而盡量推遲對(duì)問題細(xì)節(jié)的考慮。事實(shí)上,可以把它看做是一項(xiàng)把一個(gè)時(shí)期內(nèi)必須解決的種種問題按優(yōu)先級(jí)排序的技術(shù)、信息隱藏和局部化(模塊所包含的信息,不允許其它不需要這些信息的模塊訪問,獨(dú)立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。目的:提高模塊的獨(dú)立性,減少修改或維護(hù)時(shí)的影響面。把關(guān)系密切的軟件元素物理地放得彼此靠近。優(yōu)點(diǎn):可維護(hù)性好、可靠性好、可理解性好、模塊獨(dú)立(所謂模塊獨(dú)立性是指模塊完成它自身規(guī)定的功能而與系統(tǒng)中其它的模塊保持一定的相對(duì)獨(dú)立。含義:模塊完成獨(dú)立的功能、符合信息隱蔽和信息局部化原則、模塊間關(guān)聯(lián)和依賴程度盡量小模塊獨(dú)立性的度量:模塊獨(dú)立性取決于模塊的內(nèi)部和外部特征。SD方法提出的定性的度量標(biāo)準(zhǔn):模塊之間的耦合性、模塊自身的內(nèi)聚性。耦合是模塊之間的互相連接的緊密程度的度量。內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。耦合由低到高依次:無直接耦合、數(shù)據(jù)耦合、標(biāo)記耦合、控制耦合、外部耦合、公共耦合、內(nèi)容耦合。耦合是影響軟件復(fù)雜程度和設(shè)計(jì)質(zhì)量的重要因素。目標(biāo):建立模塊間耦合度盡可能松散的系統(tǒng)如何降低模塊間耦合度:(1 盡量使用數(shù)據(jù)耦合、少用控制耦合、限制公共耦合的范圍、堅(jiān)決避免使用內(nèi)容耦合!(2 降低接口的復(fù)雜性模塊的內(nèi)聚性類型:偶然內(nèi)聚(巧合內(nèi)聚:模塊內(nèi)各部分間無聯(lián)系0分.功能內(nèi)聚10分功能內(nèi)聚模塊僅包括為完成某個(gè)功能所必須的所有成分。(模塊所有成分共同完成一個(gè)功能,缺一不可內(nèi)聚性最強(qiáng)內(nèi)聚與耦合密切相關(guān),同其它模塊強(qiáng)耦合的模塊意味者弱內(nèi)聚,強(qiáng)內(nèi)聚模塊意味著與其它模塊間松散耦合.設(shè)計(jì)目標(biāo):力爭(zhēng)強(qiáng)內(nèi)聚、弱耦合!耦合、內(nèi)聚與模塊獨(dú)立性關(guān)系:耦合是直接的主導(dǎo)因素,內(nèi)聚則輔助耦合共同對(duì)模塊獨(dú)立性進(jìn)行衡量。啟發(fā)規(guī)則:1.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性2.模塊規(guī)模應(yīng)該適中3.深度、寬度、扇出和扇入都應(yīng)適當(dāng)。其中,扇入:表明有多少個(gè)上級(jí)模塊直接調(diào)用它,扇入越大則共享該模塊的上級(jí)模塊數(shù)目越多。越多越好,但不能作死。扇出:是一個(gè)模塊直接控制或調(diào)用的模塊數(shù)。扇出過大意味著模塊過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級(jí)模塊。不大不小正好。深度:表示軟件結(jié)構(gòu)中控制的層數(shù),它能粗略的標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。寬度:是軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值。4.模塊的作用應(yīng)該在控制域之內(nèi):模塊的作用域是受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。5.力爭(zhēng)降低模塊結(jié)構(gòu)的復(fù)雜程度6.設(shè)計(jì)單入口、單出口的模塊7.模塊功能應(yīng)該可以預(yù)測(cè)面向數(shù)據(jù)流的設(shè)計(jì)方法:數(shù)據(jù)流圖可分為兩種類型:變換型數(shù)據(jù)流:信息沿輸入通路進(jìn)入系統(tǒng);進(jìn)入系統(tǒng)的信息通過變換中心;經(jīng)加工處理以后再沿輸出通路離開軟件系統(tǒng);當(dāng)數(shù)據(jù)流圖具有這些特征時(shí),這種信息流就叫做變換流。事務(wù)型數(shù)據(jù)流:當(dāng)數(shù)據(jù)流經(jīng)過一個(gè)具有“事務(wù)中心”特征的數(shù)據(jù)處理時(shí),它可以根據(jù)事務(wù)類型從多條路徑的數(shù)據(jù)流中選擇一條活動(dòng)通路。這種具有根據(jù)條件選擇處理不同事務(wù)的數(shù)據(jù)流,就是事務(wù)型數(shù)據(jù)流,簡(jiǎn)稱事務(wù)流。詳細(xì)設(shè)計(jì):工具:程序流程圖、盒圖【用方框圖代替?zhèn)鹘y(tǒng)的流程圖(1順序型(2選擇型(Ifthenelse(3多分支選擇型(CASE型(4 WHILE重復(fù)型(先測(cè)試循環(huán)(5UNTIL重復(fù)型(后測(cè)試循環(huán)(6并行結(jié)構(gòu)】、PAD圖【基本控制結(jié)構(gòu):(1順序結(jié)構(gòu)(2選擇結(jié)構(gòu)(3重復(fù)結(jié)構(gòu)(先測(cè)試循環(huán)(后測(cè)試循環(huán)(4 多分支選擇型(CASE型】、判定表、判定樹、過程設(shè)計(jì)語言面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法:復(fù)雜度計(jì)算:McCabe方法P137(1流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度(2流圖G的環(huán)形復(fù)雜度V(G=E-N+2,其中E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù)(3流圖G的環(huán)形復(fù)雜度V(G=P+1,其中P是流圖中判定結(jié)點(diǎn)的數(shù)目第七章軟件測(cè)試軟件測(cè)試:(1 測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤(2 一個(gè)好的測(cè)試用例在于極可能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤(3 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試步驟:1.模塊測(cè)試:把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來測(cè)試,而且通常比較容易設(shè)計(jì)檢驗(yàn)?zāi)K正確性的測(cè)試方案,目的是保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行,所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。2.子系統(tǒng)測(cè)試:把經(jīng)過單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來測(cè)試,模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過程中的主要問題,因此,這個(gè)步驟著重測(cè)試模塊的接口。3.系統(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ù)定要求。發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤。與子系統(tǒng)測(cè)試成為集成測(cè)試。4.驗(yàn)收測(cè)試:把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè)試基本類似,但它是在用戶積極參與下進(jìn)行,且可能主要使用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿足影虎的需要,發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯(cuò)誤,又稱確認(rèn)測(cè)試。5.平行測(cè)試:同時(shí)運(yùn)行新開發(fā)出來的系統(tǒng)和將被它取代的舊系統(tǒng),以便比較兩個(gè)系統(tǒng)的處理結(jié)果。方法:黑盒測(cè)試、白盒測(cè)試。黑盒測(cè)試:這種方法是把測(cè)試對(duì)象看作一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測(cè)試又叫做功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。白盒測(cè)試:此方法把測(cè)試對(duì)象看作一個(gè)透明的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。單元測(cè)試的測(cè)試重點(diǎn):模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行通路、出錯(cuò)處理通路、邊界條件。集成測(cè)試的策略:自頂向下集成(需要設(shè)計(jì)裝模塊、自底向上集成(設(shè)計(jì)驅(qū)動(dòng)模塊。不同集成測(cè)試策略的比較:自頂向下測(cè)試方法的主要優(yōu)點(diǎn)是不需要測(cè)試驅(qū)動(dòng)程序,能夠在測(cè)試階段的早期實(shí)現(xiàn)并驗(yàn)證系統(tǒng)的主要功能,并且能在早期發(fā)現(xiàn)上層模塊的接口錯(cuò)誤。缺點(diǎn)是需要存根程序,可能遇到與此相聯(lián)系的測(cè)試?yán)щy,底層關(guān)鍵模塊中的錯(cuò)誤發(fā)現(xiàn)較晚,并且用這種方法在早期不能充分展開人力。自底向上測(cè)試方法的優(yōu)缺點(diǎn)與之相反。確認(rèn)測(cè)試:Alpha和Beta 測(cè)試Alpha測(cè)試:由用戶在開發(fā)者的場(chǎng)所進(jìn)行,并且在開發(fā)者對(duì)用戶的“指導(dǎo)”下進(jìn)行測(cè)試。開發(fā)者負(fù)責(zé)記錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問題。Beta測(cè)試:由軟件的最終用戶們?cè)谝粋€(gè)或多個(gè)客戶場(chǎng)所進(jìn)行,開發(fā)者通常不在測(cè)試現(xiàn)場(chǎng),因此Beta測(cè)試是軟件在開發(fā)者不能控制的環(huán)境中的“真實(shí)”應(yīng)用。用戶記錄在測(cè)試過程中遇到的一切問題,并定期把問題報(bào)告發(fā)給開發(fā)者。開發(fā)者對(duì)軟件產(chǎn)品進(jìn)行必要的修改,并準(zhǔn)備向全體客戶發(fā)布最終的軟件產(chǎn)品。白盒測(cè)試:主要方法為邏輯覆蓋、控制結(jié)構(gòu)測(cè)試。其中,邏輯覆蓋有:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋(重點(diǎn)語句覆蓋:語句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得每一可執(zhí)行語句至少執(zhí)行一次。判定覆蓋:判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋又稱為分支覆蓋。條件覆蓋:條件覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。判定-條件覆蓋:判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中所有可能取值至少執(zhí)行一次,每個(gè)判斷中的每個(gè)條件的可能取值至少執(zhí)行一次。黑盒測(cè)試:主要發(fā)現(xiàn)功能不正確或遺漏、界面錯(cuò)誤、性能錯(cuò)誤等。主要方法:等價(jià)類劃分、邊界值分析、錯(cuò)誤推測(cè)法。等價(jià)類劃分:等價(jià)類劃分是一種典型的黑盒測(cè)試方法,使用這一方法時(shí),完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計(jì)測(cè)試用例。等價(jià)類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例。等價(jià)類的劃分有兩種不同的情況:有效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。無效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無效等價(jià)類的設(shè)計(jì)。例:輸入值是學(xué)生成績(jī),范圍是0100有效等價(jià)類:0成績(jī)100無效等價(jià)類:成績(jī)100邊界值分析:經(jīng)驗(yàn)表明,處理邊界情況時(shí)程序最容易發(fā)生錯(cuò)誤。例如,許多程序錯(cuò)誤出現(xiàn)在下標(biāo)、純量、數(shù)據(jù)結(jié)構(gòu)和循環(huán)等等的邊界附近。因此,設(shè)計(jì)使程序運(yùn)行在邊界情況附近的測(cè)試方案,暴露出程序錯(cuò)誤的可能性更大一些。軟件可靠性:是程序在給定的時(shí)間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功地運(yùn)行的概率。軟件可用性:是程序在給定的時(shí)間點(diǎn),按照規(guī)格說明書的規(guī)定,成功地運(yùn)行的概率。估算平均無故障時(shí)間的方法:估計(jì)錯(cuò)誤總數(shù)的兩個(gè)方法(1 植入錯(cuò)誤法: 根據(jù)發(fā)現(xiàn)的錯(cuò)誤中原有的和植入的兩種錯(cuò)誤的比例,來估計(jì)程序中原有錯(cuò)誤的總數(shù)ET。2 分別測(cè)試法:加上標(biāo)記,然后根據(jù)測(cè)試過程中發(fā)現(xiàn)的有標(biāo)記錯(cuò)誤和無標(biāo)記錯(cuò)誤的比例,估計(jì)程序中的錯(cuò)誤總數(shù),則這樣得出的結(jié)果比用植入錯(cuò)誤法得到的結(jié)果更可信一些。第八章維護(hù)軟件維護(hù)是軟件生命周期的最后一個(gè)階段,它處于系統(tǒng)投入生產(chǎn)性運(yùn)行以后的時(shí)期中,因此不屬于系統(tǒng)開發(fā)過程?;救蝿?wù)是保證軟件在一個(gè)相當(dāng)長(zhǎng)的時(shí)期能夠正常運(yùn)行。所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。軟件維護(hù)包括下述4項(xiàng)活動(dòng):診斷和改正錯(cuò)誤的過程:改正性維護(hù)、為了和變化了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動(dòng):適應(yīng)性維護(hù)、為了滿足在使用軟件的過程中用戶的建議和改進(jìn)意見而作的維護(hù):完善性維護(hù),所占比例最大、為了給未來的改進(jìn)奠定更好的基礎(chǔ)而修改軟件:預(yù)防性維護(hù)非結(jié)構(gòu)化維護(hù):如果軟件配置的唯一成分是程序代碼,那么維護(hù)活動(dòng)從艱苦地評(píng)價(jià)程序代碼開始,而且常常由于程序內(nèi)部文檔不足而使評(píng)價(jià)更困難。而且對(duì)程序代碼所做的改動(dòng)的后果是難于估量的:因?yàn)闆]有測(cè)試方面的文檔,所以不可能進(jìn)行回歸測(cè)試。非結(jié)構(gòu)化維護(hù)付出代價(jià)高昂。結(jié)構(gòu)化維護(hù):如果有一個(gè)完整的軟件配置存在,那么維護(hù)工作從評(píng)價(jià)設(shè)計(jì)文檔開始,確定軟件重要的結(jié)構(gòu)特點(diǎn)、性能特點(diǎn)以及接口特點(diǎn);估量要求的改動(dòng)將帶來的影響,并且計(jì)劃實(shí)施途徑。然后首先修改設(shè)計(jì)并且對(duì)所做的修改進(jìn)行仔細(xì)復(fù)查。接下來編寫相應(yīng)的源程序代碼;使用在測(cè)試說明書中包含的信息進(jìn)行回歸測(cè)試;最后,把修改后的軟件再次交付使用。結(jié)構(gòu)化維護(hù)能減少精力浪費(fèi)并且能提高維護(hù)的總體質(zhì)量。軟件可維護(hù)性的因素:可理解性、可使用性、可測(cè)試性、可移植性、可修改性、效率、可靠性可理解性表明人們通過閱讀源代碼和相關(guān)文檔,了解程序功能及其如何運(yùn)行的容易程度??煽啃员砻饕粋€(gè)程序按照用戶的要求和設(shè)計(jì)目標(biāo),在給定的一段時(shí)間內(nèi)正確執(zhí)行的概率??蓽y(cè)試性表明論證程序正確性的容易程度。程序越簡(jiǎn)單,證明其正確性就越容易。而且設(shè)計(jì)合理的測(cè)試用例,取決于對(duì)程序的全面理解??尚薷男员砻鞒绦蛉菀仔薷牡某潭???梢浦残员砻鞒绦蜣D(zhuǎn)移到一個(gè)新的計(jì)算環(huán)境的可能性的大小?;蛘咚砻鞒绦蚩梢匀菀椎?、有效地在各種各樣的計(jì)算環(huán)境中運(yùn)行的容易程度。效率表明一個(gè)程序能執(zhí)行預(yù)定功能而又不浪費(fèi)機(jī)器資源的程度。從用戶觀點(diǎn)出發(fā),可使用性定義為程序方便、實(shí)用、及易于使用的程度。一個(gè)可使用的程序應(yīng)是易于使用的、能允許用戶出錯(cuò)和改變,并盡可能不使用戶陷入混亂狀態(tài)的程序。第13章軟件項(xiàng)目管理所謂管理就是通過計(jì)劃、組織和控制等一系列活動(dòng),合理地配置和使用各種資源,以達(dá)到既定目標(biāo)的過程。軟件項(xiàng)目管理過程從一組項(xiàng)目計(jì)劃活動(dòng)開始,而制定計(jì)劃的基礎(chǔ)是工作量估算和完成期限估算。為了估算項(xiàng)目的工作量和完成期限,首先需要估算軟件的規(guī)模。主要部分:估算軟件規(guī)模、工作量估算、進(jìn)度計(jì)劃、人員組織、質(zhì)量保證、軟件配置管理等。估算軟件規(guī)模方法:代碼行技術(shù):依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估計(jì)實(shí)現(xiàn)一個(gè)功能所需要的源程序行數(shù)。功能點(diǎn)技術(shù):依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模。功能點(diǎn)技術(shù)定義了信息域的5個(gè)特性:輸入項(xiàng)數(shù)(Inp:用戶向軟件輸入的項(xiàng)數(shù),這些輸入給軟件提供面向應(yīng)用的數(shù)據(jù)。輸出項(xiàng)數(shù)(Out:軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面向應(yīng)用的信息。查詢數(shù)(Inq:查詢即是一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)機(jī)輸出方式產(chǎn)生某種即時(shí)響應(yīng)。主文件數(shù)(Maf:邏輯主文件的數(shù)目。外部接口數(shù)(Inf:機(jī)器可讀的全部接口的數(shù)量,用這些接口把信息傳送給另一個(gè)系統(tǒng)。工作量估算:常用模型:靜態(tài)單變量模型:E = A + B (ev C動(dòng)態(tài)多變量模型:E=(LOCB0.333/P3(1/t4 (數(shù)字均為指數(shù)進(jìn)度計(jì)劃:掌握最早時(shí)刻和最遲時(shí)刻P317最早時(shí)刻EET:該事件可以發(fā)生的最早時(shí)間。最遲時(shí)刻LET:在不影響竣工時(shí)間的前提下,該事件最晚可以發(fā)生的時(shí)刻。最早時(shí)刻的計(jì)算:事件的最早時(shí)刻是該事件可以發(fā)生的最早時(shí)間。通常工程網(wǎng)絡(luò)
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療健康領(lǐng)域中的教育機(jī)器人技術(shù)探討
- 智慧辦公空間設(shè)計(jì)與舒適度研究
- 教育游戲化的設(shè)計(jì)原則與技巧
- 鐵路勞動(dòng)安全培訓(xùn)課件
- 醫(yī)療健康領(lǐng)域的教育政策與實(shí)效性教學(xué)策略
- 教育大數(shù)據(jù)庫(kù)在智慧校園建設(shè)中的應(yīng)用研究
- 技術(shù)驅(qū)動(dòng)的教育變革工具選擇與操作培訓(xùn)
- 教育領(lǐng)域的技術(shù)革新大五人格的引領(lǐng)作用
- 探索教育心理學(xué)的奧秘激發(fā)個(gè)人潛能
- 智慧城市公共服務(wù)平臺(tái)的創(chuàng)新設(shè)計(jì)與應(yīng)用
- 老年教育中的心理健康與社會(huì)支持研究-洞察闡釋
- 2025年工程造價(jià)與管理考試題及答案
- 2025年第一季度煙花爆竹安全作業(yè)特種作業(yè)操作證考試試卷(新手實(shí)戰(zhàn)卷)
- 2025版護(hù)理十大安全目標(biāo)
- 2025年 荊州市荊發(fā)控股集團(tuán)招聘考試筆試試卷附答案
- 學(xué)校關(guān)工委管理制度
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)及答案
- 出納應(yīng)聘試題及答案
- 2025至2030中國(guó)清分機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- DB31-T 1593-2025 基于自動(dòng)駕駛功能的公交運(yùn)營(yíng)技術(shù)要求
- 地理●甘肅卷丨2024年甘肅省普通高中學(xué)業(yè)水平等級(jí)性考試高考地理真題試卷及答案
評(píng)論
0/150
提交評(píng)論