Learn to love your information model
You need a good information model to carry out effective impact analysis. A software impact analysis report usually covers just the requirements for the relevant part of the code and the test used to verify the code. In a model-based paradigm, however, the effect of a change at the software level can be much greater.
A small change at the code level can impact many requirements and model elements, traversing all the way up the requirement and model hierarchy. Therefore, the information model should be consistently applied across all the relevant projects in an organization. If it is not applied consistently, the queries used to carry out the impact analysis will constantly need to be rewritten.
I saw a good example of how important a good information model is and how dramatic the impact of a change can be while working on a large European aerospace project. The avionics systems of the project were specified using model-based techniques. From the impact analysis, we discovered that a change in the avionics software could result in a change request that would cover 2000 pages of documentation. These changes could potentially impact the topmost requirements and parts of the systems model.
The key to carrying out the impact analysis for this project was using a consistent information model. The change request documentation was the foundation for making changes to the systems model so that it aligned with the software model. The document also provided an audit trail for compliance to safety standards.
An information model describes the various artifacts used to specify the system and the relationships that exist between them. It is an exemplification of the traceability that exists in the tools used to capture the systems specification at the different levels of abstraction.
Part of the IBM Rational Harmony systems engineering information model
A typical toolset used by IBM Rational clients to develop and manage their systems and software engineering process might include the following:
These tools can be linked together and the contents of the repositories related to each other. IBM Rational Engineering Lifecycle Manager (RELM) is used to view these relationships. RELM indexes the information elements and, more importantly, the relationships that exist between the information elements contained in the toolset. These relationships and information elements are captured as a set of Resource Description Framework (RDF) triples. These triples can then be searched for using the SPARQL Protocol and RDF Query Language (SPARQL).
Understanding your information model is the key to developing SPARQL queries. The information model lets the query developer see how the information contained in RELM is structured. Then, after a user describes the information that needs to be displayed, the developer can build the relevant query to address the user’s concerns. A RELM view is produced when the query is applied to the information in RELM. The information shown in the view can be formatted and presented in a way that makes sense to the user.
Example views of impact analysis from RELM based on a Rational Harmony systems engineering model
In order to implement a consistent information model in your working environment, you need to apply standardized practices and methods. These methods ensure you have consistent information. One such approach uses IBM
To conclude, in this short blog post I described the value of having a consistent information model applied across the enterprise to improve impact analysis. I also described a tool, RELM, which can see across tool boundaries and can support this analysis across those tool boundaries. Finally, I talked about a methodology that has a strong information model that can be used in many different domains.
Do you have an information model? If you do have one, is it consistent and logical? What does your information model look like across requirements, systems models and software?
Please feel free to contact me on Twitter @bleakleygj if you have any questions or comments.