Software Engineering provides the software engineering fundamentals, principles and skills needed to develop and maintain high-quality software products. The software engineering processes and techniques covered include requirements specification, design, implementation, testing and management of software projects. This up-to-date book is modeled on the recommendations and guidelines prescribed in the Guide to the SWEBOK.
At the end of each chapter, the reader will be able to perform tangible software engineering tasks by applying the learned techniques and methods, will be familiar with the terminology, will understand the principles by mastering the subjects, and will be able to analyze existing task deliverables, and compare and critique the different techniques.
Review By: Scott Brookhart 04/05/2010This book is intended to be used as a text for undergraduates studying software engineering although practitioners may find the information useful as well. Author Kassem Saleh starts with an explanation of software engineering then goes into a discussion of the software development lifecycle models, and follows up with coverage on the software development lifecycle (requirements, specification, design, implementation, testing, and maintenance). The chapters expand on each element of the lifecycle, including examples and explanations of artifacts throughout the software lifecycle. The final chapter addresses project management concerns important to producing software. Since the core of software engineering does not change, this book has a good shelf-life and works best as a concise reference for information technology students and industry practitioners. There are several competing books on the market by other renowned authors, which this author references in his text. What I like about this book is the simple organization and direct explanations that make the lessons easy to follow.
The author does not assume that the reader has extensive knowledge of the software development lifecycle and that he needs repeated explanations about the topic. As a student, this book explains the software development lifecycle quite well. As a practitioner interested in implementing a software development lifecycle in an organization, the book provides enough information to encourage further research. For example, code reviews are discussed and explained, but the practitioner may want to research elsewhere to find a checklist for working through the actual code review.
I am a software engineer and enjoy software engineering. I think about software engineering topics most of my day. Software engineering is an important aspect of the software development process and a perspective that is not always considered by project managers. As someone who is always looking to learn more (each of as knowledge workers should be), this book provides an easy-to-read text. I would recommend this book to a coworker. Additionally, there is a Web site with PowerPoint presentations available providing additional value to the overall lesson. Dr. Saleh also offers his email address to which you can submit questions.