《軟件工程》課程總結


張劍冬  + 《軟件工程(C編碼實踐篇)》MOOC課程http://mooc.study.163.com/course/USTC-1000002006

        上學期就已經選修過孟寧老師的網絡程序設計課程,這次的課程《軟件工程》和上次一樣,依然采用了一種很新穎的教學方式。與傳統教學不同,該課程采用了線上教學+線上/線下實驗+同學分享的方式,實踐和理論相結合,內容涵蓋豐富,使我受益良多。以下是我學習該課程的一些總結和心得體會。


1. 課程總結

        軟件工程包含的內容廣泛,線上課程和實驗主要涉及的是代碼層面的內容。課程通過從簡單到復雜一步一步設計出一個通用的菜單系統來向我們介紹了設計一個軟件所要做的事情和要注意的地方。與以往課程實驗實現一些簡單的功能函數不同,要設計出一個實用的軟件系統,功能需求只是最基礎最簡單的需求,而其他非功能性需求如可重用性、通用性和可維護性等也占據着非常重要的地位。對於一個軟件系統,要實現很好的可維護性,首先編程必須符合一定的代碼風格規范,規范和風格統一的代碼能增強可讀性,既有利於團隊成員之間相互交流,也有利於后期的更改維護;其次,模塊化也是增強軟件可維護性的一個重要方法。程序的模塊化還能增強代碼的可重用性和通用性。要實現模塊化,就要盡量讓代碼簡單,例如一個函數只做一件事,一個模塊只做一類事。必須遵循“不和陌生人說話”的原則,封裝類,保證一個對象對另一個對象了解的盡可能少。同時為模塊設計通用規范的接口。此外,軟件開發中還要考慮多線程情況下線程安全的問題,需要關注函數是否是可重入的,以及使用互斥鎖以保證多線程安全等。


2. 實驗報告匯總

    下面是我完成線上實驗的一系列實驗報告。

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

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

實驗三:內部模塊化的命令行菜單小程序V2.0

實驗四:用可重用的鏈表模塊來實現命令行菜單小程序V2.5

實驗五:用callback增強鏈表模塊來實現命令行菜單小程序V2.8

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


3. 心得體會

        線上課程和實驗使我從實踐中學習到了設計開發一個實用的軟件系統所包含的內容和要注意的地方,包括代碼風格規范、程序的模塊化、通用接口的設計和線程安全等等;而同學分享則使我了解到了軟件工程涉及的方方面面,以及行業內使用的一些新技術和工具,使我初步了解了在實際企業里是如何進行軟件系統開發的。在這門課程中我最大的收獲就是通過菜單系統實驗學習到的軟件設計方法,最大的遺憾是沒有參加一個真實實用的項目的開發。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: