Limit search to available items
Book Cover
Book
Author Vliet, Hans van.

Title Software engineering : principles and practice / Hans van Vliet
Edition Second edition
Published Chichester [England] ; New York : John Wiley, 2000

Copies

Location Call no. Vol. Availability
 MELB  005.1 Vli/Sep 2000  AVAILABLE
Description xxii, 726 pages : illustrations ; 24 cm
Contents 1.1 What is Software Engineering? 6 -- 1.2 Phases in the Development of Software 10 -- 1.3 Maintenance or Evolution 16 -- 1.4 From the Trenches 17 -- 1.4.1 Ariane 5, Flight 501 18 -- 1.4.2 Therac-25 19 -- 1.4.3 London Ambulance Service 21 -- 1.5 Software Engineering Ethics 24 -- 1.6 Quo Vadis? 26 -- Part I Software Management 33 -- 2 Introduction to Software Engineering Management 35 -- 2.1 Planning a Software Development Project 38 -- 2.2 Controlling a Software Development Project 41 -- 3 Software Life Cycle Revisited 47 -- 3.1 Waterfall Model 49 -- 3.2 Prototyping 51 -- 3.3 Incremental Development 56 -- 3.4 Rapid Application Development 57 -- 3.5 Intermezzo: Maintenance or Evolution 59 -- 3.6 Spiral Model 62 -- 3.7 Towards a Software Factory 64 -- 3.8 Process Modeling 65 -- 4 Configuration Management 73 -- 4.1 Tasks and Responsibilities 75 -- 4.2 Configuration Management Plan 80 -- 5 People Management and Team Organization 85 -- 5.1 People Management 87 -- 5.1.1 Coordination Mechanisms 88 -- 5.1.2 Management Styles 90 -- 5.2 Team Organization 92 -- 5.2.1 Hierarchical Organization 92 -- 5.2.2 Matrix Organization 94 -- 5.2.3 Chief Programmer Team 95 -- 5.2.4 SWAT Team 96 -- 5.2.5 Open Structured Team 96 -- 5.2.6 General Principles for Organizing a Team 97 -- 6 On Managing Software Quality 101 -- 6.1 On Measures and Numbers 104 -- 6.2 A Taxonomy of Quality Attributes 110 -- 6.3 Perspectives on Quality 120 -- 6.4 Quality System 123 -- 6.5 Software Quality Assurance 125 -- 6.6 Capability Maturity Model (CMM) 126 -- 6.7 Some Critical Notes 134 -- 7 Cost Estimation 143 -- 7.1 How Not to Estimate Cost 149 -- 7.2 Early Algorithmic Models 151 -- 7.3 Later Algorithmic Models 154 -- 7.3.1 Walston--Felix 156 -- 7.3.2 COCOMO 158 -- 7.3.3 Putnam 160 -- 7.3.4 DeMarco 162 -- 7.3.5 Function Point Analysis 163 -- 7.3.6 COCOMO 2: Variations on a Theme 166 -- 7.4 Distribution of Manpower over Time 172 -- 8 Project Planning and Control 181 -- 8.1 A Systems View of Project Control 182 -- 8.2 A Taxonomy of Software Development Projects 185 -- 8.3 Risk Management 189 -- 8.4 Techniques for Project Planning and Control 192 -- Part II Software Life Cycle 201 -- 9 Requirements Engineering 203 -- 9.1 Requirements Elicitation 210 -- 9.1.1 Requirements Elicitation Techniques 217 -- 9.2 Requirements Specification Document 224 -- 9.3 Requirements Specification Techniques 231 -- 9.3.1 Entity--Relationship Modeling 233 -- 9.3.2 Finite State Machines 236 -- 9.3.3 SADT 237 -- 9.3.4 Specifying Non-Functional Requirements 241 -- 9.4 A Modeling Framework 242 -- 9.5 Verification and Validation 246 -- 10 Software Architecture 253 -- 10.1 An Example: Producing a KWIC-Index 258 -- 10.1.1 Main Program and Subroutines with Shared Data 260 -- 10.1.2 Abstract Data Types 261 -- 10.1.3 Implicit Invocation 264 -- 10.1.4 Pipes and Filters 266 -- 10.1.5 Evaluation of the Architectures 267 -- 10.2 Architectural Styles 270 -- 10.3 Design Patterns 282 -- 10.4 Verification and Validation 285 -- 11 Software Design 291 -- 11.1 Design Considerations 295 -- 11.1.1 Abstraction 296 -- 11.1.2 Modularity 299 -- 11.1.3 Information Hiding 303 -- 11.1.4 Complexity 303 -- 11.1.5 System Structure 311 -- 11.2 Design Methods 315 -- 11.2.1 Functional Decomposition 317 -- 11.2.2 Data Flow Design (SA/SD) 321 -- 11.2.3 Design based on Data Structures 326 -- 11.2.4 How to Select a Design Method 334 -- 11.3 Notations that Support the Design Process 337 -- 11.4 Design Documentation 339 -- 11.5 Verification and Validation 342 -- 12 Object-Oriented Analysis and Design 351 -- 12.1 On Objects and Related Stuff 353 -- 12.2 Object-Oriented Analysis and Design Notations 359 -- 12.2.1 Class Diagram 360 --c 12.2.2 State Diagram 363 -- 12.2.3 Sequence Diagram 367 -- 12.2.4 Collaboration Diagram 368 -- 12.2.5 Use Case Diagram 369 -- 12.2.6 CRC Cards 370 -- 12.3 Object-Oriented Analysis and Design Methods 371 -- 12.3.1 Booch Method 378 -- 12.3.2 Object Modeling Technique (OMT) 379 -- 12.3.3 Fusion 381 -- 12.3.4 Object Orientation: Hype or the Answer? 383 -- 12.4 Object-Oriented Metrics 385 -- 13 Software Testing 395 -- 13.1 Test Objectives 399 -- 13.1.1 Test Adequacy Criteria 402 -- 13.1.2 Fault Detection Versus Confidence Building 403 -- 13.1.3 From Fault Detection to Fault Prevention 405 -- 13.2 Testing and the Software Life Cycle 407 -- 13.2.1 Requirements Engineering 407 -- 13.2.2 Design 409 -- 13.2.3 Implementation 410 -- 13.2.4 Maintenance 411 -- 13.3 Verification and Validation Planning and Documentation 411 -- 13.4 Manual Test Techniques 413 -- 13.4.1 Reading 414 -- 13.4.2 Walkthroughs and Inspections 415 -- 13.4.3 Scenario-Based Evaluation 417 -- 13.4.4 Correctness Proofs 418 -- 13.4.5 Stepwise Abstraction 419 -- 13.5 Coverage-Based Test Techniques 420 -- 13.5.1 Control-Flow Coverage 421 -- 13.5.2 Data Flow Coverage 424 -- 13.5.3 Coverage-Based Testing of Requirements Specifications 425 -- 13.6 Fault-Based Test Techniques 427 -- 13.6.1 Fault Seeding 427 -- 13.6.2 Mutation Testing 428 -- 13.7 Error-Based Test Techniques 429 -- 13.8 Comparison of Test Techniques 431 -- 13.8.1 Comparison of Test Adequacy Criteria 432 -- 13.8.2 Properties of Test Adequacy Criteria 433 -- 13.8.3 Experimental Results 436 -- 13.9 Different Test Stages 438 -- 14 Software Maintenance 447 -- 14.1 Major Causes of Maintenance Problems 451 -- 14.2 Reverse Engineering and Restructuring 455 -- 14.2.1 Inherent Limitations 458 -- 14.2.2 Tools 462 -- 14.3 Organizational and Managerial Issues 463 -- 14.3.1 Organization of Maintenance Activities 464 -- 14.3.2 Software Maintenance from a Service Perspective 467 -- 14.3.3 Control of Maintenance Tasks 473 -- 14.3.4 Quality Issues 476 -- Part III Supporting Technology 481 -- 15 Formal Specification 483 -- 15.1 Informal Specification Techniques 487 -- 15.2 Model-Oriented Specifications 489 -- 15.2.1 Concepts of VDM 493 -- 15.2.2 A Sample VDM Specification 496 -- 15.2.3 Validation of a VDM Specification 504 -- 15.3 Algebraic Specifications 505 -- 15.3.1 Initial and Final Semantics 507 -- 15.3.2 Some Difficulties 510 -- 15.3.3 How to Construct an Algebraic Specification 511 -- 15.3.4 Some Example Algebraic Specifications 514 -- 15.3.5 Large Specifications 518 -- 15.4 Specification by Pre- and Postconditions 519 -- 15.5 Thou Shalt Formalize 521 -- 16 User Interface Design 531 -- 16.1 Where Is the User Interface? 534 -- 16.2 What Is the User Interface? 538 -- 16.3 Human Factors in Human--Computer Interaction 539 -- 16.3.1 Humanities 539 -- 16.3.2 Artistic Design 540 -- 16.3.3 Ergonomics 541 -- 16.4 Role of Models in Human--Computer Interaction 543 -- 16.4.1 A Model of Human Information Processing 544 -- 16.4.2 Mental Models of Information Systems 547 -- 16.4.3 Conceptual Models in User Interface Design 549 -- 16.5 Design of Interactive Systems 552 -- 16.5.1 Design as an Activity Structure 553 -- 16.5.2 Design as Multi-Disciplinary Collaboration 555 -- 16.6 Task Analysis 557 -- 16.6.1 Task Analysis in HCI Design 557 -- 16.6.2 Analysis Approaches for Collaborative Work 559 -- 16.6.3 Sources of Knowledge and Collection Methods 560 -- 16.6.4 An Integrated Approach to Task Analysis: GTA 561 -- 16.7 Specification of the User Interface Details 563 -- 16.7.1 Dialog 564 -- 16.7.2 Representation 565 -- 16.8 Evaluation 565 -- 16.8.1 Evaluation of Analysis Decisions 566 -- 16.8.2 Evaluation of UVM Specifications 567 -- 16.8.3 Evaluation of Prototypes 570 -- 17 Software Reusability 575 -- 17.1 Reuse Dimensions 578 -- 17.2 Reuse of Intermediate Products 580 -- 17.2.1 Libraries of Software Components 580 -- 17.2.2 Templates 585 -- 17.2.3 Design Reuse 585 -- 17.2.4 Reuse of Architecture 586 -- 17.2.5 Transformation Systems 586 -- 17.2.6 Application Generators and Fourth-Generation Languages 588 -- 17.3 Reuse and the Software Life Cycle 589 -- 17.4 Reuse Tools and Techniques 591 -- 17.4.1 From Module Interconnection Language to Architecture Description Language 591 -- 17.4.2 Middleware 596 -- 17.4.3 Object-Oriented Programming 597 -- 17.4.4 Software Development Environments 598 -- 17.5 Perspectives of Software Reuse 600 -- 17.6 Non-Technical Aspects of Software Reuse 604 -- 17.6.1 Economics 605 -- 17.6.2 Management 607 -- 17.6.3 Psychology of Programmers 608 -- 18 Software Reliability 615 -- 18.1 An Example: Fault-Tolerant Disks 617 -- 18.2 Estimating Software Reliability 621 -- 19 Software Tools 631 -- 19.1 Toolkits 636 -- 19.2 Language-Centered Environments 638 -- 19.3 Integrated Environments and Workbenches 641 -- 19.3.1 Analyst WorkBenches 642 -- 19.3.2 Programmer Workbenches 643 -- 19.3.3 Management Workbenches 647 -- 19.3.4 Integrated Project Support Environments 648 -- 19.4 Process-Centered Environments 650 -- Appendix A ISO 9001: Quality Systems 655 -- Appendix B IEEE Standard 730: Software Quality Assurance Plans 659 -- Appendix C IEEE Standard 830: Software Requirements Specifications 663 -- Appendix D IEEE Standard 1012: Software Verification and Verification Plans 667
Notes Includes index
Bibliography Includes bibliographical references (pages 673-716) and index
Subject Computer software -- Development.
Software engineering.
LC no. 00028992
ISBN 0471975087
9780471975083