Ⅰ 相關的軟體工程國家標准把軟體生存周期劃分為8個階段,是那8個階段
軟體工程
軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:
Boehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
IEEE:軟體工程是開發、運行、維護和修復軟體的系統方法。
Fritz Bauer:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。
軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。
(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。
軟體工程必須遵循什麼原則
圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:
(1)選取適宜的開發模型
該原則與系統設計有關。在系統設計中,軟體需求、硬體需求以及其它因素間是相互制約和影響的,經常需要權衡。因此,必需認識需求定義的易變性,採用適當的開發模型,保證軟體產品滿足用戶的要求。
(2)採用合適的設計方法
在軟體設計中,通常需要考慮軟體的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。
(3)提供高質量的工程支撐
工欲善其事,必先利其器。在軟體工程中,軟體工具與環境對軟體過程的支持頗為重要。軟體工程項目的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。
(4)重視軟體工程的管理
軟體工程的管理直接影響可用資源的有效利用,生產滿足目標的軟體產品以及提高軟體組織的生產能力等問題。因此,僅當軟體過程予以有效管理時,才能實現有效的軟體工程。
軟體工程是指導計算機軟體開發和維護的工程學科。
採用工程的概念、原理、 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟體工程。
軟體工程強調使用生存周期方法學和各種結構分析及結構設計技術。它們是
在七十年代為了對付應用軟體日益增長的復雜程度、漫長的開發周期以及用戶對
軟體產品經常不滿意的狀況而發展起來的。人類解決復雜問題時普遍採用的一個策
略就是「各個擊破」,也就是對問題進行分解然後再分別解決各個子問題的策略
。軟體工程採用的生存周期方法學就是從時間角度對軟體開發和維護的復雜問題
進行分解,把軟體生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立
的任務,然後逐步完成每個階段的任務。採用軟體工程方法論開發軟體的時候,
從對任務的抽象邏輯分析開始,一個階段一個階段地進行開發。前一個階段任務
的完成是開始進行後一個階段工作的前提和基礎,而後一階段任務的完成通常是
使前一階段提出的解法更進一步具體化,加進了更多的物理細節。每一個階段的開
始和結束都有嚴格標准,對於任何兩個相鄰的階段而言,前一階段的結束標准就
是後一階段的開始標准。在每一個階段結束之前都必須進行正式嚴格的技術審查
和管理復審,從技術和管理兩方面對這個階段的開發成果進行檢查,通過之後這
個階段才算結束;如果檢查通不過,則必須進行必要的返工,並且返工後還要再
經過審查。審查的一條主要標准就是每個階段都應該交出「最新式的」(即和所
開發的軟體完全一致的)高質量的文檔資料,從而保證在軟體開發工程結束時有
一個完整准確的軟體配置交付使用。文檔是通信的工具,它們清楚准確地說明了
到這個時候為止,關於該項工程已經知道了什麼,同時確立了下一步工作的基礎
。此外,文檔也起備忘錄的作用,如果文檔不完整,那麼一定是某些工作忘記做
了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節。在完成生存周
期每個階段的任務時,應該採用適合該階段任務特點的系統化的技術方法——結
構分析或結構設計技術。
把軟體生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡
單,便於不同人員分工協作,從而降低了整個軟體開發工程的困難程度;在軟體
生存周期的每個階段都採用科學的管理技術和良好的技術方法,而且在每個階段
結束之前都從技術和管理兩個角度進行嚴格的審查,合格之後才開始下一階段的
工作,這就使軟體開發工程的全過程以一種有條不紊的方式進行,保證了軟體的
質量,特別是提高了軟體的可維護性。總之,採用軟體工程方法論可以大大提高
軟體開發的成功率,軟體開發的生產率也能明顯提高。
目前劃分軟體生存周期階段的方法有許多種,軟體規模、種類、開發方式、
開發環境以及開發時使用的方法論都影響軟體生存周期階段的劃分。在劃分軟體
生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間盡可能相
對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程
度,簡化不同階段之間的聯系,有利於軟體開發工程的組織管理。一般說來,軟
件生存周期由軟體定義、軟體開發和軟體維護三個時期組成,每個時期又進一步
劃分成若干個階段。下面的論述主要針對應用軟體,對系統軟體也基本適用。
軟體定義時期的任務是確定軟體開發工程必須完成的總目標;確定工程的可行
性,導出實現工程目標應該採用的策略及系統必須完成的功能;估計完成該項工程
需要的資源和成本,並且制定工程進度表。這個時期的工作通常又稱為系統分析
,由系統分析員負責完成。軟體定義時期通常進一步劃分成三個階段,即問題定
義、可行性研究和需求分析。
開發時期具體設計和實現在前一個時期定義的軟體,它通常由下述四個階段組
成:總體設計,詳細設計,編碼和單元測試,綜合測試。
維護時期的主要任務是使軟體持久地滿足用戶的需要。具體地說,當軟體在
使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟體以適應新的環境
;當用戶有新要求時應該及時改進軟體滿足用戶的新需要。通常對維護時期不再
進一步劃分階段,但是每一次維護活動本質上都是一次壓縮和簡化了的定義和開
發過程。
下面扼要介紹軟體生存周期每個階段的基本任務和結束標准。
1問題定義
問題定義階段必須回答的關鍵問題:「要解決的問題是什麼?」如果不知道
問題是什麼就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最
終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的
,但是在實踐中它卻可能是最容易被忽視的一個步驟。
通過問題定義階段的工作,系統分析員應該提出關於問題性質、工程目標和
規模的書面報告。通過對系統的實際用戶和使用部門負責人的訪問調查,分析員
扼要地寫出他對問題的理解,並在用戶和使用部門負責人的會議上認真討論這份
書面報告,澄清含糊不精的地方,改正理解不正確的地方,最後得出一份雙方都
滿意的文檔。
問題定義階段是軟體生存周期中最簡短的階段,一般只需要一天甚至更少的
時間。
2可行性研究
這個階段要回答的關鍵問題:「對於上一個階段所確定的問題有行得通的解
決辦法嗎?」為了回答這個問題,系統分析員需要進行一次大大壓縮和簡化了的
系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。
可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范
圍,探索這個問題是否值得去解,是否有可行的解決辦法。
在問題定義階段提出的對工程目標和規模的報告通常比較含糊。可行性研究
階段應該導出系統的高層邏輯模型(通常用數據流圖表示),並且在此基礎上更
准確、更具體地確定工程規模和目標。然後分析員更准確地估計系統的成本和效
益,對建議的系統進行仔細的成本/效益分析是這個階段的主要任務之一。
可行性研究的結果是使用部門負責人做出是否繼續進行這項工程的決定的
重要依據,一般說來,只有投資可能取得較大效益的那些工程項目才值得繼續進
行下去。可行性研究以後的那些階段將需要投入要多的人力物力。及時中止不值
得投資的工程項目,可以避免更大的浪費。
3需求分析
這個階段的任務仍然不是具體地解決問題,而是准確地確定「為了解決這個問題,
目標系統必須做什麼」,主要是確定目標系統必須具備哪些功能。
用戶了解他們所面對的問題,知道必須做什麼,但是通常不能完整准確地表
達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道
怎樣使用軟體實現人們的要求,但是對特定用戶的具體要求並不完全清楚。因此系統
分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確
認的系統邏輯模型。通常用數據流圖、數據字典和簡要的演算法描述表示系統的邏
輯模型。
在需求分析階段確定的系統邏輯模型是以後設計和實現目標系統的基礎,因
此必須准確完整地體現用戶的要求。系統分析員通常都是計算機軟體專家,技術
專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序設計的
細節,就會脫離用戶,使他們不能繼續提出他們的要求和建議。較件工程使用的結
構分析設計的方法為每個階段都規定了特定的結束標准,需求分析階段必須提供完
整准確的系統邏輯模型,經過用戶確認之後才能進入下一個階段,這就可以有
效地防止和克服急於著手進行具體設計的傾向。
4總體設計
這個階段必須回答的關鍵問題是:「概括地說,應該如何解決這個問題?」
首先,應該考慮幾種可能的解決方案。列如,目標系統的一些主要功能是用
計算機自動完成還是用人工完成;如果使用計算機,那麼是使用批處理方式還是
人機交互方式;信息存儲使用傳統的文件系統還是資料庫……。通常至少應該考慮
下述幾類可能的方案:
低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工
作。
中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用
起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒
有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的
能力在實踐中將證明是很有價值的。
高成本的「十全十美」的系統。這樣的系統具有用戶可能希望有的所有功
能和特點。
系統分析員應該使用系統流程圖或其他工具描述每種可能的系統,估計每種
方案的成本和效益,還應該在充分權衡各種方案的利弊的∩希萍鮃桓黿蝦?nbsp;
的系統(最佳方案),並且制定實現所推薦的系統的詳細計劃。如果用戶接受分
析員推薦的系統,則可以著手完成本階段的另一項主要工作。
上面的工作確定了解決問題的策略以及目標系統需要哪些程序,但是,怎樣設
計這些程序呢?結構設計的一條基本原理就是程序應該模塊化,也就是一個大程
序應該由許多規模適中的模塊按合理的層次結構組織而成。總體設計階段的第二
項主要任務就是設計軟體的結構,也就是確定程序由哪些模塊組成以及模塊間的
關系。通常用層次圖或結構圖描繪軟體的結構。
5詳細設計
總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計階段
的任務就是把解法具體化,也就是回答下面這個關鍵問題:「應該怎樣具體地實現這
個系統呢?」
這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規
格說明的作用很類似於其他工程領域中工程師經常使用的工程藍圖,它們應該
包含必要的細節,程序員可以根據它們寫出實際的程序代碼。
通常用HIPO圖(層次圖加輸入/處理/輸出圖)或PDL語言(過程設計語言
)描述詳細設計的結果。
6編碼和單元測試
這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。
程序員應該根據目標系統的性質和實際環境,選取一種適當的高級程序設計
語言(必要時用匯編語言),把說細設計的結果翻譯成用選定的語言書寫的程序
,並且仔細測試編寫出的每一個模塊。
7綜合測試
這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟體達到預定
的要求。
最基本的測試是集成測試和驗收測試。所謂集成測試是根據設計的軟體結構
,把經過單元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程
序進行必要的測試。所謂驗收測試則是按照規格說明書的規定(通常在需求分析
階段確定),由用戶(或在用戶積極參加下)對目標系統進行驗收。
必要時還可以再通過現場測試或平行運行等方法對目標系統進一步測試檢驗。
為了使用戶能夠積極參加驗收測試,並且在系統投入生產性運行以後能夠正確
有效地使用這個系統,通常需要以正式的或非正式的方式對用戶進行培訓。
通過對軟體測試結果的分析可以預測軟體的可靠性;反之,根據對軟體可靠
性的要求也可以決定測試和調試過程什麼時候可以結束。
應該用正式的文檔資料把測試計劃、詳細測試方案以及實際測試結果保存下
來,做為軟體配置的一個組成成分。
8軟體維護
維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的
需要。
通常有四類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的
軟體錯誤;適應性維護,即修改軟體以適應環境的變化;完善性維護,
即根據用戶的要求改進或擴充軟體使它更完善;預防性維護,即修改軟體為將來
的維護活動預先做准備。
雖然沒有把維護階段進一步劃分成更小的階段,但是實際上每一項維護活動
都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出
維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,
復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開
發的全過程。
都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出
維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,
復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開
發的全過程。
參考資料:"
還不錯,希望你採納。
Ⅱ 武漢大學軟體工程國家重點實驗室研究生
參考武漢大學計算機學院即可! 一般招生人數為40.
比考武漢大學計算機學院簡單,我可以負責任的告訴你。
我本科武大計算機學院,研究生軟工所。
Ⅲ 國家重點軟體工程,以後有沒有可能乘著年輕買個mini cooper s
什麼什麼啊,年輕買mini cooper s算不了啥,要想著老了還能買得起勞斯萊斯就算你厲害。
Ⅳ 國家工信部有「高級軟體工程師」這一證書嗎
有這一證書。
高級軟體工程師:中國的IT行業的就業形勢一直呈上升趨勢,中國軟體市場保持穩定增長,2009年已達62.3億美元,市場增長潛力巨大。在技術領域,高級軟體工程師也一直是各個公司極為需要的。
軟體工程師有:高級軟體工程師、軟體工程師、助理軟體工程師、軟體技術員。
軟體工程師的四個步驟,如同金字塔一般,越是對技術要求高,人也就越少,當然,待遇各方面都會越好,但是責任與工作任務會越大。其實越往高,技術,能力,各方面要求全部會相應提高。
工作職責:在目前很多國內軟體企業中,如果你是「高級軟體工程師」,那麼從需求分析,設計,開發,測試,甚至到客戶這一條龍都可能由一個人來負責。
Ⅳ 軟體工程是沈陽化工大學國家重點學科嗎
沈陽化工大學沒有國家級重點學科,當然軟體工程就不是了。東北大學的軟體工程比較好
Ⅵ 2011年怎麼考到武漢大學軟體工程國家重點實驗室
現在軟工所已經合並到計算機學院了,所以報考的時候只有報計算機學院既可以了,考上之後可以選軟工所的老師做你的導師。
Ⅶ 軟體工程屬於東南大學的國家重點學科嗎
東南大學的軟體工程不是國家重點學科,但是東南大學軟體學院是國家重點軟體基地。
計算機應用技術是計算機科學與技術這個一級學科下屬的二級學科,東大計算機一級學科里,就這個計算機應用技術是國家重點學科。
Ⅷ 國內軟體工程專業最好的高校
哈工大不錯
哈爾濱工業大學(Harbin Institute of Technology,HIT)是國家重點支持的九所高校之一,於1956年在我國最早成立了計算機專業,擁有一流的計算機科學與技術學科,有一支實力雄厚的師資隊伍,為創辦一流軟體學院奠定了堅實基礎。作為國家示範性軟體學院之一,哈工大軟體學院面向軟體產業需求,充分利用哈工大的綜合資源,秉承「規格嚴格,功夫到家」的優良傳統,依託計算機學科的綜合優勢,堅持「國際化,工業化,高質量,高速度」的辦學理念,本著「高起點,高標准,高質量」的原則,「求實創新,探索進取」,創辦一流的軟體學院,營造一流的辦學環境,建設一流的工業化師資隊伍,培育一流的軟體產業人才。
哈工大軟體學院依託學校綜合優勢,面向軟體產業人才需求,積極開展與歐美著名企業和高校合作;依託哈工大深圳國際技術創新研究院的資源優勢和與香港的合作基礎,面向珠江三角洲和粵港的軟體產業人才需求辦學;同時利用哈工大威海分校的教育資源和與日韓的合作基礎,面向環渤海經濟圈、膠東半島日韓在華軟體產業對人才的需求,分別成立了軟體學院深圳分院和威海分院,形成了以哈爾濱為本部,輻射深圳,拓展威海的各具特色、互為補充的軟體產業人才培養體系的戰略布局。
哈工大軟體學院與愛爾蘭都柏林工業大學(Dublin Institute of Technology,DIT)建立了深入、穩定的合作關系,進行了學士學位聯合培養、引進愛爾蘭工業化先進辦學理念和教育體系以及質量保證體系、教師培訓、聘請師資、派遣學生等全方位合作,還成功地獲得歐盟「Asia-link」計劃軟體工業化教育項目EMERSION的支持。與英國伯明翰大學、法國波爾多第一大學的聯合碩士學位辦學項目今年9月將全面啟動。另外還與美國卡內基-梅隆大學、華盛頓大學、英國伍爾福漢普頓大學、韓國漢陽大學等多所國際知名大學在課程體系建設、教師培訓、聘請教師講學、課件引進等方面進行了合作。每年都有來自美國、加拿大、英國、愛爾蘭、澳大利亞、日本、韓國等10多個國家或地區的大學教師和工業界專家來軟體學院授課,大多數課程採用外語教材和雙語授課,已形成了培養具有國際競爭能力人才的國際化辦學氛圍。由軟體學院發起並主辦了兩屆中歐軟體工業人才教育國際研討會,在國內外軟體工業人才教育界產生了很大影響,提升了軟體學院國際化辦學知名度。
哈工大軟體學院與國內著名IT企業建立了長期合作關系,把校企合作引入軟體產業人才培養的全過程,形成特色鮮明的工業化實踐教育體系。軟體學院成立了實驗中心,設軟體、開放、網路工程和硬體4個實驗室;與企業合作成立了3個校內實習基地、3個聯合實驗室、26個校外工業實習基地,另有40餘家企業實際接收軟體學院的學生實習;成立了6個工業化特色鮮明的學生俱樂部,創建了企業家論壇系列活動,營造了良好的工業化辦學氛圍;成立了國際IT技術認證培訓中心,使學生們在校期間獲得更多的技術認證,達到「多證多能」,滿足企業的多種需求,增強畢業生就業競爭力。學院已成功地主辦了三次校企合作高峰會,與IT企業共同探索校企合作方式、培養體系和教學計劃,增強了企業參與辦學的意識。校企合作在工業化軟體人才培養上發揮了積極的作用,為全面打造高質量工業化軟體產業人才創造了優良的環境。
先進的工業化辦學理念、國際化的氛圍、優勢的環境、一流的師資為軟體學院的進一步發展打下了良好的基礎。軟體學院現有專職教師28人,校內外兼職教師100餘人。軟體學院每年招收本科生235人(含HIT-DIT聯合培養班50人),招收軟體工程碩士研究生300人(含深圳、威海)。
軟體學院現有本科生1018人,碩士研究生627人,在校生共計1645人。哈工大軟體學院已向企業輸送了442名本科生畢業生,251名軟體工程碩士
Ⅸ 北京理工的計算機博士和武漢大學的軟體工程國家重點實驗室博士哪個更好一點
如果拼學術水平 毫無疑問 選武漢大學,如果是拼地理優勢 當然是北理工。我覺得看你的發展,如果你想回濟南就選武漢大學讀 反正要回,如果選北京就留下來發展,北京還是有著它的首都魅力的。
-——————————————————————————————————日後如果出國就選擇武漢大學,如果不回濟南在北京發展是非常好的選擇,就選北理工!!!
Ⅹ 在哪些大學把計算機專業作為國家級重點學科建設的
一級學科國家重點學科——計算機科學與技術
北京大學
清華大學,北京協和醫學院―清華大學醫學部
南京大學
北京航空航天大學
哈爾濱工業大學
上海交通大學
國防科學技術大學
清華大學:體系結構和智能工程方面。學校有《計算機系統結構》和《模式識別與智能
系統》兩個國家級重點學科。(後者屬自動化一級學科)
北京大學:軟體和應用兩個方向可謂全國第一,有王選院士和楊芙清院士坐鎮。擁有「
視覺聽覺信息處理」和「文字信息處理」國家級重點實驗室(國內首開Case先河的青鳥
系統出於此)想必方正軟體和北大青鳥大家都如雷灌耳吧!
南京大學:擁有軟體專業的國家級重點學科和計算機軟體新技術國家級重點實驗室。學
校的軟體專業甚至涉足操作系統軟體的開發研究。
浙江大學:擁有CAD/CG(計算機圖形學和計算機輔助設計)國家級重點實驗室。
哈爾濱工業大學:擁有全國唯一的計算機應用專業的國家級重點學科。學校智能機器人
是相當有名的。
東北大學:擁有軟體工程國家級工程研究中心。朋友們聽說過東大阿爾派軟體嗎?水平
可見一斑。資料庫技術也是該小的強項。
國防科技大學:擁有系統機構專業的國家級重點學科。銀河系列大型機也許正是我們選
擇國防科大最充分的理由。
西北電子科技大學:擁有ISN(綜合業務網)的國家級重點實驗室,信號處理專業力量很
強,如密碼學等。
吉林大學:擁有計算機軟體的國家級重點學科。
上海交通大學:擁有模式識別和智能系統的國家級重點學科。