2012年6月7日 星期四

人月神話//《沒有銀彈》摘要

軟體創作工作
    本質性工作
        創造出一種抽象的軟體實體所組成的複雜概念結構。
    附屬性工作
        用程式語言來表現這些抽象的實體,並在某些空間和速度的限制下,將程式對應至機械語言。
(人為的artificial)
建議:
    .利用大眾市場,避免開發現成買得到的東西
    .利用rapid prototype反覆制定軟體需求
    .讓軟體像生物一樣發育,在執行、使用、測試中擴充功能
    .培養新一代的偉大設計人員


本質性工作:
複雜性(complexity)
    因為如此,導致技術上的複雜和管理上的複雜
    無法用複雜現象,建立出簡單模型(這是物理的方法)
配合性(conformity
    迎合人類現有制度和介面
    配合其它介面導致更嚴重的複雜性
易變性(changeablility
    軟體是思考的產物,無限的延展性,所以會以為修改軟體的成本很低
    軟體面臨修改的兩個影響
        嘗試把軟體用在新的情況上
        配合這些環境上新硬體的發展
隱匿性(invisbility
    阻礙了一個人腦袋裡所進行的設計過程
    阻礙了不同大腦之間的溝通

過去解決的附屬性難題
    .高階語言
    .分時技術
    .一致的開發環境

尋找銀彈
    .Ada和其它高階語言
    .物件導向
    .人工智慧
            AI1:只能靠人類智慧解決的問題
                    一旦們看清了程式運作方式,並領悟了問題所在,我們將不再認為那是AI
            AI2:模仿人類睡決問題時所採用的方法
                    專家系統
    .自動化程式設計
    .圖形化程式設計
    .軟體驗證
            只能驗證「軟體附合規格」
    .環境&工具
    .工作站
            強大到不能充份利用

沒有留言:

張貼留言