This text provides a comprehensive, but concise introduction to software engineering. It adopts a methodical approach to solving software engineering problems. It is based on lecture notes that have been tested and proven over several years, with outstanding results. The book discusses concepts, principles, design, construction, implementation, and management issues of software systems. Each chapter is organized systematically into brief, reader-friendly sections, with itemization of the important points to be remembered. Diagrams and illustrations also sum up the salient points to enhance learning. Additionally, the book includes a number of Foster’s original methodologies that add clarity and creativity to the software engineering experience, while making a novel contribution to the discipline. Upholding his aim for brevity, comprehensive coverage, and relevance, Foster’s practical and methodical discussion style gets straight to the salient issues, and avoids unnecessary fluff as well as an overkill of theoretical calculations. Students and entry-level software engineers alike should find this approach useful in their respective needs. Brief Contents Division Fundamentals 1. Introduction to Software Engineering 2. The Role of the Software Engineer Division Software Investigation & Analysis 3. Project Selection and Initial System Requirements 4. The Requirements Specification 5. Information Gathering 6. Communicating Via Diagram 7. Decision Models for System Logic 8. Project Management Aids Division Software Design 9. Overview of Software Design 10. Database Design 11. User Interface Design 12. Operations Design 13. Other Design Considerations Division Software Development 14. Software Development Issues 15. Human Resource Management 16. Software Economics Division Software Implementation & Management 17. Software Implementation Issues 18. Software Management 19. Organizing for Effective Management. Division Final Preparations 20. Sample Exercises and Examination Questions Division Appendices Appendix 1: Introduction Object-Oriented Methodologies Appendix 2: Basic Concepts of Object-Oriented Methodologies Appendix 3: Object-Oriented Information Engineering Appendix 4: Basic Guidelines for Object-Oriented Methodologies Appendix 5: Categorizing Objects Appendix 6: Specifying Object Behavior Appendix 7: Tools for Object-Oriented Methodologies Appendix 8: ISR for a Generic Inventory Management System Appendix 9: RS for a Generic Inventory Management System Appendix 10: DS for a Generic Inventory Management System