TY - BOOK AU - Sommerville,Ian TI - Software engineering / T2 - International computer science SN - 0-201-39815-X PY - 2001/// CY - Essex : PB - Pearson, KW - INGENIERIA DEL SOFTWARE KW - DISEÑO DE SOFTWARE KW - CASE KW - ADMINISTRACION DE SOFTWARE N1 - CONTENIDO Part 1. Overview 1 Chapter 1 Introduction 3 1.1 FAQs about software engineering 5 1.2 Professional and ethical responsibility 14 Chapter 2 Computer-based system engineering 20 2.1 Emergent system properties 22 2.2 Systems and their environment 24 2.3 System modelling 26 2.4 The system engineering process 29 2.5 System procurement 37 Chapter 3 Software processes 42 3.1 Software process models 44 3.2 Process iteration 51 3.3 Software specification 55 3.4 Software design and implementation 56 3.5 Software validation 60 3.6 Software evolution 63 3.7 Automated process support 63 Chapter 4 Project management 71 4.1 Management activities 73 4.2 Project planning 75 4.3 Project scheduling 78 4.4 Risk management 84 Part 2. Requirements 95 Chapter 5 Software requirements 97 5.1 Functional and non-functional requirements 100 5.2 User requirements 106 5.3 System requirements 109 5.4 The software requirements document 115 Chapter 6 Requirements engineering processes 121 6.1 Feasibility studies 123 6.2 Requirements elicitation and analysis 124 6.3 Requirements validation 137 6.4 Requirements management 139 Chapter 7 System models 148 7.1 Context models 150 7.2 Behavioural models 153 7.3 Data models 158 7.4 Object models 160 7.5 CASE workbenches 166 Chapter 8 Software prototyping 171 8.1 Prototyping in the software process 174 8.2 Rapid prototyping techniques 180 8.3 User interface prototyping 188 Chapter 9 Formal specification 192 9.1 Formal specification in the software process 194 9.2 Interface specification 197 9.3 Behavioural specification 204 Part 3 Design 213 Chapter 10 Architectural design 215 10.1 System structuring 219 10.2 Control models 224 10.3 Modular decomposition 229 10.4 Domain-specific architectures 233 Chapter 11 Distributed systems architectures 239 11.1 Multiprocessor architectures 243 11.2 Client-server architectures 244 11.3 Distributed object architectures 249 11.4 CORBA 252 Chapter 12 Object-oriented design 260 12.1 Objects and object classes 262 12.2 An object-oriented design process 267 12.3 Design evolution 280 Chapter 13 Real-time software design 285 13.1 System design 287 13.2 Real-time executives 291 13.3 Monitoring and control systems 295 13.4 Data acquisition systems 300 Chapter 14 Design with reuse 306 14.1 Component-based development 310 14.2 Application families 318 14.3 Design patterns 322 Chapter 15 User interface design 327 15.1 User interface design principles 330 15.2 User interaction 332 15.3 Information presentation 334 15.4 User support 340 15.5 Interface evaluation 345 Part 4 Critical Systems 351 Chapter 16 Dependability 353 16.1 Critical systems 356 16.2 Availability and reliability 359 16.3 Safety 364 16.4 Security 367 Chapter 17 Critical systems specification 371 17.1 Software reliability specification 373 17.2 Safety specification 379 17.3 Security specification 387 Chapter 18 Critical systems development 392 18.1 Fault minimisation 393 18.2 Fault tolerance 400 18.3 Fault-tolerant architectures 410 18.4 Safe system design 413 Part 5 Verification and Validation 417 Chapter 19 Verification and validation 419 19.1 Verification and validation planning 423 19.2 Software inspections 425 19.3 Automated static analysis 431 19.4 Cleanroom software development 434 Chapter 20 Software testing 440 20.1 Defect testing 442 20.2 Integration testing 452 20.3 Object-oriented testing 458 20.4 Testing workbenches 462 Chapter 21 Critical systems validation 467 21.1 Formal methods and critical systems 469 21.2 Reliability validation 470 21.3 Safety assurance 476 21.4 Security assessment 483 Part 6 Management 487 Chapter 22 Managing people 489 22.1 Limits to thinking 490 22.2 Group working 497 22.3 Choosing and keeping people 503 22.4 The People Capability Maturity Model 506 Chapter 23 Software cost estimation 511 23.1 Productivity 513 23.2 Estimation techniques 518 23.3 Algorithmic cost modelling 520 23.4 Project duration and staffing 531 Chapter 24 Quality management 535 24.1 Quality assurance and standards 539 24.2 Quality planning 544 24.3 Quality control 546 24.4 Software measurement and metrics 547 Chapter 25 Process improvement 557 25.1 Process and product quality 560 25.2 Process analysis and modelling 562 25.3 Process measurement 566 25.4 The SEI Process Capability Maturity Model 568 25.5 Process classification 573 Part 7 Evolution 579 Chapter 26 Legacy systems 581 26.1 Legacy system structures 583 26.2 Legacy system design 587 26.3 Legacy system assessment 592 Chapter 27 Software change 601 27.1 Program evolution dynamics 603 27.2 Software maintenance 605 27.3 Architectural evolution 614 Chapter 28 Software re-engineering 622 28.1 Source code translation 626 28.2 Reverse engineering 628 28.3 Program structure improvement 629 28.4 Program modularisation 632 28.5 Data re-engineering 634 Chapter 29 Configuration management 641 29.1 Configuration management planning 644 29.2 Change management 647 29.3 Version and release management 650 29.4 System building 655 29.5 CASE tools for configuration management 656 References 663 Index 679 ER -