Implementing mechatronics: Software engineers are different
Tools and techniques
Company H had a very clear view about tools and procedures it needed for software development, and the ways these should integrate into its overall product development system. The basis of its thinking was that there should be two separate streams. One stream included all management systems—product lifecycle management (PLM), application lifecycle management (ALM), workflow, issue tracking, source code management, configuration management, change control, and test management. The second stream covered the technical tools—requirements management, modeling systems, integrated development environments for software, compilers, loaders, static and dynamic analysis tools, simulation systems, and test development.
A critical issue identified by company H (and shared by other companies researched) is how to bring together management tools, especially PLM and ALM, to provide a consistent picture. PLM technology earned its place in the toolbox through managing mechanical and electronics projects, and has often been implemented in parallel with organizational change to break down silos and achieve a “product-lifecycle” way of thinking. Very similar comments apply to ALM technology, except its origins are in software development. The expectation is that PLM vendors will ultimately adapt their systems to handle software in more fluent and flexible ways. But engineering managers recognize this is not a simple process for a range of reasons. Some reasons involve underlying approach and methods.
For example, software people are used to change happening at one or two orders of magnitude faster than hardware engineers. This is even built into development methods, in which the value of early and many prototypes seen in software is at odds with methods in hardware development (for many years aimed at reducing the number of physical prototypes). Some reasons are more technical; for example, consider the bill-of-materials structures at the heart of PLM solutions. “Finished” software files (that is, ready to flash into a memory chip) can be managed using these structures just like any other component. However, the source code for software is often a less comfortable fit, when sub-trees of source code spread across multiple files may need independent revision histories, and parameterized software build procedures may create different deliverables from the same source code or model-based software definitions.
Where’s the action?
The systems engineering V-model is alive and well. Many respondents, not just those from the systems engineering strongholds of automotive, aerospace, and defense, explained they use it as a map of the artifacts that must be created in a project, noting, “the V is not a workflow.” The most-often-cited example involved testing. The V-model acts as a useful reminder that every requirement developed during the requirements cascade going down the left-hand arm of the V must be matched by a suitable test/verification/validation procedure on the right-hand arm of the V. This leads to initiatives on tracking and traceability to track exactly which upstream requirements relate to which test specification.
Regulations affecting development methods exist in many industries; medical device design and manufacturing is a good example. Here, lowering the cost of obtaining and maintaining the right certifications is high priority. On the software side, this means the capability of ALM to provide the evidence that approved development methods were followed is highly valued alongside any productivity improvement that ALM may offer.
Future: Modularity, interfaces
Software teams are among those required to achieve more with less—more configurations, faster change of products, and fewer software engineers. This means more reuse is needed, and this means modularity, standard interfaces, and the use of “external” software components—for example, the software stack to operate a sensor. Strategies such as common platforms are relevant to software as well as hardware to organize these efforts.
The discipline of product-line-engineering (essentially, standard parts, and part count reduction across the scope of a product family or whole product portfolio) addresses this reuse objective. Respondents pointed out how difficult it is to retrofit reuse into existing software. Some reported better software reuse after they moved from source code to models as the core representation of software (source code or binaries are generated more-or-less automatically from the models). However, while the use of model-based-software-development was established and even routine for production software in the automotive sector, other sectors limit the use of models to documentation, early design, and prototyping.
It is not hard to get nodding agreement with a vision of convergence of technical tools from electronic design automation (EDA), mechanical, electrical, and software disciplines resulting in flexible multi-disciplinary models. However, the expected form this convergence will take varies enormously, from an integration of independent point tools using sophisticated workflow and data interfacing techniques, to a brand new technical toolset in which requirements are simply parameters to a technology configuration model.
But at least the vision for the way these models will change software development is consistent. Software will start life as an initial high-level outline architecture proposal that is part of the overall model. This architecture will be developed seamlessly into something that can be simulated, then further developed into something that can be executed, and eventually into the final deliverable. Glimpses of how this can work can be seen in some system-on-a-chip development tools, which allow electronics designers to delay choosing the boundary between hardware and software until very late in the project, and also in the simulation world, with hardware-in-the-loop and software-in-the-loop simulation. When the use of these sorts of tools is commonplace, software engineers will still be different, but perhaps a bit less so.
- Peter Thorne is managing director for Cambashi. He is responsible for consulting projects related to the new product introduction process, e-business, and other industrial applications of information and communication technologies. He has applied information technology to engineering and manufacturing enterprises for more than 20 years, holding development, marketing, and management positions with user and vendor organizations. Immediately prior to joining Cambashi in 1996, he headed the U.K. arm of a major IT vendor's engineering systems business unit. Edited by Mark T. Hoske, content manager, CFE Media, Control Engineering, Plant Engineering, and Consulting-Specifying Engineer, firstname.lastname@example.org.