軟件工程復(fù)習(xí)2021考試資料_第1頁
軟件工程復(fù)習(xí)2021考試資料_第2頁
軟件工程復(fù)習(xí)2021考試資料_第3頁
軟件工程復(fù)習(xí)2021考試資料_第4頁
軟件工程復(fù)習(xí)2021考試資料_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

*軟件工程專業(yè)*復(fù)習(xí)*資料

什么是軟件工程?它的目標(biāo)和內(nèi)容是什么?

軟件工程是一種用科學(xué)知識(shí)和技術(shù)原理來定義、開發(fā)、維護(hù)軟件的一門學(xué)科。軟件工程是一

門工程性學(xué)科,目的是成功的建造一個(gè)大型軟件系統(tǒng),所謂成功是要達(dá)到以下幾個(gè)目標(biāo):付

出較低的開發(fā)成本,達(dá)到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需

要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)的軟件可靠性高。軟件工程

研究的主要內(nèi)容是軟件開發(fā)技術(shù)和軟件開發(fā)管理兩方面,在軟件開發(fā)技術(shù)中,主要研究軟件

開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理中,主要研究軟件管理學(xué)、

軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué)等。

軟件文檔的作用是:提高軟件開發(fā)過程的能見度;提高開發(fā)效率;作為開發(fā)人員階段工作成

果和結(jié)束標(biāo)志;記錄開發(fā)過程的有關(guān)信息便于使用與維護(hù);提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)

資料;便于用戶了解軟件功能、性能。軟件開發(fā)項(xiàng)目生存期各階段應(yīng)包括得文檔以及與各

類人員的關(guān)系如下:可行性研究報(bào)告、項(xiàng)目開發(fā)計(jì)劃、軟件需求說明書、數(shù)據(jù)要求說明書、

測(cè)試計(jì)劃、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書、用戶手冊(cè)、操作手冊(cè)、測(cè)試分析報(bào)告、開發(fā)

進(jìn)度月報(bào)、項(xiàng)目開發(fā)總結(jié)、程序維護(hù)手冊(cè)(維護(hù)修改建議)

軟件過程模型:

什么是瀑布模型(又叫作生命周期模型)?

瀑布模型是將軟件生存周期的各項(xiàng)活動(dòng)規(guī)定為按固定順序而連接的若干階段工作,形如瀑布

流水,最終得到軟件產(chǎn)品。核心思想是按工序?qū)栴}化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開,便于

分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開。將軟件生命周期劃

分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并

且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。

增量模型的基本思想是什么?

為了克服瀑布模型的局限性,使開發(fā)過程具有一定的靈活性和可修改性,于是產(chǎn)生了增量模

型。它是在瀑布模型的基礎(chǔ)上加以修改而形成的。增量模型和瀑布模型之間的本質(zhì)區(qū)別是:

瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個(gè)階段的工作之前,必須完成前一階段的所

有細(xì)節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細(xì)節(jié),從而較早

的產(chǎn)生工作軟件。增量模型是在項(xiàng)目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。增量方式

包括增量開發(fā)和增量提交。增量開發(fā)是指在項(xiàng)目開發(fā)周期內(nèi),以一定的時(shí)間間隔開發(fā)部分工

作軟件;增量提交是指在項(xiàng)目開發(fā)周期內(nèi),以一定的時(shí)間間隔增量方式向用戶提交工作軟件

及相應(yīng)文檔。增量開發(fā)和增量提交可以同時(shí)使用,也可以單獨(dú)使用。

快速原型模型有幾種?各有何特點(diǎn)?

根據(jù)原型的不同作用,有三類原型模型:⑴探索型原型。這種類型的原型模型是把原型用于

開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索各種方案的可

行性。它主要針對(duì)開發(fā)目標(biāo)模糊,用戶與開發(fā)著對(duì)項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,通過對(duì)原型的開

發(fā)來明確用戶的需求。⑵實(shí)驗(yàn)型原型。這種原型主要用于設(shè)計(jì)階段,考核實(shí)現(xiàn)方案是否合適,

能否實(shí)現(xiàn),對(duì)于一個(gè)大型系統(tǒng),若對(duì)設(shè)計(jì)方案心中沒有把握時(shí),可通過這種原型來證實(shí)設(shè)計(jì)

方案的正確性。⑶演化型原型。這種原型主要用于及早向用戶提交一個(gè)原型系統(tǒng),該原型系

統(tǒng)或者包含系統(tǒng)的框或者包含系統(tǒng)的主要功能。在得到用戶的認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充

演變?yōu)樽罱K的軟件系統(tǒng),它將原型的思路擴(kuò)展到軟件開發(fā)的全過程。

快速原型模型的主要特點(diǎn)之一是:及早提供工作軟件:快速原型技術(shù)適用于軟件產(chǎn)品

要求大量的用戶交互、或產(chǎn)生大量的可視輸出、或設(shè)計(jì)一些復(fù)雜的算法等場(chǎng)合?;舅悸肥?

先給出一個(gè)系統(tǒng)的最初實(shí)現(xiàn),讓用戶去使用和評(píng)價(jià),不斷進(jìn)行細(xì)化和改善,經(jīng)過多次這樣的

反復(fù)過程后形成最終的完善的系統(tǒng)。

軟件生存周期一般可分為以下兒個(gè)階段:1)問題定義:?jiǎn)栴}定義階段必須回答的關(guān)鍵問

題是“要解決的問題是什么?",正確理解用戶的真正需求。2)可行性研究:這個(gè)階

段要回答的關(guān)鍵問題是:對(duì)于上一個(gè)階段所確定的問題“有行得通的解決辦法嗎?",可行

性研究階段應(yīng)該導(dǎo)出系統(tǒng)的高層邏輯模型,準(zhǔn)確地估計(jì)系統(tǒng)的成本和效益。3)需求分析:

需求分析階段的任務(wù),主要是確定目標(biāo)系統(tǒng)必須具備的功能,得出經(jīng)用戶確認(rèn)的系統(tǒng)邏輯模

型。根據(jù)該系統(tǒng)邏輯模型,準(zhǔn)確地回答“為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么"。4)

總體設(shè)計(jì):也叫概要設(shè)計(jì)或初步設(shè)計(jì)。這個(gè)階段必須回答的是“概括地說,應(yīng)該如何解決

這個(gè)問題”。總體設(shè)計(jì)的目標(biāo)是將需求分析階段定義的系統(tǒng)模型轉(zhuǎn)換成相應(yīng)的軟件結(jié)構(gòu),以

規(guī)定軟件的形態(tài)及各成分間的層次關(guān)系、界面及接口要求。5)詳細(xì)設(shè)計(jì):詳細(xì)設(shè)計(jì)階段

的任務(wù)是把解法具體化,也就是回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”。詳細(xì)設(shè)計(jì)亦即模塊

設(shè)計(jì)。它是在算法設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,針對(duì)每個(gè)模塊的功能、接口和算法定義,設(shè)計(jì)

模塊內(nèi)部的算法過程及程序的邏輯結(jié)構(gòu),并編寫模塊設(shè)計(jì)說明。6)編碼:這個(gè)階段的任

務(wù),是根據(jù)詳細(xì)設(shè)計(jì)的結(jié)果,選擇一種適合的程序設(shè)計(jì)語言,把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成程序

的源代碼。7)測(cè)試:以便盡早發(fā)現(xiàn)程序中的錯(cuò)誤和缺陷而進(jìn)行的一個(gè)過程,有單元測(cè)試、

集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試4種。8)運(yùn)行與維護(hù):通過各種必要的維護(hù)措施支持軟件

系統(tǒng)能持久地滿足用戶的需要。維護(hù)階段是軟件生存周期中花費(fèi)精力和費(fèi)用最多的階段

可行性研究的任務(wù)是什么?

首先需要進(jìn)行概要的分析研究,初步確定項(xiàng)目的規(guī)模和目標(biāo),確定項(xiàng)目的約束和限制,

把他們清楚地列舉出來。然后,分析員進(jìn)行簡(jiǎn)要的需求分析,抽象出該項(xiàng)目的邏輯結(jié)構(gòu),建

立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設(shè)計(jì),探索出若干種可供選擇的主要解決方法,

對(duì)每種解決方法都要研究它的可行性,可從以下三個(gè)方面分析研究每種解決方法的可行性。

㈠技術(shù)可行性:對(duì)要開發(fā)項(xiàng)目的功能、性能、限制條件進(jìn)行分析,確定在現(xiàn)有的資源條件下,

技術(shù)風(fēng)險(xiǎn)有多大,項(xiàng)目是否能實(shí)現(xiàn)。㈡經(jīng)濟(jì)可行性:進(jìn)行開發(fā)成本的估算以及了解取得效益

的評(píng)估,確定要開發(fā)的項(xiàng)目是否值得投資開發(fā)。㈢社會(huì)可行性:要開發(fā)的項(xiàng)目是否存在任何

侵犯、妨礙等責(zé)任問題,要開發(fā)項(xiàng)目的運(yùn)行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、

人員素質(zhì)、操作方式是否可行。

計(jì)算機(jī)系統(tǒng)的軟件要素中的軟部件由程序、數(shù)據(jù)和過程

軟件=程序+文檔

可行性分析文檔(已經(jīng)發(fā)放給大家)

項(xiàng)目開發(fā)計(jì)劃文檔(已經(jīng)發(fā)放給大家)

需求分析階段的基本任務(wù)是什么?

需求分析階段的基本任務(wù)是要準(zhǔn)確的定義新系統(tǒng)的目標(biāo),為了滿足用戶需要,回答系統(tǒng)

必須“做什么”的問題。本階段要進(jìn)行以下兒方面的工作:㈠問題識(shí)別。雙方確定對(duì)問題的

綜合需求,這些需求包括:功能需求、性能需求、環(huán)境需求、用戶界面需求,另外還有可靠

性、安全性、保密性、可移植性、可維護(hù)性等方面的需求。㈡分析與綜合,導(dǎo)出軟件的邏輯

模型。分析人員對(duì)獲取的需求,進(jìn)行一致性的分析檢查,在分析、綜合中逐步細(xì)化軟件功能,

劃分成各個(gè)子功能。這里也包括對(duì)數(shù)據(jù)域進(jìn)行分解,并分配到各個(gè)子功能上,以確定系統(tǒng)的

構(gòu)成及主要成份,并用圖文結(jié)合的形式,建立起新系統(tǒng)的邏輯模型。㈢編寫文檔。編寫“需

求規(guī)格說明書”、編寫初步用戶使用手冊(cè)、編寫確認(rèn)測(cè)試計(jì)劃、修改完善軟件開發(fā)計(jì)劃

軟件需求工程的基本任務(wù)是準(zhǔn)確地回答“軟件系統(tǒng)必須做什么?”這個(gè)問題。它在系統(tǒng)工程

和軟件設(shè)計(jì)之間起到橋梁的作用。用戶對(duì)軟件需求的描述不精確,導(dǎo)致軟件危機(jī)。為了使用

戶需求逐步精細(xì)化,使用需求工程中需求建模技術(shù)。需求規(guī)格說明書在軟件開發(fā)中具有重要

的作用,它也可以作為軟件可行性分析的依據(jù)。

需求建模的定義:用戶需求逐步精細(xì)化、完全化、一致化,需求規(guī)格說明是軟件工程測(cè)試的

依據(jù)

0-i-儼。Utyse-Frdje.Vs-,▼,.-.-rSg-er,'r,liJtr'iytsie'.?eA-f.it??rrpl?..jrfrd5----->J

3NftM?L5ie?'M?7C?S*I?)?i?E>??.¥)Sttir-sntfi~R(DISBC抬升

J3W▲,山T&JMMMVIF臼?44丁?

金?口0??|W言’三三AI口皂X?立科AB/Unn1二d<

QIOeKd;”|小crij**-Aak

ProjectDescriptionofTarget

System

TbcC^crFridgeprojectutouseInteroc:cotoccwir.-.vtsiooaodmcchmkal

GJfiwuiwmmi

?IPiqesOnatnier.elTagetSysentenstocteaieOBintt*@eniandprodudrvvivingeiatcs

s-<2.Scv?aoGesctutnreM^nyofotcdai)>U>kstexch?sa?xmdth£icfti^eraioc.andaCttxrFri^e

--#2IScGateIutxJdaOou3autccnHtxMiofmac,cffceseroutnetasksOvprojectKa

?22S*a?o2sp?c&wbtetofduarea^?chwiaDowyourouteareepes>itauto

?23SCSIJ23

detenmiewhatrecipeyouwoddSectofix.andletyeaknowiftheitemsto

二.?SireBine

?*?31FwdHvrt7?makeitleskfchvonkitchenSpecificalyknownasCARA(Qfibrd

K?32%?eMtMHAutomatedRecipeAgent)(berecipea^ent2pemaniyserwthepupmeci

a?33A?aoo$M<0*dccvaaraDymnL討aiicppmg1>?andtdKngloitc\nn癡ii?n;?iich?<■

U?14AurntrArenaiarinngfoeacnraiccec^peand&,vitecuwhichcurrcot2yresideintbe&idge.

占一■,Mar-F-ntsanalRmaAWTwnte

CARAn*&rdxecrossindex&ErentSveoiory?fthefidgeanda

「?41Pwrlaan^flM,《c?

?42&MdrecipedatabaxbordertoM>附EwhXnmktomikemdwh*inf7c&ns:

sueloWboughtirowgrocvrykt)Therrqpcdafabatcwflcswntial-,

haverecite,ofapedfictype'Mtfahet(uC?eic.luhanetc)whchthe:

ScenarioDescriptions

2.1Scenario1

Annbashadaboni)leday.Ontbewaytowokshegotcaughtiotraficand

hercarcmMatedTha?n?&herbeefatgimporttnlaertingwiftanew

p?^>octnvcfcotThisSteedbatobehindaDday.andillevswdHeedie

wotAtftteivetheUnetocuoydetesank:muchneedediboppng<xevenplan:

amealt<xthatoi^u'LooksHeeifsKI-Capic.,shegran*>)tdtobersdf

Butns*'Shebadjustpachasedanewcjberfeidge\vxfatheCARAjxosran

ft*juMibesehpesofsitMt>on?Skloggedirtobrakitcheo6”<hewrb,

andlawalhatavonteieape>.andwhethetcanottbeilenbueededforthese:

re6pe?uweinberkitchenNowZccnddprepareaihcf)pinRfeuandthe

需求模型建立

IRequirementsdetails

1.1Modellevelrequirements

1.1.1Requirement1.ProjectDescriptionofTargetSystem

TitleIDText1.

Priority1

Workload

需求規(guī)格說明書

用戶需求采用例如采用用例(UseCase)文檔或場(chǎng)景(Scenario)等方式說明。

功能需求定義了開發(fā)者應(yīng)提供的軟件功能或服務(wù),但不涉及這些功能或服務(wù)的實(shí)現(xiàn)。

非功能需求則是對(duì)功能需求的補(bǔ)充,包括了對(duì)系統(tǒng)的各種限制和用戶對(duì)系統(tǒng)的質(zhì)量要

求。

需求分析常用的分析方法有:

1基于瀑布模型的結(jié)構(gòu)化方法,結(jié)構(gòu)化分析方法的分析策略是:自頂向下,逐層分解

2基于需求動(dòng)態(tài)定義就的原型化方法

3基于對(duì)象的面向?qū)ο蟮姆椒ǎ篣ML是軟件開發(fā)中的一個(gè)重要工具

4基于數(shù)據(jù)的數(shù)據(jù)流開發(fā)方法

5面向數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)Jackson方法給出三種結(jié)構(gòu)是.順序結(jié)構(gòu),選擇結(jié)構(gòu),重復(fù)結(jié)構(gòu)

面向?qū)ο蟮男枨蠓治?/p>

1Booch方法

2Rumbaugh方法

3Coad和Yourdon方法

4Jacobson方法

5Wirfs—Brock方法

6UML的00A方法(現(xiàn)在主流技術(shù)基本都使用UML來建模,其他很少使用)

技術(shù)可行性分析

對(duì)系統(tǒng)的簡(jiǎn)要描述

本系統(tǒng)有利于對(duì)學(xué)校教職工人員工資的發(fā)放和管理。

與現(xiàn)有系統(tǒng)比較的優(yōu)越性

與傳統(tǒng)的手工記賬方式相比,占據(jù)空間小、易于統(tǒng)計(jì)工資總額、易于更新、易

于數(shù)據(jù)備份。

處理流程和數(shù)據(jù)流程

經(jīng)濟(jì)可行性分析

支出

一次性支出:16?5萬元

A終端PC機(jī)1臺(tái):8000元

A服務(wù)器2臺(tái)及網(wǎng)絡(luò)設(shè)備:70000元

A微機(jī)一臺(tái)5000元

A開發(fā)環(huán)境的正版軟件:17000元

A其中:正版WindowsServer2003:5000元

正版MicrosoftSQLServer2005(企業(yè)10用戶):12000

A員工使用培訓(xùn)費(fèi):5000元

A其他費(fèi)用:10000元

A開發(fā)人員工資(開發(fā)時(shí)間為2個(gè)月,開發(fā)者按月領(lǐng)取工資,5000元/人

/月):50000元

經(jīng)常性支出:2.5萬元

A每年的維護(hù)和升級(jí)費(fèi)用:2000元

A使用周期為五年,共計(jì):10000元

A不可預(yù)知費(fèi)用:15000元

累計(jì)支出:10.8238萬元

系統(tǒng)的投資成本總額為:16.5萬元+2.5萬元+10.8238萬元=29.8283萬元

收益

現(xiàn)從事學(xué)校工資管理人員數(shù)量為6人,該系統(tǒng)投入使用后,工作效率可大幅

提高,從事該工作的人員可縮減為2人,工資按每人每月***元計(jì)算,每年可節(jié)

省的工資為+++萬元,銀行年利率按5%計(jì)算,效益計(jì)算如下表:

年份將來收益值(萬元)(1+0.05)"現(xiàn)在收益值(萬元)累計(jì)現(xiàn)在收益值(萬元)

第一年+++1.05+++/1.05+++/1.05

第二年+++1.1025+++/1.1025?

第三年+++1.1576+++/1.1576?

第四年+++1.2155+++/1.2155?

第五年+++1.2763+++/1.2763---

系統(tǒng)的效益總額為==-萬元

成本/收益分析

在五年內(nèi),系統(tǒng)的總成本為29.8283萬元,系統(tǒng)總收益為===萬元。

>投資回收期:?年

>純收益:===萬元-29.8283萬元=???萬元〉0

從經(jīng)濟(jì)上考慮,開發(fā)本系統(tǒng)完全可行的。

社會(huì)因素可行性分析

法律方面的可行性

系統(tǒng)的研制和開發(fā),將不會(huì)侵犯他人、集體和國(guó)家的利益,不會(huì)違反國(guó)家政策和

法律。

使用方面的可行性

系統(tǒng)的研制和開發(fā)充分考慮到用戶的工資發(fā)放策略、管理流程和操作人員

的素質(zhì)等因素,可以滿足用戶的使用要求。同時(shí),管理人員必須經(jīng)過相關(guān)培訓(xùn),

掌握一定的計(jì)算機(jī)知識(shí),能熟練使用系統(tǒng)以及進(jìn)行日常維護(hù)。

軟件設(shè)計(jì):

傳統(tǒng)的結(jié)構(gòu)化方法將軟件設(shè)計(jì)劃分為體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)及過程設(shè)計(jì)四部分;

結(jié)構(gòu)化分析特點(diǎn):自頂向下,逐步求精

面向?qū)ο蠓椒▌t將軟件設(shè)計(jì)劃分為體系結(jié)構(gòu)設(shè)計(jì)、類設(shè)計(jì)/數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、構(gòu)件級(jí)設(shè)

計(jì)四部分。

創(chuàng)建良好設(shè)計(jì)的原則

1設(shè)計(jì)應(yīng)遵循抽象化的原則,包含數(shù)據(jù)抽象和過程抽象

2設(shè)計(jì)應(yīng)當(dāng)遵循模塊化的原則。

3設(shè)計(jì)應(yīng)遵循信息隱蔽的原則。

4模塊獨(dú)立性

5高內(nèi)聚,低耦合

高-------------------------內(nèi)聚性-----------------------低

功能內(nèi)聚層內(nèi)聚通信內(nèi)聚順序內(nèi)聚過程內(nèi)聚時(shí)間內(nèi)聚實(shí)用程序內(nèi)聚

強(qiáng)----------------------模塊獨(dú)立性<---------------------弱

內(nèi)聚性:內(nèi)聚是一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。

(1)功能內(nèi)聚

一個(gè)模塊中各個(gè)部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。

這種模塊就是功能內(nèi)聚模塊。功能內(nèi)聚模塊的模塊獨(dú)立性最強(qiáng)。

(2)層內(nèi)聚

相關(guān)服務(wù)放在一起,并有嚴(yán)格的層次結(jié)構(gòu),高層服務(wù)可訪問低層服務(wù),反之不可。如分

層結(jié)構(gòu)。

(3)通信內(nèi)聚

訪問或操作同一數(shù)據(jù)的過程放在一個(gè)類中,這些過程可以互相通信。如某個(gè)類設(shè)計(jì)。

(4)順序內(nèi)聚:存在一系列過程,其中一個(gè)過程向另一個(gè)過程提供輸入,這些過程放在一起,

形成順序內(nèi)聚。如面向?qū)ο笙到y(tǒng)中的消息序列。

(5)過程內(nèi)聚:幾個(gè)一次調(diào)用的操作放在一個(gè)模塊中,它們是相關(guān)的且必須以特定次序執(zhí)行,

則稱這個(gè)模塊為過程內(nèi)聚模塊。但在這種模塊內(nèi),一個(gè)操作的輸出不一定是下一個(gè)操作的輸

入。如調(diào)用結(jié)構(gòu)。

(6)時(shí)間內(nèi)聚:程序執(zhí)行過程中同一階段內(nèi)完成的操作放在一起,達(dá)到時(shí)間內(nèi)聚。

(7)實(shí)用程序內(nèi)聚:邏輯上不能納入其他內(nèi)聚類型的相關(guān)實(shí)用程序放在一起,形成實(shí)用程序

內(nèi)聚。如可復(fù)用的過程或類。

緊密<-------------------耦合性----------------------松散

內(nèi)容公共控制標(biāo)記數(shù)據(jù)例程調(diào)類型使外部

耦合耦合耦合耦合耦合用耦合用耦合耦合

弱------------------->模塊獨(dú)立性--------------------->強(qiáng)

耦合性:耦合是模塊間互相連接的緊密程度的度量,它取決于各個(gè)模塊之間接口的復(fù)雜度、

調(diào)用方式以及哪些信息通過接口。

模塊之間的耦合性越高,其模塊獨(dú)立性就越弱。模塊的內(nèi)聚性越高,它與其他模塊之間的耦

合性就會(huì)降低,而模塊獨(dú)立性就越強(qiáng)。

(1)內(nèi)容耦合

如果發(fā)生下列情形,模塊間就是內(nèi)容耦合:

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

(2)公共耦合

若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就是公共耦合。公共數(shù)據(jù)環(huán)境可

以是全局變量、全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。

(3)控制耦合

一個(gè)過程通過標(biāo)志、開關(guān)或命令顯式地控制另一個(gè)過程

的動(dòng)作,就產(chǎn)生控制耦合。

(4)標(biāo)記耦合

如果一組模塊通過參數(shù)表傳遞結(jié)構(gòu)或?qū)ο?注意,不是簡(jiǎn)單變量或結(jié)構(gòu)中的某一分量),

就是標(biāo)記耦合。

(5)數(shù)據(jù)耦合

如果模塊之間的訪問是通過數(shù)據(jù)參數(shù)(不是控制參數(shù)、結(jié)構(gòu)或?qū)ο髤?shù)、公共數(shù)據(jù)結(jié)構(gòu))

來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合.

(6)例程調(diào)用耦合

一個(gè)程序(或?qū)ο蟮牟僮?調(diào)用另一個(gè)程序(或另一個(gè)對(duì)象的操作),就產(chǎn)生例程調(diào)用

耦合。

(7)類型使用耦合

類將實(shí)例變量或本地變量聲明為另一個(gè)類的實(shí)例,就產(chǎn)生類型(嵌套)耦合。

(8)包含/引入耦合

一個(gè)構(gòu)件引入(import)一個(gè)包時(shí)就產(chǎn)生引入耦合,一個(gè)構(gòu)件包含(include)另一個(gè)構(gòu)

件時(shí),就產(chǎn)生包含耦合。

(9)外部耦合

模塊對(duì)外部系統(tǒng),如操作系統(tǒng)、共享庫或硬件有依賴關(guān)系時(shí)就產(chǎn)生外部耦合??赏ㄟ^信

息隱蔽減少這種依賴關(guān)系。

面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)

與傳統(tǒng)方法中的數(shù)據(jù)設(shè)計(jì)所不同的是,面向?qū)ο笤O(shè)計(jì)中的數(shù)據(jù)設(shè)計(jì)并不是獨(dú)立進(jìn)行的,面向

對(duì)象設(shè)計(jì)中的類圖相當(dāng)于數(shù)據(jù)的邏輯模型,可以很容易地轉(zhuǎn)換成數(shù)據(jù)的物理模型。

人機(jī)交互部分的設(shè)計(jì)(數(shù)據(jù)庫版本)

面向?qū)ο竽P椭饕梢韵履男┠P徒M成

1對(duì)象模型描述對(duì)象、類、層次和關(guān)系,靜態(tài)結(jié)構(gòu),其作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包

括構(gòu)成系統(tǒng)的類和對(duì)象,它們的屬性和操作,以及它們之間的聯(lián)系。-對(duì)象模型包括類

2動(dòng)態(tài)模型其作用是描述系統(tǒng)的控制邏輯,主要涉及系統(tǒng)中各個(gè)類和對(duì)象的時(shí)序及變化

情況。時(shí)序圖等

3功能模型功能模型:描述系統(tǒng)的功能表示方法:數(shù)據(jù)流圖,用例圖

概要設(shè)計(jì)階段的基本任務(wù)是什么?

⑴設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)(簡(jiǎn)稱軟件結(jié)構(gòu)),具體為:①采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)

按功能劃分成模塊。②確定每個(gè)模塊的功能。③確定模塊之間的調(diào)用關(guān)系。④確定模塊之間

的接口,即模塊之間傳遞的信息。⑤評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量。⑵數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì),漢數(shù)

據(jù)結(jié)構(gòu)的設(shè)計(jì)及數(shù)據(jù)庫的設(shè)計(jì)。⑶編寫概要設(shè)計(jì)文檔。主要有:概要設(shè)計(jì)說明書;數(shù)據(jù)庫設(shè)

計(jì)說明書;用戶手冊(cè);修訂測(cè)試計(jì)劃。⑷評(píng)審。

詳細(xì)設(shè)計(jì)的基本任務(wù)是什么?有哪幾種描述方法?

詳細(xì)設(shè)計(jì)是軟件設(shè)計(jì)的第二階段,其基本任務(wù)有:為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì);為模塊

內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì);對(duì)數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫的物理結(jié)構(gòu);其它設(shè)計(jì),根

據(jù)軟件系統(tǒng)類型,還可能要進(jìn)行代碼設(shè)計(jì)、輸入/輸出格式設(shè)計(jì)、人機(jī)對(duì)話設(shè)計(jì);編寫詳細(xì)

設(shè)計(jì)說明書;評(píng)審。詳細(xì)描述處理過程常用三種工具:圖形、表格和語言。如結(jié)構(gòu)化程序流

程圖、盒圖和問題分析圖。IPO圖也是詳細(xì)設(shè)計(jì)的主要工具之一。表格工具如判定表可作為

詳細(xì)設(shè)計(jì)中描述邏輯條件復(fù)雜的算法。過程設(shè)計(jì)語言(PDL)是一種用于描述模塊算法設(shè)計(jì)

和處理細(xì)節(jié)的語言工具。

過程設(shè)計(jì)(詳細(xì)設(shè)計(jì))

在過程設(shè)計(jì)階段,要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確地表達(dá)這些算法。

對(duì)每個(gè)模塊規(guī)定的功能以及算法的設(shè)計(jì),給出適當(dāng)?shù)乃惴枋觯?/p>

圖形工具:程序流程圖,N-S,PAD,HIPO

表格工具:判定表

語言工具:PDL,HIPO

PAD圖

采用黑盒技術(shù)(功能測(cè)試)設(shè)計(jì)測(cè)試用例的方法及各自的特點(diǎn)。

㈠等價(jià)類劃分。等價(jià)類劃分是將輸入數(shù)據(jù)域按有效的或無效的(也稱合理的或不合理的)劃

分成若干個(gè)等價(jià)類,測(cè)試每個(gè)等價(jià)類的代表值就等于對(duì)該類其它值的測(cè)試。

㈡邊界值分析。該方法是將測(cè)試邊界情況作為重點(diǎn)目標(biāo),選取正好等于,剛剛大于或剛剛小

于邊界值的情況,根據(jù)這些情況選擇測(cè)試用例。

㈢錯(cuò)誤推測(cè)。錯(cuò)誤推測(cè)法沒有確定的步驟,憑檢驗(yàn)進(jìn)行。它的基本思想是列出程序中可能發(fā)

生錯(cuò)誤的情況,根據(jù)這些情況選擇測(cè)試用例。

㈣因果圖。因果圖能有效的檢測(cè)輸入條件的各種組合可能會(huì)引起的錯(cuò)誤。因果圖的基本原理

是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計(jì)

一個(gè)測(cè)試用例。

在網(wǎng)絡(luò)中,sendfile命令用來發(fā)送一個(gè)文件到不同的服務(wù)器。Sendfile有三個(gè)變量:變量

1是發(fā)送者根目錄的文件名,變量2是接受文件服務(wù)器的名稱,變量3是接受方的用戶useid。

如果所有的變量是正確的,那么文件成功發(fā)送,否則給發(fā)送者返回一個(gè)錯(cuò)誤信息。如果原因

用1代表變量1,2代表變量2,3代表變量3,結(jié)果用100代表成功,101代表返回錯(cuò)誤信

息,請(qǐng)畫出因果圖并建立因果關(guān)系判定表。

\測(cè)

12345678

\試

\用

\例

8\

原因110100110

原因210010101

原因310001011

結(jié)果10010000000

結(jié)果1010111111

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論