TRUST in software engineering

It seems that every generation needs to relearn the lessons of previous generations. This is equally true in manufacturing, where older engineers are retiring and must pass on knowledge to younger engineers. Unfortunately for manufacturing software, there are actually few lessons that can be passed on.

06/01/2009


It seems that every generation needs to relearn the lessons of previous generations. This is equally true in manufacturing, where older engineers are retiring and must pass on knowledge to younger engineers.

Unfortunately for manufacturing software, there are actually few lessons that can be passed on. Much of the knowledge required for robust manufacturing software development is not known to older engineers. The languages, tools, and methodologies for software development have been continually evolving and changing during their careers.

Manufacturing software lessons must come from outside manufacturing disciplines and should come from the software engineering discipline. Many of software engineering’s lessons were acquired through the development of large systems that had lifetimes of dozens of years. This is a familiar situation in manufacturing, even as it is becoming increasingly rare in modern non-manufacturing and non-regulated software systems. Many modern systems are designed for short lifetimes—five years at most before replacement—and it is assumed that the original programmers will be available for maintenance. Fortunately, developers of manufacturing software can learn from traditional software engineering rules.

One of the harsh truths about manufacturing software is that is it not developed by software engineers or computer science majors. We would not regularly ask an electrical engineer to design a mechanical system, or a chemical engineer to design an electrical system, but we often ask mechanical, electrical, and chemical engineers to design and develop software systems. If you are in this situation, you should TRUST software engineering methods.

The “T” represents try-outs and prototypes. Engineering disciplines use physical or mathematical models to understand the basic concepts and relationships of a system. Prototypes perform the same role for software. Prototypes can be throw away try-outs or incremental design elements, depending on your development methodology. However, they should be a common starting point for all projects.

Just because someone has a good concept for a software project does not mean the project is doable. A try-out confirms that the concept is technically feasible. By analogy, in automotive engineering, just because someone imagines a car that gets 300 mpg does not mean that it is feasible. Prototypes prove or disprove the feasibility.

The “R” represents requirements. Once you know that the project is technically feasible, you can write the user, functional, and design requirements. These requirements document what must be done and how the final system must operate in your manufacturing environment.

The “U” represents use cases. While requirements documents are important, they do not document how the software is to be used by the end user. The use cases define normal operating methods, and expected error conditions and responses. The use cases are designed to help the end user understand what will be provided.

The “S” represents source code, standards, and build scripts. Source code should be developed only after you understand the requirements and use cases. It can be developed in small chucks if you follow an agile project methodology, or in large chunks if you follow an iterative or waterfall methodology. Commenting, configuration management, and copyright standards must be applied to all generated code and documentation. Build scripts allow for daily or weekly automated recreation of the project software on a fresh system, eliminating manual errors and configuration issues.

Control Engineering software
The “T” stands for test cases and test scripts. These are the detailed definitions that are used to verify that the software operates as specified under normal and error conditions. Software is not ready for deployment until it has successfully run the test cases. These are the final proofs of correctness.

TRUST in the lessons learned from software engineering and apply them to your projects.

www.controleng.com


Author Information

Dennis Brandl is president of BR&L Consulting in Cary, NC, dbrandl@brlconsulting.com .




No comments
The Engineers' Choice Awards highlight some of the best new control, instrumentation and automation products as chosen by...
The System Integrator Giants program lists the top 100 system integrators among companies listed in CFE Media's Global System Integrator Database.
Each year, a panel of Control Engineering and Plant Engineering editors and industry expert judges select the System Integrator of the Year Award winners in three categories.
This eGuide illustrates solutions, applications and benefits of machine vision systems.
Learn how to increase device reliability in harsh environments and decrease unplanned system downtime.
This eGuide contains a series of articles and videos that considers theoretical and practical; immediate needs and a look into the future.
Controller programming; Safety networks; Enclosure design; Power quality; Safety integrity levels; Increasing process efficiency
Additive manufacturing benefits; HMI and sensor tips; System integrator advice; Innovations from the industry
Robotic safety, collaboration, standards; DCS migration tips; IT/OT convergence; 2017 Control Engineering Salary and Career Survey
Featured articles highlight technologies that enable the Industrial Internet of Things, IIoT-related products and strategies to get data more easily to the user.
This article collection contains several articles on how automation and controls are helping human-machine interface (HMI) hardware and software advance.
This digital report will explore several aspects of how IIoT will transform manufacturing in the coming years.

Find and connect with the most suitable service provider for your unique application. Start searching the Global System Integrator Database Now!

Infrastructure for natural gas expansion; Artificial lift methods; Disruptive technology and fugitive gas emissions
Mobility as the means to offshore innovation; Preventing another Deepwater Horizon; ROVs as subsea robots; SCADA and the radio spectrum
Future of oil and gas projects; Reservoir models; The importance of SCADA to oil and gas
Automation Engineer; Wood Group
System Integrator; Cross Integrated Systems Group
Jose S. Vasquez, Jr.
Fire & Life Safety Engineer; Technip USA Inc.
This course focuses on climate analysis, appropriateness of cooling system selection, and combining cooling systems.
This course will help identify and reveal electrical hazards and identify the solutions to implementing and maintaining a safe work environment.
This course explains how maintaining power and communication systems through emergency power-generation systems is critical.
click me