音樂播放器之需求規格??

俗話說︰萬『』起頭難,通常是因為我們尚未了解做『那件事』的『辦法』,也許對一個『初學者』來講,如何『設想』一件『』,可能都還不知道,各種工具也還不會用。那麼要如何開始呢?或許講,一個人『自學之路』就像『哥倫布發現新大陸』,相信『地球是圓的』向西走總會抵達。『旅程』上逐步克服困難,建立方法規律,改善已知工具用法,完善思維模式,那將會是一趟豐收之旅。就讓我們踏上旅途吧!!

280px-Sage_typical_building
The 4-story SAGE blockhouses

220px-SAGE_computer_room
SAGE AN/FSQ-7電腦

350px-Waterfall_model.svg
瀑布模型

Agile_Project_Management_by_Planbox
Incremental development

Agile_Brazil_2014_conference_entrance
Agile software development

假使將為人設計一樣東西,至少得要先知道『那個人』認為『此物』是什麼?能有些怎樣的『功能』,如何『方便』的使用那些『功能』等等。否則會『設計』出『那個人』不想要的東西吧!於是『需求』的『了解』與『分析』,正是起始的最重要『關鍵』步驟。然而人的『需求』卻是『隨時而變』的,如是『設計中的變更』也就是可預見的了,因此為著解決這個『軟體工程』的問題,也就有了各種『設計典範』以及『設計方法論』。據聞最早的『瀑布開發法』是 Herbert D.  Benington 於一九六五年六月二十九日的『數位電腦之高等程式設計研討會』上提出,它是『賢者系統』 SAGE 的軟體設計方法。

一九七零年,美國電腦科學家 Winston W. Royce 寫了一篇文章 《Managing the Development of Large Software Systems》批評這種『依序進行』的方法論︰

1. Requirements specification【需求規格】 resulting in the product requirements document
2. Design【設計】 resulting in the software architecture
3. Construction【建構】 (implementation or coding) resulting in the actual software
4. Integration【整合】
5. Testing and debugging【測試與除錯】
6. Installation【安裝』
7. Maintenance【維護】

然而陰錯陽差,人們似乎誤解了 Royce 是說︰這是個『有缺陷』『不可行』的『模型』。其後『瀑布模型』 waterfall 一詞,在 Bell, Thomas E. 和 T. A. Thayer 合寫的論文《Software requirements: Are they really a problem? 》中誕生,將之歸於 Royce 之說。然後 Royce 所提倡的『迭代式瀑布開發流程』也就湮沒在時流中了。

經過幾次『對話』,看來一時要『確定』各種『規格』非常困難。於是作者也只能『選擇』個個擊破之方,『採取』疊代式開發之法,僅就已知還不清的『需求』來設計『子系統』,那就使用著名的『附電池』之『強力膠語言』 ── 騛罿』python ── 來設計的吧!!

 

需求規格一??

將音樂 CD 轉成 mp3,寫到大拇哥上!!