人月神話//《沒有銀彈》摘要
¶人月神話//《沒有銀彈》摘要
原文連結: https://darkblack01.blogspot.com/2012/06/blog-post.html
移植時的最後更新日期: 2012-06-07T14:22:23.176+08:00
軟體創作工作
本質性工作
創造出一種抽象的軟體實體所組成的複雜概念結構。
附屬性工作
用程式語言來表現這些抽象的實體,並在某些空間和速度的限制下,將程式對應至機械語言。
(人為的artificial)
建議:
.利用大眾市場,避免開發現成買得到的東西
.利用rapid prototype反覆制定軟體需求
.讓軟體像生物一樣發育,在執行、使用、測試中擴充功能
.培養新一代的偉大設計人員
本質性工作:
複雜性(complexity)
因為如此,導致技術上的複雜和管理上的複雜
無法用複雜現象,建立出簡單模型(這是物理的方法)
配合性(conformity)
迎合人類現有制度和介面
配合其它介面導致更嚴重的複雜性
易變性(changeablility)
軟體是思考的產物,無限的延展性,所以會以為修改軟體的成本很低
軟體面臨修改的兩個影響
嘗試把軟體用在新的情況上
配合這些環境上新硬體的發展
隱匿性(invisbility)
阻礙了一個人腦袋裡所進行的設計過程
阻礙了不同大腦之間的溝通
過去解決的附屬性難題
.高階語言
.分時技術
.一致的開發環境
尋找銀彈
.Ada和其它高階語言
.物件導向
.人工智慧
AI1:只能靠人類智慧解決的問題
一旦們看清了程式運作方式,並領悟了問題所在,我們將不再認為那是AI
AI2:模仿人類睡決問題時所採用的方法
專家系統
.自動化程式設計
.圖形化程式設計
.軟體驗證
只能驗證「軟體附合規格」
.環境&工具
.工作站
強大到不能充份利用