Well-suited for both the student and the working professional, Software Engineering A Practitioner's Approach recognizes the dramatic growth in the field of software engineering and emphasizes new and important methods and tools used in the industry.
When your interest fall in software engineering, there are *lots* of books on the subject but only a few of them cover the principles in an almost exhaustive way. One of the main errors that authors do is having the claim that all about software engiWhen your interest fall in software engineering, there are *lots* of books on the subject but only a few of them cover the principles in an almost exhaustive way. One of the main errors that authors do is having the claim that all about software engineering can be covered in a single book. And this book is no exception. When you're reading a textbook, this isn't always bad: one of the main purposes of a textbook is introducing the concepts gradually, without much details and in the clearest way possible. A student doesn't need to know all. He/she just need to understand the fundamentals of the discipline. So, while this book is intended for a professional audience, it is structured like a textbook. The problem here is that it gives probably too much informations for students and too few informations for professionals. It gives a nice introduction on the subject, explaining why the software is a product, its features, its lacks and its myths (very interesting). Problems start with chapter 2: the process. While something is covered about some development models like waterfall, win-win model, RAD, concurrent, etc., it lacks any detail needed to really understand these development models and bring them in practice. One of the things I hate the most about this book are repetitions: the author repeat the same concepts many times during the exposition and this can be irritating. It covers many subjects, like user interface construction, project planning, temporal planning, quality assurance in software development, software architectures, component based engineering, conceptual modeling, etc. Each chapter is a small introduction to these subjects but the book gives small or no details at all on how to use these concepts in practice. You won't find code here. You won't find design patterns, UML diagrams, state charts, refactoring methods. While this is not necessarily bad, it makes clear this book is better used as a textbook and not as a practical (for practitioners) manual to learn software engineering methodologies directly on the field. So, if you're interested in software engineering and you want a solid introduction to it, buy this book. If you're a professional who want a practical exposition of the discipline to apply concepts on real projects, skip this book. I give it 3 stars because explanations are good and the book is well written but the title is a bit misleading: professionals generally needs other kinds of books. ...Continua Nascondi