當前位置:學問君>學習教育>學習方法>

關於軟件工程的學習方法的論文

學問君 人氣:2.05W

篇一:軟件工程專業學習方法

關於軟件工程的學習方法的論文

study methods of Software engineering 蔡娟(出生於1983年)、女、江蘇省揚州市、廣州科技職業技術學院及助教、碩士、軟件開發

摘要:軟件工程是應用計算機科學、數學及管理科學等原理開發軟件的工程。通俗地說,軟件工程是實現一個大型程序的一套原則方法,即按工程化的原則和方法組織軟件開發工作。本文就學習方法討論了軟件工程這一專業。

關鍵詞:軟件工程、代碼、實踐

嚴格地說,軟件工程是應用計算機科學、數學及管理科學等原理開發軟件的工程。通俗地說,軟件工程是實現一個大型程序的一套原則方法,即按工程化的原則和方法組織軟件開發工作。本文主要按學期劃分討論基於理論學習和研究的實踐學習。

第一學期

透過閱讀大量的C代碼,瞭解計算機程序設計方法和一般規則,爲以後學習打下堅實的基礎。在計算機文化基礎部分,可以考慮學習網頁設計(最好是從HTML和JS開始),C代碼可以找些開源項目的代碼片段閱讀。本學期除了課堂要求,最少要完成500行以上的代碼量。

第二學期

本學期的專業課程不多,建議將大量的時間投入在數據結構和算法上。C++要閱讀和書寫大量的代碼。計算機組成原理是單片機和嵌入式方向的基礎,要將各功能電路部分完全看懂和活用,如果有機會做課程設計,一定要認真思考。數據結構是這個學期的重點內容,其核心是各種數據結構的特性,在算法初步,要認真對待排序和查找的內容,最好多做練習。另外,完全照搬和硬套某些算法或者莫名其妙的使用某種數據結構來設計程序,是非常不理智,這樣做使得對問題的認識過程出現錯誤,而且易將問題複雜化。

第三學期

這學期的課程,可以說是軟件工程專業最爲重要的了,在java部分,已經可以開始思考面向對象和設計模式的問題了。操作系統可以說是計算機科學與工程實踐之集大成者,其中大量的運用了數據結構、計算機組成原理等課程中學習的設計方法,包含了計算機工程實踐方面遇到問題時的解決方案,且本身就是代碼閱讀的最好素材。能夠深入理解了計算機操作系統理論與實踐。

回顧軟件工程專業的課程,總體來說,課程體系中設定了5類課程:

1 理論系列課程

2 系統系列課程

3 開發工具系列課程

4 管理系列課程

5 軟件工程系列課程

理論類課程主要包含高等數學、線性代數、概率論與數理統計、離散數學等等。系統類課程主要包含操作系統、數據庫系統、數據結構等等課程,是專業課程的重要組成部分。這類課程作爲開發工具課程的必要支撐。開發工具課程是需要基礎的,不是說學習了某種編程語言的文法就完全可以使用該語言工作了,同樣用C,層次不同,效果也不同。這樣說來,類似數據結構、編譯原理、操作系統這種課程就可以歸於此類。硬件相關課程。軟件工程的課程體系中,淡化了硬件相關課程,課程數量和深度對比計算機科學專業有一定的縮減。這是增加實習時間和增加軟件工程和管理課程的必然結果。那麼面對着這些硬件相關的課程,應該儘量以軟件工程師的角度來看待軟硬結合的問題,發揮我們的優勢,而不是和有自動化、計算機背景的硬件工程師來比拼硬件功夫。其實,這個問題上,學計算機的位置最尷尬,位於軟件工程和自動化中間。開發工具系列課程主要包含各種編程語言和開發環境課程,C、C++、java、j2ee等。其學習方法主要有兩個流派:先博後精:首先廣泛地學習各種編程語言和開發工具,在學習的過程中做到舉一反三,基本上掌握了主流工具以後,再根據自己的興趣和未來工作的要求,選擇1~2門編程語言來深入學習;先精後博:基本是上個方法的逆序。就是首先把1~2門語言完全精通,然後再開闊視野。總之,不管採用哪一種方法,在學習的過程中,一定要多讀多寫,以案例(最好是實際工程)爲導向,體會開發的異同。另外,代碼風格絕對是個大問題。根據軟件學院的課程設定特點,我推薦使用第一種方法讀寫練,要規範。管理系列課程主要包含軟件項目管理、軟件過程管理等課程。學習的方法與管理學專業的學生相比較有着很大的區別。

首先,軟件工程專業研究的管理學知識,不是艱深的理論,也不是全面系統的研究,而是實用的管理技術。僅僅透過課程的學習,完全不可能掌握管理藝術的精髓。這個東西涵蓋的範圍太廣泛了,與個人的性格、交際能力、語言習慣甚至飲食習慣都有關係。還是需要經驗。管理藝術,是在實踐中逐漸完善的。書本固然重要,可是實踐更重要。只看書本,是做不好管理工作的。即便是看了《管理的N條金科玉律》這樣的書,也要因地制宜、根據實際情況來做,而不能夠生搬硬套的。 總之,這類課程的學習過程中,占主導地位的是實踐,每一次團隊項目開發甚至課程設計都是一次難得的機會,要好好把握。軟件工程系列課程,包含軟件工程、軟件體系結構等等。學習這類課程,首先要理解課程的意義、內涵和外延。實際上,這些課程就是給大家介紹了一套經驗上證明了優秀的、成體系的、工程化的方法論。工程和科學實驗不同,往往不都是理想狀態的。所以,工程中也沒有什麼應該是一成不變的,改變通的要學會變通。

最後,軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。軟件開發是個很複雜的過程,期間很容易產生錯誤。無論是軟件從業人員、專家和學者做了多大的努力,軟件錯誤仍然存在。因而大家也得到了一種共識:軟件中殘存着錯誤,這是軟件的一種屬性,是無法改變的。所以通常說引入軟件測試學科是很重要的。軟件測試的目的就是爲了發現儘可能多的缺陷,並期望透過改錯來把缺陷消滅,以提高軟件的質量。測試雖然也與開發過程緊密相關,但關心的'不是過程的活動,而是對過程的產物以及開發出的軟件進行剖析。測試人員要“執行”軟件,對過程中的產物——開發文檔和原始碼進行走查,執行軟件,以找出問題,報告質量。測試人員必須假設軟件存在潛在的問題,測試中所做的操作是爲了找出更多的問題,而不僅僅是爲了驗證每一件事是正確的。

篇二:軟件工程的學習方法與發展前景

摘要:軟件工程作爲一門指導計算機軟件開發和維護的一門工程學科,對於我們用系統的、規範的、可度量的途徑去開發執行和維護軟件有着十分重要的意義,因此軟件工程有着良好的發展前景。在學習軟件工程的過程中,我們應當理論和實踐並重,在實戰中把課本上的知識轉變爲技術和經驗。

關鍵詞:本質特性、理論實踐、發展前景

1、軟件工程的概念

軟件工程是從管理和技術兩方面研究如何更好地開發和維護計算機軟件的一門新興學科,它採用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,從而經濟地開發出高質量的軟件並有效地維護它。軟件工程的這種採用工程的思想來開發和維護軟件有效地解決了軟件危機,開發出滿足人們需求的各種軟件。

2、軟件工程的學習

在學習軟件工程的過程中,我們首先應該瞭解軟件工程的幾個本質特性。

1、軟件工程着重關注於大型程序的構造。

2、軟件工程的核心課題是控制軟件開發過程中的複雜性。在軟件開發過程中,我們可以把問題分解,使得分解出的每個部分都是可理解的,而且各個部分之間保持簡單的通信關係,這種方法並不能降低問題的整體複雜性,但是卻可以使它變成可以管理的。

3、由於軟件的經常變化,在開發的過程中必須考慮軟件將來可能發生的變化。

4、注意軟件開發的效率。

5、和諧地合作是開發軟件的關鍵,爲了有效的合作必須明確地規定每個人的責任和相互通信的方法。

6、軟件必須有效的支援它的用戶,如果用戶對軟件系統不滿意可以棄用該系統或者立即提出新的需求,因此僅僅用正確的方法構造系統還不夠,還必須構造出正確的系統。在瞭解了軟件工程的本質特性後,我們也更加明確了自己的學習目標。從軟件工程課程的體系結構來看,軟件工程設定了5門學科:理論系列課程、系統系列課程、開發工具系列課程、管理系列課程、軟件工程系列課程。

在我們學習理論課程(高數、離散數學、線性代數等)的時候,或許會感覺比較枯燥、抽象,但這些課程是我們以後學習的基礎,在我們學習其他課程或解決一些實際問題時,這些理論課程的價值就會得到充分地體現,在應用這些理論課程的知識時,我們也會覺得這些知識其實並不枯燥,而在實際的應用過程中,我們對知識的理解也會進一步加深。

開發工具課程也是十分重要的,而且不是說學習了某種編程語言的文法就完全可以使用該語言工作了,同樣用C語言編寫程序,層次不同,效果也不同。這樣說來,類似數據結構、編譯原理、操作系統這種課程就可以歸於此類。開發工具系列課程主要包含各種編程語言和開發環境課程,C、C 、Java、J'2ee等。其學習方法主要有兩個流派:先博後精:首先廣泛地學習各種編程語言和開發工具,在學習的過程中做到舉一反三,基本上掌握了主流工具以後,再根據自己的興趣和未來工作的要求,選擇1—2門編程語言來深入學習;先精後博:基本是上個方法的逆序。就是首先把1—2門語言完全精通,然後再開闊視野。總之,不管採用哪一種方法,在學習的過程中,一定要多讀多寫,以案例(最好是實際工程)爲導向,體會開發的異同。另外,代碼風格絕對是個大問題。根據軟件學院的課程設定特點,我推薦使用第一種方法讀寫練,要規範。這些課程的學習與實際操作是密不可分的,也只有在實際操作中我們能發現自己學習的不足之處,進而提高自己的能力。

管理系列課程主要包含軟件項目管理、軟件過程管理等課程。學習的方法與管理學專業的學生相比較有着很大的區別。首先,軟件工程專業研究的管理學知識,不是艱深的理論,也不是全面系統的研究,而是實用的管理技術。僅僅透過課程的學習,完全不町能掌握管理藝術的精髓。這個東西涵蓋的範同太廣泛了,與個人的性格、交際能力、語言習慣甚至飲食習慣都有關係。總之,這類課程的學習過程中,占主導地位的是實踐,每一次團隊項目開發甚至課程設計都是一次難得的機會,要好好把握。軟件工程系列課程,包含軟件工程、軟件體系結構等等。學習這類課程,首先要理解課程的意義、內涵和外延。實際上,這些課程就是給大家介紹了一套經驗上證明了優秀的、成體系的、工程化的方法論。工程和科學實驗不同,往往不都是理想狀態的。所以程中也沒有什麼應該是一成不變的,改變通的要學會變通。

我們可以發現軟件工程的課程體系中,淡化了硬件相關課程,課程數量和深度對比計算機科學專業有一定的縮減。這是增加實習時間和增加軟件工程和管理課程的必然結果,我們在這兩方面應該更加認真學習以體現我們的優勢。

3、軟件工程的發展前景

在當前這個科技高度發達並以較快速度保持進步的時代,計算機在各行各業中的應用起到了至關重要的作用,在人們處理大量資訊的時候,計算機是人們的首要選擇。一些部門如通信建設、醫療、教育、交通、旅遊、財政、郵電及個人運用計算機中的軟件來處理各種各樣的計算問題,大大加快了人們處理實際問題的效率。由於人們對各種處理不同問題的軟件的大量需求,軟件工程作爲一種能規範地、有效地、大規模地製造軟件的方式自然有很好的發展前景與發展空間。目前受限於軟件工程的相關理論並不十分成熟,人們在製造軟件的過程中僅有一部分應用到軟件工程的相關知識,因此軟件工程的發展空間必將逐步變得更爲寬廣,軟件工程也將進一步爲人類文明與科技的發展做出貢獻。

4、個人體會與總結

軟件工程作爲一種用工程的思想來規範地有效地開發和維護軟件的方式,有着無窮的活力與廣泛的發展空間,這門學科需要我們學好多門基礎課程,打好基礎,並在實踐中不斷學習、不斷提高自己,勤于思考,勇於創新,爲軟件工程的發展作出自己的貢獻。

參考文獻與網站:

軟件工程--百度百科

軟件工程發展前景--百度文庫

Shari Lawrence Pfleeger, Joanne e 著,楊衛東 譯 《軟件工程》(第三版) 人民郵電出版社2007

張海藩.《軟件工程導論》(第五版).清華大學出版社,2008

篇三:軟件工程學習方法解析

摘要

1968年在聯邦德國召開的NATO會議上,首次提出“軟件工程”的概念,提出了在軟件生產中採用工程話的方法,採用一系列科學的、現代化的方法技術來開發軟件。軟件才逐漸發展起來.軟件工程是研究以工程化的理論、方法和技術爲指導開發較大規模軟件系統的學科,其主要由可行性分析,需求分析、設計、編碼、測試、維護6部分組成。在計算機軟件領域中佔有中心地位。在我們現在這個資訊時代,軟件已經應用與各個方面,它不僅帶來了經濟的發展,也大大提高了人們生活的質量。

Summary In the federal republic of Germany in 1968 at the NATO meeting, the first put forward the concept of "software engineering, and puts forward the

software used in the production of engineering words method, the series of scientific and modern methods to develop the software technology。Software it gradually developed software engineering is the study. In engineering theory, the method and technology for developing large-scale software system, and the main subject of feasibility analysis, requirement analysis, design, code, test, maintenance and parts. In computer software field have the central status. We are now in the age of information, the software has been used with each aspect, it not only brings the development of economy, also greatly improve the quality of human life.

關鍵字:軟件產品、項目、階段

資訊社會的高科技,商品經濟化的高效益,使計算機的應用普及到經濟和社會生活的各個領域。資訊時代的到來,計算機早已潛入人類的生活,與我們息息相關。隨着資訊的發展,軟件也越來越重要【1】。在這個處處以資訊作戰的時代,軟件應用於多個方面。如有電子郵件,嵌入式系統,人機介面,辦公套件,操作系統,編譯器,數據庫,遊戲等。同時,軟件在各個行業流行起來,起到了不可代替的作用,如工業,農業,銀行,航空,政府部門等。

這學期我們專業也學了軟件工程,讓我體會了軟件工程在要開發項目的重要性。我覺得軟件工程,是以團隊來完成的,以提高軟件質量和程序員工作效率爲目的的規範。其核心就是由6個重要階段組成:可行性分析、需求分析、設計、編碼、測試、維護。

可行性研究

關於分析項目開發技術的文檔,開發任何一個基於計算機的系統都會受到時間和資源的限制。因此,開發方在接受客戶的項目之前,必須根據客戶可能提供的時間和資源等條件進行可行性研究。可行性研究最根本的任務是對以後的行動方針提起建議,如果問題沒有可行性的解決方案,應建議停止這個項目的開發,以避免資源,人力和金錢的浪費.如果問題值得解,則推薦一個好的解決方案,並制定一個初期的項目計劃【2】。

需求分析

這個階段主要是解決“做什麼”的問題,對要開發的軟件的各方面進行準確的定義。需求分析處於軟件開發過程的開始階段,但它對整個軟件開發過程以及軟件產品質量是至關重要的.爲了開發出令用戶滿意的軟件產品,就必須準確知道用戶的需求,確定用戶所需軟件產品的功能【3】,對軟件需求分析的準確是軟件產品獲得成功的前提,如果需求分析沒有全面考慮,設計和編碼做得再好,也不能滿足用戶的需求只會令用戶失望,不但這樣,還會給開發者帶來麻煩,浪費時間,金錢,造成不必要的麻煩,需求分析的任務包括確定軟件系統的功能需求、性能需求和執行環境約束,編制軟件需求規格說明書、軟件系統的驗收 測試準則和初步的用戶手冊。

設計階段

概要設計

在軟件需求分析階段,明白了軟件”做什麼”,就進入設計階段,這個階段要把軟件”做什麼”的邏輯模型轉換爲”做什麼”的物理模型 ,即將軟件需求轉化爲數據結構和軟件系統結構.

詳細設計

進行概要設計後,需要對軟件產品的進一步細化。如:法設計、數據結構、數據庫的設計。詳細設計是程序設計的藍圖,程序員可以根據藍圖編寫程序內部的細節,包括算法、數據結構以及各程序之間的接口,並對其設計單元測試計劃。 編碼階段用戶需要的軟件功能設計好後,接下來做的就是需要編譯一個軟件來具體的將用戶的需求都實現,編譯就需要使用相關語言來編寫代碼。編碼的主要任務是根據詳細設計規格說明,用某種選定的程序設計語言把詳細設計的結果轉化爲機器可執行的源程序模組【4】,這是一個編程和調試程序的過程。

測試階段

在軟件開發工程中,特別是在開發大型的軟件系統中,面對的問題是極其多樣、複雜的。因此,在軟件生命週期的每個階段都不可避免地會產生錯誤。應該在每個階段結束之前進行嚴格的檢查,儘可能的發現並糾正錯誤【5】。所以測試要介入每個階段,測試也分許多種,如可分爲:單元測試,編碼階段的子模的測試;組裝測試:設計階段的連結組裝測試;確認測試,對分析階段的功能測試;系統測試,系統與實際的匹配測試,根據不同的情況,選擇符合的測試。 維護階段不要以爲把軟件交給用戶就完工了,還有一個重要的階段,就是維護,維護在軟件的生命週期中佔用了最多的時間,維護不僅是要維護軟件的正確性,還要對其進行修改,增加新的功能等。在維護時,以需求分析報告爲依據【6】。當用戶提出需要修改原需求分析報告內容的時候,以介面設計說明書爲依據。當用戶提出的要求需要修改介面設計說明書時,如對介面上的輸入項,輸出項的修改,頁面風格的修改。具體的性能如下:

校正性:診斷、改正陷藏錯誤

適應性:適應軟件環境的修改

完善性:增加新的功能、性能

預防性:提高軟件的可維護性

以上就是這學期我們所學的各個階段,以前,以爲軟件工程只是一個比較文科的內容,在學習後,明白了它不止這樣,每個階段都是技術含量的活,軟件工程在開發成功軟件的重要性。雖然只學了一學期,但對於我們軟件專業而言,其重要性不壓與編碼,如果以後從事這方面的工作,就會經常打交道了。

參考文獻

(1)《軟件工程PPT》

(2)

(3)《軟件設計精要與模式》——張逸 著

(4 )《計算機與現代化》-----胡建華 楊軍 2006 第8期 - 維普資訊網

(5)《軟件能力成熟模型》----何新貴 清華大學出版社

篇四:軟件工程專業學習方法

摘 要:軟件工程是應用計算機科學、數學及管理科學等原理開發軟件的工程。通俗地說,軟件工程是實現一個大型程序的一套原則方法,即按工程化的原則和方法組織軟件開發工作。討論了軟件工程這一專業的學習法。

關鍵詞:軟件工程;學習方法;計算機教學

0 引言

嚴格地說,軟件工程是應用計算機科學、數學及管理科學等原理開發軟件的工程。通俗地說,軟件工程是實現一個大型程序的一套原則方法,即按工程化的原則和方法組織軟件開發工作。本文主要按學期劃分討論基於理論學習和研究的實踐學習。

1第一學習階段

透過閱讀大量的C代碼,瞭解計算機程序設計方法和一般規則,爲以後學習打下堅實的基礎。在計算機文化基礎部分,可以考慮學習網頁設計(最好是從HTML和JS開始),C代碼可以找些開源項目的代碼片段閱讀。本學期除了課堂要求,最少要完成500行以上的代碼量。

2第二學習階段

本學期的專業課程不多,建議將大量的時間投入在數據結構和算法上。C++和嵌入式方向的基礎,要將各功能電路部分完全看懂和活用,如果有機會做課程設計,一定要認真思考。數據結構是這個學期的重點內容,其核心是各種數據結構的特性,在算法初步,要認真對待排序和查找的內容,最好多做練習。另外,完全照搬和硬套某些算法或者莫名其妙地使用某種數據結構來設計程序,是非常不理智的,這樣做使得對問題的認識過程出現錯誤,而且易將問題複雜化。

3第三學習階段

這學期的課程,可以說是軟件工程專業最爲重要的了,在java部分,已經可以開始思考面向對象和設計模式的問題了。操作系統可以說是計算機科學與工程實踐之集大成者,其中大量地運用了數據結構、計算機組成原理等課程中學習的設計方法,包含了計算機工程實踐方面遇到問題時的解決方案,且本身就是代碼閱讀的最好素材。能夠深入理解了計算機操作系統理論與實踐。

回顧軟件工程專業的課程,總體來說,課程體系中設定了5類課程:①理論系列課程;②系統系列課程;③開發工具系列課程;④管理系列課程;⑤軟件工程系列課程。理論類課程主要包含高等數學、線性代數、概率論與數理統計、離散數學等等。系統類課程主要包含操作系統、數據庫系統、數據結構等等課程,是專業課程的重要組成部分。這類課程作爲開發工具課程的必要支撐。開發工具課程是需要基礎的,不是說學習了某種編程語言的文法就完全可以使用該語言工作了,同樣用C,層次不同,效果也不同。這樣說來,類似數據結構、編譯原理、操作系統這種課程就可以歸於此類。

4 學習要點

軟件工程的課程體系中,淡化了硬件相關課程,課程數量和深度對比計算機科學專業有一定的縮減。這是增加實習時間和增加軟件工程和管理課程的必然結果。那麼面對着這些硬件相關的課程,應該儘量以軟件工程師的角度來看待軟硬結合的問題,發揮我們的優勢,而不是和有自動化、計算機背景的硬件工程師來比拼硬件功夫。其實,這個問題上,學計算機的位置最尷尬,位於軟件工程和自動化中間。開發工具系列課程主要包含各種編程語言和開發環境課程,C、C++、Java、J2ee等。其學習方法主要有兩個流派:先博後精:首先廣泛地學習各種編程語言和開發工具,在學習的過程中做到舉一反三,基本上掌握了主流工具以後,再根據自己的興趣和未來工作的要求,選擇1-2門編程語言來深入學習;先精後博:基本是上個方法的逆序。就是首先把1-2門語言完全精通,然後再開闊視野。總之,不管採用哪一種方法,在學習的過程中,一定要多讀多寫,以案例(最好是實際工程)爲導向,體會開發的異同。另外,代碼風格絕對是個大問題。根據軟件學院的課程設定特點,我推薦使用第一種方法讀寫練,要規範。管理系列課程主要包含軟件項目管理、軟件過程管理等課程。學習的方法與管理學專業的學生相比較有着很大的區別。首先,軟件工程專業研究的管理學知識,不是艱深的理論,也不是全面系統的研究,而是實用的管理技術。僅僅透過課程的學習,完全不可能掌握管理藝術的精髓。這個東西涵蓋的範圍太廣泛了,與個人的性格、交際能力、語言習慣甚至飲食習慣都有關係。總之,這類課程的學習過程中,占主導地位的是實踐,每一次團隊項目開發甚至課程設計都是一次難得的機會,要好好把握。軟件工程系列課程,包含軟件工程、軟件體系結構等等。學習這類課程,首先要理解課程的意義、內涵和外延。實際上,這些課程就是給大家介紹了一套經驗上證明了優秀的、成體系的、工程化的方法論。工程和科學實驗不同,往往不都是理想狀態的。所以,工程中也沒有什麼應該是一成不變的,改變通的要學會變通。

5結束語

軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。軟件開發是個很複雜的過程,期間很容易產生錯誤。無論是軟件從業人員、專家和學者做了多大的努力,軟件錯誤仍然存在。因而大家也得到了一種共識:軟件中殘存着錯誤,這是軟件的一種屬性,是無法改變的。所以通常說引入軟件測試學科是很重要的。軟件測試的目的就是爲了發現儘可能多的缺陷,並期望透過改錯來把缺陷消滅,以提高軟件的質量。測試雖然也與開發過程緊密相關,但關心的不是過程的活動,而是對過程的產物以及開發出的軟件進行剖析。測試人員要“執行”軟件,對過程中的產物——開發文檔和原始碼進行走查,執行軟件,以找出問題,報告質量。測試人員必須假設軟件存在潛在的問題,測試中所做的操作是爲了找出更多的問題,而不僅僅是爲了驗證每一件事是正確的。