This book offers a practical approach to understanding, designing, and building sound software based on solid principles. Using a unique Q&A format, this book addresses the issues that engineers need to understand in order to successfully work with software engineers, develop specifications for quality software, and learn the basics of the most common programming languages, development approaches, and paradigms. The new edition is thoroughly updated to improve the pedagogical flow and emphasize new software engineering processes, practices, and tools that have emerged in every software engineering area.
- Defines concepts and processes of software and software development, such as agile processes, requirements engineering, and software architecture, design, and construction.
- Uncovers and answers various misconceptions about the software development process and presents an up-to-date reflection on the state of practice in the industry.
- Details how non-software engineers can better communicate their needs to software engineers and more effectively participate in design and testing to ultimately lower software development and maintenance costs.
- Helps answer the question: How can I better leverage embedded software in my design?
- Adds new chapters and sections on software architecture, software engineering and systems, and software engineering and disruptive technologies, as well as information on cybersecurity.
- Features new appendices that describe a sample automation system, covering software requirements, architecture, and design.
This book is aimed at a wide range of engineers across many disciplines who work with software.
1. The Profession of Software Engineering
2. Software Properties, Processes, and Standards
3. Software Requirements Engineering
4. Software Architecture
5. Designing Software
6. Software Construction
7. Software Quality Assurance
8. Managing Software Projects and Software Engineers
9. Software Engineering: Roadmap to the Future