《軟件工程(英文版·第9版)》特點(diǎn):
   ·涵蓋了對所有開發(fā)過程都很基礎(chǔ)的重要主題,包括軟件工程理論與實(shí)踐的最新進(jìn)展。
   ·將第8版中的八篇內(nèi)容重構(gòu)為四個部分,使教師講授軟件工程課程更加容易。
   ·每一章都有30%~40%的更新,增加了敏捷軟件開發(fā)和嵌入式系統(tǒng)等新章,補(bǔ)充了模型驅(qū)動工程、開源開發(fā)、測試驅(qū)動開發(fā)、可依賴系統(tǒng)體系結(jié)構(gòu)、靜態(tài)分析和模型檢查、cots復(fù)用、服務(wù)作為軟件以及敏捷規(guī)劃等新內(nèi)容。
   ·著重討論了開發(fā)可靠的分布式系統(tǒng)的相關(guān)主題以及敏捷方法和軟件復(fù)用。
   ·反映敏捷方法先進(jìn)性的同時,不忘強(qiáng)調(diào)傳統(tǒng)的計(jì)劃驅(qū)動軟件工程的作用,闡述了兩者結(jié)合構(gòu)建優(yōu)秀軟件系統(tǒng)的重要性。
   ·以一個新的病人記錄系統(tǒng)案例研究貫穿始終,系統(tǒng)、完整地講解軟件工程的各個方面。
   ·設(shè)計(jì)為“印刷/web”相結(jié)合的方式,核心信息采用印刷版本,教輔材料及先前版本中的一些章節(jié)放在web上,為讀者提供豐富翔實(shí)的信息。
lan Sommerville 英國著名軟件工程專家,曾任教于蘭卡斯特大學(xué),現(xiàn)為安德魯斯大學(xué)軟件工程學(xué)教授。他在軟件工程的教學(xué)和科研方面有20多年的經(jīng)驗(yàn),是IEEE CS組織編撰“軟件工程知識體系”(SWEBOK)的專家委員會成員之一。他的研究領(lǐng)域包括計(jì)算機(jī)系統(tǒng)工程、需求工程、系統(tǒng)可靠性以及軟件進(jìn)化。
preface v
 part 1 introduction to software engineering 
 chapter 1 introduction 
 1.1 professional software development 
 1.2 software engineering ethics 
 1.3 case studies 
 chapter 2 software processes 
 2.1 software process models 
 2.2 process activities 
 2.3 coping with change 
 2.4 the rational unified process 
 chapter 3 agile software development 
 3.1 agile methods 
 3.2 plan-driven and agile development 
 3.3 extreme programming 
 3.4 agile project management 
 3.5 scaling agile methods 
 chapter 4 requirements engineering 
 4.1 functional and non-functional requirements 
 4.2 the software requirements document 
 4.3 requirements specification 
 4.4 requirements engineering processes 
 4.5 requirements elicitation and analysis 
 4.6 requirements validation 
 4.7 requirements management 
 chapter 5 system modeling 
 5.1 context models 
 5.2 interaction models 
 5.3 structural models 
 5.4 behavioral models 
 5.5 model-driven engineering 
 chapter 6 architectural design 
 6.1 architectural design decisions 
 6.2 architectural views 
 6.3 architectural patterns 
 6.4 application architectures 
 chapter 7 design and implementation 
 7.1 object-oriented design using the uml 
 7.2 design patterns 
 7.3 implementation issues 
 7.4 open source development 
 chapter 8 software testing 
 8.1 development testing 
 8.2 test-driven development 
 8.3 release testing 
 8.4 user testing 
 chapter 9 software evolution 
 9.1 evolution processes 
 9.2 program evolution dynamics 
 9.3 software maintenance 
 9.4 legacy system management 
 part 2 dependability and security 
 chapter 10 sociotechnical systems 
 10.1 complex systems 
 10.2 systems engineering 
 10.3 system procurement 
 10.4 system development 
 10.5 system operation 
 chapter 11 dependability and security 
 11.1 dependability properties 
 11.2 availability and reliability 
 11.3 safety 
 11.4 security 
 chapter 12 dependability and security specification 
 12.1 risk-driven requirements specification 
 12.2 safety specification 
 12.3 reliability specification 
 12.4 security specification 
 12.5 formal specification 
 chapter 13 dependability engineering 
 13.1 redundancy and diversity 
 13.2 dependable processes 
 13.3 dependable system architectures 
 13.4 dependable programming 
 chapter 14 security engineering 
 14.1 security risk management 
 14.2 design for security 
 14.3 system survivability 
 chapter 15 dependability and security assurance 
 15.1 static analysis 
 15.2 reliability testing 
 15.3 security testing 
 15.4 process assurance 
 15.5 safety and dependability cases 
 part 3 advanced software engineering 
 chapter 16 software reuse 
 16.1 the reuse landscape 
 16.2 application frameworks 
 16.3 software product lines 
 16.4 cots product reuse 
 chapter 17 component-based software engineering 
 17.1 components and component models 
 17.2 cbse processes 
 17.3 component composition 
 chapter 18 distributed software engineering 
 18.1 distributed systems issues 
 18.2 client–server computing 
 18.3 architectural patterns for distributed systems 
 18.4 software as a service 
 chapter 19 service-oriented architecture 
 19.1 services as reusable components 
 19.2 service engineering 
 19.3 software development with services 
 chapter 20 embedded software 
 20.1 embedded systems design 
 20.2 architectural patterns 
 20.3 timing analysis 
 20.4 real-time operating systems 
 chapter 21 aspect-oriented software engineering 
 21.1 the separation of concerns 
 21.2 aspects, join points and pointcuts 
 21.3 software engineering with aspects 
 part 4 software management 
 chapter 22 project management 
 22.1 risk management 
 22.2 managing people 
 22.3 teamwork 
 chapter 23 project planning 
 23.1 software pricing 
 23.2 plan-driven development 
 23.3 project scheduling 
 23.4 agile planning 
 23.5 estimation techniques 
 chapter 24 quality management 
 24.1 software quality 
 24.2 software standards 
 24.3 reviews and inspections 
 24.4 software measurement and metrics 
 chapter 25 configuration management 
 25.1 change management 
 25.2 version management 
 25.3 system building 
 25.4 release management 
 chapter 26 process improvement 
 26.1 the process improvement process 
 26.2 process measurement 
 26.3 process analysis 
 26.4 process change 
 26.5 the cmmi process improvement framework 
 glossary 
 subject index 
 author index