項目 | 內容 |
---|---|
課程名稱 | 2016級計算機科學與工程學院軟件工程(西北師範大學) |
做業要求 | 實驗十四 團隊項目評審&課程學習總結 |
課程學習目標 | (1)掌握軟件項目評審會流程 (2)反思總結課程學習內容。 |
一:對實驗一問題回答 《實驗一 軟件工程準備》
1.爲何軟件工程與計算機科學與工程相關呢,純粹是編寫程序代碼呢仍是?html
計算機科學 | 軟件工程 |
---|---|
發現和研究長期的、客觀的真理 | 短時間的實際結果 |
理想化的 | 對各類因素的折衷 |
肯定性、通用性 | 對不肯定性和風險的管理,足夠好,具體的應用 |
各個學科獨立深刻研究,作出成果 | 關注和應用各個相關學科的知識,解決問題。 |
理論的統一 | 百花齊放的實踐方法 |
形式化,追求簡明的公式 | 在實踐當中創建起來的靈感和直覺 |
正確性 | 可靠性 |
計算機的理論進展會幫助軟件工程(例如對程序正確性的分析);軟件工程的進展會幫助計算機科學家更有效的進行實驗和探索。
2.爲何要學習軟件工程,軟件工程將來的發展將會如何?
軟件工程是研究和應用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟件,以及如何把通過時間考驗而證實正確的管理技術和當前可以獲得的最好的技術方法結合起來的學科。它涉及到程序設計語言、數據庫、軟件開發工具、系統平臺、標準、設計模式等方面。提升軟件開發的效率和質量。使軟件開發標準化,工業化。
3.書中提到的軟件項目管理的複雜度和人員數量的平方成正比,那麼團隊當中的人員之間就會有交流成本問題,那麼怎樣去解決這個複雜的問題呢,雖然書中提到了這個問題的解決方法,可是仍是有些難以理解。但願學習軟件工程這門課程的時候能解決個人這些疑問。
MP和其餘成員交流,瞭解需求,MP只寫抽象的僞代碼,或者對功能的描述;SP根據MP的文檔實現具體的功能,SP只需和MP交流,這樣大大減小了交流的成本。
二:知識點總結
可行性分析:可行性分析是經過對項目的市場需求、資源供應、建設規模、工藝路線、設備選型、環境影響、資金籌措、盈利能力等方面的研究,從技術、經濟、工程等角度對項目進行調查研究和分析比較,並對項目建成之後可能取得的財務、經濟效益及社會環境影響進行科學預測,爲項目決策提供公正、可靠、科學的軟件諮詢意見。主要從經濟、技術、社會環境等方面分析所給出的解決方案是否可行,當解決方案可行並有必定的經濟效益和/或社會效益是纔開始真正的基於計算機的系統的開發。
需求分析:需求分析就是把軟件計劃期間創建的軟件可行性分析求精和細化,分析各類可能的解法,而且分配給各個軟件元素。需求分析是軟件定義階段中的最後一步,是肯定系統必須完成哪些工做,也就是對目標系統提出完整、準確、清晰、具體的要求。任務是藉助於當前系統的邏輯模型導出目標系統的邏輯模型,解決目標系統的「作什麼」的問題。分析系統的數據要求,導出系統的邏輯模型,修正系統的開發計劃。
軟件設計:軟件設計主要是軟件概要設計和詳細設計。在概要設計時主要是根據需求分析階段的成果將系統進行功能結構的劃分。首先須要進行系統設計,從數據流圖出發設想完成系統功能的若干合理的物理方案,而後和用戶選定一個最佳方案,而後進行軟件結構的設計,肯定軟件有哪些模塊組成以及這些模塊的之間的動態調用關係。能夠用層析方框圖來描述習題的整體結構,在面向對象的設計中也能夠採用類圖,用例圖,活動圖,順序圖等來描述。在軟件詳細設計階段主要是肯定怎麼具體地實現用戶須要的軟件。結合具體的開發模式細化每一個模塊的算法流程,數據結構,和接口設計。在面向對象設計中,主要是完善類圖,精化類的屬性和操做,詳細定義類中服務參數和具體實現邏輯,依據軟件開發環境調整類的層次關係和關聯關係,定義軟件數據庫表結構等
實現:主要包括編碼何測試部分。編碼主要是把軟件設計的結果翻譯成用某種高級語言書寫的程序,所以,程序的質量主要取決設計的質量,可是高級語言對選擇,特別是書寫程序的風格,也對程序的質量有很大的影響。
測試:測試主要是發現程序中的錯誤,主要測試方法有白盒測試和黑盒測試。
驗收:將咱們的項目交付給驗收方,爲驗收方展現系統實驗的功能和具體的操做。須要準備開發中設計的各種文檔。
三: 心得體會
剛開始上課的時候覺得軟件工程這門課就是寫代碼開發一些軟件的,但沒有想到的是一個軟件的的開發須要作不少的工做,而寫代碼只是其中的很小一部分。從我的項目開始慢慢設涉及到一些軟件開發的流程,我的項目內容比較簡單,可是完成項目的時間卻花費不少,到後來的結對編程,發覺結對編程能夠極快的加速編程速度,並且錯誤也變的不多了,這個項目後,已經感受到了一我的力量的薄弱。再到團隊項目,在這個過程中,我明確認識到一個團隊的重要性,明白了製做一個好的軟件,須要有一個好的團隊。
四:總結
1.統計在軟件工程實踐中,你完成了多少行的代碼。
大約1000行代碼。算法
2.你在軟件工程實踐的各次做業分別花了多少時間?
實驗 | 用時(min) |
---|---|
實驗一 軟件工程準備 | 110 |
實驗二 軟件工程我的項目 | 200 |
實驗三 做業互評與改進 | 70 |
實驗四 軟件工程結對項目 | 270 |
實驗五 軟件研發團隊組建 | 70 |
實驗六 團隊項目選題 | 75 |
實驗七 團隊項目原型設計與開發 | 110 |
實驗八 基於原型的團隊項目需求調研與分析 | 150 |
實驗九 團隊項目需求改進與系統設計 | 210 |
實驗十 團隊項目系統改進與詳細設計 | 310 |
實驗十一 團隊項目設計完善與編碼 | 120 |
實驗十二 軟件測試與Alpha衝刺 | 410 |
實驗十三 Beta衝刺與團隊項目驗收 | 420 |
3.哪一次做業讓你印象最深入?爲何?
感覺到團隊合做的重要性,團隊合做中會遇到各類各樣的問題,咱們小組也不例外,合做過程當中也有不少建議不合和爭吵,但最終都和平解決了
4.累計花了多少個小時在軟件工程實踐上?平均每週花多少個小時?
本學期總共在軟件工程實踐上用時40h,平均每週用時1.3h。
5.你學習和掌握的新語言、新平臺。
語言:Java Web、Java
平臺:博客園、GitHub、中國大學MOOC
6.其餘方面的收穫或提高
在整個軟件工程課程的學習過程當中,個人博客撰寫能力、程序編寫能力都有了很大的提高,並且,通過屢次團隊做業,個人團隊協做能力也有了極大的提高。
7.填寫下表,總結一學期的學習中,你學習或使用的軟件工程開發工具、開發方法和建模方法數據庫
軟件開發工具,項目管理工具 | 軟件開發方法 | 軟件建模方法 |
---|---|---|
Eclipse,墨刀 | 面向對象方法;形式化方法 | 快速創建軟件模型 |
課程意見
一學期的課程很快結束了,在學習軟件工程這門課的過程當中,我學到了不少。這必然離不開團隊的幫助與老師的教導,謝謝老師。我以爲這門課的學習可能花費的時間是比較多的,由於做業的任務量比較大比較耗時間,因此,我但願老師能夠增長一些時間給每個項目,讓學生能夠更好的完成它。編程