In the business world, the term “enterprise” has traditionally meant the full scope of an organization, and “enterprise software” is designed to meet the needs of an organization as opposed to the needs of an individual (personal software). In contrast, embedded software is developed not to meet the needs of an organization or an individual, but to control a machine or device. It’s often the case that those using these machines are not even aware that there is a computer or software in the device at all. However, this is all changing as traditional definitions are being challenged in today’s increasingly software-driven world.
Many organizations are finding that the products they sell have an ever-increasing dependency on software to deliver value. This emerging software type has aspects of enterprise, personal and embedded software. We refer to this as the “embedded enterprise.”
Companies continue to rely on software for business success, and therefore, the practice of software risk management increases in importance. As the amount of products that are becoming software-defined grows, the integrity of that software directly relates to the value of an organization’s brand. Likewise, as products migrate from consumer-grade use cases and are integrated into mission-critical applications, the quality of the software will determine the value delivered by the products. The chance that faulty software will cause a system failure is now a much greater risk and can result in devastating consequences that not only bring a business process to a halt, but may also harm the reputation of a company. At Vector Software, we see the “embedded enterprise” as comprising an entire organization’s critical high-integrity software assets and development process that support them.
Untested -- or incompletely tested code -- is just a headline waiting to happen. Forgoing complete and accurate software testing can result in additional development and maintenance costs, critical system downtime or failure, dissatisfied users and customers, data or security breaches -- or worse. That is why quality is everyone’s business. The trick is how to get a full picture of software quality across the entire “embedded enterprise.”
For instance, quality metrics can be used to assess the level of software quality. Metrics such as the number of requirements tested, code complexity and code coverage are just a few examples that can be used to communicate the quality status of the software. Additionally, statistics such as baseline test failures can provide an ongoing assessment of software quality throughout the software lifecycle.
For a more complete picture, tools such as VectorCAST/QA take existing VectorCAST/C++, Ada and Cover environments and import them into a project. These individual “test environments” can then be grouped into larger environment groups and test suites. This enables users to structure a project to match the architecture of their application. Because environment groups and test suites can be easily duplicated, the same tests can be run using various source baselines on different host platforms or with a different compiler or embedded target.
Is your business ready to adopt the new embedded enterprise?