1. 軟體工程的三大要素
軟體工程包括三個要素:方法、工具和過程。
軟體工程方法為軟體開發提供了「如何做」的技術。它包括了多方面的任務,如項目計劃與估算、軟體系統需求分析、數據結構、系統總體結構的設計、演算法過程的設計、編碼、測試以及維護等。
軟體工具為軟體工程方法提供了自動的或半自動的軟體支撐環境。目前,已經推出了許多軟體工具,這些軟體工具集成起來,建立起稱之為計算機輔助軟體工程(CASE)的軟體開發支撐系統。CASE將各種軟體工具、開發機器和一個存放開發過程信息的工程資料庫組合起來形成一個軟體工程環境。
軟體工程的過程則是將軟體工程的方法和工具綜合起來以達到合理、及時地進行計算機軟體開發的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質量和協調變化所需要的管理、及軟體開發各個階段完成的里程碑。
軟體工程是一種層次化的技術。任何工程方法(包括軟體工程)必須以有組織的質量保證為基礎。全面的質量管理和類似的理念刺激了不斷的過程改進,正是這種改進導致了更加成熟的軟體工程方法的不斷出現。支持軟體工程的根基就在於對質量的關注。 ...
2. 軟體的特徵
軟體的特點:
1 是一種邏輯產品,與物質產品有很大的區別。
2 軟體產品的生產主要是研製,生產成本主要在開發和研製,開發研製完成後,通過復制就產生了大量軟體產品。
3 軟體產品不會用壞,不存在磨損,消耗。
4 生產主要是腦力勞動,還末完全擺脫手工開發方式,大部分產品是"定做"的。
5 開發軟體的費用不斷增加,致使生產成本相當昂貴
按軟體的功能劃分-
系統軟體:能與計算機硬體緊密配合在一起,使計算機系統各個部件、相關的軟體和數據協調、高效率地工作的軟體。如操作系統、資料庫管理系統、設備驅動程序以及通信處理程序等。系統軟體是計算機系統中必不可少的一個組成部分。
應用軟體:是在特定的領域內開發,為特定目的服務的一類軟體。如,CAD-CAM 計算機輔助製造-CAI 計算機輔助教學, 專家系統,模式識別,剎車系統
支撐軟體:是協助用戶開發軟體的工具性軟體,其中包括幫助程序人員開發軟體產品的工具,也包括幫助管理人員控制開發的進程的工具。
按規模劃分:
1、微型--只有一個人,甚至是半時,在幾天之內完成的軟體。寫出的程序不到500行語句。
2、小型--一個人半年之內完成的2千行以內的程序。例如,數值計算問題或是數據處理問題就是這種規模的課題。這種程序通常沒有與其他程序的介面。
如,有求伯君開發最初的 WPS,單獨完成BASIC 的比爾.蓋茨。
3、中型--5人以內在一年多時間里完成的5千到5萬行的程序。這種課題開始出現了軟體人員之間,軟體人員與用戶之間的聯系、協調和配合關系的問題。
4、大型--5人至10人在兩年多的時間里完成5萬行到10萬行的程序。例如編譯程序、小型分時系統、應用軟體包、實時控制系統等很可能都是這種軟體。
5、甚大型-100人至1000人參加
6、極大型--2000-5000人參加,如,微軟的windows 2000項目就包含了近3000名工程師,他們被分成幾百個小的團隊。
按開發分---軟體產品和軟體項目
軟體產品---指的是不局限於特定領域的、可以被廣大用戶直接使用的軟體系統。如微軟的 Windows,Office等。這類系統的特點是技術含量高,開發時要考到各種不同的用戶需求;
軟體項目--也稱定製軟體,是受某個特定客戶(或少數客戶)的委託,由一個或多個軟體開發機構在合同的約如我們常說的管理信息系統(MIS)和電子商務系統。這類軟體的特點是領域知識所佔的比重較大,相對技術而言工程性更強。例如,軍用防空指揮系統、衛星控制系統等均為這類軟體。
針對這兩種不同類型的軟體,應該有不同的軟體開發方法去指導項目開發過程。
軟體項目的開發,目前比較成熟的軟體開發方法有軟體成熟度模型(CMM)。 這種軟體開發模型試圖將整個軟體開發過程規范化和量化,直到可以對軟體開發過程進行定量的控制和優化。
軟體產品的開發,像微軟公司積累了許多成功的經驗。
軟體生產的發展:
1 程序設計時代:這個階段生產方式是個體勞動,生產工具是機器語言,匯編語言。(1946-1956年)
2 程序系統時代:這個階段生產方式是小集團合作生產,生產工具是高級語言,開發方法仍依靠個人技巧,但開始提出結構化方法。(1956-1968年)
3 軟體工程時代:這個階段生產方式是工程化的生產,使用資料庫,開發工具,開發環境,網路,分布式面向對象技術來開發軟體。(1968年至今)
軟體危機: 軟體開發技術的進步未能滿足發展的要求。在軟體開發中遇到的問題找不到解決的辦法,問題積累起來,形態尖銳的矛盾,導致了軟體危機。
軟體危機的表現:
1 經費預算經常突破,完成時間一再拖延。
2 開發的軟體不能滿足用戶要求。
3 開發的軟體可維護性差。
4 開發的軟體可靠性差。
軟體危機產生原因:
1 軟體規模越來越大,結構越來越復雜。
2 軟體開發管理困難而復雜。
3 軟體開發費用不斷增加。
4 軟體開發技術落後。
5 生產方式落後,仍採用手工方式。
6 開發工具落後,生產率提高緩慢。
軟體工程:用科學的知識和技術原理來定義,開發,維護軟體的一門學科。
用工程科學的觀點進行費用估算,制定進度,制定計劃和方案。
用管理科學的方法和原理進行生產的管理。
用數學的方法建立軟體開發中的各種模型和演算法。
那麼為達到軟體優質高產這個目標,從技術到管理做了大量的努力,從而逐漸已形成了"軟體工程學"這一新學科。
它包含以下主要內容:
1、軟體開發方法:軟體工程的方法提供了建造軟體在技術上需要"如何做"。 方法涵蓋了一系列的任務:需求分析、設計、編程、測試和維護。
是在60年代後期才逐步形成了一種軟體開發方法,在不同的軟體開發階段對應有不同的方法,例如在軟體的設計階段有"結構化分析與設計"方法,在軟體測試階段有"黑盒"與"白盒"測試技術,等等。
象目前又有一種更新的技術"面向對象的程序設計方法"。在這一方法中,數據和數據的操作是被封閉在一個個稱為"對象(Object) "的統一體中,對象之間則是通過"消息"(message")進行相互聯系的。
從而使由軟體所描述的系統與客觀世界的系統在結構上十分相似,不僅提高了軟體的可修改性與可維護性,同時也提高了軟體的可重用性,那麼這些都是工程多年來所追求的目標。從結構程序設計到面向對象程序設計,是程序設計方法的又一次飛躍。
2、軟體工具:所謂工具,在這里泛指是開發一切幫助開發軟體的軟體。為了提高軟體設計的質量和生產效率,現已經發展了許多的幫助開發和維護軟體的軟體 。例如,我們要用某種語言來開發一個應用軟體,這就要涉及到 "編輯程序、編譯程序、連接程序等,另外在軟體測試階段還要用到 "測試數據產生器、排錯程序、跟蹤程序、靜態分析工具和覆蓋監視工具等。也就是說在不同的時期要用到不同的軟體開發工具。目前,軟體工具發展迅速,許多用於軟體分析和設計的工具正在建立,其目標 就是要實現軟體生產自動化。
3、軟體工程環境:軟體方法和工具是軟體開發的兩大支柱,她們之間密切相關。軟體方法提出了明確的工作步驟和標準的文檔格式,這是設計軟體工具的基礎,而軟體工具的實現又將促進軟體方法的推廣和發展。
"環境"一詞,對不同用戶有著不同的含義。對最終用戶(end user)而言,環境就是他們運行程序所使用的計算機系統。這類用戶對環境的要求,主要是運行可靠,操作方便,容易學習和使用。而對於軟體開發人員來說,則就不同了,可以說環境就是他們進行軟體開發活動動的舞台。(例如,Algo-60,或者 資料管理系統(DbaseII DbaseIII),例如界面只能採用菜單來完成各種功能)
象現在生產資料庫管理的軟體的環境有:大型資料庫軟體 Sybase ,還有能幫助進行程序設計的 PB 軟體)
4、軟體工程管理學:大家知道,對於一個企業來說,如果只有先進的設備和技術,而沒有完善的管理,是不可能獲得應有的經濟效益的(例如海爾的海爾文化就是企業管理的象徵),(例如微軟企業文化宗旨的一句話)
軟體生產也是一樣的,如果管理不善,是不可能高質量、按時完成任務的。
"軟體工程管理就是對軟體工程生存期內的各階段的活動進行管理。軟體工程管理的目的是為了能按預期的時間和費用,成功地完成軟體的開發和維護任務。
軟體工程管理學的內容包括軟體費用管理、人員組織、工程計劃管理、軟體配置管理等各項方面的內容。
顯然,軟體工程管理也可藉助計算機來實現。供經理人員估算成本、指定進度、生成報告等管理工具都已經在許多公司使用了。一個理想的軟體工程環境,應該同時具備 支持開發和支持管理兩個方面的工具。
以上簡介了軟體工程學的主要組成成分--軟體工程方法學、軟體工程環境以及軟體工程管理的基本內容台和作用。它們即包括計算機科學家的研究成果,也概括了廣大軟體工作者的時間經驗。還必須指出,軟體開發技術可區分為形式化方法與非形式化方法兩大分支。前者以形式化的程序變化和嚴整為主要內容,目的在於達到程序設計的自動化,多用於計算機應用人員。本課程主要討論的是工程化的軟體開發技術。
軟體工程目標:付出較低開發成本;達到要求的功能;取得較好的性能;開發的軟體易於移植;只需較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟體可靠性高。
軟體工程內容:研究內容包括開發技術和開發管理兩個方面。
開發技術主要研究 :軟體開發方法,開發過程,開發工具和環境。採集者退散
開發管理主要研究 :軟體管理學,軟體經濟學,軟體心理學。
軟體工程需要解決的問題:軟體的費用,可靠性,可維護性,軟體生產率和軟體的重用。
3. 軟體工程
這東西可不是說學就學的,要先學編成語言,從譚浩強的C語言程序設計學吧
4. 軟體工程包括哪些基本要素
軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計模式等方面。
軟體工程原理、軟體工程過程、軟體工程方法、軟體工程模型、軟體工程管理、軟體工程度量、軟體工程環境、軟體工程應用、軟體工程開發使用。著名軟體工程專家B.Boehm綜合有關專家和學者的意見並總結了多年來開發軟體的經驗,於1983年在一篇論文中提出了軟體工程的七條基本原理:
(1)用分階段的生存周期計劃進行嚴格的管理。
(2)堅持進行階段評審。
(3)實行嚴格的產品控制。
(4)採用現代程序設計技術。
(5)軟體工程結果應能清楚地審查。
(6)開發小組的人員應該少而精。
(7)承認不斷改進軟體工程實踐的必要性。
5. 軟體工程是什麼
軟體工程學的主要內容是軟體開發技術和軟體工程管理。
軟體開發技術包含軟體工程方法學、軟體工具和軟體開發環境;軟體工程管理學包含軟體工程經濟學和軟體管理學。
專業簡介是計算機領域發展最快的學科分支之一,國家非常重視軟體行業的發展,對軟體人才的培養給予了非常優惠的政策。本專業培養掌握計算機軟體基本理論知識,熟悉軟體開發和管理技術、能夠在計算機軟體領域中從事軟體設計、開發和管理的高級人才。
主修課程該專業除了學習公共基礎課外,還將系統學習離散數學、數據結構、演算法分析、面向對象程序設計、現代操作系統、資料庫原理與實現技術、編譯原理、軟體工程、軟體項目管理、計算機安全等課程,根據學生的興趣還可以選修一些其它選修課。
畢業去向除考取國內外名牌大學研究生外,主要畢業去向是計算機軟體專業公司﹑信息咨詢公司﹑以及金融等其它獨資、合資企業。
培養目標本專業培養適應社會發展需求,德、智、體、美全面發展,具有扎實的計算機應用理論和知識基礎,掌握軟體工程領域的前沿技術和軟體開發方法,具有較強的實踐能力和創新精神,具備較強的軟體項目的系統分析、設計、開發和測試能力,能夠按照工程化的原則和方法從事軟體項目開發和管理的應用型人才。
就業方向本專業學生畢業後可以從事各級各類企事單位的業辦公自動化處理、計算機安裝與維護、網頁製作、計算機網路和專業伺服器的維護管理和開發工作、動態商務網站開發與管理、軟體測試與開發及計算機相關設備的商品貿易等方面的有關工作。
就業前景分析
目前我國的軟體行業規模不是很大,有些軟體企業在軟體製作上,也只是採用了一些軟體工程的思想,距離大規模的工業化大生產比較還是有一定的差距;原因有管理體制的問題,市場問題,政策問題,也有軟體工程理論不全面和不完善的問題。所以軟體工程的研究和應用,以及我國軟體行業的進一步發展,都需要一定的既有軟體工程的理論基礎和研究能力,又有一定的實踐經驗的軟體工程科學技術人員來推動。軟體工程的前途是光明的。第一年一般都會學習數學、英語這些公共課。數學和英語對你今後來說是非常重要的!英語別指望課能學到東西,要看你專業的東西。
除了都要學的高數,今後還要學習其他數學,例如線代,離散,概率。如果你不學好數學,你當然也可以寫軟體,但是當你想更深入的時候就需要這些數學功底了。相對於數學來說,英語是必須的,因為今後基本上所有優秀的教材和技術文章都是英文的。翻譯過來的東西,一是陳舊,而是往往翻譯的質量差強人意。所以英語是基本功,一定要強,主要是閱讀能力。比如當你學C++的時候,你可以去閱讀英文原版經典教材 Thinking in C++,這也是我們當年的教材。
6. 軟體工程包括那些方面
軟體工程 (Software Engineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及到程序設計語言,資料庫,軟體開發工具,系統平台,標准,設計模式等方面。在現代社會中,軟體應用於多個方面。典型的軟體比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,資料庫,游戲等。同時,各個行業幾乎都有計算機軟體的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
7. 軟體工程的基本介紹
軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:
BarryBoehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
IEEE:在軟體工程術語匯編中的定義:軟體工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟體的開發、運行和維護,即將工程化應用於軟體;2.在1中所述方法的研究
FritzBauer:在NATO會議上給出的定義:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。
《計算機科學技術網路全書》:軟體工程是應用計算機科學、數學、邏輯學及管理科學等原理,開發軟體的工程。軟體工程借鑒傳統工程的原則、方法,以提高質量、降低成本和改進演算法。其中,計算機科學、數學用於構建模型與演算法,工程科學用於制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。
比較認可的一種定義認為:軟體工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
內涵:
一、軟體工程過程是指為獲得軟體產品,在軟體工具的支持下由軟體工程師完成的一系列軟體工程活動,包括以下四個方面:
1、P(Plan)——軟體規格說明。規定軟體的功能及其運行時的限制。
2、D(DO)——軟體開發。開發出滿足規格說明的軟體。
3、C(Check)——軟體確認。確認開發的軟體能夠滿足用戶的需求。
4、A(Action)——軟體演進。軟體在運行過程中不斷改進以滿足客戶新的需求。
二、從軟體開發的觀點看,它就是使用適當的資源(包括人員,軟硬體資源,時間等),為開發軟體進行的一組開發活動,在活動結束時輸入(即用戶的需求)轉化為輸出(最終符合用戶需求的軟體產品)。三個階段:定義階段:可行性研究初步項目計劃、需求分析; 開發階段:概要設計、詳細設計、實現、測試;運行和維護階段:運行、維護、廢棄原則:1、抽象;2、信息隱蔽;3、模塊化;4、局部化;5、確定性;6,一致性;7、完備性;8、可驗證性