Use a computer to perform analysis or simulations in your daily work?
Write short scripts or record macros to perform repetitive tasks?
Need to integrate off-the-shelf software into your systems or require multiple applications to work together?
Find yourself spending too much time working the kinks out of your code?
Work with software engineers on a regular basis but have difficulty communicating or collaborating?
If any of these sound familiar, then you may need a quick primer in the principles of software engineering. Nearly every engineer, regardless of field, will need to develop some form of software during their career. Without exposure to the challenges, processes, and limitations of software engineering, developing software can be a burdensome and inefficient chore.
In What Every Engineer Should Know about Software Engineering, Phillip Laplante introduces the profession of software engineering along with a practical approach to understanding, designing, and building sound software based on solid principles. Using a unique question-and-answer format, this book addresses the issues and misperceptions 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.
Table of Contents
THE PROFESSION OF SOFTWARE ENGINEERING
Software Engineering as an Engineering Profession
Standards and Certifications
Misconceptions about Software Engineering
SOFTWARE PROPERTIES, PROCESSES, AND STANDARDS
Characteristics of Software
Software Processes and Methodologies
SOFTWARE REQUIREMENTS SPECIFICATION
Requirements Engineering Concepts
Recommendations on Requirements
Software Design Concepts
Software Design Modeling
Software Construction Tools
Becoming a Better Code Developer
SOFTWARE QUALITY ASSURANCE
Quality Models and Standards
Maintenance and Reusability
MANAGING SOFTWARE PROJECTS AND SOFTWARE ENGINEERS
Software Engineers Are People Too
Project Management Basics
Tracking and Reporting Progress
Software Cost Estimation
Project Cost Justification
THE FUTURE OF SOFTWARE ENGINEERING
Outsourcing and Offshoring
Global Software Development
APPENDIX A: SOFTWARE REQUIREMENTS FOR A WASTEWATER PUMPING STATION WET WELL CONTROL SYSTEM (REV. 01.01.00)
APPENDIX B: SOFTWARE DESIGN FOR A WASTEWATER PUMPING STATION WET WELL CONTROL SYSTEM (REV. 01.01.00)
APPENDIX C: OBJECT MODELS FOR A WASTEWATER PUMPING STATION WET WELL CONTROL SYSTEM