一、定義 軟件工程一直以來都缺乏一個統(tǒng)一的定義,很多學者、組織機構都分別給出了自己的定義: Boehm:運用現(xiàn)代科學技術知識來設計并構造計算機程序及為開發(fā)、運行和維護這些程序所必需的相關文件資料。
IEEE在軟件工程術語匯編中的定義:軟件工程是:1.將系統(tǒng)化的、嚴格約束的、可量化的方法應用于軟件的開發(fā)、運行和維護,即將工程化應用于軟件;2.在1中所述方法的研究 Fritz Bauer在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。 目前比較認可的一種定義認為:軟件工程是研究和應用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
《計算機科學技術百科全書》中的定義:軟件工程是應用計算機科學、數(shù)學及管理科學等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。
其中,計算機科學、數(shù)學用于構建模型與算法,工程科學用于制定規(guī)范、設計范型(paradigm)、評估成本及確定權衡,管理科學用于計劃、資源、質(zhì)量、成本等管理。 二、軟件工程學的內(nèi)容 軟件工程學的主要內(nèi)容是軟件開發(fā)技術和軟件工程管理. 軟件開發(fā)技術包含軟件工程方法學、軟件工具和軟件開發(fā)環(huán)境;軟件工程管理學包含軟件工程經(jīng)濟學和軟件管理學。
三、軟件工程基本原理 著名軟件工程專家B.Boehm綜合有關專家和學者的意見并總結了多年來開發(fā)軟件的經(jīng)驗,于1983年在一篇論文中提出了軟件工程的七條基本原理。 (1)用分階段的生存周期計劃進行嚴格的管理。
(2)堅持進行階段評審。 (3)實行嚴格的產(chǎn)品控制。
(4)采用現(xiàn)代程序設計技術。 (5)軟件工程結果應能清楚地審查。
(6)開發(fā)小組的人員應該少而精。 (7)承認不斷改進軟件工程實踐的必要性。
B.Boehm指出,遵循前六條基本原理,能夠?qū)崿F(xiàn)軟件的工程化生產(chǎn);按照第七條原理,不僅要積極主動地采納新的軟件技術,而且要注意不斷總結經(jīng)驗。 軟件工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。
(1)軟件工程目標:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達到預期功能的程度。
可用性指軟件基本結構、實現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。
這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。 (2)軟件工程過程:生產(chǎn)一個最終能滿足需求且達到工程目標的軟件產(chǎn)品所需要的步驟。
軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們覆蓋了需求、設計、實現(xiàn)、確認以及維護等活動。
需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。
需求分析生成功能規(guī)約。設計活動一般包括概要設計和詳細設計。
概要設計建立整個軟件系統(tǒng)結構,包括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結構說明及加工描述。
實現(xiàn)活動把設計結果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證最終產(chǎn)品滿足用戶的要求。
維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
(3)軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。 四、軟件工程必須遵循什么原則 圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則: (1)選取適宜的開發(fā)模型 該原則與系統(tǒng)設計有關。
在系統(tǒng)設計中,軟件需求、硬件需求以及其它因素間是相互制約和影響的,經(jīng)常需要權衡。因此,必需認識需求定義的易變性,采用適當?shù)拈_發(fā)模型,保證軟件產(chǎn)品滿足用戶的要求。
(2)采用合適的設計方法 在軟件設計中,通常需要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特征。合適的設計方法有助于這些特征的實現(xiàn),以達到軟件工程的目標。
(3)提供高質(zhì)量的工程支撐 工欲善其事,必先利其器。在軟件工程中,軟件工具與環(huán)境對軟件過程的支持頗為重要。
軟件工程項目的質(zhì)量與開銷直接取決于對軟件工程所提供的支撐質(zhì)量和效用。 (4)重視軟件工程的管理 軟件工程的管理直接影響可用資源的有效利用,生產(chǎn)滿足目標的軟件產(chǎn)品以及提高軟件組織的生產(chǎn)能力等問題。
因此,僅當軟件過程予以有效管理時,才能實現(xiàn)有效的軟件工程。 軟件工程是指導計算機軟件開發(fā)和維護的工程學科。
采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟件工程。 軟件工程強調(diào)使用生存周期方法學和各種結構分析及結構設計技術。
它們是在七十年代為了對付應用軟件日益增長的復雜程度、漫長的開發(fā)周期以及用戶對軟件產(chǎn)品經(jīng)常不滿意的狀況而發(fā)展起來的。人類解決復雜問題時普遍采用的一個策略就是。
計算機導論
內(nèi)容提要:為新學生提供一個關于計算機科學與技術學科的入門介紹,使他們對該學科有一個整體的認識,并了解該專業(yè)的學生應具有的基本知識和技能以及在該領域工作應有的職業(yè)道德與應遵守的法律準則。
數(shù)字電路與數(shù)字邏輯
內(nèi)容提要:介紹數(shù)字邏輯與數(shù)字系統(tǒng)的基本概念、分析方法和設計原理,包括開關理論基礎、組合邏輯、時序邏輯、可編程邏輯器件、數(shù)字系統(tǒng)等。
計算機組成原理與匯編語言
內(nèi)容提要:以馮諾依曼計算機模型為出發(fā)點,介紹計算機的組織結構和工作原理,剖析計算機的運算器、存儲器、控制器和輸入輸出設備的結構、工作原理和相互關系;介紹 80X86指令系統(tǒng)、匯編語言與匯編指令、匯編程序與匯編過程、簡單匯編程序設計、匯編語言與高級語言的接口、宏匯編等。
計算機網(wǎng)絡
內(nèi)容提要:介紹數(shù)據(jù)通信的基本概念和計算機網(wǎng)絡的基本原理,包括計算機網(wǎng)絡的體系結構、數(shù)據(jù)通信的基本方法和協(xié)議、計算機網(wǎng)絡的主要應用協(xié)議;同時介紹計算機網(wǎng)絡系統(tǒng)的安全和管理知識,使學生對數(shù)據(jù)通信和計算機網(wǎng)絡有一個全面理解。
計算機體系結構
內(nèi)容提要:研究計算機系統(tǒng)結構的基本概念、基本原理、基本結構和基本分析方法,使同學在具有一定的軟硬件知識基礎上能綜合認識計算機系統(tǒng)的軟硬件功能分配與各種不同結構類型機器的特性和性能評價方法。為研究、開發(fā)、應用高級計算機系統(tǒng)打下基礎。確立全面、系統(tǒng)的觀點和學會定量分析問題的方法。
離散數(shù)學
內(nèi)容提要:包括集合論、數(shù)理邏輯、圖論、組合數(shù)學等內(nèi)容,形式化的數(shù)學證明貫穿此課程。
高級程序設計語言
內(nèi)容提要:分別以 C、C#或JAVA為例,介紹程序設計和語言,程序的基本數(shù)據(jù)結構、類型定義、簡單類型和結構化類型、程序的基本控制結構、結構化程序設計、面向?qū)ο蟮某绦蛟O計等。
算法分析與設計
內(nèi)容提要: 本課程延續(xù)數(shù)據(jù)結構課程的學習,從算法分析和設計的角度出發(fā),除去傳統(tǒng)的分類查找算法和一般的設計方法外,主要內(nèi)容包括如下幾個部分:算法研究的理論基礎,遞歸分析技術,基本算法設計策略(幾類經(jīng)典算法學習), 多項式運算與 FFT ,串匹配,概率分析算法。 希望通過這一課程的學習,使學生能對現(xiàn)代的算法設計及分析的基本工具能有較全面的掌握。
數(shù)據(jù)結構
內(nèi)容提要:介紹線性表及其鏈接存儲結構與算法、數(shù)組與矩陣、堆棧與隊列、廣義表的存儲結構與多元多項式表示、串與文本編輯、排序、樹、圖、文件結構。
數(shù)據(jù)庫系統(tǒng)原理
內(nèi)容提要:介紹數(shù)據(jù)庫系統(tǒng)的基本概念、原理、方法及應用,主要包括數(shù)據(jù)庫系統(tǒng)概論、數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)技術、數(shù)據(jù)庫存儲結構及其他類型的數(shù)據(jù)庫系統(tǒng)。
編譯技術
內(nèi)容提要:介紹編譯原理的理論和實踐,包括編譯程序設計、詞法分析、語法分析、符號表、聲明和存儲管理、代碼生成以及優(yōu)化技術。
操作系統(tǒng)
內(nèi)容提要:介紹操作系統(tǒng)的設計與實現(xiàn),包括操作系統(tǒng)各組成部分的概述、互斥性和同步性、處理器實現(xiàn)、調(diào)度算法、存儲算法、設備管理和文件系統(tǒng)。
軟件工程師需要學習以下知識:
(1) 熟悉計算機系統(tǒng)的基礎知識;
(2) 熟悉網(wǎng)絡操作系統(tǒng)的基礎知識;
(3) 理解計算機應用系統(tǒng)的設計和開發(fā)方法;
(4) 熟悉數(shù)據(jù)通信的基礎知識;
(5) 熟悉系統(tǒng)安全和數(shù)據(jù)安全的基礎知識;
(6) 掌握網(wǎng)絡安全的基本技術和主要的安全協(xié)議與安全系統(tǒng);
(7) 掌握計算機網(wǎng)絡體系結構和網(wǎng)絡協(xié)議的基本原理;
(8) 掌握計算機網(wǎng)絡有關的標準化知識;
(9) 掌握局域網(wǎng)組網(wǎng)技術,理解城域網(wǎng)和廣域網(wǎng)基本技術;
(10) 掌握計算機網(wǎng)絡互聯(lián)技術;
(11) 掌握TCP/IP協(xié)議網(wǎng)絡的聯(lián)網(wǎng)方法和網(wǎng)絡應用服務技術;
(12) 理解接入網(wǎng)與接入技術;
(13) 掌握網(wǎng)絡管理的基本原理和操作方法;
(14) 熟悉網(wǎng)絡系統(tǒng)的基本性能測試和優(yōu)化技術,以及可靠性設計技術;
(15) 理解網(wǎng)絡應用的基本原理和技術;
(16) 理解網(wǎng)絡新技術及其發(fā)展趨勢;
(17) 了解有關知識產(chǎn)權和互聯(lián)網(wǎng)的法律、法規(guī);
(18) 正確閱讀和理解本領域的英文資料。
如果本科的軟件工程是注重學習理論吧,本科都這樣。
拿自己來說吧。
我現(xiàn)在就是讀軟件工程的大二學生,而且是學校開設的省級示范軟件學院的軟件工程。
每個學期學一門編程語言,然后下一個學期或者期求就會開設實踐課程要求你做一個使用該語言開發(fā)的軟件。
而除了開發(fā)語言,輔助理論知識是計算機組成原理,計算機網(wǎng)絡,操作系統(tǒng),數(shù)據(jù)庫之類的通通要學。
因為軟件工程屬于理科類,所以理工科要學的高等數(shù)學,線性代數(shù),離散結構,概率論之類的也一概要學。
如果你對編程語言真的有興趣的話,學起來是很簡單的。每一門課之間的關聯(lián)也很大。非常容易上手。
個人來說學習還是蠻輕松的啦。
下面給你看一下我們專業(yè)的方向介紹哦。
專業(yè)培養(yǎng)目標:軟件工程專業(yè)推行較高層次、實用型、復合式的工程科學技術教育,強調(diào)人才培養(yǎng)的實用性和專業(yè)性,培養(yǎng)具有良好的綜合素質(zhì)、良好的職業(yè)道德、扎實的軟件理論和軟件工程專業(yè)基礎知識,并且具有良好的軟件設計與實現(xiàn)能力、良好的項目管理能力、良好的交流與組織協(xié)調(diào)能力、較強的參與國際競爭能力和創(chuàng)新能力的計算機軟件專業(yè)人才。
業(yè)務培養(yǎng)要求:本專業(yè)學生主要學習計算機科學、軟件理論和軟件工程專業(yè)方面的基本知識,接受科學思維和科學實驗的基本訓練;系統(tǒng)地學習最新的軟件思想和軟件開發(fā)技術;以實用型工程能力為培養(yǎng)導向,理論學習與實踐緊密結合,加強英語水平、交流能力、團隊精神和創(chuàng)新意識的培養(yǎng),通過案例教學和實習使學生掌握軟件開發(fā)技能和軟件組織方法。
畢業(yè)后適合于到在科研部門、教育部門、企事業(yè)、技術和行政管理部門等單位能夠從事計算機軟件領域的科學研究、技術開發(fā)、教學及管理等工作。也可以繼續(xù)攻讀計算機科學與技術、軟件工程或相關技術學科、交叉學科的碩士學位。
畢業(yè)生應獲得以下幾方面的知識和能力:
1.掌握計算機科學、計算機軟件和軟件工程等方面的基本理論和基本知識。
2.掌握最新的軟件思想和軟件開發(fā)技術。
3.具有良好的軟件設計與實現(xiàn)能力。
4.具有一定的項目管理能力、良好的交流與組織協(xié)調(diào)能力。
5.得到科學研究的訓練,初步掌握科學研究的基本方法。
6.熟練掌握一門外語。能獲取信息和應用信息。
學位主干課程:離散數(shù)學、數(shù)據(jù)結構、數(shù)字電路與邏輯設計、高級語言程序設計、操作系統(tǒng)、計算機網(wǎng)絡、數(shù)據(jù)庫系統(tǒng)、面向?qū)ο蟮某绦蛟O計、軟件工程、軟件體系結構、面向?qū)ο蟮姆治雠c設計、軟件需求分析、軟件質(zhì)量保證與測試、軟件設計實例分析、軟件項目管理等。
主要實踐性教學環(huán)節(jié):教學實習,課程設計,畢業(yè)實習,課外創(chuàng)新訓練與社會實踐。
主要專業(yè)實驗:專業(yè)主干課程均安排實驗,部分安排課程設計。
從0開始如何自學軟件工程師?現(xiàn)在各行各業(yè)都需要用到電腦軟件輔助工作,所以技術好的軟件工程師的就業(yè)前景是很好的。
自學軟件工程師不是說不能學會,而是比較難,而且要求自學者有足夠的自制力,肯自己用心專鉆研。 還有就是,學的時候沒老師教,很多問題都要自己去摸索答案,學習會事倍功半,學習時間也會長很多的;而你自己學的將來找工作也不知有沒有用,有沒有企業(yè)需要你的技術。
從0開始如何自學軟件工程師?目前軟件工程師這個職位還是不錯的,最一般的軟件工程師也都能拿到7000-8000 如果好一點的上萬是肯定沒問題的,面對這么高薪的職位?而且又不想去培訓學校,如何學呢? 從0開始如何自學軟件工程師?先買本最基本的書先啃啃吧 .NET C# 語言, 圖書館里好像就有這本書《.NET從新手到入門》還是很不錯的,建議你多看看,因為軟件工程師主要是語言,開發(fā)模式,先把這個弄懂了就好說了,把思路搞清了,如果買了書還是看不明白,那是很正常的,呵呵,不過不要急,我這又好辦法,現(xiàn)在很多大網(wǎng)站上面都有他們寫過的軟件源碼,你可以把它們下載下來,看清他們用什么語言寫的,然后根據(jù)他們的語言下載這個語言的平臺,然后模仿他們的代碼自己寫一份出來,在根據(jù)查看書籍,以及問朋友等,你就會明白這里奧秘了,軟件工程師就是對于數(shù)據(jù)庫的增刪改查,或別的等等一些功能,來編寫不用的語言代碼,這個道理很簡單,不過要學起來還要看你自己勤學苦練,不管學什么也好,要有恒心,還要喜歡這行,還要勤學苦練,準能成功。 從0開始如何自學軟件工程師?1.確定目標:自己適不適合干這行,自己是否有恒心,勤學苦練。
2.買最基本的書籍入門,先掌握最基本知識。3.上網(wǎng)和網(wǎng)友們一起研究,找源代碼記錄下來,根據(jù)他們的代碼模仿一份。
4.多實踐,多用功。呵呵,祝你早日成功。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據(jù)《信息網(wǎng)絡傳播權保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.686秒