程式,它本身是完整的,可以由作者在所開發的系統平台上執行。它通常是車庫中產出的產品,以及作為單個程式設計師生產率的評估標準。有兩種途徑可以使程式轉變成更有用的,但是成本更高的東西,它們表現為圖中的邊界。水平邊界以下,程式變成程式設計產品(programming product)。這是可以被任何人執行、測試、修復和擴充套件的程式。它可以執行在多種作業系統平台上,供多套資料使用。要成為通用的程式設計產品,程式必須按照普遍認可的風格來編寫,特別是輸入的範圍和形式必須擴充套件,以適用於所有可以合理使用的基本演算法。接著,對程式進行徹底測試,確保它的穩定性和可靠性,使其值得信賴。這就意味著必須準備、執行和記錄詳盡的測試用例庫,用來檢查輸入的邊界和範圍。此外,要將程式提公升為程式產品,還需要有完備的文件,每個人都可以加以使用、修復和擴充套件。經驗資料表明,相同功能的程式設計產品的成本,至少是已經過測試的程式的三倍。
程式變成程式設計系統中的乙個構件單元。它是在功能上能相互協作的程式集合,具有規範的格式,可以進行互動,並可以用來組裝和搭建整個系統。要成為系統構件,程式必須按照一定的要求編制,使輸入和輸出在
語法和語義上與精確定義的介面一致。同時程式還要符合預先定義的資源限制——記憶體空間、輸入輸出裝置、計算機時間。最後,程式必須同其它系統構件單元一道,以任何能想象到的組合進行測試。由於測試用例會隨著組合不斷增加,所以測試的範圍非常廣。因為一些意想不到的互動會產生許多不易察覺的 bug,測試工作將會非常耗時,因此相同功能的程式設計系統構件的成本至少是獨立程式的三倍。如果系統有大量的組成單元,成本還會更高。程式設計系統產品和以上的所有的情況都不同的是,它的成本高達九倍。然而,只有它才是真正有用的產品,是大多數系統開發的目標。我們要明確自己程式設計的目的到底是什麼,不然將會毫無意義。
人月神話閱讀筆記之一
原來我以為在做工作的時候,存在一些技術可以解決任何問題,所以當遇到問題時,總是期望可以找到這樣的方法。在軟體開發的過程中,只有適度改進,沒有包治百病的銀彈。為了對付恐怖傳說中月圓變形的人狼,只有銀彈才能夠消滅它,而軟體專案具有人狼的某些特性,看似簡單明瞭的東西,卻可能變成乙個落後進度 超出預算 存在...
人月神話閱讀筆記之一
課堂上老師讓選書的時候,人月神話 這個獨特的名字還是吸引到我了,所以我選擇了這本書。人月神話 這本書的評價還是很高的,畢竟是一本經過了40多年仍然經久不衰的書。和構建之法不同的是,人月神話 沒有對那些軟體開發的過程和方法做過多的介紹,而是將重點放在了軟體工程的管理問題。人月神話 的第一章講的是焦油坑...
人月神話閱讀筆記之一
01人月神話閱讀筆記之一 1.我之前在編寫程式的時候,通常都是把 全部寫完再執行自己的程式,看自己設計的程式有哪些功能,但是這樣特別枯燥,寫著寫著就不知道自己寫到 了,而且容易疲倦,就是寫了很久發現自己並沒有多大成就,有好幾次就不想敲 了。1.這一年多吧,說實話,我的大部分程式的設計和 的完成都是走...