軟體工程專業

軟體工程專業

軟體工程是研究和套用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。它涉及到程式語言、資料庫、軟體開發工具系統平台、標準、設計模式等方面。

  • 中文名
    軟體工程專業
  • 外文名
    SoftwareEngineeringMajor
  • 簡稱
    SEM
  • 類別
    一級學科
  • 學科代碼
    0835

簡介

軟體工程專業是一門研究用工程化方法構建和維護有效的、實用的

軟體工程知識體系全景圖

和高質量的軟體的學科。它涉及到程式語言,資料庫,軟體開發工具,系統平台,標準,設計模式等方面。在現代社會中,軟體套用于多個方面。典型的軟體比如有電子郵件嵌入式系統人機介面,辦公套件,作業系統,編譯器,資料庫,遊戲等。同時,各個行業幾乎都有電腦軟體的套用,比如工業,農業,銀行,航空,政府部門等。這些套用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。

相關學者、組織機構都分別給出了定義:

Boehm:運用現代科學技術知識來設計並構造電腦程式及為開發、運行和維護這些程式所必需的相關檔案資料。

IEEE:軟體工程是開發、運行、維護修復軟體的系統方法。

Fritz Bauer:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。

發展過程

概念提出

1960年代末期,電腦程式在復雜度、規模和套用領域等方面的成長引人註目,這導致上千億資金花費在軟體開發上,許多人的工作和生活依賴于軟體開發的成果。軟體產品幫助人們獲得更高的工作和生產效率,同時也給人們提供一個更加安全、靈活和寬松的工作與生活環境。盡管有很多成功之處,許多軟體產品在成本、工期、質量等方面存在嚴重問題。主要原因是:

軟體產品是復雜的人造系統,具有復雜性、不可見性和易變性,難以處理。個人或小組開發小型軟體非常有效的編程技術和過程,在開發大型、復雜系統時難以發揮同樣的作用。

1968年在德國舉行的NATO軟體工程會議上,為應對"軟體危機"的挑戰,提出了"軟體工程"的術語。這個時期有代表性的軟體工程定義是"為了經濟地獲得在真實機器上可靠工作的軟體而製定和使用的合理工程原則和方法"。

1972年IEEE學會的電腦協會第一次出版了《軟體工程學報》。此後,"軟體工程"這個術語被廣泛用于工業、政府和學術界,眾多的出版物、團體和組織、專業會議在它們的名稱裏使用"軟體工程"這個術語,很多大學的電腦科學系先後設立軟體工程課程。

學科雛形

軟體工程早期的發展是理清軟體工程過程的各種活動,提出軟體生命周期的概念和軟體開發的瀑布模型,製定軟體生命周期中主要活動的質量標準。

1991年,ACM和IEEE/CS的計算教程CC1991專題組將"軟體工程"列為計算學科的九個知識領域之一。

1980年代末到1990年代初,電腦硬體普遍採用大規模積體電路。在單主機計算模式下,基于瀑布模型的軟體開發過程和結構式過程語言編程範型佔主導地位。軟體工程得到巨大的發展。以階段論看待軟體生命周期,給規範和規程的製定、工具研製、預算管理、工程核算、組織質量過程帶來極大方便,基于瀑布模型的軟體工程的研究在軟體需求分析、軟體設計軟體測試軟體質量保證、軟體過程改進等多個子領域得到深化和擴展,形成了軟體工程學科的雛形。

學科確立

1970年代末期,美國製定研究生教育計畫時採納了IEEE/CS提出的、製定軟體工程教程的建議,為軟體工程教育打下了基礎。

1980年代末和1990年代初,軟體工程教育得到卡內基-梅隆大學軟體工程研究所(SEI)的培育和支持。他們調查軟體工程教育的現狀;出版軟體工程推薦教程;在卡內基-梅隆大學建立軟體工程碩士教育計畫;組織和推動軟體工程教育者研討會。

1993年,IEEE-CS和ACM為把軟體工程建設成為一個專業,建立了IEEE-CS/ACM聯合指導委員會。隨後,該指導委員會被軟體工程協調委員會(SWECC)替代。SWECC給出了"軟體工程職業道德規範"、"大學部軟體工程教育計畫評價標準"和"軟體工程知識體"(SWEBOK)。SWEBOK全面描述了軟體工程實踐所需的知識,為開發大學部軟體工程教育計畫打下了基礎。

2004年8月,全世界五百多位來自大學、科研機構和企業界的專家、教授經過多年的努力,推出了軟體工程知識體、軟體工程教育知識體(SEEK)兩個檔案的最終版本,標志著軟體工程學科在世界範圍正式確立,並在大學部教育層次上迅速發展。軟體工程、電腦科學、電腦工程、信息系統、信息技術並列成為計算學科下的獨立學科。

教育發展

中國的軟體工程基礎技術研究始于1980年代初。當時,軟體開發方法學成為研究熱點。1980年在北京召開了中國首屆軟體工程研討會,之後,許多高等學校和科研單位陸續開展了軟體開發方法學、CASE工具和環境、面向對象技術等軟體工程基礎技術的研究。"軟體工程核心支撐環境","軟體工程技術、工具和環境的研究與開發(SEP)"等課題列入國家重點科技攻關項目,其科研成果代表了中國軟體工程技術研究的水準。與此同時,部分高校面向研究生開設了軟體工程課程,開始引進和編寫軟體工程教材。1984年和1985年,國家科委選擇重點高校招收了兩批(200人)軟體工程碩士,為軟體工程教育積累了經驗。此後,高等院校開始為大學部開設軟體工程課程。部分高校從1988年開始試辦軟體工程專業(後來在學科調整時又歸並到電腦科學與技術學科)。

1990年代,軟體重用和軟體構件技術成為研究熱點,面向對象方法和技術成為軟體開發的主流技術,軟體過程研究及軟體企業的過程改善受到廣泛重視。隨著軟體工程技術的發展,高校又增設了面向對象技術,支持面向對象技術的Smalltalk語言、軟體過程管理、軟體測試技術、軟體過程度量等課程,軟體工程領域的教學內容不斷豐富,教學時數不斷增加,教學改革不斷深入。

為適應中國經濟結構戰略性調整,實現軟體產業和軟體人才培養的跨越式發展,2000年發布了18號檔案《國務院關于印發鼓勵軟體產業和積體電路產業發展的若幹政策的通知》,2001年經教育部和國家計委批準,全國成立了35所示範性軟體學院。各高校軟體學院和電腦學院(系)為培養高層次、實用型、復合型、具有國際競爭力的人才,要求學生在思維創新的基礎上,提高技術創新和工程創新能力,提高軟體工程實踐和軟體工程管理能力。這有效地促進了中國軟體工程學科的發展,中國軟體工程教育開始走向成熟。

組成結構

ACM和IEEE-CS發布的SWEBOK定義了軟體工程學科

需求驅動的軟體開發過程需求驅動的軟體開發過程

需求驅動的軟體開發過程

的內涵,它由10個知識域構成。

(1)軟體需求

軟體需求描述解決現實世界某個問題的軟體產品,及對軟體產品的約束。軟體需求涉及需求抽取、需求分析、建立需求規格說明和確認,涉及建模、軟體開發的技術、經濟、時間可行性分析。軟體需求直接影響軟體設計、軟體測試、軟體維護、軟體配置管理、軟體工程管理、軟體工程過程和軟體質量等。

(2)軟體設計

設計是軟體工程最核心的內容。設計既是"過程",也是這個過程的"結果"。軟體設計由軟體體系結構設計、軟體詳細設計兩種活動組成。它涉及軟體體系結構構件、接口、以及系統或構件的其它特征,還涉及軟體設計質量分析和評估、軟體設計的符號、軟體設計策略和方法等。

(3)軟體構造

通過編碼、單元測試集成測試、調試、確認這些活動,生成可用的、有意義的軟體。軟體構造除要求符合設計功能外,還要求控製和降低程式復雜性、預計變更、進行程式驗證和製定軟體構造標準。軟體構造與軟體配置管理、工具和方法、軟體質量密切相關。

(4)軟體測試

測試是軟體生存周期的重要部分,涉及測試的標準、測試技術、測試度量和測試過程。測試不再是編碼完成後才開始的活動,測試的目的是標識缺陷和問題,改善產品質量。軟體測試應該圍繞整個開發和維護過程。測試在需求階段就應該開始,測試計畫和規程必須系統,並隨著開發的進展不斷求精。正確的軟體工程質量觀是預防,避免缺陷和問題比改正好。代碼生成前的主要測試手段是靜態技術(檢查),代碼生成後採用動態技術(執行代碼)。測試的重點是動態技術,從程式無限的執行域中選擇一個有限的測試用例集,動態地驗證程式是否達到預期行為。

(5)軟體維護

軟體產品交付後,需要改正軟體的缺陷、提高軟體性能或其他屬性、使軟體產品適應新的環境。軟體維護是軟體進化的繼續。軟體維護要支持系統快速地、便捷地滿足新的需求。基于服務的軟體維護越來越受到重視。軟體維護是軟體生存周期的組成部分。然而,歷史上維護從未受到重視。情況有了改變,軟體組織力圖使軟體運營時間更長,軟體維護成為令人關註的焦點。

(6)軟體配置管理

為了系統的控製配置變更,維護整個系統生命周期中配置的一致性和可追蹤性,必須按時間管理軟體的不同配置,包括配置管理過程的管理、軟體配置鑒別、配置管理控製、配置管理狀態記錄、配置管理審計、軟體發布和交付管理等。

(7)軟體工程管理

運用管理活動,如計畫、協調、度量、監控、控製和報告,確保軟體開發和維護是系統的、規範的、可度量的。它涉及基礎設施管理;項目管理;度量和控製計畫三個層次。度量是軟體管理決策的基礎。近年來軟體度量的標準、測度、方法、規範發展較快。

(8)軟體工程過程

管理軟體工程過程的目的是,實現一個新的或者更好的過程。軟體工程過程關註軟體過程的定義、實現、評估、測量、管理、變更、改進,以及過程和產品的度量。軟體工程過程分為,①圍繞軟體生存周期過程的技術和管理活動,即需求獲取、軟體開發、維護和退役的各種活動。②對軟體生存周期的定義、實現、評估、度量、管理、變更和改進。

(9)軟體工程工具和方法

軟體開發工具是以電腦為基礎的,用于輔助軟體生存周期過程。通常一個QMS的過程方法的實施,工具是為特定的軟體工程方法設計的,以減少手工操作的負擔、使軟體工程更加系統化。軟體工具的種類很多,從支持個人到整個生存周期。軟體工具分為:需求工具、設計工具、構造工具、測試工具、維護工具、配置管理工具、工程管理工具、工程過程工具、軟體質量工具等。

軟體工程方法支持軟體工程活動,使軟體開發更加系統,並能獲得成功。軟體開發方法不斷發展。當前,軟體工程方法分為:①啓發式方法,包括結構化方法、面向資料方法、面向對象方法和特定域方法;②基于數學的形式化方法;③用軟體工程多種途徑實現的原型方法,原型方法幫助確定軟體需求、軟體體系結構,使用者介面等。

(10)軟體質量

軟體質量貫穿整個軟體生存周期,涉及軟體質量需求、軟體質

量度量、軟體屬性檢測、軟體質量管理技術和過程等。

軟體項目管理結構軟體項目管理結構

SWEBOK還把軟體工程相關學科列為知識域,它們是軟體工程發展不可或缺的部分。相關學科知識域包括電腦工程、電腦科學、數學、管理學、項目管理、質量管理、系統工程學和軟體人類工程學八個領域。

學科地位

軟體工程學科是計算學科的分支,計算學科中理論、抽象、設計等三個學科形態,綁定、大問題的復雜性、概念和形式模型、一致性和完備性、效率、演化、抽象層次、按空間排序、按時間排序、重用、安全性、折衷與決策等十二個基本概念,數學方法、系統科學方法在軟體工程學科中佔有重要地位。此外,軟體工程還十分重視管理過程,以提高軟體產品的質量、降低開發成本、保證工程按時完成。系統性、規範性、可度量性也是軟體工程非常關註的。

軟體工程學科的理論基礎是數學、電腦科學。軟體工程的研究和實踐涉及人力、技術、資金、進度的綜合管理,是開展最最佳化生產活動的過程;軟體工程必須劃分系統的邊界,給出系統的解決方案。因此,軟體工程的相關學科有電腦科學與技術、數學、電腦工程、管理學、系統工程和人類工程學等。

軟體工程

軟體工程研究與套用 Software Engineering and Applications 是一本關註電腦領域最新進展的國際中文期刊,由漢斯出版社發行。本刊支持思想創新、學術創新,倡導科學,繁榮學術,集學術性、思想性為一體,旨在為了給世界範圍內的科學家、學者、科研人員提供一個傳播、分享和討論電腦領域內不同方向問題與發展的交流平台。

研究領域:

軟體架構

軟體設計方法

軟體領域建模

軟體工程決策支持

軟體工程教育

軟體測試技術

自動化的軟體設計和合成

基于組件的軟體工程

電腦支持的協同工作

程式語言和軟體工程

電腦網路

信息與通信安全

電腦圖形學與人機互動

多媒體技術套用

人工智慧與識別

嵌入式軟體與套用

自動控製

分散式計算與格線計算

雲計算技術

存儲技術

資料庫技術研究

電腦輔助設計與套用技術

培養方案

主修課程

主幹學科:馬克思主義理論、大學外語、高等數學、大學物理、物理實驗、線性代數、概率論與數理統計、程式語言、資料結構、離散數學、作業系統、編譯技術、軟體工程概論、統一建模語言、軟體體系結構、軟體需求、軟體項目管理

該專業除了學習公共基礎課外,還將系統學習離散數學、資料結構、演算法分析、面向對象程式設計、現代作業系統、資料庫原理與實現技術、編譯原理、軟體工程、軟體項目管理、電腦安全等課程,根據學生的興趣還可以選修一些其它選修課。

修業年限:四年

授予學位:工學學士學位

實踐環節:畢業實習、課程設計、電腦工程實踐、生產實習、畢業設計(論文)。

研究方向

軟體工程

軟體體系結構

軟體項目管理

嵌入式軟體及其套用

資料庫技術與資料挖掘

網路與信息系統安全

智慧型處理技術

培養要求

本專業是培養適應電腦套用學科的發展,特別是軟體產業的發展,具備電腦軟體的基礎理論、基本知識和基本技能,具有用軟體工程的思想、方法和技術來分析、設計和實現電腦軟體系統的能力,畢業後能在IT行業、科研機構、企事業中從事電腦套用軟體系統的開發和研製的高級軟體工程技術人才。

軟體工程項目管理流程軟體工程項目管理流程

掌握和電腦科學與技術相關的基本理論知識,具有一般電腦相關工程的分析設計和解決實際問題的能力。了解文獻檢索、資料查詢的基本方法,具有一定的科學研究和實際工作能力。能夠運用學習知識和外文閱讀能力查閱外文資料。養成積極參加體育鍛煉和健康的文化活動的良好習慣,達到國家規定的大學生體育合格標準,身心健康。

就業導向

就業方向

本專業學生畢業後可以從事各級各類企事業單位的辦公自動化處理、電腦安裝與維護、網頁製作、電腦網路和專業伺服器的維護管理和開發工作、動態商務網站開發與管理、軟體測試與開發及電腦相關設備的商品貿易等方面的有關工作。

除考取國內外名牌大學研究生外,主要畢業去向是電腦軟體專業公司﹑信息咨詢公司﹑以及金融等其它獨資、合資企業。

就業前景

中國的軟體行業規模不是很大,有些軟體企業在軟體製作上,也隻是採用了

關鍵設計原則關鍵設計原則

關鍵設計原則

一些軟體工程的思想,距離大規模的工業化大生產比較還是有一定的差距;原因有管理體製的問題,市場問題,政策問題,也有軟體工程理論不全面和不完善的問題。所以軟體工程的研究和套用,以及中國軟體行業的進一步發展,都需要一定的既有軟體工程的理論基礎和研究能力,又有一定的實踐經驗的軟體工程科學技術人員來推動。軟體工程的前途是光明的。

軟體服務外包屬于智力人才密集型現代服務業。大量著名外包企業落戶寧波。主要就業去向包括軟體外包與服務企業、信息產品與服務企業,擔任程式員、軟體測試員、項目經理等工作崗位。

就業崗位

Java方向:JAVA初級程式員、JAVA計算程式員 、 JAVA工程師 、J2EE系統工程師等。

.Net方向: .Net程式員網站開發工程師 .Net工程師等。

其它方向: 簡單的管理信息系統開發和維護人員 、網頁製作和客戶端腳本程式編寫人員 、初級資料庫管理和 維護人員 、資料庫開發工程師 、系統分析設計工程 、軟體項目配置管理員 、文檔編寫工程師。

軟體學院

國家示範性軟體學院

相關詞條

相關搜尋

其它詞條