作者garywine1201 (講話要中肯才有健康LP)
看板CSSE
標題Re: [問題] 這是關於component-level design的一些 …
時間Sun Apr 29 21:32:58 2007
※ 引述《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