Understanding the software architecture of complex software systems of systems and maintaining architectural integrity through multiple builds and integrations constitute some of the most critically challenging tasks of software system developers. At Fraunhofer USA CMA, we offer a wide variety of services that support these activities – from creating architecture design models to reverse-engineering models on the basis of existing code and system traces captured from the running system. We also help organizations perform architecture-driven verification and validation (testing and inspections) and analyze existing systems on the basis of architectural risk (i.e. answer questions like “Which parts of the system are the riskiest to change?”)
- Apply static and dynamic analysis tools to automatically extract and visualize software architecture in source code
- Evaluate existing software architecture to locate deviations against specified architecture rules
- Create software architecture design models to generate test cases, analyze test results, and conduct code inspections
- Reverse-engineer models of existing code and system traces to identify system inefficiencies and liabilities
- Perform architecture-driven verification and validation, analyze systems for architectural risk factors, and test behaviors of software components
- Define and evaluate strategies for automated verification and validation and identify mechanisms for capturing and checking requirements
- Deploy tool support and train personnel on automated testing and verification methodologies, best practices, and secure programming principle