⑴ 學java看什麼書
建議你這樣試試看:首先初學者看書學習Java是非常不明智的,因為技術性的書籍是非常難啃的,因為我做Java這塊有十多年了,非常了解看書自學Java是多麼沒有效率,不適合初學者Java。你應該選擇一套系統的Java學習教程,然後跟著教程走。書籍應該是當你會實際寫程序後,然後你看技術書籍,這樣就可以理解的更加深刻。而你直接看書是非常難懂的,最後直學個理論,不會實際應用。
Head First Java教材,看起來都特別輕松,圖文並茂,簡單易懂,適合初學者選擇。
這樣做的好處:教程是專業人士進行知識點分解講解的,然後在配上適合初學者學習的書籍,讓你更加深刻的理解每一個知識點的用途。
如果自己沒有好的Java學習教程,可以添加這個Java學習qun:前面是四九四,中間是八零一,後面是九三一。找管理員獲取教程鏈接。
注意事項:
前期有人指導,不要想著都靠自己自學,要學會借力。
學習編程就是多練習,至少有三分之二的時間都要拿來寫大量的代碼。
掌握好學習方法技巧,學習編程非常講究技巧,關於這點多跟有經驗的人交流。
⑵ 什麼事雲計算和大數據的解釋
雲計算與大數據概述
雲計算(cloud computing)是基於互聯網的相關服務的增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。雲是網路、互聯網的一種比喻說法。過去在圖中往往用雲來表示電信網,後來也用來表示互聯網和底層基礎設施的抽象。狹義雲計算指IT基礎設施的交付和使用模式,指通過網路以按需、易擴展的方式獲得所需資源;廣義雲計算指服務的交付和使用模式,指通過網路以按需、易擴展的方式獲得所需服務。這種服務可以是IT和軟體、互聯網相關,也可是其他服務。它意味著計算能力也可作為一種商品通過互聯網進行流通。
大數據(big data),或稱海量數據,指的是所涉及的資料量規模巨大到無法透過目前主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。大數據的4V特點:Volume、Velocity、Variety、Veracity。
從技術上看,大數據與雲計算的關系就像一枚硬幣的正反面一樣密不可分。大數據必然無法用單台的計算機進行處理,必須採用分布式計算架構。它的特色在於對海量數據的挖掘,但它必須依託雲計算的分布式處理、分布式資料庫、雲存儲和虛擬化技術。
大數據管理,分布式進行文件系統,如Hadoop、Maprece數據分割與訪問執行;同時SQL支持,以Hive+HADOOP為代表的SQL界面支持,在大數據技術上用雲計算構建下一代數據倉庫成為熱門話題。從系統需求來看,大數據的架構對系統提出了新的挑戰:
1、集成度更高。一個標准機箱最大限度完成特定任務。
2、配置更合理、速度更快。存儲、控制器、I/O通道、內存、CPU、網路均衡設計,針對數據倉庫訪問最優設計,比傳統類似平台高出一個數量級以上。
3、整體能耗更低。同等計算任務,能耗最低。
4、系統更加穩定可靠。能夠消除各種單點故障環節,統一一個部件、器件的品質和標准。
5、管理維護費用低。數據藏的常規管理全部集成。
6、可規劃和預見的系統擴容、升級路線圖。
雲計算與大數據的關系
簡單來說:雲計算是硬體資源的虛擬化,而大數據是海量數據的高效處理。雖然從這個解釋來看也不是完全貼切,但是卻可以幫助對這兩個名字不太明白的人很快理解其區別。當然,如果解釋更形象一點的話,雲計算相當於我們的計算機和操作系統,將大量的硬體資源虛擬化後在進行分配使用。
可以說,大數據相當於海量數據的「資料庫」,通觀大數據領域的發展我們也可以看出,當前的大數據發展一直在向著近似於傳統資料庫體驗的方向發展,一句話就是,傳統資料庫給大數據的發展提供了足夠大的空間。
大數據的總體架構包括三層:數據存儲,數據處理和數據分析。數據先要通過存儲層存儲下來,然後根據數據需求和目標來建立相應的數據模型和數據分析指標體系對數據進行分析產生價值。
而中間的時效性又通過中間數據處理層提供的強大的並行計算和分布式計算能力來完成。三者相互配合,這讓大數據產生最終價值。
不看現在雲計算發展情況,未來的趨勢是:雲計算作為計算資源的底層,支撐著上層的大數據處理,而大數據的發展趨勢是,實時互動式的查詢效率和分析能力,借用Google一篇技術論文中的話:「動一下滑鼠就可以在妙極操作PB級別的數據」,確實讓人興奮不能止。
⑶ 軟體工程期末考試答案
一. 簡答題:
1.軟體工程的定義 P4
答:軟體工程師一門工程學科,涉及軟體生成的各個方面,從最初的系統描述一直到使用後的系統維護,都屬於其學科範疇。
2.軟體工程所面臨的主要問題 P3表格
答:多樣性的挑戰:必須開發出新技術,製作可靠的軟體,從而足以靈活應對這種多樣性。
交付上的挑戰:在不損及系統質量的前提下,縮短大型、復雜系統的移交時間。
信任的挑戰:研究能說明軟體可信的技術。
3.社會技術系統定義及主要特徵 P12-13
答:定義:一個包含有人、軟體和硬體在內的系統。
特徵:它們都有其整體特性
他們通常是不確定的
系統支持機構目標的程度和范圍不僅僅依賴於系統本身
4.瀑布模型的概念及其包含階段 P39-40
答:概念:這個模型採用一些基本的過程活動,即描述、開發、有效性驗證和進化,並且使 用單獨的過程階段(如需求描述、軟體設計、實現和測試等階段)表現這些活動
包含階段:需求分析和定義、系統和軟體設計、實現和單元測試、集成和系統測試、運行和維護
5.增量式開發的概念 P43
答:增量式開發是一種集中了這些模型的優點的體重綜合方法。每一步增量實現了一個或多個最終用戶功能。每一步增量包含所有早期的已開發的功能集加上一些新的功能;系統在逐步累積的增量中增長。就是一步一步漸增式的開發。
6.軟體工程的四個基本過程活動 P38
答:軟體描述、軟體設計和實現、軟體有效性驗證、軟體進化
7.介紹軟體工程的功能需求,非功能需求和領域需求 P73
答:功能需求:包括對系統應該提供的服務、如何對輸入作出反應以及系統在特定條件下的行為的描述。在某些情況下,功能需求可能還需明確聲明系統不應該做什麼。
非功能需求:對系統提供的服務或功能給出的約束。包括時間約束、開發過程的約束、標准等。非功能需求常用於整個系統。通常不用在單個系統或服務中。
領域需求:這是來自系統的應用領域的需求,反應了該領域的特點。他們也可能是功能需求或非公能需求。
8.客戶機/伺服器模型及優缺點 P152-153
答: 客戶機/伺服器體系結構的模型是一個分布式系統模型,系統由一組服務及相關的伺服器組成,客戶機訪問並使用這些服務。
優點:它是一個分布式體系結構。由許多分布式處理器構成網路系統可提供更有效的使用。添加一台伺服器或更新伺服器很容易而且是透明的,不會影響系統的其他部分。
缺點:在系統中集成一台伺服器需要改變現存的客戶機和伺服器以便獲得性能提升。要為每個伺服器建立專門的數據模型以便優化其性能。
9.分層模型及優缺點 P153-154
答: 把系統組織成一系列的層次,每一層提供一組服務。每一層定義一個抽象機,每個抽象機是由其下層的源機的代碼構成的。
優點:支持系統的增量式開發。抽象機轉換到其他機器上實現比較容易。
缺點:頂層上的用戶服務可能會需要穿過其相鄰層來獲取由更低層所提供的服務。性能也是一個問題。
10.數據處理系統及特點 P181
答:系統是以數據為中心的,它們的資料庫要比系統本身大很多個數量級。
特點:是批處理系統,數據的輸入和輸出時成批地從文件或資料庫中取出,也是成批地存入文件或資料庫中的,而不是對用戶終端進行輸入和輸出。
11.編譯器一般體系結構中包含的組件 P188-189
答:詞法分析器、符號表、語法分析器、語法樹、語義分析器、代碼生成器。
12.面向對象設計中,並發對象的實現方式和工作方式 P194-195
答:實現方式與工作方式:
伺服器 對象被實現為一個並行進程,它的方法對應為定義的對象操作。在收到外部時間後方法被啟動,方法的執行與其他對象上的方法是並行的。當對象完成了自身的操作時,對象中止,等待進一步的服務請求。
主動對象 對象狀態的改變可以來自對象內部操作的執行。代表對象的進程不停地執行這些操作,從不掛起。
13.用戶界面設計過程中的核心活動 P230
答:用戶分析:理解用戶所做的任務、工作環境、使用的其他系統、如何在工作中與他人交互等。
系統原型開發:開發原型系統並展示給用戶看,讓他們指導界面的進化。
界面評估:一個更正式的評估活動,在評估中收集有關用戶對界面的真實體驗信息。
14.極限編程適合敏捷方法原則 P244
答:(1)增量式開發時通過系統的小的頻繁發布的版本來支持的,其間所採用的需求描述方法是基於客戶情節或腳本的,這樣的客戶情節或腳本可以成為過程規劃的根據。
(2)客戶的參與是通過全時僱傭到開發團隊的方式。客戶代表參與開發並負責定義系統的接受測試。
(3)人是通過結對編程、集體對系統代碼所有權、可以忍受的開發過程而無需超頻的工作小時來運作的。
(4)變更是通過經常性的系統版本、測試優先的開發以及連續的集成來支持的。
通過持續的再分解來改善代碼質量並使用不預期系統將來的變更的簡單設計,來支持簡潔性的維護。
15.極限編程測試的關鍵特性 P246
答: XP當中的測試的關鍵特性:
(1)測試優先的開發。(2)來自腳本的增量式測試開發。
(3)用戶參與到測試開發和有效性驗證中。(4)自動測試系統的使用。
16.軟體原型在軟體開發過程中的使用方式
答:(1)在需求工程過程中,原型可以幫助導出系統需求並驗證系統需求的有效性。
(2)在系統設計階段,原型可以用來探索特殊的軟體解決方案和支持用戶界面設計。
(3)在測試階段,原型可以用來對准備移交給客戶的系統運行背對背的測試。
17.在規劃軟體復用時需要考慮的相關約束
答:軟體開發進度表 所預計的軟體生命期 開發團隊的背景,技術和經驗
軟體的危險程度和它的非功能性需求
應用領域 系統運行平台
18.在集成商業限制系統中面臨的問題
答:對功能和性能缺乏控制
商業現成系統間的互操作問題
無法控制系統的進化
COTS產品廠商的支持
19.組件與對象之間有什麼區別
答:組件是可部署的實體
組件不定義類型
組件實現是不透明的
組件是獨立於語言的
組件是標准化的
20.基於組件的軟體開發過程與傳統的軟體開發過程有什麼不同
答:(1)最初對用戶需求的開發只需要是概要性的而不用十分詳細,且鼓勵信息持有者在定
義他們的需求時盡可能地靈活。
(2)在過程的早期階段根據可利用的組件來細化和修改需求。
(3)在系統體系結構設計完成後,會有一個進一步的組件搜索及設計精煉的活動。
(4)開發就是將已發現的組件集成在一起的組成過程。
21.列舉軟體維護費用高的原因
答:團隊穩定性,合同責任 人員技術水平 程序年齡和結構
22.對軟體可維護性評估有用的過程度量包括哪些
答:糾正性維護請求的數目
影響分析所需的平均時間
實現一個變更請求的平均時間
突出的變更請求的數目
23.系統再工程過程中的行為有哪些
答:源代碼轉換 反向工程 程序結構改善 程序模塊化 數據再工程
⑷ 麻煩大家幫忙看看這段英文,謝謝!
可供:可供分配隊員可在不同時間. 有些人可能會從事多個項目,因此受到時間. 可能受制於他人人身限制. 此外,可供分配隊員也受到不同的時區.
⑸ 軟體工程(原書第9版)的目錄
《軟體工程(原書第9版)》
出版者的話
譯者序
前言
第一部分軟體工程導論
第1章概述
1.1專業化軟體開發
1.1.1軟體工程
1.1.2軟體工程的多樣性
1.1.3軟體工程和web
1.2軟體工程人員的職業道德
1.3案例研究
1.3.1胰島素泵控制系統
1.3.2用於心理健康治療的患者信息系統
1.3.3野外氣象站
要點
進一步閱讀材料
練習
參考書目
第2章軟體過程
.2.1軟體過程模型
2.1.1瀑布模型
2.1.2增量式開發
2.1.3面向復用的軟體工程
2.2過程活動
2.2.1軟體描述
2.2.2軟體設計和實現
2.2.3軟體有效性驗證
2.2.4軟體進化
2.3應對變更
2.3.1原型構造
2.3.2增量式交付
2.3.3boehm的螺旋模型
2.4rational統一過程
要點
進一步閱讀材料
練習
參考書目
第3章敏捷軟體開發
3.1敏捷方法
3.2計劃驅動開發和敏捷開發
3.3極限編程
3.3.1極限編程中的測試
3.3.2結對編程
3.4敏捷項目管理
3.5可擴展的敏捷方法
要點
進一步閱讀材料
練習
參考書目
第4章需求工程
4.1功能需求和非功能需求
4.1.1功能需求
4.1.2非功能需求
4.2軟體需求文檔
4.3需求描述
4.3.1自然語言描述
4.3.2結構化描述
4.4需求工程過程
4.5需求導出和分析
4.5.1需求發現
4.5.2采訪
4.5.3腳本
4.5.4用例
4.5.5深入實際
4.6需求有效性驗證
4.7需求管理
4.7.1需求管理規劃
4.7.2需求變更管理
要點
進一步閱讀材料
練習
參考書目
第5章系統建模
5.1上下文模型
5.2交互模型
5.2.1用例建模
5.2.2時序圖
5.3結構模型
5.3.1類圖
5.3.2泛化
5.3.3聚合
5.4行為模型
5.4.1數據驅動的建模
5.4.2事件驅動模型
5.5模型驅動工程
5.5.1模型驅動體系結構
5.5.2可執行uml
要點
進一步閱讀材料
練習
參考書目
第6章體系結構設計
6.1體系結構設計決策
6.2體系結構視圖
6.3體系結構模式
6.3.1分層體系結構
6.3.2容器體系結構
6.3.3客戶機-伺服器體系結構
6.3.4管道和過濾器體系結構
6.4應用體系結構
6.4.1事務處理系統
6.4.2信息系統
6.4.3語言處理系統
要點
進一步閱讀材料
練習
參考書目
第7章設計與實現
7.1利用uml進行面向對象設計
7.1.1系統上下文與交互
7.1.2體系結構的設計
7.1.3對象類識別
7.1.4設計模型
7.1.5介面描述
7.2設計模式
7.3實現問題
7.3.1復用
7.3.2配置管理
7.3.3宿主機-目標機開發
7.4開源開發
要點
進一步閱讀材料
練習
參考書目
第8章軟體測試
8.1開發測試
8.1.1單元測試
8.1.2選擇單元測試案例
8.1.3組件測試
8.1.4系統測試
8.2測試驅動開發
8.3發布測試
8.3.1基於需求的測試
8.3.2情景測試
8.3.3性能測試
8.4用戶測試
要點
進一步閱讀材料
練習
參考書目
第9章軟體進化
9.1進化過程
9.2程序進化的動態特性
9.3軟體維護
9.3.1維護預測
9.3.2軟體再工程
9.3.3通過重構進行預防性維護
9.4遺留系統管理
要點
進一步閱讀材料
練習
參考書目
第二部分可依賴性和信息安全性
第10章社會技術系統
10.1復雜系統
10.1.1系統總體特性
10.1.2系統非確定性
10.1.3成功標准
10.2系統工程
10.3系統采購
10.4系統開發
10.5系統運行
10.5.1人為錯誤
10.5.2系統進化
要點
進一步閱讀材料
練習
參考書目
第11章可依賴性與信息安全性
11.1可依賴性特徵
11.2可用性和可靠性
11.3安全性
11.4信息安全性
要點
進一步閱讀材料
練習
參考書目
第12章可依賴性與信息安全性描述
12.1風險驅動的需求描述
12.2安全性描述
12.2.1危險識別
12.2.2危險評估
12.2.3危險分析
12.2.4風險降低
12.3可靠性描述
12.3.1可靠性度量
12.3.2非功能性的可靠性需求
12.3.3功能可靠性描述
12.4信息安全性描述
12.5形式化描述
要點
進一步閱讀材料
練習
參考書目
第13章可依賴性工程
13.1冗餘性和多樣性
13.2可依賴的過程
13.3可依賴的系統體系結構
13.3.1保護性系統
13.3.2自監控系統體系結構
13.3.3n-版本編程
13.3.4軟體多樣性
13.4可依賴的編程
要點
進一步閱讀材料
練習
參考書目
第14章信息安全工程
14.1信息安全風險管理
14.1.1生存期風險評估
14.1.2運行風險評估
14.2面向信息安全的設計
14.2.1體系結構設計
14.2.2設計准則
14.2.3部署設計
14.3系統生存能力
要點
進一步閱讀材料
練習
參考書目
第15章可依賴性與信息安全保證
15.1靜態分析
15.1.1檢驗和形式化方法
15.1.2模型檢測
15.1.3自動靜態分析
15.2可靠性測試
15.3信息安全性測試
15.4過程保證
15.5安全性和可依賴性案例
15.5.1結構化論證
15.5.2結構化的安全性論證
要點
進一步閱讀材料
練習
參考書目
第三部分高級軟體工程
第16章軟體復用
16.1復用概覽
16.2應用框架
16.3軟體產品線
16.4cots產品的復用
16.4.1cots解決方案系統
16.4.2cots集成系統
要點
進一步閱讀材料
練習
參考書目
第17章基於組件的軟體工程
17.1組件和組件模型
17.2cbse過程
17.2.1面向復用的cbse
17.2.2基於復用的cbse
17.3組件合成
要點
進一步閱讀材料
練習
參考書目
第18章分布式軟體工程
18.1分布式系統的問題
18.1.1交互模型
18.1.2中間件
18.2客戶機-伺服器計算
18.3分布式系統的體系結構模式
18.3.1主從體系結構
18.3.2兩層客戶機-伺服器結構
18.3.3多層客戶機-伺服器結構
18.3.4分布式組件體系結構
18.3.5對等體系結構
18.4軟體作為服務
要點
進一步閱讀材料
練習
參考書目
第19章面向服務的體系結構
19.1服務作為可復用的組件
19.2服務工程
19.2.1可選服務的識別
19.2.2服務介面設計
19.2.3服務實現和部署
19.2.4遺留系統服務
19.3使用服務的軟體開發
19.3.1工作流設計和實現
19.3.2服務測試
要點
進一步閱讀材料
練習
參考書目
第20章嵌入式軟體
20.1嵌入式系統設計
20.1.1實時系統建模
20.1.2實時編程
20.2體系結構模式
20.2.1觀察和反應
20.2.2環境控制
20.2.3處理管道
20.3時序分析
20.4實時操作系統
要點
進一步閱讀材料
練習
參考書目
第21章面向方面的軟體工程
21.1關注點分離
21.2方面、連接點和切入點
21.3採用方面的軟體工程
21.3.1面向關注點的需求工程
21.3.2面向方面的設計和編程
21.3.3檢驗和有效性驗證
要點
進一步閱讀材料
練習
參考書目
第四部分軟 件 管 理
第22章項目管理
22.1風險管理
22.1.1風險識別
22.1.2風險分析
22.1.3風險規劃
22.1.4風險監控
22.2人員管理
22.3團隊協作
22.3.1成員挑選
22.3.2小組的結構
22.3.3小組的溝通
要點
進一步閱讀材料
練習
參考書目
第23章項目規劃
23.1軟體報價
23.2計劃驅動的開發
23.2.1項目計劃
23.2.2規劃過程
23.3項目進度安排
23.4敏捷規劃
23.5估算技術
23.5.1演算法成本建模
23.5.2cocomo Ⅱ模型
23.5.3項目的工期和人員配備
要點
進一步閱讀材料
練習
參考書目
第24章質量管理
24.1軟體質量
24.2軟體標准
24.3復查與審查
24.3.1復查過程
24.3.2程序審查
24.4軟體度量和量度
24.4.1產品量度
24.4.2軟體組件分析
24.4.3度量歧義
要點
進一步閱讀材料
練習
參考書目
第25章配置管理
25.1變更管理
25.2版本管理
25.3系統構建
25.4發布版本管理
要點
進一步閱讀材料
練習
參考書目
第26章過程改善
26.1過程改善過程
26.2過程度量
26.3過程分析
26.4過程變更
26.5cmmi過程改善框架
26.5.1分階段的cmmi模型
26software engineering,9e
出版者的話
譯者序
前言
第一部分軟體工程導論
第1章概述
1.1專業化軟體開發
1.1.1軟體工程
1.1.2軟體工程的多樣性
1.1.3軟體工程和web
1.2軟體工程人員的職業道德
1.3案例研究
1.3.1胰島素泵控制系統
1.3.2用於心理健康治療的患者信息系統
1.3.3野外氣象站
要點
進一步閱讀材料
練習
參考書目
第2章軟體過程
2.1軟體過程模型
2.1.1瀑布模型
2.1.2增量式開發
2.1.3面向復用的軟體工程
2.2過程活動
2.2.1軟體描述
2.2.2軟體設計和實現
2.2.3軟體有效性驗證
2.2.4軟體進化
2.3應對變更
2.3.1原型構造
2.3.2增量式交付
2.3.3boehm的螺旋模型
2.4rational統一過程
要點
進一步閱讀材料
練習
參考書目
第3章敏捷軟體開發
3.1敏捷方法
3.2計劃驅動開發和敏捷開發
3.3極限編程
3.3.1極限編程中的測試
3.3.2結對編程
3.4敏捷項目管理
3.5可擴展的敏捷方法
要點
進一步閱讀材料
練習
參考書目
第4章需求工程
4.1功能需求和非功能需求
4.1.1功能需求
4.1.2非功能需求
4.2軟體需求文檔
4.3需求描述
4.3.1自然語言描述
4.3.2結構化描述
4.4需求工程過程
4.5需求導出和分析
4.5.1需求發現
4.5.2采訪
4.5.3腳本
4.5.4用例
4.5.5深入實際
4.6需求有效性驗證
4.7需求管理
4.7.1需求管理規劃
4.7.2需求變更管理
要點
進一步閱讀材料
練習
參考書目
第5章系統建模
5.1上下文模型
5.2交互模型
5.2.1用例建模
5.2.2時序圖
5.3結構模型
5.3.1類圖
5.3.2泛化
5.3.3聚合
5.4行為模型
5.4.1數據驅動的建模
5.4.2事件驅動模型
5.5模型驅動工程
5.5.1模型驅動體系結構
5.5.2可執行uml
要點
進一步閱讀材料
練習
參考書目
第6章體系結構設計
6.1體系結構設計決策
6.2體系結構視圖
6.3體系結構模式
6.3.1分層體系結構
6.3.2容器體系結構
6.3.3客戶機-伺服器體系結構
6.3.4管道和過濾器體系結構
6.4應用體系結構
6.4.1事務處理系統
6.4.2信息系統
6.4.3語言處理系統
要點
進一步閱讀材料
練習
參考書目
第7章設計與實現
7.1利用uml進行面向對象設計
7.1.1系統上下文與交互
7.1.2體系結構的設計
7.1.3對象類識別
7.1.4設計模型
7.1.5介面描述
7.2設計模式
7.3實現問題
7.3.1復用
7.3.2配置管理
7.3.3宿主機-目標機開發
7.4開源開發
要點
進一步閱讀材料
練習
參考書目
第8章軟體測試
8.1開發測試
8.1.1單元測試
8.1.2選擇單元測試案例
8.1.3組件測試
8.1.4系統測試
8.2測試驅動開發
8.3發布測試
8.3.1基於需求的測試
8.3.2情景測試
8.3.3性能測試
8.4用戶測試
要點
進一步閱讀材料
練習
參考書目
第9章軟體進化
9.1進化過程
9.2程序進化的動態特性
9.3軟體維護
9.3.1維護預測
9.3.2軟體再工程
9.3.3通過重構進行預防性維護
9.4遺留系統管理
要點
進一步閱讀材料
練習
參考書目
第二部分可依賴性和信息安全性
第10章社會技術系統
10.1復雜系統
10.1.1系統總體特性
10.1.2系統非確定性
10.1.3成功標准
10.2系統工程
10.3系統采購
10.4系統開發
10.5系統運行
10.5.1人為錯誤
10.5.2系統進化
要點
進一步閱讀材料
練習
參考書目
第11章可依賴性與信息安全性
11.1可依賴性特徵
11.2可用性和可靠性
11.3安全性
11.4信息安全性
要點
進一步閱讀材料
練習
參考書目
第12章可依賴性與信息安全性描述
12.1風險驅動的需求描述
12.2安全性描述
12.2.1危險識別
12.2.2危險評估
12.2.3危險分析
12.2.4風險降低
12.3可靠性描述
12.3.1可靠性度量
12.3.2非功能性的可靠性需求
12.3.3功能可靠性描述
12.4信息安全性描述
12.5形式化描述
要點
進一步閱讀材料
練習
參考書目
第13章可依賴性工程
13.1冗餘性和多樣性
13.2可依賴的過程
13.3可依賴的系統體系結構
13.3.1保護性系統
13.3.2自監控系統體系結構
13.3.3n-版本編程
13.3.4軟體多樣性
13.4可依賴的編程
要點
進一步閱讀材料
練習
參考書目
第14章信息安全工程
14.1信息安全風險管理
14.1.1生存期風險評估
14.1.2運行風險評估
14.2面向信息安全的設計
14.2.1體系結構設計
14.2.2設計准則
14.2.3部署設計
14.3系統生存能力
要點
進一步閱讀材料
練習
參考書目
第15章可依賴性與信息安全保證
15.1靜態分析
15.1.1檢驗和形式化方法
15.1.2模型檢測
15.1.3自動靜態分析
15.2可靠性測試
15.3信息安全性測試
15.4過程保證
15.5安全性和可依賴性案例
15.5.1結構化論證
15.5.2結構化的安全性論證
要點
進一步閱讀材料
練習
參考書目
第三部分高級軟體工程
第16章軟體復用
16.1復用概覽
16.2應用框架
16.3軟體產品線
16.4cots產品的復用
16.4.1cots解決方案系統
16.4.2cots集成系統
要點
進一步閱讀材料
練習
參考書目
第17章基於組件的軟體工程
17.1組件和組件模型
17.2cbse過程
17.2.1面向復用的cbse
17.2.2基於復用的cbse
17.3組件合成
要點
進一步閱讀材料
練習
參考書目
第18章分布式軟體工程
18.1分布式系統的問題
18.1.1交互模型
18.1.2中間件
18.2客戶機-伺服器計算
18.3分布式系統的體系結構模式
18.3.1主從體系結構
18.3.2兩層客戶機-伺服器結構
18.3.3多層客戶機-伺服器結構
18.3.4分布式組件體系結構
18.3.5對等體系結構
18.4軟體作為服務
要點
進一步閱讀材料
練習
參考書目
第19章面向服務的體系結構
19.1服務作為可復用的組件
19.2服務工程
19.2.1可選服務的識別
19.2.2服務介面設計
19.2.3服務實現和部署
19.2.4遺留系統服務
19.3使用服務的軟體開發
19.3.1工作流設計和實現
19.3.2服務測試
要點
進一步閱讀材料
練習
參考書目
第20章嵌入式軟體
20.1嵌入式系統設計
20.1.1實時系統建模
20.1.2實時編程
20.2體系結構模式
20.2.1觀察和反應
20.2.2環境控制
20.2.3處理管道
20.3時序分析
20.4實時操作系統
要點
進一步閱讀材料
練習
參考書目
第21章面向方面的軟體工程
21.1關注點分離
21.2方面、連接點和切入點
21.3採用方面的軟體工程
21.3.1面向關注點的需求工程
21.3.2面向方面的設計和編程
21.3.3檢驗和有效性驗證
要點
進一步閱讀材料
練習
參考書目
第四部分軟 件 管 理
第22章項目管理
22.1風險管理
22.1.1風險識別
22.1.2風險分析
22.1.3風險規劃
22.1.4風險監控
22.2人員管理
22.3團隊協作
22.3.1成員挑選
22.3.2小組的結構
22.3.3小組的溝通
要點
進一步閱讀材料
練習
參考書目
第23章項目規劃
23.1軟體報價
23.2計劃驅動的開發
23.2.1項目計劃
23.2.2規劃過程
23.3項目進度安排
23.4敏捷規劃
23.5估算技術
23.5.1演算法成本建模
23.5.2cocomo Ⅱ模型
23.5.3項目的工期和人員配備
要點
進一步閱讀材料
練習
參考書目
第24章質量管理
24.1軟體質量
24.2軟體標准
24.3復查與審查
24.3.1復查過程
24.3.2程序審查
24.4軟體度量和量度
24.4.1產品量度
24.4.2軟體組件分析
24.4.3度量歧義
要點
進一步閱讀材料
練習
參考書目
第25章配置管理
25.1變更管理
25.2版本管理
25.3系統構建
25.4發布版本管理
要點
進一步閱讀材料
練習
參考書目
第26章過程改善
26.1過程改善過程
26.2過程度量
26.3過程分析
26.4過程變更
26.5cmmi過程改善框架
26.5.1分階段的cmmi模型
26.5.2連續cmmi模型
要點
進一步閱讀材料
練習
參考書目
術語表5.2連續cmmi模型
要點
進一步閱讀材料
練習
參考書目
術語表
⑹ 軟體工程的作品目錄
中文版
出版者的話
譯者序
前言
第一部分軟體工程導論
第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