《軟體工程》個人總結

whlzb發表於2017-12-27

《軟工實踐》總結

一、請回望暑假時的第一次作業,你對於軟體工程課程的想象

1)對比開篇部落格你對課程目標和期待,“希望通過實踐鍛鍊,增強計算機專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什麼?

先說結論:通過《軟工實踐》我知道一款軟體產品完整的研發過程,其中涉及的各個部分以及技術上如何實現,這最大的好處是:我再也不擔心以後找不到工作了。沒開《軟工實踐》這一課程之前,我的程式碼一直停留在單機水平,也就刷刷OJ,至於如何將所學的應用於實際開發中一無所知,通過這一課程我知道了如何將所學的程式設計知識轉變為實際的軟體產品,這讓我以前的找不著工作的擔憂大大減低——至少我知道應該學哪些知識,該往哪方面努力。還有一個方面,通過這一課程的學習,我對程式設計的恐懼不再像以前那麼深了,我開始堅信自己是可以學好程式設計的,甚至發現Java也沒什麼難的(可能初級開發沒遇到什麼難題),Android開發也差不多,只要有去學,肯定是能學好的。(我以前一直覺得我自己不是學程式設計的料,一直都活在對程式碼的恐懼和對自己的貶低,現在這種情況轉化成需要什麼知識去學習相應的知識,這是我覺得上這門課程最大的收穫。)儘管這門課程堅定了我學習程式設計的信心,但是在這門課程裡我也有還有很多需要學習的。具體表現在我的程式碼量不夠,很多還只是停留在知識的習得上,並沒有轉化為實踐的有效輸出。因為我前兩年學習的不認真,導致我在開始這門課程前幾乎沒有任何基礎,所以一直沒能跟上團隊的節奏,也就一直沒能參與到程式碼的共同開發上,這點可以說是非常遺憾!

2)總結這門課程的實踐總結和給你帶來的提升,包括以下內容:
1、統計一下,你在這門軟體工程實踐中,完成了多少行的程式碼;

我這一學期的程式碼主要是對Java的學習,沒有具體統計,大概在10000行吧

2、軟工實踐的各次作業分別花了多少時間?

因為在這門課程我的角色主要是學習Java和Android,所以沒天投入的時間比較固定,基本每天都有花兩個半小時

3、哪一次作業讓你印象最深刻?為什麼?

第一次答辯的晚上,我們組的軟體突然崩了,整個組的人都臨時修改東西,都到了凌晨兩三點才睡,幾個主力都到四五點吧

4、累計花了多少個小時在軟工實踐上?平均每週花多少個小時?

累計花了60多小時在《軟工實踐》上,平均每週基本都14小時以上吧

5、學習和使用的新軟體;

Github、Markdown、Android studio、Stack Overflow、Xmind等

6、學習和使用的新工具;

Markdown、Android studio等

7、學習和掌握的新語言、新平臺;

Java、Stack Overflow、Android

8、學習和掌握的新方法;

這一階段因為可以FQ,看了很多Stack Overflow帖子,感覺對英語有了一定的提升

9、其他方面的提升。

團隊APP開發的協作

二、寫下屬於自己的人月神話——個人或結對或團隊專案實踐中的經驗總結+例項/例證結合的分析

當時對部門學生的匹配所採取的的實現方式如下:

// 開始匹配,由部門招人,分兩次,第一次招人優先招收未加入其它部門的人
for (ExDepartment exdepartment : ed) {
    for (ExStudent exstudent : es) {
        if(exstudent.isAdmitted())
            continue;
        if (isMatch(exdepartment, exstudent)) {
            admitted(exdepartment, exstudent);
        }
    }
}
//第二次招人,符合要求即招入
for (ExDepartment exdepartment : ed) {
    for (ExStudent exstudent : es) {
        if(exdepartment.getMembers().contains(exstudent))
            continue;
        if (isMatch(exdepartment, exstudent)) {
            admitted(exdepartment, exstudent);
        }
    }
private static boolean isMatch(ExDepartment exdepartment, ExStudent exstudent) {
// TODO Auto-generated method stub
if (timematch(exdepartment, exstudent)) {
    for (String apt : exstudent.getApplication_department()) {
        if (apt.equals(exdepartment.getDepartment_no())) {
            return tagMatch(exdepartment, exstudent);
        }
    }
}
return false;
}

結對實踐中的經驗總結
結對作業是我和我們班同學芳凱一起做的,通過那次的結對作業,我開始接觸Java包的使用,更加深刻地理解了Java的一些基礎知識。但是因為當時國慶放假,我和他都回家了,所以也沒辦法坐在一起敲程式碼。程式碼主要是芳凱打的,只有結構佈局啊是我們一起構想的。感覺我這次沒有很參與到這次作業中,所以也沒有很大的收穫,但是沒辦法畢竟自己沒有投入很多時間。謝謝芳凱的辛勤!
感受:芳凱是我同班同學,平時就是非常不錯的一個人!在結對作業的兩次合作中,他體現了他的知識水平和程式碼能力,特別想提的一點是,芳凱這人性格好!並沒有因為我水平比較不好而心存抱怨,反而是對於我不懂的地方悉心耐心地指導我,還告訴一些學習Java的途徑,謝謝他!

三、對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,你有什麼想建議和告知的呢?對於後來人的期許。 特別地,特別地,下一屆要不要中途換隊員?

關於這一點我想重點談一下我個人對“中途要不要換隊員”的看法。首先,我先表明我的態度:我覺得一定要換的。如果是站在我編碼能力比較差的立場,能不換,當然是最好的。但是這往往會出現這樣一種情況,有基礎比較差的同學在人數較多的團隊裡渾水摸魚,混吃等屎。如果不換隊員,他們真的是沒有絲毫緊迫感和壓力。我就在這次換隊員的過程中碰到這樣離譜的事:有人因為害怕去別的組,就在搖骰子的過程中耍賴,還叫我去別的組,要幫我做作業。

四、分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了“創造”階段了麼?(參考《構建執法》第17章 人、績效和職業道德)

那肯定有啊,我們組可厲害了,哈哈哈(此處必須誇誇我們組~)

五、怎樣證明你學會了軟體工程?

1)研發出符合使用者需求的軟體

​ 必須公開發布,有實際的使用者,一定的使用者量和持續使用量 (3 天后能保持10 - 100個使用者);而不是: 做沒有使用者使用的軟體

相關文章