精華區beta CSSE 關於我們 聯絡資訊
※ 引述《maxe (gt)》之銘言: : 最近自學軟體工程 : 我看的事 software Engineering:A practition's approach 5/e : 中文翻作 軟體工程 -實物專家做法 : 其中有張投影片 怎麼看都看不懂 : 不知哪位大哥能解說一下 : ps.這邊問這種問題違反板規嗎? : 以下為投影片內容 : 標題: Algorithm design : 1.the closest design activity to coding : 2.the approach: : -review the design description for the component : 回顧元件的設計敘述?? 在這的意思是要去了解元件 然在在做演算法的設計嗎? : -use stepwise refinement to develop algorithm : 使用逐步細分的方式開發演算法(這比較能懂) : -use structured programming to implement procedural logic : 用結構化的程式設計去實作程序邏輯? 程序邏輯是? : 又與structured programming的關係是?? : -use 'formal methods' to prove logic : 使用正式方法去驗證邏輯??所謂的formal methods是?? : 是有某位人物發明這個方法?? : 還是說用中規中矩的方式來驗證邏輯~~此處的邏輯又是誰的邏輯呢 : 演算法的邏輯嗎? 你好,我想我大概了解你的問題, 我也盡量就我所學的回答你, 如果有任何錯誤的地方請見諒。 首先,一般軟體工程開發,應該是先將大的系統切割成細小的部份, 這點應該沒有甚麼問題。投影片也應該是從這邊開始的。 系統分部後會依照不同的功能被切割為元件。 這裡的元件看是依照物件導向方式設計還是依照結構導向設計, 會有不同的描述機制或是工具,如果是前者,那麼應該會有程序描述文件 ,如果是後者計,則每個被切割的類別通常會給予一張CRC卡。 投影片的目的應該是指你必須先確切的了解設計文件與需求文件, 然後才去實做這部份的演算法。 在PSP(個人軟體程序)的訓練當中,也是要求先熟悉所有的要求與文件描述, 然後設定工作腳本(script),才接著設計演算法的。 這邊的Procedure Logic指的便是你的演算法。 在任何分部模組或程序完成之後,有一些驗證方式將會被使用, formal method 指的是合乎規範的測試流程。 所有的Test都是為了符合V&V。 這些測試流程通常會有以下幾個分類: 1. 黑箱與白箱測試 (通常這個部份就會測試邏輯與結果了) 2. Alpha與Beta測試 3. Unit Testing 4. Integration testing:包含回歸測試或煙霧測試法。 5. System Testing : 包含壓力測試,復原測試,安全測試以及效能測試。 有些測試必須使用測試個案(Test Cases) 測試個案的多寡則取決於程序的循環複雜度。 測試個案的數量必須大於等於程序的循環複雜度,以求每個決策點之邏輯無誤。 我想這就是所謂的formal method。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.33.173
maxe:謝謝你詳細的解說 讓我懂了九成以上 還補充我所沒問到的 04/30 21:45
maxe:真的是感激不盡 04/30 21:46