TY - BOOK AU - Sommerville,Ian TI - Software engineering / SN - 0201427656 PY - 1995/// CY - Harlow PB - Addison-Wesley KW - INGENIERIA DEL SOFTWARE KW - DISEÑO DE SOFTWARE KW - CASE KW - ADMINISTRACION DE SOFTWARE N1 - CONTENIDO Part One. Introduction 1 Chapter 1. Introduction 3 1.1 Software products 5 1.2 The software process 7 1.3 Boehm's spiral model 13 1.4 Process visibility 16 1.5 Professional responsibility 18 Chapter 2. Computer-based System Engineering 23 2.1 Systems and their environment 25 2.2 System procurement 26 2.3 The system engineering process 28 2.4 System architecture modelling 36 2.5 Human factors 38 2.6 System reliability engineering 40 Chapter 3. Project Management 45 3.1 Management activities 47 3.2 Project planning 48 3.3 Activity organization 51 3.4 Project scheduling 52 Part Two. Requirements and Specification 61 Chapter 4. Requirements Engineering 63 4.1 The requirements engineering process 67 4.2 The software requirements document 68 4.3 Requirements validation 70 4.4 Requirements evolution 73 Chapter 5. Requirements Analysis 79 5.1 Viewpoint-oriented analysis 82 5.2 Method-based analysis 85 5.3 System contexts 92 5.4 Social and organizational factors 94 Chapter 6. System Models 99 6.1 Data-flow models 101 6.2 Semantic data models 103 6.3 Object models 106 6.4 Data dictionaries 112 Chapter 7. Requirements Definition and Specification 117 7.1 Requirements definition 118 7.2 Requirements specification 122 7.3 Non-functional requirements 130 Chapter 8. Software Prototyping 137 8.1 Prototyping in the software process 140 8.2 Prototyping techniques 145 8.3 User interface prototyping 151 Chapter 9. Formal Specification 157 9.1 Formal specification on trial 159 9.2 Transformational development 164 9.3 Specifying functional abstractions 165 Chapter 10. Algebraic Specification 171 10.1 Systematic algebraic specification 174 10.2 Structured specification 178 10.3 Error specification 183 Chapter 11. Model-based Specification 189 11.1 Z schemas 190 11.2 The Z specification process 194 11.3 Specifying ordered collections 201 Part Three. Software Design 207 Chapter 12. Software Design 209 12.1 The design process 210 12.2 Design strategies 215 12.3 Design quality 217 Chapter 13. Architectural Design 225 13.1 System structuring 228 13.2 Control models 233 13.3 Modular decomposition 238 13.4 Domain-specific architectures 241 Chapter 14. Object-oriented Design 247 14.1 Objects, object classes and inheritance 250 14.2 Object identification 255 14.3 An object-oriented design example 258 14.4 Concurrent objects 269 Chapter 15. Function-oriented Design 275 15.1 Data-flow design 278 15.2 Structural decomposition 280 15.3 Detailed design 282 15.4 A comparison of design strategies 285 Chapter 16. Real-time Systems Design 297 16.1 System design 299 16.2 State machine modelling 302 16.3 Real-time executives 304 16.4 Monitoring and control systems 307 16.5 Data acquisition systems 312 Chapter 17. User Interface Design 319 17.1 Design principles 321 17.2 User-system interaction 323 17.3 Information presentation 330 17.4 User guidance 335 17.5 Interface evaluation 341 Part Four. Dependable Systems 347 Chapter 18. Software Reliability 349 18.1 Software reliability metrics 354 18.2 Software reliability specification 357 18.3 Statistical testing 359 18.4 Reliability growth modelling 362 Chapter 19. Programming for Reliability 369 19.1 Fault avoidance 370 19.2 Fault tolerance 378 19.3 Exception handling 381 19.4 Defensive programming 384 Chapter 20. Software Reuse 395 20.1 Software development with reuse 397 20.2 Software development for reuse 400 20.3 Generator-based reuse 108 20.4 Application system portability 410 Chapter 21. Safety-critical Software 419 21.1 An insulin delivery system 422 21.2 Safety specification 424 21.3 Safety assurance 431 Part Five. Verification and Validation 443 Chapter 22. Verification and Validation 445 22.1 The testing process 448 22.2 Test planning 450 22.3 Testing strategies 452 Chapter 23. Defect Testing 463 23.1 Black-box testing 466 23.2 Structural testing 471 23.3 Interface testing 476 Chapter 24. Static Verification 483 24.1 Program inspections 484 24.2 Mathematically based verification 488 24.3 Static analysis tools 493 24.4 Cleanroom software development 496 Part Six. CASE 503 Chapter 25. Computer-aided Software Engineering 505 25.1 CASE classification 507 25.2 Integrated CASE 511 25.3 The CASE life cycle 521 Chapter 26. CASE Workbenches 529 26.1 Programming workbenches 531 26.2 Analysis and design workbenches 535 26.3 Testing workbenches 538 26.4 Meta-CASE workbenches 540 Chapter 27. Software Engineering Environments 545 27.1 Integrated environments 548 27.2 Platform services 550 27.3 Framework services 552 27.4 PCTE 560 Part Seven. Management 565 Chapter 28. Managing People 567 28.1 Cognitive fundamentals 568 28.2 Management implications 573 28.3 Project staffing 576 28.4 Group working 578 28.5 Working environments 584 Chapter 29. Software Cost Estimation 589 29.1 Productivity 592 29.2 Estimation techniques 595 29.3 Algorithmic cost modelling 598 29.4 Project duration and staffing 605 Chapter 30. Quality Management 611 30.1 Process quality assurance 615 30.2 Quality reviews 616 30.3 Software standards 619 30.4 Documentation standards 621 30.5 Software metrics 623 30.6 Product quality metrics 629 Chapter 31. Process Improvement 637 31.1 Process and product quality 639 31.2 Process analysis and modelling 641 31.3 Process measurement 646 31.4 The SEI process maturity model 647 31.5 Process classification 652 Part Eight. Evolution 657 Chapter 32. Software Maintenance 659 32.1 The maintenance process 662 32.2 System documentation 663 32.3 Program evolution dynamics 664 32.4 Maintenance costs 666 32.5 Maintainability measurement 670 Chapter 33. Configuration Management 675 33.1 Configuration management planning 677 33.2 Change management 680 33.3 Version and release management 683 33.4 System building 690 Chapter 34. Software Re-engineering 699 34.1 Source code translation 703 34.2 Program restructuring 704 34.3 Data re-engineering 707 34.4 Reverse engineering 711 ER -