2nd Edition

What Every Engineer Should Know about Software Engineering

By Phillip A. Laplante, Mohamad Kassab Copyright 2023
    394 Pages 107 B/W Illustrations
    by CRC Press

    394 Pages 107 B/W Illustrations
    by CRC Press

    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


    Phil Laplante is Professor of Software and Systems Engineering at The Pennsylvania State University. He received his B.S., M.Eng., and Ph.D. from Stevens Institute of Technology and an MBA from the University of Colorado. He is a Fellow of the IEEE and SPIE and has won international awards for his teaching, research and service. From 2010-2017 he led the effort to develop a national licensing exam for software engineers.He has worked in avionics, CAD, and software testing systems and he has published 37 books and more than 250 scholarly papers. He is a licensed professional engineer in the Commonwealth of Pennsylvania. He is also a frequent technology advisor to senior executives, investors, entrepreneurs and attorneys and actively serves on corporate technology advisory boards. His research interests include artificial intelligent systems, critical systems, requirements engineering and software quality and management. Prior to his appointment at Penn State he was a software development professional, technology executive, college president and entrepreneur. Over the years he has worked with, and for, many kinds of engineers. Non-software engineers have worked with him as well, and he has had the pleasure of teaching thousands of practicing engineers of various types about software engineering. This text, then, represents a compendium of what engineers should know about software engineering. Dr. Laplante earned a B.S. and Ph.D. in computer science and an M.Eng. in electrical engineering from Stevens Institute of Technology, and an M.B.A. from the University of Colorado. He also consults regularly for the software industry, including Fortune 1000 companies and smaller software development houses.

    Mohamad Kassab is an associate research professor and a member of the graduate faculty at The Pennsylvania State University. He earned his Ph.D. and M.S. degrees in computer science from Concordia University in Montreal, Canada. Dr. Kassab was an affiliate assistant professor in the department of computer science and software engineering at Concordia University between 2010 and 2012 and a postdoctoral researcher in software engineering at Ecole de Technologie SupŽrieure (ETS) in Montreal between 2011 and 2012, and a visiting scholar at Carnegie Mellon University (CMU) between 2014 and 2015. Dr. Kassab has been conducting research projects jointly with the industry to develop formal and quantitative models to support the integration of quality requirements within software and systems development life cycles. The models are being further leveraged with the support of developed architectural frameworks and tools. His research interests also include bridging the gap between software engineering practices and disruptive technologies (e.g., IoT, blockchain). He has published extensively in software engineering books, journals, and conference proceedings. He is also a member of numerous professional societies and program committees, and the organizer of many software engineering workshops and conference sessions. With over twenty years of global industry experience, Dr. Kassab has developed a broad spectrum of skills and responsibilities in many software engineering areas. Notable experiences include business unit manager at Soramitsu, senior quality engineer at SAP, senior quality engineer at McKesson, senior associate at Morgan Stanley, senior quality assurance specialist at NOKIA, and senior software developer at Positron Safety Systems. He is an Oracle Certified Application Developer, Sun Certified Java Programmer, and Microsoft Certified Professional. Dr. Kassab has taught a variety of graduate and undergraduate software engineering and computer science courses at Penn State and Concordia University. He has won many awards for his excellence in teaching.