軟件工程——個人總結
學號:1500802067 姓名:陝雲鵬
回想開學初對於軟件工程這門課的期望,總結本課程對你帶來的提升:
學習和使用的新軟件:
微信公眾號:我們是基於微信公眾號做的開發 所以開發時用到了這個;

ER:ER是一款用於畫例圖,類圖等的軟件;

Dreamweaver:以前簡單的使用過的軟件,通過做課程設計又重新學習了,主要用於前端設計;

學習和使用的新語言:
學習了PHP語言,主要是用來編寫網頁
學習了markdown的排版
學習和使用的新工具、新平台:
學習使用在coding上,存放代碼,共享代碼;
學習使用新浪雲服務器,在后台開發,網頁制作過程中的代碼的編輯,網頁的實現和數據庫的實現;
學習使用Git倉庫用以執行Git命令操作,Git的結構等。
統計一下,你在這軟件工程實踐中,完成了多少行的代碼
平時的作業,期末大作業,以及平時的練習,大概約1500行代碼
學習和掌握的新方法
(1)需求分析:在完成一個項目之前,要明白這個項目具體是要干什么,要進行詳細的需求分析,需求分析的內容是針對待開發軟件提供完整、清晰、具體的要求,確定軟件必須實現哪些任務。具體分為功能性需求、非功能性需求與設計約束三個方面。功能性需求即軟件必須完成哪些事,必須實現哪些功能,以及為了向其用戶提供有用的功能所需執行的動作。功能性需求是軟件需求的主體。開發人員需要親自與用戶進行交流,核實用戶需求,從軟件幫助用戶完成事務的角度上充分描述外部行為,形成軟件需求規格說明書。作為對功能性需求的補充,軟件需求分析的內容中還應該包括一些非功能需求。主要包括軟件使用時對性能方面的要求、運行環境要求。軟件設計必須遵循的相關標准、規范、用戶界面設計的具體細節、未來可能的擴充方案等。一般也稱做設計限制條件,通常是對一些設汁或實現方案的約束說明。例如,要求待開發軟件必須使用Oracle數據庫系統完成數據管理功能,運行時必須基於Linux環境等。
(2)軟件測試方法:黑盒測試,黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下, 在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試着眼於程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。白盒測試,白盒測試 又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯着手,得出測試數據。
個人總結
1.課程收獲:
本學期所學習的軟件工程這門科目讓我從理論上掌握軟件工程,還有從不同的實例,讓理論和實踐得到了很好的結合。整一個學期下來,總的來說還是學到了很多東西的,有很多地方是值得肯定 的,其實在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個如何去分析和處理問題的過程,應該說其范疇已經遠遠不止局限於該門課程,成為了一個綜合的一個能夠解決問題的思想集合。
2.課本帶給我們的:
《構建之法》這本書的內容邏輯很清晰明了,第一章是從整體分析軟件工程這門學科的發展和所處的社會環境,接着后面的幾章深入分析了軟件開 放過程和模式、軟件項目管理、計算機工程、需求分析、結構化分析建模以及基於UML面向對象分析建模等。
3.本課程的不同之處吸引着我:
這個課程老師不僅僅用理論授課方法幫我們了解軟件工程的相關概念,同時老師使用了很多其他的方式讓學生去了解這門課程,比如用例紙牌游戲,看圖說話,作業的娛樂式點評競爭,讓我在學習這門課時充滿了興趣。
4.課程中學到了
軟件工程,就是這樣一套用於軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對於軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對於總體的組織和對於局部的實現。
5.課程總結與展望:
這門課程的內容十分的概念化,所學到的都是前人的經驗與教訓的總結,涉及到的理論知識太多了。現在開發經驗很少的我,還不能徹底的理解軟件工程所帶來的幫助,僅僅開括了自己的知識面,至少在之后的個人開發或者團隊開發中不再迷茫,不知道如何下手了,我想這也是這本書最基礎的目的吧,對於書中提到的專業的測試人員,開發人員以及團隊的PM,相信只有足夠多的開發經驗之后才能有所理解和想法。不過也學到了一些實質性的東西,比如VS工具中的測試方式,幫助對軟件進行優化與DEBUG。
對於課程展望,希望自己在日后的編程中注重個人的編碼素養,理論之外將實踐用於之后的學習中,理論是實踐的根本,同時也要學好理論知識,將
記錄自己在軟件工程課程上的經驗總結
現在的任何電子化產品離不開程序,而所有的程序離不開團隊,軟件工程課程不僅僅給我提供制作程序的思想模式,更是讓我們認識到一個團隊的重要性,團隊的能力,團隊的分工,團隊的風格直接影響着程序的結果等級。
對於下一屆的學弟學妹你有什么建議和告知呢?
在着手做作業時,先去把markdown看一下,不難,這樣每次做作業的時候就會輕松很多。
做大作業前,根據每個人的能力來分配工作,提前進行相關的學習。
分析一下自己所處的團隊。軟件工程實踐是大學里少有的認真的團隊協作經驗。《構建之法》團隊合作的階段,你們團隊經歷過么?最后到達了哪一階段?
自己所在的團隊,總體能力偏弱,作為一個團隊的負責者,沒有充分發揮自己在團隊協作中的作用,團隊的人數偏多,工作總量有相對較少。在功能的實現時,由主要的幾個人做了大量的工作,從一次團隊協作中我也學會了許多,如果想讓團隊做出好的工作,首先要保證團隊人員的素質,其次是人員的協調分工,一個負責人帶不好頭,則滿盤皆輸,雖然這次的團隊合作不是很理想但我很感謝每一個隊伍里的人,是你們的現象反映了我的錯誤,我會改的;
我們的團隊經歷了結對編程,到用例說明文檔,繪制類圖,再到整個的需求規格說明書,然后進行黑盒測試最后階段,都較積極的完成各相關任務,協作氛圍可嘉;
補充:
•閱讀第八章 需求分析,獲取用戶需求中軟件開發的過程中用戶最需要的是什么?
軟件開發的過程就是用戶最需要的東西在鏈條中傳送、轉換、實現、扭曲或丟失的過程,“市場營銷,就是“通過改變影響用戶產品購買決策的各種因素,實現爭奪用戶或激發用戶消費的目'',對產品運營人員來說,無非是解決“吸引新用戶、掠奪競品用戶、留住現有用戶、促使用戶購買、促使用戶購買更多”等實際問題,產品運營人員需要去不斷了解用戶需求,改善市場策略,而市場調研是了解用戶需求最常用的方法。用戶認為折扣、品質、服務、口碑在其選擇時最重要,實際選擇時網站知名度、用戶口碑作用更加突顯。
•根據第七章MSF團隊模式中 典型的軟件團隊模式和開發流程都有那些?各有什么優缺點?
''軟件團隊的模式:a、主治醫師模式b、明星模式c、社區模式d、業余劇團模式e、秘密團隊f、特工團隊g、交響樂團模式 h、爵士樂模式i、功能團隊模式j、官僚模式等。開發流程是指一群人在一起做軟件開發,總是要有一些方式方法。我們在開發、運營、維護軟件的工程中有很多技術、做法、習慣和思想。軟件工程把這些相關的技術和過程統一到一個體系中,叫“軟件開發流程”,軟件開發流程的目的是為了提高軟件開發、運營和維護的效果,以及提升用戶滿意度、軟件的可靠性和可維護性。 a、寫了再改模式b、瀑布模式c、瀑布模型的各種變形d、Rational統一流程e、老板驅動的流程f、漸進交付的流程。''
閱讀第八章在用戶需求方面,除了我們對於用戶的基本需求滿足,我們也要對大眾用戶進行問卷調查或者是面對面的討論軟件的差異,在軟件的需求方面,雙方會有着一些歧義,但是又不想要失去任意一個潛在的用戶,是否需要去考慮個別用戶的特殊需求?
個別用戶的需求可能是吸引部分潛在客戶的關鍵因素,所以我們需要在發布之后進行用戶的反饋進行軟件的修改。
•由第五章 團隊和流程中軟件的開發模式分別指那些?
快速原型模型:需要迅速造一個可以運行的軟件原型,以便理解和澄清問題)快速原型模型允許在需求分析階段對軟件的需求進行初步的非完全的分析和定義,快速設計開發出軟件系統的原型展示待開發軟件的全部或部分功能和性能。過程:用戶對該原型進行測試評定,給出具體改善的意見以及豐富的細化軟件需求,開發人員進行修改完善。
•當開發人員修復了一個缺陷並簽入代碼后,新的構建就會包含一個修復,測試人員驗證修復會不會導致其他問題?
測試不是在所有的開發工作完成之后才進行,而是與開發幾乎同步進行的。一個軟件項目的各個功能都可以有自己的測試計划,它們可以在不同的階段發揮作用。但是針對整個項目的總測試計划(又叫測試總綱)要在計划階段大致定下來,並指導所有測試工作的進行。測試需要這些a. 用戶類型不變。b. 屏幕分辨率降到兩種,手機屏幕不要了,我們暫時不在手機上測試。c. 屏幕DPI不測試高級DPI(屏幕 | 屬性 | 高級 | DPI 中可以設置DPI以提高顯示效果。d. 操作系統只測試3種,二柱強烈支持Linux,同時考慮到一些高收入的網民可能會用Linux操作系統,保留Linux。