Continuing with the blog theme Software Happens – A Challenge for the 21st Century, I’d like to zero in on some interesting development at PTC in the area of engineering analysis with Mathcad and integration with our application lifecycle management platform, Integrity. My colleague, Juan Betts, recently published a great blog entry, Systems Engineering with Mathcad and Integrity Integration, which addresses a significant new integration between Mathcad and Integrity to be introduced in an upcoming release of the two products. I encourage you to take a little more time to go read his blog entry because it provides some important detail and perspective on how these two products are going to work together to enable an unprecedented level of collaboration between systems and software engineers.
In this blog entry, I’d like briefly expand on the significance of the integration concepts introduced by Juan in solving several key challenges of software-intensive systems engineering and product development and how engineering analysis and related practitioner tools, like Mathcad, will be used in new ways, in part thanks to deeper levels of integration with the rest of the practitioner tool set across the lifecycle.
Engineering analysis as a practice has been a core part of the systems engineering and complex system development from the beginning. Analysis methods are often employed beginning with the initial system or product concept to model, predict and specify system behavior. In design, analysis methods enable engineers to simulate behavior before building the first prototype and are then used to specify the behavior of the component as it’s developed. In the modern era, the behavior of an electronic component is most often implemented in embedded software, rather than with custom-built electronic circuits. It is precisely this transition from behavior implemented with custom electronics to implementation of much more complex behaviors in software that is driving engineers to employ analysis methods in new ways. It is also driving more extensive and sophisticated use of existing analytical methods used in conventional ways.
Automated engineering analysis and simulation tools enable engineers to more accurately model and then specify product behavior. Today, some engineers use the same model, or a close derivative of it, to drive automated verification of the design and implementation. This gives them a new and powerful tool to help address the challenges of software-intensive product development. I’m not claiming that engineering simulation is new or even that using the same simulation model to drive testing and verification is new. I am, however, claiming that these approaches have been hampered because of the isolated nature of the systems, mechanical, electrical, and software engineering disciplines. I am also asserting that the practitioner tools used within each discipline, as well as the management tools used to govern the overall product lifecycle have further complicated this problem by being largely standalone, or at best very poorly integrated. These issues create insurmountable barriers to the collaboration, information sharing, and asset reuse needed to address the bigger issues we face in complex, software-intensive product development today, much less the magnitude of those that loom in the near future.
Let’s focus back on the specific, upcoming integration of Mathcad and Integrity. How will this integration change your way of building products? For starters, it will encourage you, rather than discourage you, to connect the algorithms and parameters in your Mathcad worksheets with other related and key lifecycle assets, like the specific parameters in the product requirements you used as inputs to your equations, or the specific element in the software design model that represents the component that will implement your algorithm. You might also connect your designated outputs to the component, so that they will be right there and can easily be connected to the test harness that will be built in the near future and used to verify the component’s as-implemented behavior for your algorithms. You’ll be automatically notified of any changes in any of the connected assets, requirements, component design, source code, test design, or test harness, that may require you to make changes to the related Mathcad worksheets. With all of these important connections managed by the tool platform, you’ll be free to move on without worrying that you’ll overlook something in the future because you simply can’t keep all those details in your head and writing them down doesn’t help much either because you have to remember to review what you wrote at the appropriate time.
While this scenario does not illustrate the extent of the capabilities of the coming integration, it serves to illustrate that we will begin to use engineering analysis tools, like Mathcad, in new ways because we will be able to connect product requirements, analysis models, simulation results, design models, software, hardware, and verification assets together, creating a closed loop that enables rapid iteration. This, in turn, will enable us to validate requirements and design earlier in the lifecycle and with a higher degree of fidelity. It will also enable us to use the same validation assets to create verification protocols that ensure we are testing the as-designed and as-implemented hardware and software against the same high-fidelity models. Together, these capabilities will lead to fewer late lifecycle defects while, at the same, enabling to create more complex and innovative products.
I welcome your comment and thoughts on this topic. I plan to elaborate on it in upcoming blog entries and would like to know if you find this thread relevant to your job and your organization’s challenges.