Menu Expand
Software Engineering, Global Edition

Software Engineering, Global Edition

Ian Sommerville

(2016)

Additional Information

Book Details

Abstract

For courses in computer science and software engineering

 

The Fundamental Practice of Software Engineering

Software Engineering introduces students to the overwhelmingly important subject of software programming and development. In the past few years, computer systems have come to dominate not just our technological growth, but the foundations of our world’s major industries. This text seeks to lay out the fundamental concepts of this huge and continually growing subject area in a clear and comprehensive manner.


The Tenth Edition contains new information that highlights various technological updates of recent years, providing students with highly relevant and current information. Sommerville’s experience in system dependability and systems engineering guides the text through a traditional plan-based approach that incorporates some novel agile methods. The text strives to teach the innovators of tomorrow how to create software that will make our world a better, safer, and more advanced place to live.


Table of Contents

Section Title Page Action Price
Cover Cover
Title Page 1
Copyright Page 2
Preface 3
Acknowledgements 7
Contents at a glance 8
Dedication 8
Contents 9
Part 1 Introduction to Software Engineering 15
Chapter 1 Introduction 17
1.1 Professional software development 19
1.2 Software engineering ethics 28
1.3 Case studies 31
Chapter 2 Software processes 43
2.1 Software process models 45
2.2 Process activities 54
2.3 Coping with change 61
2.4 Process improvement 65
Chapter 3 Agile software development 72
3.1 Agile methods 75
3.2 Agile development techniques 77
3.3 Agile project management 84
3.4 Scaling agile methods 88
Chapter 4 Requirements engineering 101
4.1 Functional and non-functional requirements 105
4.2 Requirements engineering processes 111
4.3 Requirements elicitation 112
4.4 Requirements specification 120
4.5 Requirements validation 129
4.6 Requirements change 130
Chapter 5 System modeling 138
5.1 Context models 141
5.2 Interaction models 144
5.3 Structural models 149
5.4 Behavioral models 154
5.5 Model-driven architecture 159
Chapter 6 Architectural design 167
6.1 Architectural design decisions 171
6.2 Architectural views 173
6.3 Architectural patterns 175
6.4 Application architectures 184
Chapter 7 Design and implementation 196
7.1 Object-oriented design using the UML 198
7.2 Design patterns 209
7.3 Implementation issues 212
7.4 Open-source development 219
Chapter 8 Software testing 226
8.1 Development testing 231
8.2 Test-driven development 242
8.3 Release testing 245
8.4 User testing 249
Chapter 9 Software evolution 255
9.1 Evolution processes 258
9.2 Legacy systems 261
9.3 Software maintenance 270
Part 2 System Dependability and Security 283
Chapter 10 Dependable systems 285
10.1 Dependability properties 288
10.2 Sociotechnical systems 291
10.3 Redundancy and diversity 295
10.4 Dependable processes 297
10.5 Formal methods and dependability 299
Chapter 11 Reliability engineering 306
11.1 Availability and reliability 309
11.2 Reliability requirements 312
11.3 Fault-tolerant architectures 318
11.4 Programming for reliability 325
11.5 Reliability measurement 331
Chapter 12 Safety engineering 339
12.1 Safety-critical systems 341
12.2 Safety requirements 344
12.3 Safety engineering processes 352
12.4 Safety cases 361
Chapter 13 Security engineering 373
13.1 Security and dependability 376
13.2 Security and organizations 380
13.3 Security requirements 382
13.4 Secure systems design 388
13.5 Security testing and assurance 402
Chapter 14 Resilience engineering 408
14.1 Cybersecurity 412
14.2 Sociotechnical resilience 416
14.3 Resilient systems design 424
Part 3 Advanced Software Engineering 435
Chapter 15 Software reuse 437
15.1 The reuse landscape 440
15.2 Application frameworks 443
15.3 Software product lines 446
15.4 Application system reuse 453
Chapter 16 Component-based software engineering 464
16.1 Components and component models 467
16.2 CBSE processes 473
16.3 Component composition 480
Chapter 17 Distributed software engineering 490
17.1 Distributed systems 492
17.2 Client–server computing 499
17.3 Architectural patterns for distributed systems 501
17.4 Software as a service 512
Chapter 18 Service-oriented software engineering 520
18.1 Service-oriented architecture 524
18.2 RESTful services 529
18.3 Service engineering 533
18.4 Service composition 541
Chapter 19 Systems engineering 551
19.1 Sociotechnical systems 556
19.2 Conceptual design 563
19.3 System procurement 566
19.4 System development 570
19.5 System operation and evolution 574
Chapter 20 Systems of systems 580
20.1 System complexity 584
20.2 Systems of systems classification 587
20.3 Reductionism and complex systems 590
20.4 Systems of systems engineering 593
20.5 Systems of systems architecture 599
Chapter 21 Real-time software engineering 610
21.1 Embedded system design 613
21.2 Architectural patterns for real-time software 620
21.3 Timing analysis 626
21.4 Real-time operating systems 631
Part 4 Software Management 639
Chapter 22 Project management 641
22.1 Risk management 644
22.2 Managing people 652
22.3 Teamwork 656
Chapter 23 Project planning 667
23.1 Software pricing 670
23.2 Plan-driven development 672
23.3 Project scheduling 675
23.4 Agile planning 680
23.5 Estimation techniques 682
23.6 COCOMO cost modeling 686
Chapter 24 Quality management 700
24.1 Software quality 703
24.2 Software standards 706
24.3 Reviews and inspections 710
24.4 Quality management and agile development 714
24.5 Software measurement 716
Chapter 25 Configuration management 730
25.1 Version management 735
25.2 System building 740
25.3 Change management 745
25.4 Release management 750
Glossary 757
A 757
B 758
C 759
D 761
E 762
F 763
G 763
H 764
I 764
J 765
L 765
M 765
N 766
O 766
P 767
Q 768
R 768
S 770
T 773
U 773
V 774
W 774
X 775
Z 775
Subject index 777
A 777
B 779
C 779
D 781
E 783
F 784
G 785
H 785
I 786
J 787
L 787
M 787
N 789
O 789
P 790
Q 792
R 792
S 794
T 799
U 799
V 800
W 800
X 801
Author index 803
A 803
B 803
C 804
D 804
E 805
F 805
G 805
H 805
I 805
J 806
K 806
L 806
M 807
N 807
O 807
P 808
Q 808
R 808
S 808
T 809
U 809
V 809
W 809
X 810
Y 810
Z 810