- 軟件開發(fā)的201個(gè)原則
- (美)艾倫·M.戴維斯
- 889字
- 2022-05-09 17:56:38
第1章 引言
INTRODUCTION
本書包含一系列軟件工程的原則。這些原則代表了我們所認(rèn)為的軟件開發(fā)過程中的最先進(jìn)、最正確的理念。其他工程領(lǐng)域有基于物理學(xué)、生物學(xué)、化學(xué)或數(shù)學(xué)定律的原則,然而,由于軟件工程的產(chǎn)物是非實(shí)體的(nonphysical),所以實(shí)體的定律(laws of the physical)并不能輕易地成為軟件工程領(lǐng)域堅(jiān)實(shí)的基礎(chǔ)。
軟件行業(yè)已經(jīng)有大量討論技術(shù)、語言和工具的圖書,但很少有圖書試圖去編制基本原則的清單。如圖1-1所示,原則(Principle)是工作的準(zhǔn)則;原則代表了許多人從經(jīng)驗(yàn)中總結(jié)出來的集體智慧。它們往往被描述為絕對真理(總是正確的)或用作推論(當(dāng)X發(fā)生時(shí),Y將會(huì)發(fā)生)。
技術(shù)(Technique)是一種按部就班的流程,它幫助軟件開發(fā)者執(zhí)行一部分軟件工程過程。技術(shù)傾向于強(qiáng)制遵循基本原則的一個(gè)子集。大部分技術(shù)會(huì)創(chuàng)建文檔和(或)程序。許多技術(shù)也會(huì)分析現(xiàn)有的文檔和(或)程序,或?qū)⑵滢D(zhuǎn)變?yōu)楫a(chǎn)品。

圖1-1 原則、技術(shù)、語言、工具
語言(Language)由一組基本元素(如單詞或圖形符號(hào))、規(guī)則和語義組成。規(guī)則可以讓人們用基本元素構(gòu)造出更復(fù)雜的實(shí)體(如句子、圖表、模型),語義則賦予每個(gè)實(shí)體組合以意義。語言用于表達(dá)所有軟件工程的產(chǎn)出,無論是過程中的還是最終的。那些通過技術(shù)創(chuàng)建或分析的文檔和程序通常也會(huì)用某種語言來表達(dá)。
工具(Tool)是軟件程序,可幫助軟件工程師執(zhí)行軟件工程中的某些步驟。它們可以:
■ 作為工程師的顧問(例如,基于知識(shí)的需求助理)。
■ 分析某些內(nèi)容是否符合某種技術(shù)(例如,數(shù)據(jù)流圖檢查器)或原則的子集。
■ 使軟件工程中的一些工作實(shí)現(xiàn)自動(dòng)化(例如,編譯器)。
■ 輔助工程師完成一些工作(例如,編輯器)。
一個(gè)學(xué)科的原則集合,會(huì)隨著學(xué)科的發(fā)展而發(fā)展。現(xiàn)存的原則會(huì)發(fā)生改變,新的原則會(huì)被加進(jìn)來,舊的原則將不再適用。實(shí)踐和從實(shí)踐中獲得的經(jīng)驗(yàn),促使我們發(fā)展了那些原則。如今,當(dāng)我們?nèi)徱曇恍?964年的軟件工程原則時(shí),會(huì)覺得它們看起來很傻(例如,總是使用簡短的變量名,或者盡可能讓程序體積更小)。三十年后,如今的一些原則也會(huì)如此。
現(xiàn)在,請看現(xiàn)代的軟件工程原則。
譯者注
雖然作者說,如今的原則在三十年后會(huì)看起來同樣荒謬。但是非常令人吃驚的是,在英文原書出版25年后,我們看到其中有超過95%的原則都沒有過時(shí)!

- 深入理解Net-Snmp
- 軟件需求與可視化模型(微軟技術(shù)叢書)
- JavaScript框架設(shè)計(jì)
- 從零基礎(chǔ)到精通Flutter開發(fā)
- Netty權(quán)威指南
- DevSecOps企業(yè)級(jí)實(shí)踐:理念、技術(shù)與案例
- Android游戲開發(fā)大全
- 經(jīng)·理@互聯(lián)網(wǎng)產(chǎn)品經(jīng)理的進(jìn)階修煉
- Java高手真經(jīng)·編程基礎(chǔ)卷:Java核心編程技術(shù)
- Android應(yīng)用安全防護(hù)和逆向分析
- 開發(fā)者關(guān)系:方法與實(shí)踐
- 網(wǎng)絡(luò)DevOps平臺(tái)規(guī)劃、設(shè)計(jì)與實(shí)踐:基于企業(yè)架構(gòu)(EA)和領(lǐng)域建模(DDD)的方法
- 大規(guī)模組織DevOps實(shí)踐(第2版)
- Unity 2017經(jīng)典游戲開發(fā)教程:算法分析與實(shí)現(xiàn)
- 內(nèi)容理解:技術(shù)、算法與實(shí)踐