Getting the Most from Your CMMI Initiatives

CMMI is process improvement framework commonly applied to software development. It is a response to the crisis in software development that commonly manifests in failed or poor quality projects. A well-defined architecture is one of the fundamental tools for controlling complexity and maintaining quality. Therefore, a CMMI focus on processes which are relevant to architecture can be an effective technique to improve and maintain the quality of our complex code bases.

North Reading, MA, December 17, 2015 --(PR.com)-- CMMI is process improvement framework commonly applied to software development. It is a response to the crisis in software development that commonly manifests in failed or poor quality projects. A well-defined architecture is one of the fundamental tools for controlling complexity and maintaining quality. Therefore, a CMMI focus on processes which are relevant to architecture can be an effective technique to improve and maintain the quality of our complex code bases.

There are many reasons why software complexity has been so hard to tackle. One of those is the large number of elements and relationships in complex software. Lattix employs a Dependency Structure Matrix (DSM) to address this challenge. It is a neutral representation that scales exceptionally well. It is also good at highlighting the missing dependencies which are often architecturally important. Lattix also allows teams to define their architecture and to create rules to enforce it with continuous integration.

Process Areas related to Architecture - Architecture is pervasive in virtually all aspects of software development. It’s the blue print that is the foundation of team communication. The architectural modules of a project are often reflected in the team organization. As a result, architecture is important in a number of CMMI process areas.

Requirements Development (REQD): It is important to understand the requirements and how architecture affects how easy or difficult it is to meet the requirements. Without an understanding of the architecture it is hard to make engineering tradeoffs. Software is always evolving due to new and changing requirements, which is something teams should be prepared to contend with throughout the life cycle.

Technical Solution (TS): This is the process area related to the actual implementation. A focus on architecture during implementation can help in team co-ordination and in maintaining modularity. It is not uncommon for architecture to emerge as implementation progresses. A focus on architecture helps us understand this evolution and benefit from it.

Product Integration (PI): Most projects are comprised of multiple components including a wide variety of third party modules and libraries. Architecture is critical to the decomposition and selection of external components.

Project Planning (PP): Project planning involves creating tasks and related time estimates. Often the tasks will follow the architectural decomposition. In fact, without an appropriate architectural decomposition the team and the task breakdown will become the de facto architecture.

Decision Analysis and Resolution (DAR): Decision analysis involves assessing alternatives, identifying risks, and understanding the impact of changes. A clear understanding of the actual architecture is critical to these tasks.

Lattix Support for CMMI - Lattix, with its focus on architecture, can be helpful for all of the CMMI initiatives that involve architecture. Here are a number of features worth noting:

Architecture Discovery: For many legacy projects there is no clear description of architecture. Even if such documentation exists, it is often obsolete. Lattix will help arrive at the architecture of your software system by analyzing the code. This gives you a real picture of what the architecture is as implemented.

What-if Analysis: You can experiment with different component architectures, particularly when you are considering whether to refactor existing systems and to pinpoint where to focus your refactoring effort.

Architecture Validation: Software systems become more complex and harder to maintain during their life cycles. This is generally a result of architectural violation and erosion. Lattix will allow you to create rules and validate the architecture on every build. Violations can be identified and fixed during development.

Impact Analysis: The actual impact of a change must be assessed from how deep it can propagate. Lattix provides reports that show the transitive closures of dependency chains. This helps understand the impact and prioritize the areas where testing should be focused.

CMMI initiatives are focused on process improvements. Architecture is a key component of many of the process areas. We have learned the importance of architecture for software quality and maintainability. Lattix can be an invaluable tool for improving the efficacy of the processes that impinge on architecture.

Try Lattix Architect on your Project - For more than 10 years, Lattix has helped refactor architecture, pinpoint problematic dependencies and manage the evolution of system design. Lattix provides support for a wide range of technologies including C/C++, Java, .NET, Fortran, Ada, Javascript, Actionscript, Pascal, Python, UML/SysML, Rhapsody, Sparx EA, Oracle, SQLServer, Sybase, LDI and Excel.

Do you want to see what your architecture looks like and what you can do to modularize it? We have helped companies all over the world improve the quality of software and we can help you achieve the same results. Contact Lattix at sales@lattix.com or call 978-664-5050.
Contact
Lattix, Inc.
Bruce Owens
978 664 5050
lattix.com
ContactContact
Categories