Glossary · Automation software engineering and architecture
Software engineering
Also known as: Software development
German: Software Engineering
Software engineering is the systematic application of engineering principles and methods to the specification, design, development, verification, operation and maintenance of software.
- Software engineering
In one sentence
Software engineering applies engineering principles and methods systematically to specifying, building, verifying and maintaining software.
Example
The machine builder introduces software engineering practices for PLC code: requirements, version control, code reviews, automated tests and release management.
How it applies
- Engineering: Automation software grew from small PLC programs into large systems. Software engineering practices from IT, such as version control, testing and continuous integration, are now standard in automation too, adapted to real-time and safety constraints.
- Functional safety: For safety-related software, standards such as IEC 61508 prescribe lifecycle activities, techniques and documentation.
- Documentation: Software engineering produces many documents: requirements, architecture, design, test specifications and reports, release notes. The documentation team should know which of them feed user documentation and which are internal evidence.
Software engineering vs. programming
Programming is writing code. Software engineering covers the whole lifecycle, including requirements, architecture, verification, maintenance and the management of change.