Software engineering fundamentals

UNIT ONE: INTRODUCTION 1. Overview of System and Software Development Life Cycles 1.0 Objectives 1.1 Introduction 1.2 System: Definition and Discussion 1.3 System Level Project Planning 1.4 System Development Life Cycle Definition and Overview 1.5 Software Development Life Cycle: A Brief Overview 1.6 SWDLC Models 1.7 The Software Engineering Process 1.8 Some General Observations on SDLC and SWDLC 1.9 Chapter Summary 1.10 Exercises 2. Case Studies 2.0 Objectives 2.1 Introduction 2.2 Case Study Problem Statements 2.3 The XYZ Project: Analysis 2.4 The Bidder Perspective 2.5 Chapter Summary 2.6 Exercises 3. Technical Planning 3.0 Objectives 3.1 Introduction 3.2 Software Development Planning 3.3 The Use of SDP as a Management Tool 3.4 Attribute (Metrics) Estimation 3.5 Automated Planning Tools 3.6 Management, Methodology and Metrics 3.7 Chapter Summary 3.8 Unit One Summary 3.9 Exercises UNIT TWO: ANALYSIS AND DESIGN 4. Software Specifications and Requirement Analysis 4.0 Objectives 4.1 Introduction 4.2 People Involved in the Software Development Process 4.3 Software Requirements Specification (SRS) 4.4 Examples of SRS Preparation 4.5 Other Software Specification Documents 4.6 Software Specification Attributes 4.7 Chapter Summary 4.8 Exercies 5. Software Specification Tools 5.0 Objectives 5.1 Introduction 5.2 Data Dictionary 5.3 Decision Support Tools 5.4 Data Flow Diagrams 5.5 Finite State Machines 5.6 Petri Nets 5.7 Mathematical Logic 5.8 Operational Timelines 5.9 Chapter Summary 5.10 Exercises 6. Software Development Environment 6.0 Objectives 6.1 Introduction 6.2 Software Development Environment Configuration 6.3 Software Development Platform (SDPF) 6.4 Computer-Aided Software Engineering Tools 6.5 An Ideal Software Development Platform 6.6 Chapter Summary 6.7 Exercises 7. Software Design 7.0 Objectives 7.1 Introduction 7.2 An Overview of the Software Design Process 7.3 Software Design 7.4 A Design Example 7.5 Chapter Summary 7.6 Exercises 8. Object-Oriented Analysis and Design 8.0 Objectives 8.1 Introduction 8.2 Object-Oriented Paradigm 8.3 Basic Definitions and Symbols 8.4 Object-Oriented Analysis 8.5 Object-Oriented Design 8.6 Chapter Summary 8.7 Exercises UNIT THREE: IMPLEMENTATION AND MAINTENANCE 9. Fundamentals of Coding 9.0 Objectives 9.1 Introduction 9.2 Programming Languages 9.3 Programming Style and Program Quality 9.4 A Programming Example 9.5 Chapter Summary 9.6 Exercises 10. Software System Test and Integration 10.0 Objectives 10.1 Introduction 10.2 Basic Concepts in Testing 10.3 An Overview of System and Software Test and Integration 10.4 The Incremental Build of Modules into Systems 10.5 Test and Integration Plan 10.7 Perspective on Build Testing 10.8 Alpha and Beta Testing 10.9 Chapter Summary 10.10 Exercises 11. Module Level Testing 11.0 Objectives 11.1 Introduction 11.2 Module Test Planning 11.3 Static Testing 11.4 Dynamic Testing 11.5 Test Case Execution 11.6 Formal Testing 11.7 Perspective on Module Testing 11.8 Chapter Summary 11.9 Exercises 12. Debugging 12.0 Objectives 12.1 Introduction 12.2 Program Errors 12.3 The Debugging Process 12.4 Perspectives on Debugging 12.5 Debugging Tools 12.6 An Example 12.7 Chapter Summary 12.8 Exercises 13. Software Maintenance and Maintainability 13.0 Objectives 13.1 Introduction 13.2 Software Maintenance 13.3 Software Maintenance Process 13.4 Maintenance Resource Estimation 13.5 Directly Specified Maintenace Attributes 13.6 Reverse Engineering 13.7 Re-engineering a Software Product 13.8 Chapter Summary 13.9 Exercises UNIT FOUR: SOFTWARE METRICS OR ATTRIBUTES 14. Software Attributes and Their Estimation 14.0 Objectives 14.1 Introduction 14.2 Identification Related Attributes 14.3 Size Related Attributes 14.4 Design and Development Attributes 14.5 Software Quality Attributes 14.6 Complexity Related Attributes 14.7 Execution Time Related Attributes 14.8 Test Related Attributes 14.9 Documentation Related Attributes 14.10 Performance Related Attributes 14.11 Labor Related Attributes 14.12 Operating Environment Attributes 14.13 Data Collection 14.14 Chapter Summary 14.15 Exercises 15. Software Developement Resource Estimation 15.0 Objectives 15.1 Introduction 15.2 Software Product Cost and Schedule Estimation 15.3 Cost and Schedule Estimation Models 15.4 Grass Roots Resource and Schedule Estimation 15.5 An Example of Schedule Development 15.6 Closing Comments 15.7 Chapter Summary 15.8 Exercises 16. Software Development Risk Assessment and Containment 16.0 Objectives 16.1 Introduction 16.2 Software Development Risk Areas 16.3 The Risk Model 16.4 Risk Containment and Risk Management 16.5 Technical Performance Management 16.6 Examples to Illustrate Software Development Risk Analysis 16.7 Chapter Summary 16.8 Exercises 17. Reliability 17.0 Objectives 17.1 Introduction 17.2 Overview 17.3 Review of Probability Theory 17.4 Reliability Definitions 17.5 Reliability Models 17.6 Software Faults 17.7 Design Rules 17.8 System Reliability and Availability 17.9 Applications of a Software Reliability Model 17.10 Redundancy and Fault Tolerance 17.11 Failure Modes and Effects and Other Analysis Tools 17.12 Chapter Summary 17.13 Exercises 18. Software Quality and Quality Assurance 18.0 Objectives 18.1 Introduction 18.2 Software Quality Assurance Planning 18.3 Software Quality Assurance Process 18.4 Software Quality Attributes 18.5 Guidelines and Checklists 18.6 Software Safety 18.7 Chapter Summary 18.8 Exercises UNIT FIVE: SPECIAL TOPICS 19. Real-Time Software 19.0 Objectives 19.1 Introduction 19.2 Real-Time Requirements Specification 19.3 Design Guidlines for Real-Time Software 19.4 Schedulability Concerns 19.5 Testing Real-Time Software 19.6 Chapter Summary 19.7 Exercises 20. Human Factors in Software Engineering 20.0 Objectives 20.1 Introduction 20.2 Human Factors History 20.3 HCI Requirements and Design Process 20.4 The Human as an Information System Component 20.5 Operator Task Development 20.6 Operator Characteristics 20.7 Chapter Summary 20.8 Exercises Appendix A: Communication Skills Appendix B: Cost Benefit Analysis Appendix C: Decisions and Trade-Offs Appendix D: Reviews