附:
模型
用來表示一個系統、過程、事物或概念(的一種表達形式)。
模型可以是物理實體、圖形、數學運算式或一段標題文字。
好處:是形成一種具體的印象,有助於瞭解過程的實質。
工作模型:
就是對一個事物完成一次工作的描述、工作流程、步驟
1.7.1 什麼是模型?
模型(Model)就是一個系統的抽象表現(Abstract representation)。由於一個真實的系統可能太龐大,也可能含有許多細節,常常超過人類智力可能認知的範圍,所以人們必須從系統中“抽”離出重要的“現象”(Essential factor),讓人們能夠認識與理解系統的重要特性,包括系統各組件的靜態與動態合作關係。
模型包含一組明確定義的基礎概念(Building concept),以及這些概念之間的關係。即這些基礎概念根據明確定義的規則(Rule)來組合成為較高層次的概念或系統。
簡單而言,模型的基礎元素包括一組基本概念以及一組關係或規則。藉助這些元素來表達出系統的架構(Architecture)。由於人們對基礎元素有了共同的認知,所以整個系統的架構的描述(即系統的模型)也就成為人與人之間可以認知和理解的東西。
因此,人與人之間採用共同的模型時,就易於溝通,易於互相合作了。
軟體調試-張銀奎
詳情 查看回複 前言
本書寫作目的:
軟體調試,就是通過調試手段來解決軟體中的問題(BUG)或作底層的探索研究(HACK等)
具體就是想告訴大家:
1、軟體調試的原理、步驟(原文:工作的模型,即一次調試工作的步驟、流程)、工具(又一輪原理、步驟等)。(這是被動,出了問題再來解決,是從外面來治病,比如西醫。是軟體外的東西,是外部)
為什麼要知道這些:
類比:
軟體調試可比喻為修理汽車。作為修理工,當然不能像司機一樣會開就行了,首先要知道一個事物的工作原理,如汽車各部分的作用,它們如何配合起來讓汽車動起來?動力來自於哪(發動機的活塞上下運動),它又是怎麼變成讓輪子向前滾動(通過巧妙的傳動裝置讓力變成了旋轉輪子的方向)?
然後要知道一次具體修理的過程,即先拆哪部份再拆哪部分,出什麼問題應該觀察哪幾部分,什麼時侯需要開動發動機來修理,什麼時侯應該關掉不然會搞壞東西。
最後,應該知道你所使用的工具的原理,從原始的滑輪吊裝,你應該知道拉哪根是向上吊、幾根才夠,現在修車還有一些先進的調試裝置,什麼四輪定位,甚至X光機等都有了。
而軟體調試也相當於修理,只不過你修理的東西是在記憶體和CPU中的一些磁訊號罷。你也應該知道基本原理(為什麼能工作)、不同情況下的調試步驟、各類調試工具的使用原理(才知道什麼情況下適用)。
2、代碼自身可調試性。(這是主動,是預防問題,從內部來發現、醫治,比如中醫。是軟體自身、內在)
類比來解釋:
光事後去修還太被動了,任何裝置都應該能自行發現一些故障並作記錄、作相關動作(及時停止工作以保護使用者的工作成果,並方便找出毛病所在等。)
所以,
就是在代碼中加入一些預備對付故障毛病的代碼(記錄情況、通知使用者、診斷位置與原因等),方便以後調試。
3、教授方法與技巧(都是摸索出來的)。
除了上面那些通用性的東西外,由於東西太多,肯定還有很多其它情況,所以有一些經驗性的東西。或者說,一些找不到文檔不被公開的東西。一些很少說明的東西。這不是經驗和技巧,不太都知道的東西。都知道的就是教材上的東西。
4、總結:
掌握原理、體會到重要性(通過一些執行個體或情況)、學會方法和工具、學會用這些方法和工具去探索更多知識、解決更多問題。
------------------------------
http://591000.cn/bbs/ShowPost.asp?ThreadID=397