201671030111 李蓉 实验十四 团队项目评审&课程学习总结
| 項目 | 內容 |
|---|---|
| 這個作業屬于哪個課程 | 軟件工程 |
| 這個作業的要求在哪里 | 實驗十四 團隊項目評審&課程學習總結 |
| 作業學習目標 | 掌握軟件項目評審會流程,反思總結課程學習內容。 |
任務一:結合本學期課程學習內容,對比《實驗一 軟件工程準備》的任務5你所提的問題(給出提問博客鏈接),嘗試對提出問題進行解答,并闡明是如何通過學習/實踐/討論弄清楚的;學習中是否產生了新的問題?如有,請提出。
????????構建之法與博客首秀
問題一:軟件的安全功能是指什么呢?
????????經過一學期的學習,通過閱讀書籍,我認為在軟件中有類似飛機的安全功能,但是每個軟件的安全需求不同,所以,其安全功能也是不一樣的。比如一些帶有支付功能的軟件,其安全功能可能就是保障用戶的財產安全,而像一些社交軟件,其安全功能可能就是保障用戶的賬戶安全。比如qq,其安全功能可能就是保障用戶的社交賬號不被不法分子盜用。再比如支付寶,其安全功能就是保障用戶的錢財不被不法分子盜刷。
問題二:在軟件項目中,哪項工作用“20%占用了80%的時間”?
????????經過一學期的學習,在完成了幾個項目有了一些開發經驗后,再回過頭來看這個問題,我認為在軟件項目中,需求調研這項工作占用了80%的時間,以前認為的編程反而沒有占那么多的時間,而前期的需求調研工作卻占用了大量的時間。一個軟件的開發,最主要的不是去編寫程序,而是需要充足的時間去調研軟件的目標用戶所需要的功能,否則就是在做無用功,就是在想當然的編寫程序代碼,這樣開發出來的軟件,最后可能只會無人問津。所以,我認為需求調研這項工作占用了百分之八十的時間,而設計、實現這個軟件,可能用了剩余的百分之二十的時間。
問題三:在現實的軟件開發中,企業一般用哪種方式獲取用戶需求?
????????經過一學期的學習,在真正做了幾個小型項目和一個較大的項目,擁有一些軟件開發經驗后,我認為企業應該沒有具體選擇的應用模式,而是根據需求并結合模型的特點來選擇使用哪種方式來獲取用戶需求。就像我們班在進行需求調研時,好多組的同學未經切實的考慮就選擇了問卷調查法來獲取用戶需求,而實際是有的項目可能并不適合使用該方法,使用錯誤的方法獲取用戶需求,可能做的只是無用功,最后,還得用其他的方法去獲取用戶需求,費時又費力。因此,我認為企業獲取用戶需求不是只用一種方式,而是根據開的項目選取合適的方法去獲取用戶需求,為了獲取更準確的用戶需求,也不可能只使用一種方法,而是多種方法結合起來獲取用戶需求,而這項工作可能占用80%的時間。
任務二:總結自己在項目的 可行性分析/需求分析/軟件設計/實現/測試/項目驗收/中學到了哪些“知識點”。
1.可行性分析:
????????可行性分析是通過對項目的主要內容和配套條件,如市場需求、資源供應、建設規模、工藝路線、設備選型、環境影響、資金籌措、盈利能力等,從技術、經濟、工程等方面進行調查研究和分析比較,并對項目建成以后可能取得的財務、經濟效益及社會環境影響進行預測,從而提出該項目是否值得投資和如何進行建設的咨詢意見,為項目決策提供依據的一種綜合性的系統分析方法。可行性分析包括投資必要性,技術可行性,組織可行性,資金可行性,政策可行性等。
2.需求分析:
????????需求分析也稱為軟件需求分析、系統需求分析或需求分析工程等,是開發人員經過深入細致的調研和分析,準確理解用戶和項目的功能、性能、可靠性等具體要求,將用戶非形式的需求表述轉化為完整的需求定義,從而確定系統必須做什么的過程。需求分析是軟件計劃階段的重要活動,也是軟件生存周期中的一個重要環節,該階段是分析系統在功能上需要“實現什么”,而不是考慮如何去“實現”。需求分析的目標是把用戶對待開發軟件提出的“要求”或“需要”進行分析與整理,確認后形成描述完整、清晰與規范的文檔,確定軟件需要實現哪些功能,完成哪些工作。此外,軟件的一些非功能性需求(如軟件性能、可靠性、響應時間、可擴展性等),軟件設計的約束條件,運行時與其他軟件的關系等也是軟件需求分析的目標。常用的獲取需求的方法:現場觀察、訪問、問卷調查、會議研討、原型評估、場景分析和用例分析等。
3.軟件設計:
????????軟件設計是從軟件需求規格說明書出發,根據需求分析階段確定的功能設計軟件系統的整體結構、劃分功能模塊、確定每個模塊的實現算法以及編寫具體的代碼,形成軟件的具體設計方案。軟件設計階段包括:概要設計與詳細設計,概要設計又包括結構設計、接口設計、全局數據結構設計和過程設計。
(1)概要設計:描述了軟件的總的體系結構就是概要設計,概要設計階段要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實現軟件的需求,并將設計的結果反映在“設計規格說明書”文檔中,所以軟件設計是一個把軟件需求轉換為軟件表示的過程。
(2)詳細設計:詳細設計是對概要設計的一個細化,就是詳細設計每個模塊實現算法和所需的局部結構。詳細設計的主要任務是設計每個模塊的實現算法、所需的局部數據結構。詳細設計的目標有兩個:實現模塊功能的算法要邏輯上正確和算法描述要簡明易懂。
4.實現:
????????通常把編碼和測試統稱為實現。
(1)編碼:編碼就是把軟件設計結果翻譯成用某種程序設計語言書寫的程序。
(2)測試:測試就是檢測程序并改正錯誤的過程。
5.測試:
(1)測試方法:黑盒測試、白盒測試、靜態測試和動態測試。
(2)測試步驟:
????????a.模塊測試;
????????b.子系統測試;
????????c.系統測試;
????????d.驗收測試;
????????e.平行運行。
6.項目驗收:
????????項目驗收是軟件開發結束后用戶對軟件產品投入實際應用以前進行的最后一次質量檢驗活動。它要回答開發的軟件產品是否符合預期的各項要求以及用戶能否接受的問題。由于它不只是檢驗軟件某個方面的質量,而是要進行全面的質量檢驗,并且要決定軟件是否合格,因此驗收測試是一項嚴格的正式測試活動。需要根據事先制訂的計劃,進行軟件配置評審、功能測試、性能測試等多方面檢測。項目開發方應該提供《需求分析說明書》、《概要設計說明書》、《詳細設計說明書》、《數據庫設計說明書》、《測試計劃》、《測試報告》、《程序維護手冊》、《用戶操作手冊》、《項目總結報告》等一系列的文檔說明。
項目驗收過程中,項目驗收組織對于項目整體的九項主要的驗收活動:
(1)項目目標驗收;
(2)項目性質驗收;
(3)項目空間驗收;
(4)項目質量驗收;
(5)項目技術驗收;
(6)項目損耗驗收;
(7)項目時間驗收;
(8)項目安全驗收;
(9)項目信息驗收。
任務三:結合個人項目/結對編程/團隊項目的個人經歷,談談心得。
????????通過一學期的學習、實踐,在個人項目開發中,我認識到自己還有許多的技術需要去學習,雖然通過查閱大量的資料最終也磕磕絆絆的完成了項目,但深刻認識到自己在編程方面任重而道遠,還需要花費大量的時間去學習、去練習新技術;在結對編程開發中我認識到一定要事先統一好編碼風格,還要把握好一個人編程的時間,不能太長也不能太短,時間太長編程效率會降低,時間太短可能實現不了什么功能,兩個人一定要配合好,有什么矛盾一定要當面說開,討論出解決辦法,否則可能完不成項目或完成的項目質量低;在團隊項目開發中,我認識到組員之間的溝通非常重要,發生矛盾之后不能因為慪氣而互相不理睬,要求同存異,找出解決辦法,否則在后續的開發過程中會寸步難行,同時,在開發過程中也要進行合理的分工,雖然不可能每個人的工作百分百占一樣的比例,但這周某位同學分配的工作多了,下周就可以給他分配的工作少一點,還要給每個人分配適合他的工作,還有就是,在遇到較大的困難時,一定要及時向他人求助,不能因為好面子就一直憋著不問,實在無法解決時,小組之內可以開會討論,共同商討解決辦法,作為一個團隊,一定要團結!
任務四:總結這門課程的實踐總結和給你帶來的提升,包括以下內容:
1.統計在軟件工程實踐中,你完成了多少行的代碼?
????????在軟件工程的實踐中,我大概完成了2000+行代碼。
2.你在軟件工程實踐的各次作業分別花了多少時間?(做一個列表)
| 軟件工程作業 | 花費時間/h |
|---|---|
| 實驗一 軟件工程準備 | 8 |
| 實驗二 軟件工程個人項目 | 15.5 |
| 實驗三 作業互評與改進 | 8 |
| 實驗四 軟件工程結對項目 | 15 |
| 實驗五 團隊作業1:軟件研發團隊組建 | 5 |
| 實驗六 團隊作業2:團隊項目選題 | 5 |
| 實驗七 團隊作業3:團隊項目原型設計與開發 | 14 |
| 實驗八 團隊作業4:基于原型的團隊項目需求調研與分析 | 21 |
| 實驗九 團隊作業5:團隊項目需求分析改進與系統設計 | 17 |
| 實驗十 團隊作業6:團隊項目系統設計改進與詳細設計 | 20 |
| 實驗十一 團隊作業8:軟件測試與Alpha沖刺 | 30 |
| 實驗十二 團隊作業9:Beta沖刺與驗收準備 | 15.5 |
| 實驗十三 團隊項目評審&課程學習總結 | 6 |
3.哪一次作業讓你印象最深刻?為什么?
????????我印象最深刻的一次作業是實驗十一 團隊作業8:軟件測試與Alpha沖刺,由于我們班課程少且放假多,我們班的課程進度就很慢。當老師要求我們在一周內完成編碼階段時,我們內心其實都很慌,不知道自己在限定時間內能不能完成任務。在當天,我們就開會進行了討論,進行了明確的分工。當學習了一些相關知識后,我們就開始了任務。由于編程基礎不是很好,在剛開始編寫代碼時,確實遇到了許許多多的問題,但好在通過小組內同學的幫助,最終也解決了遇到的那許許多多的問題。通過這次實驗我認識到“眾人拾柴火焰高”,只要小組內的同學團結一致,看似不可能完成的任務最終也能完成
4.累計花了多少個小時在軟件工程實踐上?平均每周花多少個小時?
????????累計共花了180個小時在軟件工程實踐上,平均每周10個小時在軟件工程實踐上。
5.你學習和掌握的新語言、新平臺。
????????博客園、Markdown、GitHub、MySQL數據庫、jsp技術、中國大學MOOC、摹客、visio、ProcessOn、leango、雨課堂。
6.填寫下表,總結一學期的學習中,你學習或使用的軟件工程開發工具、開發方法和建模方法。
| 軟件開發工具,項目管理工具 | 軟件開發方法 | 軟件建模方法 |
|---|---|---|
| Mockplus、leangoo、GitHub、MyEclipse、MySQL | 原型方法、面向對象方法、Jackson方法 | 數據庫建模、面向對象建模、數據流圖 |
7.其他方面的收獲或提升。
????????通過這學期的學習和項目實踐,我知道了如何撰寫博客、如何使用許許多多的工具來輔助軟件開發、如何有規劃的學習新知識新技術和應用新知識新技術,同時,我也學到了新的學習知識的方法,比如老師的翻轉課堂教學法,以前在學習中我是很少會課前預習的,但在這學期,我全程跟著MOOC網的老師學習了新知識,雖然在后期的學習中因為課程進度原因,老師是全程給我們講授知識,但我還是收益匪淺!
任務五:你認為目前的課程存在哪些問題,你有什么更好的建議。
????????通過本學期的學習,我認為老師新穎的教學方式——翻轉課堂,前期做的很好,也有一定的過渡時期,但堅持的不太好,后期由于課程進度原因堅持的不是很好,希望老師在下學期的教學中能協調好這方面。還有就是在實踐課程中,任務量大且耗時長,這學期由于考研等原因,有些實驗完成的匆匆忙忙,沒有達到預期的效果,希望老師可以減少一些工作量。最后,感謝老師一學期的辛勤教導,也感謝助教們對我們學習上的幫助和監督。
總結
以上是生活随笔為你收集整理的201671030111 李蓉 实验十四 团队项目评审&课程学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring框架-AOP核心
- 下一篇: C++学习笔记-关键词