天天看點

個人學期總結

一、請根據自己的學習實踐回答自己當初提的問題,并提出新的問題。

 問題1:我們應當怎麼選擇不同的開發流程才能開發出适應這個時代的軟體呢?時代在無時無刻的更新,怎樣的開發流程才能使得這個軟體的生命周期更長而更好的适應這個時代呢?

     解答:時代是瞬息萬變的,科技也是不斷發展的。軟體的生命周期,亦稱軟體的生存周期。它是按開發軟體的規模和複雜程度,從時間上把軟體開發的整個過程(從計劃開發開始到軟體報廢為止的整個曆史階段)進行分解,形成相對獨立的幾個階段,每個階段又分解成幾個具體的任務,然後按規定順序依次完成各階段的任務并規定一套标準的文檔作為各個階段的開發成果,最後生産出高品質的軟體。軟體的生命周期包括:1、問題的定義及規劃:此階段是軟體開發方與需求方共同讨論,主要确定軟體的開發目标及其可行性。2、需求分析:在确定軟體開發可行的情況下,對軟體需要實作的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段做得好,将為整個軟體開發項目的成功打下良好的基礎。"唯一不變的是變化本身。",同樣需求也是在整個軟體開發過程中不斷變化和深入的,是以我們必須制定需求變更計劃來應付這種變化,以保護整個項目的順利進行。3、軟體設計:此階段主要根據需求分析的結果,對整個軟體系統進行設計,如系統架構設計,資料庫設計等等。軟體設計一般分為總體設計和詳細設計。好的軟體設計将為軟體程式編寫打下良好的基礎。4、程式編碼:此階段是将軟體設計的結果轉換成計算機可運作的程式代碼。在程式編碼中必須要制定統一,符合标準的編寫規範。以保證程式的可讀性,易維護性,提高程式的運作效率。 5、軟體測試:在軟體設計完成後要經過嚴密的測試,以發現軟體在整個設計過程中存在的問題并加以糾正。整個測試過程分單元測試、組裝測試以及系統測試三個階段進行。測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細的測試計劃并嚴格按照測試計劃進行測試,以減少測試的随意性。6、運作維護:軟體維護是軟體生命周期中持續時間最長的階段。在軟體開發完成并投入使用後,由于多方面的原因,軟體不能繼續适應使用者的要求。要延續軟體的使用壽命,就必須對軟體進行維護。軟體的維護包括糾錯性維護和改進性維護兩個方面。 

 問題2:建構之法到底如何建構,它是一套完整的體系還是一個體系的每一步操作呢?

           解答:學完軟體工程,我認為建構之法是一個體系,它包括設計軟體的每一步。

 問題 3:在本書第12章中講到使用者體驗。使用者體驗确實是一個很令人頭疼的問題,如果自己辛苦寫出來的軟體不被使用者所喜歡,那自己的勞動成果也就白費了。那麼在滿足使用者需求的的基礎上,再如何提高使用者體驗呢?是不是這個産品滿足了使用者的所有要求就等同于這個産品的使用者體驗好呢?

          解答:在這個問題上我認為代老師的經驗給了我答案:UI設計不需要更高更好的技術,使用者體驗才是最重要的。使用者覺得好才是真的好。

 問題4:既然有了黑箱和白箱可以測試設計,書中講到“在實際工作中,我們不應畫地為牢,嚴格隻用某一種測試設計方法。我們對系統地了解當然是越多越好。所謂“灰箱”的提法,正反映了這一點”。那麼什麼是“灰箱”?書中并沒有給出明确的答案,隻是從一個角度闡述了“灰箱”的某種好處而已。

          解答:1. 黑盒測試:黑盒測試也稱功能測試或資料驅動測試,它是在已知産品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程式看作一個不能打開的黑盆子,在完全不考慮程式内部結構和内部特性的情況下,測試者在程式接口進行測試,它隻檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能适當地接收輸入數鋸而産生正确的輸出資訊,并且保持外部資訊(如資料庫或檔案)的完整性。黑盒測試方法主要有等價劃分類、邊值分析、因—果圖、錯誤推測等,主要用于軟體确認測試。"黑盒"法着眼于程式外部結構、不考慮内部邏輯結構、針對軟體界面和軟體功能進行測試。"黑盒"法是窮舉輸入測試,隻有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程式中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。2. 白盒測試:白盒測試也稱結構測試或邏輯驅動測試,它是知道産品内部工作過程,可通過測試來檢測産品内部動作是否按照規格說明書的規定正常進行,按照程式内部的結構測試程式,檢驗程式中的每條通路是否都有能按預定要求正确工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用于軟體驗證。"白盒"法全面了解程式内部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程式的内部結構,從檢查程式的邏輯着手,得出測試資料。貫穿程式的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程式違反了設計規範,即程式本身是個錯誤的程式。第二,窮舉路徑測試不可能查出程式中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與資料相關的錯誤。3. 灰盒測試:灰盒測試,确實是介于二者之間的,可以這樣了解,灰盒測試關注輸出對于輸入的正确性,同時也關注内部表現,但這種關注不象白盒那樣詳細、完整,隻是通過一些表征性的現象、事件、标志來判斷内部的運作狀态,有時候輸出是正确的,但内部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,是以需要采取這樣的一種灰盒的方法。灰盒測試結合了白盒測試盒黑盒測試的要素.它考慮了使用者端、特定的系統知識和操作環境。它在系統元件的協同性環境中評價應用軟體的設計。灰盒測試由方法和工具組成,這些方法和工具取材于應用程式的内部知識盒與之互動的環境,能夠用于黑盒測試以增強測試效率、錯誤發現和錯誤分析的效率。灰盒測試涉及輸入和輸出,但使用關于代碼和程式操作等通常在測試人員視野之外的資訊設計測試。

 問題5:在第16章中主要講述了IT行業的創新。IT行業需要創新,是的,這一點我很承認。可是這個創新是不是有某種規律而言呢?答案我認為當然是否定的。那麼在我們黔驢技窮的時候,如何要在這一行業走下去呢?

          解答:書籍是人類進步的階梯。我認為我們不會有黔驢技窮的一天,因為在這個瞬息萬變的時代終身學習是必須的,唯有終身學習才是王道。而要終身學習就必須要讀書,任何一門新的技術都在書本中有一定基礎的講解。而對于IT行業的創新我認為室友一定規律的,這個規律便是沿着為人類服務而行的,滿足人類的需求便是任何一個行業亘古不變的規律。

二、完成課程的實踐總結和給你帶來的提升,包括以下内容:

1.統計你在軟工課程實踐中,完成了多少行的代碼;

           完成了大約三千多行代碼。

2.軟工實踐的各次作業分别花了多少時間?累計花了多少個小時在軟工實踐上?平均每周花多少個小時?(做一個清單)

軟工作業 花費時間 平均每周花費時間
實驗一 軟體工程準備  5 7
實驗二 軟體工程個人項目  8  7
實驗三 軟體工程結對項目
實驗四 基于原型的軟體需求擷取 8
實驗五 軟體研發團隊組建
實驗六 團隊項目評審與團隊項目選題報告  6
實驗七 團隊作業3—團隊項目的原型設計與開發
實驗八 團隊作業4—基于原型的團隊項目需求調研與分析
實驗九 團隊作業5—團隊項目需求改進與系統設計  9
實驗十 團隊作業6—團隊項目系統設計改進與詳細設計
實驗十一  團隊作業7—團隊項目設計完善&編碼測試
實驗十二  實驗十二 團隊作業8—團隊項目使用者驗收評審

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

         在軟體工程的試驗中,印象最深刻的一次作業是實驗九 團隊項目需求改進與系統設計,因為那一次我們團隊6個人一起寫作業,寫到十二點,每個人都有自己的分工,一起做到了晚上12點,當然這次的作業分數也是最高的一次,我相信一份耕耘一分收獲。付出了多少就會回報多少。

4.學習和使用的新軟體;

           visio、git

5.學習和使用的新工具;

            process on、墨刀、GitHub、 leangoo看闆

6.學習和掌握的新語言、新平台;

            部落格園,GitHub

7.學習和掌握的新方法;

            快速原型方法、白盒測試與黑盒測試、面向對象設計方法、盒圖、判定樹、判定表等

8.其他方面的提升。

            教會了我們書寫文檔的能力,和如何制作一個軟體以及團隊合作一起交流的能力。

三、你認為目前的課程有哪些問題,你有什麼更好的建議:

1.你認為本門課程需要在哪裡進行改進,具體措施有哪些,包括:時間進度安排,項目難度等均可;

            實驗盡量布置少一點,不要占用其他課程的作業時間;實驗課盡量不要講課,讓我們做實驗;理論課盡量多一點。項目難度還好,可以直接一開始就選題,一學期制作夜歌項目,不然時間太緊張了。

2.你認為助教/老師哪裡做的不足,哪裡限制太多等;

            我希望助教老師的評分标準應該是一樣的,可以制定一個評分标準。

3.你認為每次項目的評分标準存在哪些問題,你認為的合理評分準則是怎樣的(個人/結對/團隊算三個)

            每個人的總成績可以在團隊/個人/結對的項目中計算一個比重,其實如果從剛開始做項目,我認為一個人是有能力完成的,即使是有團隊,有些人也不會做,團隊項目隻是布置給團隊裡的某個人的,而不是布置給團隊的。或者可以減少團隊的人數。

4.在結對項目中你是否真正體會到了結對的好處,是否真正嚴格進行了結對程式設計,雙方的工作量是否相同;

            結對程式設計中體會到了結對程式設計的好處,任務量分下去,每個人隻需要負責自己需要負責的那一部分即可。在結對程式設計的時候,雙方的工作量肯定是不一樣的。沒有絕對的公平可言。

5.你的團隊項目是否成功,如果重來一次你是否還會選擇這個團隊,為什麼成功/失敗;

            團隊項目可以說是成功的,如果重來一次我還會選擇這個團隊,即使自己脾氣不好,可能對團隊的某些人太嚴格,但是整個團隊都在體諒自己的壞脾氣,,不說項目大家還是好朋友。

6.總結一下你們團隊在做項目時大家的時間安排情況。

      每個成員在每個實驗中的任務是不一樣的,安排也是不一樣的,時間占用情況可能部分同學占用的比較多,部分同學占用的比較少。但是做項目的時間大部分都是在一個固定的時間内一起完成各自的分工。

7.對下一屆軟工課實踐教學的建議,或者對于開學初的你,對于大一的你,對于開學初的老師,你有什麼想建議和告知的呢?對于後來人的期許。

      其實我認為這門課的安排就不是很合理,應該在一周多加幾個課時,将這門課安排在大二,剛學完java的那個學期。

四、你還有什麼想說得話

               軟體工程這門課對我的幫助還是挺大的,學到了多少知識暫且不說,但是卻學會了如何控制自己的情緒,如何和自己的小組成員溝通,學會了書寫文檔的能力。總的來說,還是不錯的。