課程總結#
一、回答學期初的問題
-
ShrinkWrap(包裝在盒子裡的軟體):
軟體有很多分類方法 ShrinkWrap(再包裝盒子裡面的軟體,軟體在CD/DVD上);Web APP(基于網站的軟體);Internet Software(企業或學校或某組織内部的軟體);Games(遊戲);Mobile Apps(手機應用);Operating Systems(作業系統)等這隻是一種軟體分類的方法。
-
“回歸測試(Regression Test)” 如何回歸到以前不正常的狀态:
Regress 的英語定義是: return to a worse or lessdeveloped state。是倒退、退化、退步的意思。在軟體項目中,如果一個子產品或功能以前是正常工作的,但是在一個新的建構中出了問題,那這個子產品就出現了一個“退步”(Regression),從正常工作的穩定狀态退化到不正常工作的不穩定狀态。在一個子產品的功能逐漸完成的同時,與此功能有關的測試用例也同樣在完善中。一旦有關的測試用例通過,我們就得到了此子產品的功能基準(Baseline)。
-
“效能分析"是否可以簡單化:
效能分析是根據影響效能的主要因素,運用一般系統分析的方法,在收集資訊的基礎上,确定分析目标,建立綜合反映某事物達到規定目标的能力測度算法,最終給出衡量某事物效能的測度結果。如某産品的機關成本20元即為基礎成本,通過效能分析産品設計生産銷售過程,提出調整産品功能、改進産品設計、提高服務品質等降低了産品成本。沒有複雜的分析過程得到的資料肯定會出現片面的錯誤,是以效能分析不能簡單化。
二、對《軟體工程》課程的總結和體會
學習《軟體工程》課程,起初我還以為這麼深奧的東西肯定學不會,但是通過一個學期的努力在老師的帶領下,我漸漸學到了很多東西:
在老師的多元化教學中,不但讓我從理論上掌握軟體工程,還有從不同的執行個體,讓理論和實踐得到了很好的結合。 就我個人看來,軟體工程與其說是一門課程,倒不如說是一門思想。是一個如何去分析和處理問題的過程,應該說它的範疇已經遠遠不止局限于該門課程,成為了一個綜合的一個能夠解決問題的思想集合。
就教材選擇方面,也是老師深思熟慮深明大義選擇了《建構之法》一書,并榮幸請到作者鄒欣老師以及一并大咖作為我們班的助教。并且在學期中莅臨課堂輔導,這是莫大的榮幸。是我上學期間有史以來第一次,榮幸之至深表感謝。
在這将近一學期的學習中,雖然我不能說自己的《軟體工程》課程學習的有多麼好,但是通過學習,我還是受益良多。
軟體=程式+軟體工程 , 程式=資料結構+算法
軟體工程是把系統的、有序的、可量化的方法應用到軟體的開發、營運和維護上的過程。
軟體是可以運作在計算機及電子裝置中的指令和資料的有序集合。
軟體工程包括領域衆多:軟體需求分析、軟體設計、軟體建構、軟體測試和軟體維護。
軟體工程和好多學科息息相關:計算機科學、計算機工程、管理學、數學、項目管理學、品質管理、軟體人體工學、系統工程、工業設計和使用者界面設計。
軟體開發有以下幾個階段:
1.需求分析
2.概要設計
3.詳細設計
4.軟體編碼
5.軟體測試
6.軟體維護
首先想開發一個軟體需要我們做一些準備工作,即基本概念和技術:單元測試、回歸測試和效能分析工具。并且要寫出自己的個人開發流程即PSP表用來記錄我們的效率。
其次我們如果想成長為一名軟體工程師則需要給自己一個好的定位,衡量個人的能力。這就需要我們給自己做一個自我評估。
軟體工程是一個團隊的項目,我們自己上手了需要跟小夥伴搭夥了,這就出現一個問題。我們每個人的習慣不同,但是代碼一定要規範,這樣兩個人互相合作才有一個交叉點。代碼複審時才能更好進行。
我們慢慢從二人行逐漸接觸三人行、多人行。這就組成了一個團隊,團隊有自己的團隊模式和開發流程,開發模式衆多:明星模式、社群模式在這裡就不一一講解了。團隊的開發流程比個人開發流程更加詳細,更加徹底的深入分解每個步驟,讓開發流程變得清澈透明避免遺漏。
确定團隊之後,接下來就是靈活流程了,靈活流程是一系列價值觀和方法論的集合。開發原則衆多。第一步:找出完成産品需要做的事情;第二步:決定目前的沖刺需要解決的事情;第三步:沖刺,還有每日立會。這個過程看似簡單,他記錄每天都幹了什麼,但是當項目完成的時候會給我們一個清晰的時間軸圖。為我們總結和修改提供了更直覺的資料。
以前,我一直對軟體存在一些偏見或是誤解,認為軟體就是程式,軟體的開發就是編寫程式,隻要編寫完了程式,一切也就OK了,而且我還片面的認為隻要我掌握了語言和工具,那麼我就能寫程式了。一個人隻要會程式設計,就能寫軟體,就是程式猿;一個公司,隻要招聘一些程式猿,就能開發好的軟體産品。隻要有幾個經驗的程式猿,再找個兼職的大學生,就能組成一個軟體公司。
但是通過《軟體工程》這門課的學習,使我認識到了我以前的錯誤。軟體其實不僅僅是程式,軟體開發其實也不僅僅是編寫程式,軟體是思想在硬體上的載體和展現,處理的是邏輯和資訊。唯有對軟體和軟體的開發過程,有充分的認識,才能更好的開發出,過程受控、品質受控的軟體産品。
而且在以前,我一直以為軟體的開發其實是一件很輕松快樂的事情,隻要一天坐在電腦旁敲敲鍵盤,那麼一切就可以了,但是現在我才發現,我以前的很多思想膚淺可笑。程式設計其實是一種樂趣和苦惱并存的一項創造性活動,因為程式設計不僅僅能夠滿足我們内心深處進行創造和渴望,而且還能愉悅我們内在的情感。
三、對課程的建議
對課程的建議:
課程本身不同于其他課程,避免填鴨式教學,小組要利用好,比如小組讨論、小組共同學習,小組配置設定是關鍵。
課後作業也是鞏固學習進度的一項不可或缺的任務。
調動學生學習的積極性也是課程的關鍵。
希望以上建議在以後的學習生活中,能夠實作。同時也希望自己對以後的學習更加刻苦認真,也感謝老師這學期對我們的諄諄教誨。