1、請回望暑假時的第一次做業,你對於軟件工程課程的想象
1)對比開篇博客你對課程目標和期待,「但願經過實踐鍛鍊,加強計算機專業的能力和就業競爭力」,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,爲何?html
我以爲我對於產品的總體進度把握,團隊間的合做交流以及對相關領域的理解達到了個人期待和目標;可是我以爲我對於這些的理解深度和廣度還能夠再增強,多是因爲上課時間的衝突,可能沒有那麼多時間去深刻地學習這些知識。前端
2)總結這門課程的實踐總結和給你帶來的提高,包括如下內容:
一、統計一下,你在這門軟件工程實踐中,完成了多少行的代碼;java
據不徹底統計咱們的代碼量在5000行左右,包括後端java代碼(SpringBoot框架),微信小程序代碼(wxml,js等),以及原型代碼。linux
二、軟工實踐的各次做業分別花了多少時間?(作一個列表)git
第N次做業 所用時間(分鐘) 軟件工程實踐第一次做業 150 軟工實踐第二次做業 - 我的項目 2082 軟工實踐第三次做業 - 結對項目1 1495 軟工實踐第四次做業 - 團隊展現 70 軟工實踐做業五-結對做業二 1760 第六次做業 - 團隊選題報告 200 第七次做業 - 需求分析報告 1460 福大軟工 · 第八次做業(課堂實戰)- 項目UML設計(團隊) 260 Alpha 衝刺 (1/10) 460 Alpha 衝刺 (2/10) 580 Alpha 衝刺 (3/10) 630 福大軟工1816 · 團隊現場編程實戰(抽獎系統) 470 Alpha 衝刺 (4/10) 470 Alpha 衝刺 (5/10) 725 Alpha 衝刺 (6/10) 530 Alpha 衝刺 (7/10) 930 Alpha 衝刺 (8/10) 1430 Alpha 衝刺 (9/10) 1200 Alpha 衝刺 (10/10) 600 福大軟工 · 第十一次做業 - Alpha 過後諸葛亮(團隊) 570 福大軟工 · 第十次做業 - 項目測評(團隊) 120 Beta 衝刺(1/7) 940 Beta 衝刺(2/7) 600 Beta 衝刺(3/7) 520 Beta 衝刺(4/7) 420 Beta 衝刺(5/7) 590 Beta 衝刺(6/7) 570 Beta 衝刺(7/7) 675 福大軟工 · 第十二次做業 - Beta答辯總結 510 最終做業 - 軟件工程實踐總結(我的) 200 合計 21217
三、哪一次做業讓你印象最深入?爲何?github
就是本次的做業!T-T,這是一次總結,同時也是回顧,不知不覺已經和全部人一塊兒走過了這麼多的日日夜夜了,確實很感慨!!尤爲是在計算時間時,一次次去翻過去的博客,看到一張張合照和文字,哇!!!瞬間好感慨!!!!web
四、累計花了多少個小時在軟工實踐上?平均每週花多少個小時?同時貼出開篇博客「你打算平均每週拿出多少個小時用在這門課上」的回答面試
累計大概花了350h在軟工時間上;大概兩週的時間;每週大概花費了40個小時左右,(計算事後我本身都嚇了一跳。) 回答:「對於時間的話,我不會說每週固定幾小時,由於我以爲這樣有點不靈活(no offense~)。我會根據實際狀況來靈活地決定吧。可是我不會忽略這門課的!!」 (仍是比較符合個人預期的O(∩_∩)O~~!)算法
五、學習和使用的新軟件;編程
Eclipse,JavaScript,微信web小程序開發
六、學習和使用的新工具;
Eclipse,Github,微信web小程序開發
七、學習和掌握的新語言、新平臺;
Eclipse,微信開發平臺,SpringBoot框架
八、學習和掌握的新方法;
github搜索 ,google搜索
九、其餘方面的提高。
快速分析問題的能力,和小組成員協做的能力。
2、寫下屬於本身的人月神話——我的或結對或團隊項目實踐中的經驗總結+實例/例證結合的分析
記得咱們小組有一個成員在前中期的時候由於我的緣由而退出了咱們的團隊,那時候咱們的分工已經比較明確了,因此對於他的退出咱們不得再也不進行分工的分配,再熟悉項目,這的確花費了咱們很多的時間去適應,雖然團隊裏的小夥伴分都沒有挑明,可是我能感受到有一些團隊裏的小夥伴已經對咱們的項目不抱但願,有點喪氣了,不過,在咱們你們的堅持和互相幫助之下,咱們總算度過了難關,最終順利地完成了咱們的項目!!(成就感爆棚!當咱們團隊進行最終答辯的時候,由於真的以後完完整整經歷過了才能體會到成功的不容易!!!流淚了!!!!T-T)
3、對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,對於同期的TA們,對於後來的學弟學妹:
1)你有什麼想建議、告知和期許想要告訴他們呢?
雖然會有不少人吐槽軟件工程這門課,「硬生生把2學分的課上成了10學分」,會和大家說很苦,很難,很煩!可是我想告訴大家的是,堅持下去吧!大家真的能夠收穫到不少不少!知識上的!人際處理上的!真的!真的!
2)特別地,特別地,下一屆要不要中途換隊員(強制的、完全的從一隊換到另外一隊)?
假設依舊是一個90+人數的大班
我以爲這個得分狀況而言, 若是你真的對小組成員沒有報但願,那我以爲仍是趁早換吧;可是最好的解決方法我以爲仍是去直面你所遇到的困難,爲何你想換組,固然,若是項目到達後期了,我我的而言,不建議這時候換組,一是沒有必要,由於你對項目已經比較熟悉了,換組意味着要從新去熟悉新的項目,二是更要熟悉不一樣的團體,更況且你能保證不會再遇到一樣的問題呢?哈哈,我以爲仍是看我的啦~不要作讓本身後悔的事情就好啦!!O(∩_∩)O~~~
3)身在一個格外大的班級,競爭強勁,你認爲一個組的人數應當在多少比較合適?
假設項目工做量適中,不會過於龐大的前提下,我以爲7-8我的左右比較合適。
4)我的/結對/團隊做業應該控制在怎樣的規模?
我的和結對做業儘可能把代碼量控制在500行之內,團隊做業我以爲能夠把工做量控制在三個星期左右的時間。
5)這學期下來,你最感謝的人是誰?有什麼話想要對TA說呢?
我最想感謝的人是個人小組成員夥伴「黃毓明」,不管是java,js上的語法問題,仍是對Springboot框架理解上的困難,他都老是可以很細心和耐心地來幫助我,真的若是沒有他的話,說不定我早就和助教說我以爲放棄了吧!哈哈O(∩_∩)O(不過好在當初本身堅持下來了鴨~~~~~~~~~)
4、分析一下本身所處的團隊。軟件工程實踐是大學裏少有的認真的團隊協做經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了「創造」階段了麼?(參考《構建執法》第17章 人、績效和職業道德)
團隊發展有如下幾個階段:
萌芽階段,磨合階段,規範階段,創造階段
萌芽階段:我和毓明小夥伴首先組隊到一塊兒,接下來就是漫漫地招人之路呀~磨合階段:隊員都找齊啦,隊長也初步決定好啦~因爲你們都是同窗,所以也比較熟悉彼此~
規範階段:根據咱們的接觸,咱們也慢慢設計了許多文檔來進行項目更是團隊的管理。
創造階段:經過學習學習學習學習以後,咱們慢慢地步上正軌,纔有WeEdit產品地最終發佈!!
5、怎樣證實你學會了軟件工程?
類別 | 具體技能和麪試問題 | 如今的回答 |
---|---|---|
語言 | 最拿手的計算機語言之一,代碼量多少?(偏web前端,PC/Mobile App) | java 1500行左右 |
語言 | 最拿手的計算機語言之二,代碼量多少?(偏後端,數據處理,網站後臺,機器學習,等) | 也是java吧! |
軟件實現 | (閱讀代碼的能力,實現,單元測試)你有沒有在別人代碼的基礎上改進,你是怎麼讀懂別人的代碼的,你採起了什麼辦法來保證你的新功能不會影響原來的功能?你在開中碰到最複雜的bug是什麼,你是如何解決的?這個bug出現的緣由是什麼,你在未來應該怎麼去避免bug再出現? | 對於代碼的話,我我的以爲應該能夠先去網上查找別人的代碼,尤爲時開源的代碼,畢竟站在巨人的肩膀上進行開發不只可以提升效率,並且更加有意義,更加可以實現創新! |
軟件測試 | (測試方法、測試工具、測試實踐、代碼覆蓋率)你如何測試你本身寫的代碼?你如何測試別人的代碼?你掌握了多少種測試工具和方法?你寫過測試工具?你如何對一個網站進行壓力測試和效能測試?你如何測試一個軟件的人機界面(UX/UI)? | 代碼性能的測試上使用了JProfiler,能夠有一個直觀的數據呈現;本身也手動編寫過@Test;對於網站的壓力與效能測試能夠經過第三方平臺進行跑跑測試 |
效能分析 | 效能分析,效能改進,你寫過的最複雜的代碼是什麼?你是如何測量和改進它的效能的,用了什麼工具,如何分析的? | 因爲咱們的項目是恰好卡在deadline線上完成的,所以咱們的效能改進這部分尚未完成,可是等咱們考試完以後,咱們也會考慮去進行咱們項目的效能改進噠~~ |
需求分析 | (需求分析,典型用戶,場景,創新)你作過多少個有實際用戶的項目,用戶最多有多少?你的項目有什麼創新的地方? | 因爲微信小程序的特殊性,咱們的項目目前就只有軟工課程寫過在市的運行項目,用戶量頂峯也只有個90+吧(還多虧柯老闆課上進行的一項測試) |
行業洞察力 | 你最感興趣的領域是什麼?這個領域過去10年經歷了哪些創新?你分析過這個領域前10名產品?請分析一下他們的優劣,你要進入這個領域,應該如何創新? | 目前我比較感興趣的領域仍是社交網絡這一領域,可是對於過去的領域創新我我的也還在瞭解當中。 |
項目管理 | 你參與過項目管理麼?請描述一下兩個當下流行的開發方法在你的項目中的具體應用狀況;請問你如何決定項目中各類任務的優先次序,有什麼理論來支持你的作法若是你忽然發現項目不能按時完成,你做爲項目領導,有什麼辦法? | 目前我尚未機會去管理項目啦,不過經過這學期軟件工程課程的學習,我我的以爲github,雲計算等平臺都是十分好用的開發工具。 |
軟件設計 | 你作過架構設計,模塊化設計,接口設計麼?請說明一下你爲什麼是這樣設計,你比較過什麼不一樣的設計方式,你的設計取得了什麼結果? | 設計這些是用於方便調用,由於項目自己是一個多人協做的事情,在會出現大多數調用的地方設計成接口,將共享的代碼塊編寫成模塊化,就沒必要重複造輪子,這正是這些必要性的設計存在的意義。 |
質量意識 | (代碼複審/代碼規範/代碼質量)你是怎麼作代碼複審的,你加入咱們團隊後,能幫咱們提升代碼質量麼,請具體說怎麼提升? | 複審這一塊每每須要測試人員的加入,若是加入新的團隊,閱讀原有註釋,進行測試性使用,過程當中經過數據查看總體在代碼跑的過程當中的變化等等,均可以很好的捕捉到原先的疏漏的地方,從而及時的去修修補補,代碼的質量能夠經過良好的註釋習慣與編碼風格的總體統一去規範提升。 |
工具/社區 | Software Tools (performance tool, version control, work item, TFS)你在各類開發平臺(web,linux,PC,mobile,machine learning)都使用過什麼樣的工具,本身寫過什麼工具來改進工做效率?給社區貢過什麼工具和代碼?Github有分享代碼麼?你寫的技術博客堅持了多久,讀者最多的是哪一篇? | IDE換了又換,Java的仍是推薦用Idea,功能直接且豐富;花時間去了解一款IDE後,有時候反而能夠節省開發過程所使用的時間,由於你可能會忽略其自身強大但你卻忽略的功能存在;github上有我目前有成型的項目代碼,固然自身硬實力還太嫩,不過就算是本身的小小記錄吧;博客寫了有一年多吧,做爲記錄性的查閱以及自我複習的途徑方式 |
團隊協做 | work with others(協同工做,提供反饋,說服別人)請描述你在項目中何說服同伴採用你提出的更好的解決方案,或者你如何聽取了別人的意見,改進了本身的方案?你如何說服懶情的同伴加緊工做,實現團隊的目標? | 溝通是比較好的方式,我以爲團隊裏應該直話直說,雖然有時候會顧及到小夥伴的面子,不過對於團隊而言,直話直說是比較良好的同溝通方式,可以有效的下降項目的風險! |
理論素養 | 你上過什麼數學,計算機或其餘理論課,請舉出具體的例子,說明你學到的理論知識如何幫助你解決實際問題。 | 高等數學、線性代數、矩陣分析、算法與結構、面向對象與程序設計等等,具體學到的就是一種思惟方式的培養,思考問題會有一個入口去推動,進行自我知識庫的查表操做 |
自我管理 | 整年級你專業排名多少?你從剛入學(大學一年級)到如今的排名有變化麼?如何解釋你的排名的變化? | 具體排名很差透露啦,只能說在中流的位置吧,我以爲我成績最差的時候就是剛轉到CS的時候,多是那個時候還比較不熟悉這門新領域吧!不過當我深刻學習了以後,如今感受比較穩定了,成績也比較穩定啦! |
參考論文文獻:
[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.
[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87
咱們是第三小組,咱們的組名叫彳艮彳亍,咱們的項目叫WeEdit,咱們的口號是:我行你也行!!!
第三組WeEdit宣傳視頻連接
第三組WeEdit宣傳海報連接
小程序搜索WeEdit或者經過掃描如下的二維碼,迅速的來體驗一下咱們的產品吧,雖然功能有點太過簡單,但畢竟是整個小組的共同付出,所以我以爲咱們全部的組員都是最棒的。