1. 請教軟體工程專業熟悉人士
原則上同意一樓同學的觀點
軟體工程一個專業性非常強的專業,近年來隨著國家的重視和國外CMM/CMMI過程能力成熟度模型(集成)的應用,現在咱們國家的軟體公司都非常重視個人能力。而個人能力最好在軟體工程專業實力很強的學校里錘煉。
基於此,我搜索了一下國內開設軟體工程專業大學其專業排名:
軟體工程碩士是屬於計算機一級學科下的二級學科,即屬於計算機軟體與理論
計算機軟體與理論前40名(總共158所高校)
1.上海交通大學,2.南京大學,3.北京大學,4.北京航空航天大學,5.吉林大學,6.清華大學,7.浙江大學,8.西安交通大學,9.東南大學,10.電子科技大學,11.中國科學技術大學,12.哈爾濱工業大學,13.大連理工大學,14.華中科技大學,15.武漢大學,16.復旦大學,17.中山大學,18.西安電子科技大學,19.東北大學,20.西北工業大學,21.北京理工大學,22.北京交通大學,23.南京理工大學,24.重慶大學,25.山東大學,26.四川大學,27.中南大學,28.雲南大學,29.上海大學,30.同濟大學,31.河海大學,32.北京郵電大學,33.山東科技大學,34.中國人民大學,35.南京郵電大學,36.西北大學,37.武漢理工大學,38.貴州大學,39.陝西師范大學,40.天津大學
所以,我建議樓主去華中科大
2. 基於CMMI的軟體工程教程下載
如果有下載,那電綠上面肯定有!
3. 蘭州理工大學軟體學院的專業介紹
學院招收軟體類本科專業和軟體職業技術類學生。其中本科專業招收理工類學生,學制四年,學生修滿規定學分頒發蘭州理工大學本科畢業證書及工學學士學位證書。軟體職業技術學院招收專科類學生,學制三年,學生學業期滿成績合格頒發蘭州理工大學專科(高職)畢業證書。 一、培養目標
培養「高層次、復合型、國際化」的軟體工程人才。
二、主要課程
專業基礎課程:高等數序;離散數學;大學英語;馬克思主義基本原理,近代史綱要,線性代數;計算機英語;C/C++程序設計;JAVA面向對象的程序設計;軟體工程導論 ;計算機組成結構;計算機原理;資料庫原理;操作系統;軟體工程經濟學;演算法與數據結構等
三、業務范圍和專業方向
學院設有「應用軟體開發(Java、.Net)」、「嵌入式」兩個專業方向,學生入校後第三年根據能力特長和本人志願在學院指導下確定專業方向。
(1)應用軟體開發(Java、.Net)方向:培養具有扎實的計算機基礎知識和現代軟體工程能力的專業人才,掌握主流軟體框架開發技術,具有較強的軟體開發實踐能力和技術創新能力,以及較強的外語應用能力和團隊協作能力,能夠從事軟體設計、開發、應用、維護等工作。
主要課程:操作系統原理、計算機體系結構、資料庫原理、軟體工程、軟體工程經濟學、軟體質量保證與測試、軟體項目管理、基於CMMI的軟體工程方法、面向服務的體系構架、信息安全、網路編程、資料庫開發技術、項目開發實戰等。
(2)嵌入式方向:培養具有扎實的計算機基礎知識和現代軟體工程能力的專業人才,掌握嵌入式系統開發技術和流程,具有較強的系統開發能力和技術創新能力,以及較強的外語應用能力和團隊協作能力,能夠從事嵌入式系統的設計、開發、測試、維護、管理、推廣等工作。
主要課程:操作系統原理、計算機組成原理、計算機體系結構、軟體工程、軟體工程經濟學、軟體質量保證與測試、軟體項目管理、基於CMMI的軟體工程方法、Linux操作系統、嵌入式系統基礎、網路編程、物聯網應用開發、嵌入式項目實戰等。
四、基本學制:四年(包括兩年的基礎課程學習,一年的專業方向課程學習和一年的企業實訓。另外每年暑假組織前往軟體企業進行為期兩周的認知實習)
五、主要實踐性教學環節
包括c課程設計,java課程設計,數據結構與演算法課程設計,資料庫設計,軟體工程課程設計以及軟體質量保證與測試課程設計。
六、就業前景
軟體工程是目前國內外最熱門的專業之一,軟體技術人才在我國有著極大的社會需求。畢業生主要面向國內或國際IT公司及各類企事業單位,從事應用軟體或嵌入式系統的分析、設計、開發、測試、推廣等工作。也可以繼續攻讀軟體工程及相關專業的碩士、博士研究生。 一、培養目標
軟體技術專業培養是應軟體行業發展需要,掌握計算機科學與技術的基本理論,熟悉計算機軟硬體系統,掌握現代軟體開發技術,能夠從事應用軟體開發(WEB應用開發方向、軟體外包方向)、嵌入式軟體開發(手機軟體開發方向)、軟體測試(軟體測試方向)的應用型人才。
二、主幹學科和主要課程
主幹學科:計算機科學與技術、電子信息工程。 主要課程:數字電路基礎、微型計算機原理及應用(嵌入式系統原理及應用)、計算機操作系統、計算機網路基礎、軟體工程、演算法與數據結構、資料庫技術、面向對象程序設計、JAVA程序設計、C++程序設計、嵌入式軟體開發技術、網頁設計與製作、軟體測試技術等。
三、業務范圍和專業方向
軟體技術專業學生主要學習計算機科學與技術基本理論和基本知識,接受從事計算機軟體開發方面的基本訓練,具有計算機軟體開發的基本能力。
四、基本學制:三年
五、主要實踐性教學環節
包括高級程序語言課程設計、演算法與數據結構課程設計、計算機組裝維護實訓、微型計算機原理及應用課程設計、計算機網路課程設計、操作系統課程設計、資料庫課程設計、網站設計與管理、軟體開發綜合訓練、實習實訓畢業設計等。 一、培養目標
網路技術專業培養掌握計算機網路技術,掌握網路資料庫應用,掌握網路安全技術,具有網路工程實踐能力,能夠從事網路方案設計,網路資料庫管理,網站設計與維護,網路工程實施的應用型人才。 二、主幹學科和主要課程
主幹學科:計算機科學與技術、計算機網路技術。 主要課程:計算機應用基礎(包括C程序設計)、數字電路基礎、微型計算機原理及應用、計算機操作系統(包括Linux) 、計算機網路基礎、區域網技術與組網工程、無線網路技術、網路安全技術、JAVA程序設計基礎、JAVA高級程序設計、資料庫技術、交換機和路由器的配置、網路應用服務管理、網頁製作、網站設計與管理。
三、業務范圍和專業方向
網路技術專業學生應具有以下幾方面的知識和能力:掌握計算機網路技術和基本知識;掌握網路應用系統的分析和設計的基本方法;具備熟練使用相關網路設備的能力;具有獨立工作和從事網路方案設計、網路工程實施的能力。 專業方向:網路方案設計、網站建設和維護,網路安全方案實施、網路資料庫建設和維護、網路工程建設。
四、基本學制:
2年校內學習,1年校外實習、實訓。
五、主要實踐性教學環節
包括微型計算機原理及應用課程設計、操作系統課程設計(重點是軟體系統的安裝、維護)、網路協議分析實訓、網站設計與管理課程設計、JAVA高級程序語言課程設計、資料庫課程設計(開發一個基於C/S模式的小型管理系統)、網路設計綜合訓練、綜合實習(一年)等。 一、培養目標
數字媒體藝術專業是一個寬口徑的以技術為主,藝術為輔,技術與藝術相結合的新專業。培養具有良好的科學素養以及美術修養、既懂技術又懂藝術、能利用計算機新的媒體設計工具進行藝術作品的設計和創作的復合型應用設計人才。
二、主幹學科和主要課程
主幹學科:計算機科學與技術、藝術設計 主要課程:計算機應用基礎、美術基礎、多媒體技術、多媒體通信與網路、動漫藝術概論、動漫設計與製作基礎、平面圖像製作(PHOTOSHOP)、二維矢量動畫設計(FLASH)、三維動畫設計、音頻製作與合成、攝影技術、視覺傳達設計、運動規律、藝術賞析、計算機動畫設計與製作、創意與策劃、動漫劇作與文案、影視後期製作等。
三、業務范圍和專業方向
數字媒體藝術專業學生應具有以下幾方面的知識和能力:計算機動漫設計能力、數字聲像合成能力、計算機動畫製作及影視後期製作能力;計算機多媒體設計軟體的能力;數字媒體設計和應用開發的能力。 業務范圍:二維、三維動畫製作,影視動畫製作,影視編輯、影視廣告製作,後期合成及網路動畫製作以及平面藝術設計、三維藝術設計,能夠從事裝潢藝術設計、建築藝術設計、廣告藝術設計、環境藝術設計等方面的工作。 專業方向:動漫設計與製作方向,計算機多媒體技術方向。學生畢業後可以在環境藝術設計單位、IT公司、影視公司、動畫設計公司、廣告公司、網路公司、娛樂游戲公司、政府部門等部門工作。
四、基本學制:
學制三年。2年校內學習,1年校外實習、實訓。
五、主要實踐性教學環節
包括美術作品與戶外寫生、圖形圖像綜合訓練、虛擬現實技術課程設計、平面動畫設計製作實訓,三維動畫設計製作實訓,影視製作實訓,動漫設計與製作綜合實踐,實習實訓(一年)等。
4. 軟體認證CMM,CMMI對新手來說難學嗎
CMMI已經不只是軟體的能力成熟度模型,它把軟體工程和系統工程合並在一起。因此,有硬體開發的基礎也可以學習和使用CMMI模型。
要想入門其實並不難,有專門的培訓,3天就夠了,但是要高額付費。模型的書有七八百頁,看兩周應該夠了,沒有簡體中文版。
基於CMM的CBA-IPI評估已經過期,現在大家都使用基於CMMI的SCAMPI評估方法,由SEI授權的評估師進行評估。
從業人員的主要工作就是過程改進。
5. 藍牙BlueAudio軟體支持SPP功能,其中的SPP指什麼
spp: serial port profile,用於模擬串口通信,走的是rfcomm的通路。具體specificaiton可以在網上下載。
6. spp協議的默認埠
1.藍牙串列埠基於SPP協議(Serial Port Profile),能在藍牙設備之間創建串口進行數據傳輸
2.SPP的UUID:00001101-0000-1000-8000-00805F9B34FB
3.Android手機一般以客戶端的角色主動連接SPP協議設備
連接流程
1.檢測藍牙狀態
若藍牙未打開,則打開藍牙~
2.注冊設備搜索廣播信息
使用registerReceiver注冊broadcastReceiver來獲取搜索設備等消息
3.使用BlueAdatper搜索
使用bluetoothAdapter搜索設備,bluetoothAdapter.startDiscovery()在搜索過程中,系統會發出三個廣播信息:
ACTION_DISCOVERY_START:開始搜索
ACTION_DISCOVERY_FINISHED:搜索結束
ACTION_FOUND:找到設備
4.獲取搜索到的藍牙設備信息
在BroadcastReceiver的onReceive()里取得搜索到的藍牙設備信息(如名稱,MAC,RSSI)
5.通過藍牙設備的MAC地址來建立一個BluetoothDevice對象:
BluetoothDevice romoteDevice = bluetoothAdapter.getRemoteDevice(mDeviceAddress);
6.由BluetoothDevice衍生BluetoothSocket
通過BluetoothSocket的()方法來選擇連接的協議/服務,這里用的是SPP(UUID:00001101-0000-1000-8000-00805F9B34FB)
7.使用BluetoothSocket來連接、讀寫藍牙設備
讀寫可以歸到一個獨立線程去實現~
7. 想問一下,軟體工程師培訓有什麼特點北京哪家培訓學校好急急急急~~~
推薦你北京聯想利泰
聯想利泰提供軟體工程師培訓
精選實訓課程:每門課程都針對軟體產業緊缺崗位制定,由公司相關資深研發經理悉心研發。
資深項目經理主講:指導老師均是來自公司第一線的資深項目經理。
全真項目開發環境:實訓項目的研發管理、日常工作都採用企業正式開發環境和開發工具。
企業真實項目訓練:所有訓練項目均是軟體企業的真實項目作為訓練。
以提高實際開發經驗為主導:實訓採用真實的項目、環境,全力提高學員的實際工作能力、經驗。
基於項目的協作式互動教學方法:所有實訓方式是以項目練習為主,老師指導為輔,同時要求學員參與研討,充
分互動。
豐富的項目資源儲備:經過多年的項目積累,聯盟企業儲備了大量的、類型豐富的項目供學員練習。
北京聯想利泰軟體有限公司(以下簡稱聯想利泰)是聯想集團成員企業,是國際知名的一流軟體工程和技術服務企業,
公司擁有富有經驗的軟體開發團隊和先進的軟體開發過程管理體系,為聯想集團中央電視台、青島啤酒等大型企業實施了
各種應用軟體項目,業務范圍涵蓋了協同辦公、客戶關系管理、呼叫中心、商業智能、企業應用集成等領域。
北京聯想利泰軟體有限公司(以下簡稱聯想利泰)成立於2004年6月2日,是聯想集團成員企業,其前身是成立於1996
年的聯想集團研發部軟體開發團隊。公司總部位於北京市海淀區上地信息產業基地,在武漢、深圳等地設有分支機構。
聯想利泰擁有富有經驗的軟體開發團隊和先進的軟體開發過程管理體系。2000年,我們率先在國內引入軟體能力成熟
度模型CMM,並在2007年2月通過CMMI 5級國際認證,標志著我們能夠定量地對軟體開發項目進行分析和控制,保證軟
件項目品質、交付時間和售後服務,具備了國際一流的軟體過程管理能力
聯想利泰基於先進的、成熟的軟體研發管理能力,秉承與客戶真誠合作、做客戶信賴的朋友的理念,長期專注於軟體
研發與實施。為客戶提供靈活的軟體工程服務,包括軟體系統的需求分析、架構設計、程序開發、質量保證和運行維護等,
嚴格的管理規范和相應的管理系統,保證我們為客戶提供的每個環節的服務都是專業的和高水準的。
聯想利泰的使命是:為客戶提供信息技術和服務,使工作更加簡便、高效;回報股東長遠利益,為員工創造發展空間,
提升員工價值。展望未來,我們計劃不斷提升核心競爭力,全面拓展國際市場,繼續秉承客戶至上的經營方針,全力打造
誠信的、國際知名的一流軟體工程和技術服務企業。
8. 蘭州理工大學軟體學院的辦學特色
學院致力於培養「高層次、復合型、國際化」的軟體工程人才。緊密跟蹤軟體工程領域最新技術發展動向,以高水平的師資隊伍、創新的課程體系和完備的實習基地為基礎,依託區域優勢,加強國際合作,務實創新,追求卓越 。
實施 「2+1+1」的培養模式。前兩年是校內教師為主體的通識課程和專業基礎課程教學;第三年是雙師型的專業課程教學和工程能力訓練;第四年由校企師資聯合指導,在合作企業在崗實習並參加項目開發完成畢業設計。
結合教育部「卓越工程師教育培養計劃」構建課程體系。學院參照國際IEEE/ACMCC2001、SEWBOK、SE2004和我國CCSE2004課程體系及課程建設標准,並吸收國內外大學軟體類專業課程體系,制定了既能體現軟體新技術發展又能滿足企業需要的多層次、多方向、模塊化課程體系,形成理論教學、動手能力培養和工程項目實踐相結合的教學特色。
注重實踐教學。以合作企業在通信、交通、金融、教育、物流、網路服務、移動應用等熱門行業實際項目開發為教學內容,緊跟軟體技術的最新發展,涵蓋軟體行業主流的Java開發技術、.Net開發技術和嵌入式系統開發技術,完成不少於3萬行程序代碼的實際訓練。
校企聯合,強化實習基地實習。學院與微軟、IBM、甲骨文、蘋果、中軟國際、東軟、華為、傑普軟體、甘肅萬維等10多家國內外軟體企業聯合建立了實習基地,為提升學生的職業素養和工程實踐能力創造良好的平台。 加拿大達內科技公司
達內外企IT培訓中心,由美國國際數據集團IDG投資,由來自美國Nasdaq上市的SUN、IBM、亞信、華為、東軟等公司的技術骨幹、海外留學生和加拿大專業技術人員創辦。致力於為中國培養基於Unix/Linux平台、Oracle大型關系資料庫、IP網路協議、Web和企業級應用的中高級軟體人才。達內憑借優異的業績和口碑,被北京市教委高校畢業生就業指導中心指定為「首都大學生就業培訓基地」。
北京中軟集團中軟國際有限公司(中軟國際)
是根植中國、服務全球的IT服務提供商,致力於為遍及全球的客戶提供全面的服務,打造中國智造綜合平台。集團業務涵蓋以咨詢為驅動的解決方案、以專業化為准則的ITO和BPO外包服務和以人才供鏈為導向的培訓服務。
大連東軟集團
東軟是中國領先的IT解決方案與服務供應商。致力於行業解決方案、產品工程解決方案及相關軟體產品、平台及服務等。目前,東軟是中國最大的離岸軟體外包提供商。東軟將「超越技術」作為公司的經營思想和品牌承諾,東軟通過開放式創新、卓越運營管理、人力資源發展等戰略的實施,全面構造公司的核心競爭力,創造客戶和社會的價值。
上海傑普軟體科技有限公司(Briup Technology,Inc. )
是專注於軟體外包、研發咨詢、高端IT培訓的高新技術企業。公司在電信、金融、電子商務等方面有著豐富的專業開發、管理和培訓經驗。公司依託擁有豐富開發及培訓經驗的師資團隊,培養企業緊缺的中高端開發人才。推出的解決大學生就業問題的DSP方案,已成功向各大軟體企業輸送了數千名人才,也確保了傑普軟體外包業務的高效性和擴展性。
四川華迪信息技術有限公司
主要從事行業應用軟體開發、系統集成、軟體與信息服務外包、軟體與網路開發技術培訓、大學生實習實訓與IT職業技能培訓等業務。擁有一支技術功底扎實、行業服務經驗豐富、職業化素質高的工程師隊伍,專注於電力、教育、通信行業開展信息化服務。是教育部軟體工程專業大學生實習實訓基地和國家級職業教育實訓基地。
學院設有「應用軟體開發(Java、.Net)」、「嵌入式」兩個專業方向,學生入校後第三年根據能力特長和本人志願在學院指導下確定專業方向。
應用軟體開發(Java、.Net)方向:培養具有扎實的計算機基礎知識和現代軟體工程能力的專業人才,掌握主流軟體框架開發技術,具有較強的軟體開發實踐能力和技術創新能力,以及較強的外語應用能力和團隊協作能力,能夠從事軟體設計、開發、應用、維護等工作。
嵌入式方向:培養具有扎實的計算機基礎知識和現代軟體工程能力的專業人才,掌握嵌入式系統開發技術和流程,具有較強的系統開發能力和技術創新能力,以及較強的外語應用能力和團隊協作能力,能夠從事嵌入式系統的設計、開發、測試、維護、管理、推廣等工作。
培養目標
本專業緊密跟蹤軟體工程領域最新技術發展動向,以高水平的師資隊伍、創新的課程體系和完備的實習基地為基礎,依託區域優勢,培養 「高層次、復合型、國際化」的軟體工程人才。
專業方向和主要課程
專業方向:學院設有「應用軟體開發(Java、.Net)」、「嵌入式」兩個專業方向,學生入校後第三年根據能力特長和本人志願在學院指導下確定專業方向。
主要課程:操作系統原理、計算機體系結構、資料庫原理、軟體工程、軟體工程經濟學、軟體質量保證與測試、軟體項目管理、基於CMMI的軟體工程方法等。
主要實踐教學環節
以合作企業在通信、交通、金融、教育、物流、網路服務、移動應用等熱門行業實際項目開發為教學內容,緊跟軟體技術的最新發展,涵蓋軟體行業主流的Java開發技術、.Net開發技術和嵌入式系統開發技術,完成不少於3萬行程序代碼的實際訓練。
同時與微軟、IBM、甲骨文、中軟國際、大連東軟、華為、傑普軟體、甘肅萬維等10多家國內外軟體企業聯合建立了實習基地,為提升學生的職業素養和工程實踐能力創造良好的平台。
基本學制
四年。
實施 「2+1+1」的培養模式。前兩年是校內教師為主體的通識課程和專業基礎課程教學;第三年是雙師型的專業課程教學和工程能力訓練;第四年由校企師資聯合指導,在合作企業在崗實習並參加項目開發完成畢業設計。
學位授予條件
符合《蘭州理工大學關於授予學士學位的有關規定》條件的畢業生,可授予工學學士學位。 序 號 課 程 名 稱 課題負責人 職 稱 備 注
1 數據結構、資料庫技術(群) 張 永 教 授 校級重點課程(群)
2 大學計算機基礎 王連相 高 工 校級重點課程
3 信號與系統、通信原理(群) 王惠琴 副教授 院級重點課程
4計算機組成原理任學惠 講 師 院級重點課程
5 操作系統 王旭陽 副教授 院級重點課程
6 Linux 趙 宏 教授 院級重點課程
7 計算機網路實驗指導書 杜紅林 講 師 院級重點課程
8 計算機組成原理實驗指導書 杜紅林 講 師 院級重點課程
9 信號與系統 何繼愛 副教授 院級重點課程
10 通信原理 王維芳 講 師 院級重點課程
11 網路與信息安全 馮 濤 教 授 院級重點課程
12 計算機圖形學 趙付青 副教授 院級重點課程
課程名稱:資料庫原理
課程級別:省級精品課程
課程負責人:李明
課程簡介:《資料庫原理》課程的內容涵蓋三個方面:資料庫基礎理論、資料庫設計、資料庫新技術。內容包括:資料庫技術的基本概念與發展,關系資料庫,關系資料庫標准語言SQL,關系數據理論,資料庫設計,資料庫恢復技術,並發控制,資料庫安全性,資料庫完整性,分布式資料庫,面向對象資料庫,並行資料庫簡介,數據倉庫與數據挖掘技術,XML資料庫等。
依據不同層次的需求,我們為全校本科生開設了不同學時的「資料庫原理」、「資料庫開發技術」、「網路與資料庫編程」等課程,並為研究生開設了「資料庫理論與技術」、「數據挖掘」、「資料庫系統與數據倉庫」等課程。
結合資料庫技術的發展和應用,進行了教材建設,調整和優化了教學內容,出版了「資料庫原理及應用」教材(西南交通大學出版社,2007),編寫了「資料庫學習指導書」、「資料庫上機指導書」、「課程設計指導書」等,建立了開放式Oracle平台。
應用軟體開發方向主要課程:操作系統原理、計算機體系結構、資料庫原理、軟體工程、軟體工程經濟學、軟體質量保證與測試、軟體項目管理、基於CMMI的軟體工程方法、面向服務的體系構架、信息安全、網路編程、資料庫開發技術、項目開發實戰等。
嵌入式方向主要課程:操作系統原理、計算機組成原理、計算機體系結構、軟體工程、軟體工程經濟學、軟體質量保證與測試、軟體項目管理、基於CMMI的軟體工程方法、Linux操作系統、嵌入式系統基礎、網路編程、物聯網應用開發、嵌入式項目實戰等。
9. 軟體工程的作品目錄
中文版
出版者的話
譯者序
前言
第一部分軟體工程導論
第1章概述
11專業化軟體開發
111軟體工程
112軟體工程的多樣性
113軟體工程和Web
12軟體工程人員的職業道德
13案例研究
131胰島素泵控制系統
132用於心理健康治療的患者信息系統
133野外氣象站
要點
進一步閱讀材料
練習
參考書目
第2章軟體過程
21軟體過程模型
211瀑布模型
212增量式開發
213面向復用的軟體工程
22過程活動
221軟體描述
222軟體設計和實現
223軟體有效性驗證
224軟體進化
23應對變更
231原型構造
232增量式交付
233Boehm的螺旋模型
24Rational統一過程
要點
進一步閱讀材料
練習
參考書目
第3章敏捷軟體開發
31敏捷方法
32計劃驅動開發和敏捷開發
33極限編程
331極限編程中的測試
332結對編程
34敏捷項目管理
35可擴展的敏捷方法
要點
進一步閱讀材料
練習
參考書目
第4章需求工程
41功能需求和非功能需求
411功能需求
412非功能需求
42軟體需求文檔
43需求描述
431自然語言描述
432結構化描述
44需求工程過程
45需求導出和分析
451需求發現
452采訪
453腳本
454用例
455深入實際
46需求有效性驗證
47需求管理
471需求管理規劃
472需求變更管理
要點
進一步閱讀材料
練習
參考書目
第5章系統建模
51上下文模型
52交互模型
521用例建模
522時序圖
53結構模型
531類圖
532泛化
533聚合
54行為模型
541數據驅動的建模
542事件驅動模型
55模型驅動工程
551模型驅動體系結構
552可執行UML
要點
進一步閱讀材料
練習
參考書目
第6章體系結構設計
61體系結構設計決策
62體系結構視圖
63體系結構模式
631分層體系結構
632容器體系結構
633客戶機-伺服器體系結構
634管道和過濾器體系結構
64應用體系結構
641事務處理系統
642信息系統
643語言處理系統
要點
進一步閱讀材料
練習
參考書目
第7章設計與實現
71利用UML進行面向對象設計
711系統上下文與交互
712體系結構的設計
713對象類識別
714設計模型
715介面描述
72設計模式
73實現問題
731復用
732配置管理
733宿主機-目標機開發
74開源開發
要點
進一步閱讀材料
練習
參考書目
第8章軟體測試
81開發測試
811單元測試
812選擇單元測試案例
813組件測試
814系統測試
82測試驅動開發
83發布測試
831基於需求的測試
832情景測試
833性能測試
84用戶測試
要點
進一步閱讀材料
練習
參考書目
第9章軟體進化
91進化過程
92程序進化的動態特性
93軟體維護
931維護預測
932軟體再工程
933通過重構進行預防性維護
94遺留系統管理
要點
進一步閱讀材料
練習
參考書目
第二部分可依賴性和信息安全性
第10章社會技術系統
101復雜系統
1011系統總體特性
1012系統非確定性
1013成功標准
102系統工程
103系統采購
104系統開發
105系統運行
1051人為錯誤
1052系統進化
要點
進一步閱讀材料
練習
參考書目
第11章可依賴性與信息安全性
111可依賴性特徵
112可用性和可靠性
113安全性
114信息安全性
要點
進一步閱讀材料
練習
參考書目
第12章可依賴性與信息安全性描述
121風險驅動的需求描述
122安全性描述
1221危險識別
1222危險評估
1223危險分析
1224風險降低
123可靠性描述
1231可靠性度量
1232非功能性的可靠性需求
1233功能可靠性描述
124信息安全性描述
125形式化描述
要點
進一步閱讀材料
練習
參考書目
第13章可依賴性工程
131冗餘性和多樣性
132可依賴的過程
133可依賴的系統體系結構
1331保護性系統
1332自監控系統體系結構
1333N-版本編程
1334軟體多樣性
134可依賴的編程
要點
進一步閱讀材料
練習
參考書目
第14章信息安全工程
141信息安全風險管理
1411生存期風險評估
1412運行風險評估
142面向信息安全的設計
1421體系結構設計
1422設計准則
1423部署設計
143系統生存能力
要點
進一步閱讀材料
練習
參考書目
第15章可依賴性與信息安全保證
151靜態分析
1511檢驗和形式化方法
1512模型檢測
1513自動靜態分析
152可靠性測試
153信息安全性測試
154過程保證
155安全性和可依賴性案例
1551結構化論證
1552結構化的安全性論證
要點
進一步閱讀材料
練習
參考書目
第三部分高級軟體工程
第16章軟體復用
161復用概覽
162應用框架
163軟體產品線
164COTS產品的復用
1641COTS解決方案系統
1642COTS集成系統
要點
進一步閱讀材料
練習
參考書目
第17章基於組件的軟體工程
171組件和組件模型
172CBSE過程
1721面向復用的CBSE
1722基於復用的CBSE
173組件合成
要點
進一步閱讀材料
練習
參考書目
第18章分布式軟體工程
181分布式系統的問題
1811交互模型
1812中間件
182客戶機-伺服器計算
183分布式系統的體系結構模式
1831主從體系結構
1832兩層客戶機-伺服器結構
1833多層客戶機-伺服器結構
1834分布式組件體系結構
1835對等體系結構
184軟體作為服務
要點
進一步閱讀材料
練習
參考書目
第19章面向服務的體系結構
191服務作為可復用的組件
192服務工程
1921可選服務的識別
1922服務介面設計
1923服務實現和部署
1924遺留系統服務
193使用服務的軟體開發
1931工作流設計和實現
1932服務測試
要點
進一步閱讀材料
練習
參考書目
第20章嵌入式軟體
201嵌入式系統設計
2011實時系統建模
2012實時編程
202體系結構模式
2021觀察和反應
2022環境控制
2023處理管道
203時序分析
204實時操作系統
要點
進一步閱讀材料
練習
參考書目
第21章面向方面的軟體工程
211關注點分離
212方面、連接點和切入點
213採用方面的軟體工程
2131面向關注點的需求工程
2132面向方面的設計和編程
2133檢驗和有效性驗證
要點
進一步閱讀材料
練習
參考書目
第四部分軟體 管理
第22章項目管理
221風險管理
2211風險識別
2212風險分析
2213風險規劃
2214風險監控
222人員管理
223團隊協作
2231成員挑選
2232小組的結構
2233小組的溝通
要點
進一步閱讀材料
練習
參考書目
第23章項目規劃
231軟體報價
232計劃驅動的開發
2321項目計劃
2322規劃過程
233項目進度安排
234敏捷規劃
235估算技術
2351演算法成本建模
2352COCOMO Ⅱ模型
2353項目的工期和人員配備
要點
進一步閱讀材料
練習
參考書目
第24章質量管理
241軟體質量
242軟體標准
243復查與審查
2431復查過程
2432程序審查
244軟體度量和量度
2441產品量度
2442軟體組件分析
2443度量歧義
要點
進一步閱讀材料
練習
參考書目
第25章配置管理
251變更管理
252版本管理
253系統構建
254發布版本管理
要點
進一步閱讀材料
練習
參考書目
第26章過程改善
261過程改善過程
262過程度量
263過程分析
264過程變更
265CMMI過程改善框架
2651分階段的CMMI模型
2652連續CMMI模型
要點
進一步閱讀材料
練習
參考書目
術語表
英文版
CONTENTS
Preface v
Part 1 Introction to Software Engineering 1
Chapter 1 Introction 3
1.1 Professional software development 5
1.2 Software engineering ethics 14
1.3 Case studies 17
Chapter 2 Software processes 27
2.1 Software process models 29
2.2 Process activities 36
2.3 Coping with change 43
2.4 The rational unified process 50
Chapter 3 Agile software development 56
3.1 Agile methods 58
3.2 Plan-driven and agile development 62
3.3 Extreme programming 64
3.4 Agile project management 72
3.5 Scaling agile methods 74
Chapter 4 Requirements engineering 82
4.1 Functional and non-functional requirements 84
4.2 The software requirements document 91
4.3 Requirements specification 94
4.4 Requirements engineering processes 99
4.5 Requirements elicitation and analysis 100
4.6 Requirements validation 110
4.7 Requirements management 111
Chapter 5 System modeling 118
5.1 Context models 121
5.2 Interaction models 124
5.3 Structural models 129
5.4 Behavioral models 133
5.5 Model-driven engineering 138
Chapter 6 Architectural design 147
6.1 Architectural design decisions 151
6.2 Architectural views 153
6.3 Architectural patterns 155
6.4 Application architectures 164
Chapter 7 Design and implementation 176
7.1 Object-oriented design using the UML 178
7.2 Design patterns 189
7.3 Implementation issues 193
7.4 Open source development 198
Chapter 8 Software testing 205
8.1 Development testing 210
8.2 Test-driven development 221
8.3 Release testing 224
8.4 User testing 228
Chapter 9 Software evolution 234
9.1 Evolution processes 237
9.2 Program evolution dynamics 240
9.3 Software maintenance 242
9.4 Legacy system management 252
Part 2 Dependability and Security 261
Chapter 10 Sociotechnical systems 263
10.1 Complex systems 266
10.2 Systems engineering 273
10.3 System procurement 275
10.4 System development 278
10.5 System operation 281
Chapter 11 Dependability and security 289
11.1 Dependability properties 291
11.2 Availability and reliability 295
11.3 Safety 299
11.4 Security 302
Chapter 12 Dependability and security specification 309
12.1 Risk-driven requirements specification 311
12.2 Safety specification 313
12.3 Reliability specification 320
12.4 Security specification 329
12.5 Formal specification 333
Chapter 13 Dependability engineering 341
13.1 Rendancy and diversity 343
13.2 Dependable processes 345
13.3 Dependable system architectures 348
13.4 Dependable programming 355
Chapter 14 Security engineering 366
14.1 Security risk management 369
14.2 Design for security 375
14.3 System survivability 386
Chapter 15 Dependability and security assurance 393
15.1 Static analysis 395
15.2 Reliability testing 401
15.3 Security testing 404
15.4 Process assurance 406
15.5 Safety and dependability cases 410
Part 3 Advanced Software Engineering 423
Chapter 16 Software reuse 425
16.1 The reuse landscape 428
16.2 Application frameworks 431
16.3 Software proct lines 434
16.4 COTS proct reuse 440
Chapter 17 Component-based software engineering 452
17.1 Components and component models 455
17.2 CBSE processes 461
17.3 Component composition 468
Chapter 18 Distributed software engineering 479
18.1 Distributed systems issues 481
18.2 Client–server computing 488
18.3 Architectural patterns for distributed systems 490
18.4 Software as a service 501
Chapter 19 Service-oriented architecture 508
19.1 Services as reusable components 514
19.2 Service engineering 518
19.3 Software development with services 527
Chapter 20 Embedded software 537
20.1 Embedded systems design 540
20.2 Architectural patterns 547
20.3 Timing analysis 554
20.4 Real-time operating systems 558
Chapter 21 Aspect-oriented software engineering 565
21.1 The separation of concerns 567
21.2 Aspects, join points and pointcuts 571
21.3 Software engineering with aspects 576
Part 4 Software Management 591
Chapter 22 Project management 593
22.1 Risk management 595
22.2 Managing people 602
22.3 Teamwork 607
Chapter 23 Project planning 618
23.1 Software pricing 621
23.2 Plan-driven development 623
23.3 Project scheling 626
23.4 Agile planning 631
23.5 Estimation techniques 633
Chapter 24 Quality management 651
24.1 Software quality 655
24.2 Software standards 657
24.3 Reviews and inspections 663
24.4 Software measurement and metrics 668
Chapter 25 Configuration management 681
25.1 Change management 685
25.2 Version management 690
25.3 System building 693
25.4 Release management 699
Chapter 26 Process improvement 705
26.1 The process improvement process 708
26.2 Process measurement 711
26.3 Process analysis 715
26.4 Process change 718
26.5 The CMMI process improvement framework 721
Glossary 733
Subject Index 749
Author Index 767
10. 軟體工程中的cmm是什麼,有哪五個層次
CMM是指「能力成熟度模型」,其英文全稱為Capability Maturity Model for Software,英文縮寫為SW-CMM,簡稱CMM。它是對於軟體組織在定義、實施、度量、控制和改善其軟體過程的實踐中各個發展階段的描述。CMM的核心是把軟體開發視為一個過程,並根據這一原則對軟體開發和維護進行過程監控和研究,以使其更加科學化、標准化、使企業能夠更好地實現商業目標。
CMM是是一種用於評價軟體承包能力並幫助其改善軟體質量的方法,側重於軟體開發過程的管理及工程能力的提高與評估。CMM分為五個等級:一級為初始級,二級為可重復級,三級為已定義級,四級為已管理級,五級為優化級。
CMM是由美國卡內基梅隆大學軟體工程研究所1987年研製成功的,是目前國際上最流行最實用的軟體生產過程標准和軟體企業成熟度等級認證標准。目前,我國已有軟體企業通過了CMM標准認證 。
SW-CMM(Capability Maturity Model For Software 軟體生產能力成熟度模型,以下簡稱"CMM"),是87年由美國卡內基梅隆大學軟體工程研究所(CMU SEI)研究出的一種一種用於評價軟體承包商能力並幫助改善軟體質量的方法,其目的是幫助軟體企業對軟體工程過程進行管理和改進,增強開發與改進能力,從而能按時地、不超預算地開發出高質量的軟體。
其所依據的想法是:只要集中精力持續努力去建立有效的軟體工程過程的基礎結構,不斷進行管理的實踐和過程的改進,就可以克服軟體生產中的困難。CMM它是目前國際上最流行、最實用的一種軟體生產過程標准,已經得到了眾多國家以及國際軟體產業界的認可,成為當今企業從事規模軟體生產不可缺少的一項內容。
CMM目前通用流行的版本是1.1(Version1.1)。《按照軟體工程研究所(SEI)的原來計劃,CMM的改進版版本2.0(V2.0)是要在1997年的11月完成的。但是,美國國防部辦公室要求軟體工程研究所(SEI)延遲發放公布CMM版本2.0,直至他們完成另一個更為緊迫的項目-CMMI。
CMMI(Capability Maturity Model Integration能力成熟度模型集成),是美國國防部的一個設想。他們希望把所有現存的與將被發展出來的各種能力成熟度模型,集成到一個框架中去。這個框架用於解決兩個問題:第一,軟體獲取辦法的改革;第二,從集成產品與過程發展的角度出發,建立一種包含健全的系統開發原則的過程改進。
CMM為軟體企業的過程能力提供了一個階梯式的改進框架,它基於過去所有軟體工程過程改進的成果,吸取了以往軟體工程的經驗教訓,提供了一個基於過程改進的框架;它指明了一個軟體組織在軟體開發方面需要管理哪些主要工作、這些工作之間的關系、以及以怎樣的先後次序,一步一步的做好這些工作而使軟體組織走向成熟。
一、CMM的誕生
信息時代,軟體質量的重要性越來越為人們所認識。軟體是產品、是裝備、是工具,其質量使得顧客滿意,是產品市場開拓、事業得以發展的關鍵。而軟體工程領域在1992年至1997年取得了前所未有的進展,其成果超過軟體工程領域過去15年來的成就總和。
軟體管理工程引起廣泛注意源於20世紀70年代中期。當時美國國防部曾立題專門研究軟體項目做不好的原因,發現70%的項目是因為管理不善而引起,而並不是因為技術實力不夠,進而得出一個結論,即管理是影響軟體研發項目全局的因素,而技術隻影響局部。到了20世紀90年代中期,軟體管理工程不善的問題仍然存在,大約只有10%的項目能夠在預定的費用和進度下交付。軟體項目失敗的主要原因有:需求定義不明確;缺乏一個好的軟體開發過程;沒有一個統一領導的產品研發小組;子合同管理不嚴格;沒有經常注意改善軟體過程;對軟體構架很不重視;軟體界面定義不善且缺乏合適的控制;軟體升級暴露了硬體的缺點;關心創新而不關心費用和風險;軍用標准太少且不夠完善等等。在關繫到軟體項目成功與否的眾多因素中,軟體度量、工作量估計、項目規劃、進展控制、需求變化和風險管理等都是與工程管理直接相關的因素。由此可見,軟體管理工程的意義至關重要。
軟體管理工程和其它工程管理相比有其特殊性。首先,軟體是知識產品,進度和質量都難以度量,生產效率也難以保證。其次,軟體系統復雜程度也是超乎想像的。因為軟體復雜和難以度量,軟體管理工程的發展還很不成熟。
軟體管理工程的發展,在經歷了從70年代開始以結構化分析與設計、結構化評審、結構化程序設計以及結構化測試為特徵的結構化生產時代,到90年代中期,以CMM模型的成熟模型和日益為市場接受為標志,已經進入以過程成熟模型CMM、個體軟體過程PSP和群組軟體過程TSP為標志的以過程為中心的時代,而軟體發展第三個時代,及軟體工業化生產時代,從90年代中期軟體過程技術的成熟和面向對象技術、構件技術的發展為基礎,已經漸露端倪,估計到2005年,可以實現真正的軟體工業化生產,這個趨勢應該引起軟體企業界和有關部門的高度重視,及早採取措施,跟上世界軟體發展的腳步。軟體生產轉向以改善軟體過程為中心,是世界各國軟體產業或遲或早都要走的道路。
軟體過程改善是當前軟體管理工程的核心問題。50多年來計算事業的發展使人們認識到要高效率、高質量和低成本地開發軟體,必須改善軟體生產過程。軟體管理工程走過了一條從70年代開始以結構化分析與設計、結構化評審、結構化程序設計以及結構化測試到90年代中期以過程成熟模型CMM、個體軟體過程PSP和群組軟體過程TSP為標志的以過程為中心向著軟體過程技術的成熟和面向對象技術、構件技術的發展為基礎的真正軟體工業化生產的道路。軟體生產轉向以改善軟體過程為中心,是世界各國軟體產業或遲或早都要走的道路。軟體工業已經或正在經歷著"軟體過程的成熟化",並向"軟體的工業化"漸進過渡。規范的軟體過程是軟體工業化的必要條件。
軟體過程研究的是如何將人員、技術和工具等組織起來,通過有效的管理手段,提高軟體生產的效率,保證軟體產品的質量。由此誕生了軟體過程的三個流派:CMU-SEI的CMM/PSP/TSP;ISO 9000質量標准體系;ISO/IEC 15504(SPICE)。
CMM/PSP/TSP即軟體能力成熟度模型/ 個體軟體過程/群組軟體過程,是1987年美國 Carnegie Mellon 大學軟體工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發表的研究成果"承製方軟體工程能力的評估方法";SO 9000質量標准體系是在70年代由歐洲首先採用的,其後在美國和世界其他地區也迅速地發展起來。目前,歐洲聯合會積極促進軟體質量的制度化,提出了如下ISO9000軟體標准系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年國際標准化組織採納了一項動議,開展調查研究,按照CMU-SEI的基本思路,產生的技術報告ISO/IEC 15504--信息技術軟體過程評估
目前,學術界和工業界公認美國 Carnegie Mellon 大學軟體工程研究所(CMU/SEI) 以W.S.Humphrey為首主持研究與開發的軟體能力成熟度模型CMM是當前最好的軟體過程,已成為業界事實上的軟體過程的工業標准。
二、CMM的發展
1987年美國 Carnegie Mellon 大學軟體工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發表了CMM/PSP/TSP 技術,為軟體管理工程開辟了一條新的途經。
CMM框架用5個不斷進化的層次來評定軟體生產的歷史與現狀:其中初始層是混沌的過程,可重復層是經過訓練的軟體過程,定義層是標准一致的軟體過程,管理層是可預測的軟體過程,優化層是能持續改善的軟體過程。任何單位所實施的軟體過程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬於這5個層次中的某一個層次。而在某個層次內部,也有成熟程度的區別。在CMM框架的不同層次中,需要解決帶有不同層次特徵的軟體過程問題。因此,一個軟體開發單位首先需要了解自己正處於哪一個層次,然後才能夠對症下葯地針對該層次的特殊要求解決相關問題,這樣才能收到事半功倍的軟體過程改善效果。任何軟體開發單位在致力於軟體過程改善時,只能由所處的層次向緊鄰的上一層次進化。而且在由某一成熟層次向上一更成熟層次進化時,在原有層次中的那些已經具備的能力還必須得到保持與發揚。
軟體產品質量在很大程度上取決於構築軟體時所使用的軟體開發和維護過程的質量。軟體過程是人員密集和設計密集的作業過程:若缺乏有素訓練,就難以建立起支持實現成功是軟體過程的基礎,改進工作亦將難以取得成效。CMM描述的這個框架正是勾列出從無定規的混沌過程向訓練有素的成熟過程演進的途徑。
CMM包括兩部分"軟體能力成熟度模型"和"能力成熟度模型的關鍵慣例"。"軟體能力成熟度模型"主要是描述此模型的結構,並且給出該模型的基本構件的定義。"能力成熟度模型的關鍵慣例"詳細描述了每個"關鍵過程方面"涉及的"關鍵慣例"。這里"關鍵過程方面"是指一組相關聯的活動;每個軟體能力成熟度等級包含若干個對該成熟度等級至關重要的過程方面,它們的實施對達到該成熟度等級的目標起到保證作用。這些過程域就稱為該成熟度等級的關鍵過程域,反之有非關鍵過程域是指對達到相應軟體成熟度等級的目標不起關鍵作用。歸納為:互相關聯的若干軟體實踐活動和有關基礎設施的一個集合。而"關鍵慣例"是指使關鍵過程方面得以有效實現和制度化的作用最大的基礎設施和活動,對關鍵過程的實踐起關鍵作用的方針、規程、措施、活動以及相關基礎設施的建立。關鍵實踐一般只描述"做什麼"而不強制規定"如何做"。各個關鍵慣例按每個關鍵過程方面的5個"公共特性"(對執行該過程的承諾,執行該過程的能力,該過程中要執行的活動,對該過程執行情況的度量和分析,及證實所執行的活動符合該過程)歸類,逐一詳細描述。當作到了某個關鍵過程的的全部關鍵慣例就認為實現了該關鍵過程,實現了某成熟度級及其以低級所含的全部關鍵過程就認為達到到了了該級。
上面提到了CMM把軟體開發組織的能力成熟度分為5個的等級。除了第1級外,其他每一級由幾個關鍵過程方面組成。每一個關鍵過程方面都由上述5種公共特性予以表徵。CMM給每個關鍵過程了一些具體目標。按每個公共特性歸類的關鍵慣例是按該關鍵過程的具體目標選擇和確定的。如果恰當地處理了某個關鍵過程涉及的全部關鍵慣例,這個關鍵過程的各項目標就達到了,也就表明該關鍵過程實現了。這種成熟度分級的優點在於,這些級別明確而清楚地反映了過程改進活動的輕重緩急和先後順序。