讓我們先了解一下軟件工程的含義。該術(shù)語(yǔ)是由兩個(gè)詞語(yǔ)組成的,軟件與工程。
軟件 不僅僅是一個(gè)程序代碼。程序是一個(gè)可執(zhí)行的代碼,它提供了一些計(jì)算的目的。 軟件被認(rèn)為是集合可執(zhí)行的程序代碼,相關(guān)庫(kù)和文檔的軟件。當(dāng)滿足一個(gè)特定的要求,就被稱為軟件產(chǎn)品。
工程?是所有有關(guān)開(kāi)發(fā)的產(chǎn)品,使用良好定義的,科學(xué)的原理和方法。
軟件工程?是一門(mén)工程分支使用定義良好的科學(xué)原理,方法和程序開(kāi)發(fā)軟件產(chǎn)品。軟件工程的成果是一個(gè)高效,可靠的軟件產(chǎn)品。
IEEE對(duì)于軟件工程的定義:
(1) 將系統(tǒng)、規(guī)范、可量化的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù);也就是說(shuō),工程在軟件中的應(yīng)用。
(2) 研究方法如上陳述。
Fritz Bauer(德國(guó)計(jì)算機(jī)科學(xué)家)對(duì)軟件工程的定義:
軟件工程是建立和使用合理的工程原理,以便經(jīng)濟(jì)地獲得可靠且在真是機(jī)器上有效工作的軟件。
運(yùn)用軟件工程的原理和方法開(kāi)發(fā)軟件產(chǎn)品的過(guò)程被稱為軟件演化。此處包含的軟件的初始開(kāi)發(fā)及維護(hù)和更新,直到所需的軟件產(chǎn)品的開(kāi)發(fā),其滿足預(yù)期需求。
演化從需求收集過(guò)程開(kāi)始。之后,開(kāi)發(fā)人員創(chuàng)建預(yù)期軟件的原型,并將其展示給用戶,以便在軟件產(chǎn)品開(kāi)發(fā)的早期階段獲得他們的反饋意見(jiàn)。用戶提出的建議,在這幾個(gè)連續(xù)的更新和維護(hù)不斷變化太大。這個(gè)過(guò)程改變了原來(lái)的軟件,直到所需的軟件來(lái)完成。
即使用戶手中已有所需的軟件,先進(jìn)的技術(shù)和不斷變化的需求迫使軟件產(chǎn)品做出相應(yīng)的改變。從頭開(kāi)始重新創(chuàng)建軟件并與需求一對(duì)一是不可行的。唯一可行且經(jīng)濟(jì)的解決方案是更新現(xiàn)有的軟件,使其符合最新要求。
Lehman 給了軟件演化規(guī)律。他把軟件分為三個(gè)不同的類別:
Lehman 給了八項(xiàng)法律為E型軟件演化:
軟件范例參考方法和步驟,在設(shè)計(jì)的軟件,該軟件被執(zhí)行。有提出許多方法,并在今天的工作,但我們需要看到在軟件工程這些范式立場(chǎng)。這些可以組合成各種類別,雖然每個(gè)這些被包含在彼此:
編程模式是軟件設(shè)計(jì)模式的一個(gè)子集是進(jìn)一步的軟件開(kāi)發(fā)模式的一個(gè)子集。
這種模式被稱為軟件工程范例,所有有關(guān)軟件開(kāi)發(fā)工程的概念被應(yīng)用。它包括各種研究和需求收集,這有助于軟件產(chǎn)品來(lái)構(gòu)建。
這一模式是軟件開(kāi)發(fā)的一部分,包括:
這一模式是密切相關(guān)的軟件開(kāi)發(fā)編程方面。這包括:
軟件工程的需要,因?yàn)檩^高的利率變化的用戶需求及環(huán)境上的軟件工作。
一個(gè)軟件產(chǎn)品可以判斷通過(guò)其功能和多少用戶友好。這個(gè)軟件必須滿足以下功能:
一個(gè)精心設(shè)計(jì)和制作的軟件預(yù)計(jì)將有以下幾個(gè)特點(diǎn):
這告訴我們?nèi)绾我约败浖牟僮鞴ぷ鳌K梢栽诒粶y(cè)定:
這方面是重要的,當(dāng)軟件從一個(gè)平臺(tái)轉(zhuǎn)移到另一個(gè):
這講述一個(gè)軟件以及如何有能力維護(hù)自己的每一個(gè)變化的環(huán)境中:
總之,軟件工程是計(jì)算機(jī)科學(xué)的一個(gè)分支,它使用定義明確的工程概念來(lái)產(chǎn)生高效、持久、可擴(kuò)展、預(yù)算內(nèi)和準(zhǔn)時(shí)的軟件產(chǎn)品。
更多建議: