一、學期初,實驗一中的任務4,大家拟定了5個準備從課程學習中找到答案的問題,通過一個學期的學習,相信大家已經有了答案,請根據自己的學習實踐回答自己當初提的問題,并提出一個新的問題。
問題一: 說起來,學習程式設計也已有兩年多的時間,然而回想這段學習,自己似乎從未對程式設計的内容有過深入的思考,一直以來自己似乎都停留在完成布置任務,無論代碼内容如何,隻要能達到結果目的即可。讀完這本書的目錄讓我知道,一個完整的軟體工程需要很多步驟,它是一個需要整個團隊精誠合作所完成的一件事情,每個人的工作都有着互相的依賴性,個人的程式設計習慣也許能在一時達到某個目的,卻也許會因為這樣的習慣在後期讓整個團隊付出很大的代價,那麼我們在實際的操作中應當如何使得自己負責的子產品不會影響其他子產品?應當如何使得自己的子產品的品質得到保證呢?
在這學期的項目實戰當中,每個人都需要完成自己負責的子產品,項目整體的完成也是各個子產品最終組合的結果,通過一學期的學習發現要想讓自己的子產品最終能順利的與其他人子產品進行結合,編碼習慣是一個很重的因素,适當的注釋代碼的整潔度,這些看似簡單的工作在實際的項目合作中非常重要,一個結構清晰的代碼能夠讓他人很容易的了解,更快速的了解代碼整體的功能子產品分布,進而使得代碼易于結合。
問題二:如何才算得上是一個合格的軟體工程師,或者說優秀的東西似乎都具備着一些共同的特質,那麼一個合格的軟體工程師所寫的代碼應當都具備哪些特質呢?這些特質該如何融合到我們平時的練習當中去?
經過一學期的學習,我認為一個好的軟體開發人員應當具備以下幾點特質:
1、較強的專業技能
2、文檔流程組織能力
3、團隊精神和協作能力
4、子產品化思維能力
5、交際能力和表達能力
6、快速學習和總結的能力
至于這些能力應該如何融入到平時的練習,引用那句話“實踐是檢驗真理的唯一标準”,多做項目,在做的過程中這些能力慢慢會得到提高。
問題三:書中P52頁提到,“”軟體工程師不宜過早的優化,不能過于積極的解決所有依賴性問題”,在平日裡寫代碼時,遇到問題及時解決在最後才不會花費太多精力和代價在代碼的改進和優化上,小的工程代碼尚且如此,在大一點的軟體工程項目中後期豈不是要付出更大代價?
優化是沒有止境的,放眼望去,任何一個軟體都有其可優化的餘地,不可能一次性做到最好,相反一直糾結于局部的優化隻會耽誤整體的進度,甚至會越陷越深,是以我們在做軟體時可以先放眼全局,隻對于局部隻先解決基本的問題,完成整體後再逐漸求精不失為良策。
問題四:一個軟體的誕生似乎源于使用者對于這款軟體的需求度,人們在現實社會和生活中遇到各種問題時,需要求助于各種軟體,人們的需求往往五花八門。在本書P165頁中鄒欣老師也曾提到“原來我并不了解海量中國使用者,原來真實的使用者并不是我想像的那樣”。我相信任何一個做軟體的程式員一開始都認為自己做的東西是被使用者所需求的,是以才會有去設計軟體的沖動,隻有這樣這樣自己所做的東西似乎才被賦予了意義,那麼做軟體的人在做軟體前就一定會對這個軟體進行需求分析,既然是在做過需求分析後得到的軟體,為什麼依然存在需求不對稱的問題呢,書中提到“不了解為什麼有那麼多人為了qq上的虛拟形象付錢,現實中的很多人喜歡漂亮和虛榮,因而她們不在乎花點錢打扮自己”,我在想在做軟體時有時更重要的也許是這樣的“隐性需求”,并不是簡單的“使用者調查問卷”一類的需求分析所能展現出來的,那麼這樣的需求分析是否還有必要呢?
通過一學期的項目演練和使用者需求調查,事實表明需求分析還是很有必要的,如果連使用者的實際需求都無法滿足就着眼于探索它們的隐形需求最終結果可能會不如人意。換句話說如果探索結果出現問題,你所認為的隐形需求依然不是使用者的真正需求,那麼根據你是以為的需求定制出的軟體最終隻會沒有人用。對使用者進行需求調查,起碼使用者是不會說謊的,從他們口中能直接了解到他們需求。
問題五: 對于軟體工程這門課程我們都是剛剛開始的學徒,在書中所介紹到的包括軟體工程師,項目經理,軟體測試人員等等都是軟體開發工程中必不可少的關鍵人員,每個人的分工不同,側重點也不同,那麼作為現在的我們來說側重點應該放在那裡呢? 或者說為了以後更好的完成這些工作,我們現在最應該做好的是什麼?
沒有最應該做好的,盡全力做好現在能做到的每一件事,不帶有目的性,隻是單純的做好你所能做到的,我相信很多能力會在無形當中慢慢提高。
新的問題:
本學期所學課程名稱為“軟體工程導論”,也就是說我們這學期所進行的整個過程隻是引導我們進入這一領域,軟體工程似乎還有很多學問,今後應當如何更深入的學習,做哪些工作比較合适?
二、完成課程的實踐總結和給你帶來的提升,包括以下内容:
1、統計你在軟工課程實踐中,完成了多少行的代碼;
大約四千行
2、軟工實踐的各次作業分别花了多少時間?累計花了多少個小時在軟工實踐上?平均每周花多少個小時?(做一個清單)
軟工作業 | 花費時間 |
實驗一 軟體工程準備 | 10 |
實驗二 軟體工程個人項目 | 8 |
實驗三 軟體工程結對項目 | |
實驗四 基于原型的軟體需求擷取 | 7 |
實驗五 軟體研發團隊組建 | 5 |
實驗六 團隊項目評審與團隊項目選題報告 | 6 |
實驗七 團隊作業3—團隊項目的原型設計與開發 | |
實驗八 團隊作業4—基于原型的團隊項目需求調研與分析 | |
實驗九 團隊作業5—團隊項目需求改進與系統設計 | |
實驗十 團隊作業6—團隊項目系統設計改進與詳細設計 | |
實驗十一 團隊作業7—團隊項目設計完善&編碼測試 | |
實驗十二 實驗十二 團隊作業8—團隊項目使用者驗收評審 | |
周平均花費時間 | 7.5 |
花費時間總計 | 96 |
學習和使用的新軟體;哪一次作業讓你印象最深刻?為什麼?
第三次結對項目實驗吧,兩個人結對程式設計,第一次兩個人坐在一起寫代碼,感覺很不一樣。
學習和使用的新工具;
process on、墨刀、石墨文檔、visio、IntelliJ IDEA、Android Studio、Deamweaver
學習和掌握的新語言、新平台;
中國大學MOOC、GitHub、部落格園
學習和掌握的新方法(請具體說明什麼方法);
測試方法:白盒測試和黑盒測試
需求擷取方法:原型法
其他方面的提升(請具體說明 什麼提升)。
學習完軟體工程這門課程,最多的提升就是解決問題的能力吧,遇到問題不再急躁而是想着怎麼解決,在作業的“壓迫”下,提升了這種快速解決問題的能力,還有就是團隊協作能力,項目合作中團隊成員互相磨合讓我學會了如何與他人更好的合作。
三、你認為目前的課程有哪些問題,你有什麼更好的建議:
1、你認為本門課程需要在哪裡進行改進,具體措施有哪些,包括:時間進度安排,項目難度等均可;
整體來說,這門課難度适中方式合理,學習完這門課程算是體驗了一下軟體工程的大緻過程,隻是在時間進度方面,任務安排太緊張,這學期因為考研複習等因素往往需要擠時間做作業,在這上面花費了很多時間。
2、你認為助教/老師哪裡做的不足,哪裡限制太多等;
助教和老師都十分認真,不得不說老師和助教的工作态度讓人十分敬佩,看着老師如此認真,我們也沒有了不認真的道理,至于不足,我覺得老師們或許可以考慮一下更加靈活和開放的布置任務,讓同學們更多的展現自己的創造性。
3、你認為每次項目的評分标準存在哪些問題,你認為的合理評分準則是怎樣的(個人/結對/團隊算三個)
也許在本次課程實踐當中,最大的争議就是評分标準了,無論是個人還是團隊項目,不同的助教有不同的标準,不得不說這對同學們來說其實還是有點不公平的,就像之前的項目,記得在博文中要求對問題作出分析,看到了不同的同學有相同的答案最後評分卻是一半的差距。
無論是團隊還是個人建議老師是不是可以在今後的教學中把評分化為A、B、C、D這樣的等級評分,不能做到絕對的公平那是否能争取做到更公平。
3、在結對項目中你是否真正體會到了結對的好處,是否真正嚴格進行了結對程式設計,雙方的工作量是否相同;
對于這個不用說,答案一定是肯定的,在整個過程中我們大概用了接近三天的時間完成,兩個人合作真的節省了不少時間,在一個問題不會的時候總有一個人可以和你一起商量,比起一個人效率高很多,畢竟一個人調代碼調不出來是真的很絕望的,多一個人幫忙在給出想法的同時無形中提高了自己的能力,雙方工作量基本相同吧,有時也會不一樣。
4、你的團隊項目是否成功,如果重來一次你是否還會選擇這個團隊,為什麼成功/失敗;
成功,一定會。我們能成功離不開團隊彙中每個成員的努力,大家明确分工共同努力,我們都想着怎樣把這個項目完成的更好,當每個人都這樣想的時候項目自然會變得越來越好。
5、總結一下你們團隊在做項目時大家的時間安排情況。
每次的任務在做之前,首先都會讨論需要完成的任務,每個人都有自己的分工,組内再分小組,小組再決定一個共同的時間合作完成項目。遇到自己解決不了的問題會在我們的項目讨論組裡進行讨論。
6、對下一屆軟工課實踐教學的建議,或者對于開學初的你,對于大一的你,對于開學初的老師,你有什麼想建議和告知的呢?對于後來人的期許。
怎麼說,這一門課程終歸還是一門實踐性很強的課程也是一門需要花費大量時間和精力的課程,每一步每一個任務如果真的認真去做是會有很大收貨的,很不幸這樣的教學方式這樣的一門課程自己到大三第二學期才遇到,時間緊張很多時候自己也是心有餘力不足。學弟學妹們這門課程應該大多數是會安排在大二吧!想告知學弟學妹的是無論任務再多再難請一定要自己動手去做,隻有認真去做了自己才會有收獲有進步,紮實自己的專業基礎,一步一個腳印,多積累項目實戰經驗~
對于老師的建議嘛,希望老師能細化出更多的小任務,從易到難進行階梯式安排,讓同學們有一個循序漸進的過程~
四、你還有什麼想說的話
不知道自己在這條路上能走多遠,隻希望自己能盡全力做好自己現在能做好的,不要給未來的自己留下遺憾吧~