Ⅰ 軟體工程該學習些什麼
書的話,如果是入門,我推薦《C++入門經典》(第三版),這本書由淺入深,章節安排很合理。樓上各位提到的《C++ Primer》這本我覺得不適合初學者,因為章節安排不是循序漸進的。至於譚浩強的書,我沒看過他寫的C++,所以不做評論。但是我看過他寫的C語言的書,被人稱之為「方言版的C語言」,雖然好懂,但是不標準的寫法甚至錯誤的寫法,懂了又有何用。如果是有C++基礎了,那麼,可以看《C++編程思想》、《C++編程規范》等等。其實學習的重點放在哪裡那是根據個人習慣及熟練程度而定,不要太看重,多看看書,你會有所體會的。但是,注意,一次主攻一本書,不能雜,另外的書只能當做參考。上面提到的幾本書我都有電子版的,你提供郵箱,我可以發給你。反正我都是看的電子版的,畢竟正版書太貴了,盜版也難找到。
程序設計重在實踐。編寫代碼不用太急,慢慢來,從簡單的寫起,我不建議首先進行手寫,那樣沒實際意義,即使再簡單,拿到計算機上去跑,然後逐步修改並添加功能。就拿我當初看到 vector 這個東西時來說吧,我覺得 push_back() 這個成員函數很好用,所以我就寫了那麼兩三行,只是為了看看 push_back() 這個成員函數的作用。所以,我覺得,書上的代碼在最開始沒必要完整的寫一遍,因為那些可能涉及到還沒有看到的內容。看到了新東西,就可以簡單的自己去驗證一下那麼一點小功能,像這樣小的東西寫多了自然就熟悉了,之後寫稍微長的代碼就更熟練。同時,對於書上的一些代碼,先不要急這自己獨立寫出來,畢竟別人寫書的,對於出版出來的代碼應該是經過精心設計的,其中很可能就用到一些技巧,剛開始寫不出很正常,主要是因為不熟練。
慢慢的,當你對於C++中的新東西有個比較清楚的認識後(不用急著記住每個新東西),你可以將以前自己用C寫過的代碼改成C++方式,比如,一般的數組用vector代替,C風格的字元串用C++中的 string 類型替代,這樣寫出C++版本的代碼。如果以前用C寫過得東西不多,你可以將書上的習題來練習。寫多了,熟悉了,以後寫代碼就逐漸轉變成C++的代碼風格。由於C++標准庫很強大,所以,以前很多C代碼都可以修改得更精簡,看起來更舒服!
到了後面的高級內容,開始可以就簡單的將書上完整的代碼抄寫一遍(不是手寫),然後進行一定得調試。此時候要注意的不是代碼的具體功能,而是其中代碼風格。比如,類,注意構造函數,析構函數該怎樣寫,成員的對外可見性如何寫,等等。創造的話,如果看完了類,並且懂得類書寫的基本風格,那麼,你可以用自己的方法寫出一個 vector 類,當然,此時不需要處理異常,不需要完整的實現標准版本的功能,就實現諸如 push_back(), size(), empty()等功能,然後用自己寫的類進行別的操作。之後,諸如deque,list等等都可以用自己的方法實現。同時,這時候寫的代碼也可以留作以後逐步完善,等你非常牛逼時候,就寫出了不遜色於標准庫的代碼了。
總之,我認為,不因為寫那麼兩三行代碼拿到電腦上去跑就嫌麻煩,多在實際中跑自己寫的代碼,由簡單的寫起,由兩三行寫起。C++對於C來說有很多新東西,每看到一個,就自己寫寫去驗證,一個一個來,慢慢的組合那些小的細節以實現更多功能。此時,不要太看重演算法,數據結構,就像英語,學習語法時,我們主要學應用語法造句,而不是學造文章,文章是之後的事。這只是個學習的先後次序問題
最後,代碼風格一定要標准規范,可以附加看看《C++編程規范》等。不懂的問題及時在書上或者到網上搜查。
Ⅱ 軟體工程中幾種常用的軟體開發方法的概述和比較
分享到:
收藏推薦 軟體開發方法的研究在軟體工程中是很重要的一個方面。程序設計方法研究的是小規模程序設計,而軟體開發方法則是研究在大規模軟體的開發過程中如何組織、管理人員和資源、指導人們開發軟體系統的方法,本文對一些常用到的軟體開發方法做一個概述和比較。(反復);④真正實現。 (3)優點:適應用戶需求的模糊不清和多變。 (4)局限性:必須有一定的工具和環境做為支撐的條件。結構化分析與設計方法(sA/sD) (l)基本思想:自頂向下按功能劃分系統,逐步求精問題解,將軟體開發過程看做是軟體生命周期,建立瀑布模型。 該方法由DeMarco和You記。n公司提出並逐步使之完善。 (2)基本步驟:分析~設計~編碼~測試~運行/維護 (3)優點:應用時間長、簡單、直觀、易於接受,已有了一定的應用基礎並開辟了應用市場。 (4)局限性:功能經常要變,難於適應變化要求;後期發現的錯誤維護代價太高;不支持開發的反復。
Ⅲ 軟體工程的三大要素
軟體工程包括三個要素:方法、工具和過程。
軟體工程方法為軟體開發提供了「如何做」的技術。它包括了多方面的任務,如項目計劃與估算、軟體系統需求分析、數據結構、系統總體結構的設計、演算法過程的設計、編碼、測試以及維護等。
軟體工具為軟體工程方法提供了自動的或半自動的軟體支撐環境。目前,已經推出了許多軟體工具,這些軟體工具集成起來,建立起稱之為計算機輔助軟體工程(CASE)的軟體開發支撐系統。CASE將各種軟體工具、開發機器和一個存放開發過程信息的工程資料庫組合起來形成一個軟體工程環境。
軟體工程的過程則是將軟體工程的方法和工具綜合起來以達到合理、及時地進行計算機軟體開發的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質量和協調變化所需要的管理、及軟體開發各個階段完成的里程碑。
軟體工程是一種層次化的技術。任何工程方法(包括軟體工程)必須以有組織的質量保證為基礎。全面的質量管理和類似的理念刺激了不斷的過程改進,正是這種改進導致了更加成熟的軟體工程方法的不斷出現。支持軟體工程的根基就在於對質量的關注。 ...
Ⅳ 大學本科軟體工程專業的所有課程及課程學習的重點內容概要
軟體工程學的主要內容是軟體開發技術和軟體工程管理.
軟體開發技術包含軟體工程方法學、軟體工具和軟體開發環境;軟體工程管理學包含軟體工程經濟學和軟體管理學。
專業簡介:是計算機領域發展最快的學科分支之一,國家非常重視軟體行業的發展,對軟體人才的培養給予了非常優惠的政策。本專業培養掌握計算機軟體基本理論知識,熟悉軟體開發和管理技術、能夠在計算機軟體領域中從事軟體設計、開發和管理的高級人才。
2、 主修課程:該專業除了學習公共基礎課外,還將系統學習離散數學、數據結構、演算法分析、面向對象程序設計、現代操作系統、資料庫原理與實現技術、編譯原理、軟體工程、軟體項目管理、計算機安全等課程,根據學生的興趣還可以選修一些其它選修課。
3、 畢業去向: 除考取國內外名牌大學研究生外,主要畢業去向是計算機軟體專業公司﹑信息咨詢公司﹑以及金融等其它獨資、合資企業。
Ⅳ 軟體工程概要設計說明怎麼寫
網路一下吧,很多模板的。
Ⅵ 軟體工程論文摘要
我在得瑟說理吧發過這樣的問題
Ⅶ 軟體工程要學什麼呀
它涉及到程序設計語言,資料庫,軟體開發工具,系統平台,標准,設計模式等方面。
在現代社會中,軟體應用於多個方面。典型的軟體比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,資料庫,游戲等。同時,各個行業幾乎都有計算機軟體的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
軟體工程師是對應用軟體創造軟體的人們的統稱,軟體工程師按照所處的領域不同可以分為系統分析員,軟體設計師,系統架構師,程序員,測試員等等。人們也常常用程序員來泛指各種軟體工程師。
軟體工程的主要課程:
外語、高等數學、線性代數、高等代數、電子技術基礎、離散數學、計算機引論(C語言)、數據結構、C++程序設計、匯編語言程序設計、演算法設計與分析、計算機組成原理與體系結構、資料庫系統、計算機網路、軟體工程、軟體測試技術、軟體需求與項目管理、軟體設計實例分析、CMM/ISO9000等。
軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。
(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。
Ⅷ 「軟體工程」到底是什麼,誰能簡要概括一下開發app算是軟體工程的一部分嗎不知道在大學到底該不該
軟體工程是系統學習軟體的結構、需求分析、演算法、代碼、測試及運營管理等的理論技術及工程相關知識,是一門應用很強的專業,但很多人都會誤認為就是培養程序員的專業,這都是誤解了或沒有認識到它的重要性。相關專業有計算機科學與技術、數學、物理、信息等。app就是一個手機軟體,是運用了軟體工程的方法和工具開發的一個產品。如果你對軟體開發很有興趣可以選這個這個專業,當然也可以選擇計算機、信息及相關性專業,也可以從事軟體開發的。
Ⅸ 概要設計與詳細設計的區別
概要設計與詳細設計的區別如下:
1、概要設計的主要任務是把需求分析得到的系統擴展用例圖轉換為軟體結構和數據結構。設計軟體結構的具體任務是:將一個復雜系統按功能進行模塊劃分、建立模塊的層次結構及調用關系、確定模塊間的介面及人機界面等。數據結構設計包括數據特徵的描述、確定數據的結構特性、以及資料庫的設計。顯然,概要設計建立的是目標系統的邏輯模型.
2、詳細設計是軟體工程中軟體開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模塊實現演算法,所需的局部結構。在詳細設計階段,主要是通過需求分析的結果,設計出滿足用戶需求的嵌入式系統產品。
3、概要設計階段通常得到軟體結構圖 ,詳細設計階段常用的描述方式有:流程圖、N-S圖、PAD圖、偽代碼等 。
4、詳細設計階段就是為每個模塊完成的功能進行具體的描述,要把功能描述轉變為精確的、結構化的過程描述。
(9)軟體工程概要擴展閱讀
設計是把一種設想通過合理的規劃、周密的計劃、通過各種感覺形式傳達出來的過程。人類通過勞動改造世界,創造文明,創造物質財富和精神財富,而最基礎、最主要的創造活動是造物。設計便是造物活動進行預先的計劃,可以把任何造物活動的計劃技術和計劃過程理解為設計。
設計(Design)是為構建有意義的秩序而付出的有意識的直覺上的努力。更詳細的定義如下:
第一步:理解用戶的期望、需要、動機,並理解業務、技術和行業上的需求和限制。
第二步:將這些所知道的東西轉化為對產品的規劃(或者產品本身),使得產品的形式、內容和行為變得有用、能用,令人嚮往,並且在經濟和技術上可行。(這是設計的意義和基本要求所在)