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

才智咖 人氣:2.03W

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

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

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結束語

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