1.3.3 軟件工程基礎(chǔ)
1.軟件定義與軟件特點(diǎn)
軟件的定義是重點(diǎn)掌握的內(nèi)容。
計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。它具有以下特點(diǎn):
(1)軟件是一種邏輯實(shí)體,而不是物理實(shí)體,具有抽象性。
(2)軟件的生產(chǎn)與硬件不同,它沒(méi)有明顯的制作過(guò)程。
(3)軟件在運(yùn)行、使用期間不存在磨損、老化問(wèn)題。
(4)軟件的開(kāi)發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移植的問(wèn)題。
(5)軟件復(fù)雜性高,成本昂貴。
(6)軟件開(kāi)發(fā)涉及諸多的社會(huì)因素。
2.軟件危機(jī)與軟件工程
重點(diǎn)掌握軟件危機(jī)與軟件工程的概念,軟件工程產(chǎn)生的背景、研究目標(biāo)與研究?jī)?nèi)容。
軟件工程概念的出現(xiàn)源自軟件危機(jī)。
軟件危機(jī)是泛指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。主要表現(xiàn)在:軟件需求的增長(zhǎng)得不到滿足、軟件開(kāi)發(fā)成本和進(jìn)度無(wú)法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度非常低、軟件的成本不斷提高、軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)等。
為了消除軟件危機(jī),逐步形成了軟件工程的概念,軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。其主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則。
軟件工程具有方法、工具和過(guò)程三個(gè)要素。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理、文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制、管理。
軟件工程的目標(biāo)是,在給定成本、進(jìn)度的前提下,開(kāi)發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。
基于軟件工程的目標(biāo),軟件工程研究的內(nèi)容主要包括:軟件開(kāi)發(fā)技術(shù)和軟件工程管理。
為了達(dá)到軟件工程目標(biāo),在軟件開(kāi)發(fā)過(guò)程中,必須遵循以下基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。
3.軟件生命周期
通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。
4.軟件開(kāi)發(fā)工具與軟件開(kāi)發(fā)環(huán)境
軟件開(kāi)發(fā)工具和環(huán)境的使用進(jìn)一步提高了軟件的開(kāi)發(fā)效率、維護(hù)效率和軟件質(zhì)量。軟件開(kāi)發(fā)工具的完善和發(fā)展促進(jìn)了軟件開(kāi)發(fā)方法的進(jìn)步和完善,促進(jìn)了軟件開(kāi)發(fā)的高速度和高質(zhì)量。
軟件開(kāi)發(fā)環(huán)境或稱軟件工程環(huán)境是全面支持軟件開(kāi)發(fā)全過(guò)程的軟件工具集合。這些軟件工具按照一定的方法或模式組合起來(lái),支持軟件生命周期內(nèi)的各個(gè)階段和各項(xiàng)任務(wù)的完成。
3.軟件需求規(guī)格說(shuō)明書(shū)
軟件需求規(guī)格說(shuō)明書(shū)是需求分析階段的最后成果,是軟件開(kāi)發(fā)中的重要文檔之一。
軟件需求規(guī)格說(shuō)明書(shū)的作用是:
① 便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流。
② 反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)。
③ 作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。
軟件需求規(guī)格說(shuō)明書(shū)是作為需求分析的一部分而制定的可交付文檔。該說(shuō)明把在軟件計(jì)劃中確定的軟件范圍加以展開(kāi),制定出完整的信息描述、詳細(xì)的功能說(shuō)明、恰當(dāng)?shù)臋z驗(yàn)標(biāo)準(zhǔn)以及其他與需要有關(guān)的數(shù)據(jù)。
1.3.5 結(jié)構(gòu)化設(shè)計(jì)方法
重點(diǎn)掌握軟件設(shè)計(jì)的概念、過(guò)程、軟件設(shè)計(jì)的基本原理等。
1.軟件設(shè)計(jì)的基本概念
軟件設(shè)計(jì)是軟件工程的重要階段,是一個(gè)把軟件需求轉(zhuǎn)換為軟件表示的過(guò)程。從工程管理的角度來(lái)看,軟件設(shè)計(jì)分兩步完成(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))。
概要設(shè)計(jì)將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)模式。
詳細(xì)設(shè)計(jì)確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。
2.軟件設(shè)計(jì)的基本原理
(1)抽象
抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來(lái)而不考慮其他細(xì)節(jié)。
(2)模塊化
模塊是指把一個(gè)待開(kāi)發(fā)的軟件分解成若干小的簡(jiǎn)單的部分。每個(gè)模塊可以完成一個(gè)特定的子功能,各個(gè)模塊可以按一定的方法組裝起來(lái)成為一個(gè)整體,從而實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。
模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過(guò)程。
(3)信息隱蔽
信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。
(4)模塊獨(dú)立性
模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,且與其他模塊的聯(lián)系最少、接口簡(jiǎn)單。
模塊的獨(dú)立程度是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。通常從耦合性和內(nèi)聚性兩個(gè)度量標(biāo)準(zhǔn)衡量軟件的模塊獨(dú)立性。
① 內(nèi)聚性
內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,內(nèi)聚是從功能角度來(lái)度量模塊內(nèi)的聯(lián)系。一個(gè)模塊的內(nèi)聚性越強(qiáng)則該模塊的模塊獨(dú)立性越強(qiáng)。
在各種內(nèi)聚性中,內(nèi)聚性由弱到強(qiáng)的是:偶然內(nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚、過(guò)程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。
② 耦合性
耦合性是模塊間互相連接的緊密程度的度量。一個(gè)模塊與其他模塊的耦合性越強(qiáng)則該模塊的模塊獨(dú)立性越弱。
在各種耦合性中,耦合度由高到低的順序是:內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標(biāo)記耦合、數(shù)據(jù)耦合、非直接耦合。
總之,耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。
3.概要設(shè)計(jì)
概要設(shè)計(jì)的基本任務(wù)是:對(duì)系統(tǒng)進(jìn)一步分解,劃分模塊及確定模塊的層次結(jié)構(gòu)。
4.詳細(xì)設(shè)計(jì)
詳細(xì)設(shè)計(jì)的任務(wù),是為軟件結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。
常用的工具有程序流程圖、N-S圖、PAD圖、過(guò)程設(shè)計(jì)語(yǔ)言(PDL)等。
1.3.6 軟件測(cè)試
重點(diǎn)掌握軟件測(cè)試的概念、靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試的概念、白盒測(cè)試與黑盒測(cè)試的概念以及軟件測(cè)試的過(guò)程與步驟。
1.軟件測(cè)試的概念與分類
軟件測(cè)試是保證軟件質(zhì)量的重要手段,其主要過(guò)程涵蓋了整個(gè)軟件生命期的過(guò)程。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。
從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試;按照功能劃分可以分為白盒測(cè)試和黑盒測(cè)試方法。
2.靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試
靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件,主要通過(guò)人工進(jìn)行。
動(dòng)態(tài)測(cè)試是基于計(jì)算機(jī)的測(cè)試,是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。即根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例,并利用這些測(cè)試用例去執(zhí)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。
3.白盒測(cè)試方法與測(cè)試用例設(shè)計(jì)
白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。它是根據(jù)軟件產(chǎn)品的內(nèi)部工作過(guò)程,檢查內(nèi)部成分,以確認(rèn)每種內(nèi)部操作符合設(shè)計(jì)規(guī)格要求。
白盒測(cè)試的基本原則是:保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次;保證所測(cè)模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
白盒測(cè)試常用的方法有邏輯覆蓋、基本路徑測(cè)試。
邏輯覆蓋測(cè)試泛指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)技術(shù)。通常有語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷——條件覆蓋等。
基本路徑測(cè)試的思想是,根據(jù)軟件過(guò)程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測(cè)試用例對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試。
免責(zé)聲明:該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請(qǐng)發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。
返回查查吧首頁(yè),查看更多>>