軟體工程(C編碼實踐篇)學習總結

來源:互聯網
上載者:User

標籤:心得   學習   bsp   資料   鏈表   過程   使用者   重入   target   

劉龍威 + 原創作品轉載請註明出處 + 《軟體工程(C編碼實踐篇)》MOOC課程http://mooc.study.163.com/course/USTC-1000002006

心得收穫:

軟體工程學是一門理論性較強的課程,一是它用分階段的生命週期計划進行嚴格的管理,一個軟體產品的生命週期可劃分為若干個互相區別而又有聯絡的階段。二是堅持進行階段評審,每個階段都要進行嚴格的複審,進行不斷的停工或返工,實現軟體生產工程化。三是實行嚴格的產品控制軟體的不可見度是軟體產品的固有特點之一。四是採用現代程式設計技術,根據軟體生產工程化的需要,開發軟體所用語言也多種多樣。五是軟體工程結果應能清楚地審查各階段的任務彼此間應儘可能相對獨立,這樣便於逐步完成每個階段的任務,能夠簡化每個階段的工作,容易確立系統開發計劃。六是開發小組的人員應該少而精為了使開發項目能在規定的時間內、不超過預算的情況下完成,成本預算和嚴格的管理控制就不可能被忽視,而開發小組人員成為項目成本預算中主要參數。

通過課程的學習,學習到了一些軟體編程思想,比如:模組化設計,代碼的通用性,介面規範,資訊隱藏等,對於今後的學習工作具有啟發意義,在學習過程中熟悉了vi及git的使用,同時複習了C語言,在實踐中解決了我以前的一些困惑。最大的遺憾是其他課程太緊,沒有好好吸收本課程的精華。

下面是我的實驗報告連結:

實驗一:寫一個hello world小程式

實驗報告  實驗代碼

心得:學寫了vi和git的使用,為以後實驗打下了基礎

 

實驗二:命令列菜單小程式V1.0,具體要求參見視頻

實驗報告  實驗代碼

心得:初步接觸了模組化設計思想,理解了代碼風格的重要性,學會了將命令封裝成函數供使用者調用

代碼風格的原則是:簡明,易讀,無二義性;縮排用四個空格;在複雜的條件運算式中,用括弧清楚地表示邏輯優先順序;不要把多行語句放在一行上;加上必要的注釋等等。。。

 

實驗三:內部模組化的命令列菜單小程式V2.0

實驗報告  實驗代碼

心得:通過這次實驗學習,明白了代碼模組化的重要性,瞭解了代碼的商務邏輯和資料存放區之間的分離。另外加深了對C語言中指標的使用及其與資料結構的結合使用的理解。

 

實驗四:用可重用的鏈表模組來實現命令列菜單小程式V2.5

實驗報告  實驗代碼

心得:本次實驗編寫的菜單程式,相比上一節的程式,進行了比較多的改進。代碼塊的可重用性更高,增強可讀性,更方便之後的擴充,更符合軟體工程的要求。

 

實驗五:用callback增強鏈表模組來實現命令列菜單小程式V2.8

實驗報告  實驗代碼

心得:CALLBACK回呼函數就是一個通過函數指標調用的函數。優點是用此函數可以把調用者與被調用者分開,所以調用者不關心誰是被調用者。它只需知道存在一個具有特定原型和限制條件的被調用函數,使上個實驗的查詢介面更加最佳化。利用callback函數使鏈表的查詢更加通用,同時增加的代碼的隱蔽性。

 

課程六:函數的可重新進入性(reentrant)及安全執行緒淺析

心得:瞭解多線程的概念,知道函數的可重新進入性(reentrant)與安全執行緒概念和關係。用互斥鎖,讀寫鎖改進程式

 

實驗七:將menu設計為可重用的子系統

實驗報告  實驗代碼

心得:本次實驗痛點在於Liunx系統函數getopt的理解和使用

 

課程八:代碼背後的設計思想

心得:學習從不同的品質視角,例如產品視角、使用者的視角等 ,將menu開源希望有人使用它。 總結了設計方法論和幾個重要的設計指導原則, 模組化、介面設計、資訊隱藏、 漸進式開發、抽象和一般化。

 

軟體工程(C編碼實踐篇)學習總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.