Software Inspection - V & V of UML Models


The Unified Modeling Language (UML) has been widely accepted as the standard language for object-oriented analysis and design. UML provides generic concepts, supporting multiple views of the same information and poses few constraints during modeling, allowing great flexibility within the analysis and design stages; while avoiding the fragmentary nature of structured analysis, by providing a smooth transition from use case models (requirements) to analysis models (specifications) and then further down to design models and source code. Software inspection is a well-known method of cost-effectively verifying documents; its benefits are generally accepted, with success stories regularly published. Many articles reports a thirty to forty times return on investment for every hour devoted to inspection These benefits are derived from applying inspection early in the lifecycle. By inspecting products as early as possible, major defects will be caught sooner and will not be propagated through to the final product, where the cost of removal is far greater. An unresolved question is "How to verify UML models?" Given the interconnectivity of the multiple views, this is far from straightforward. While many situations are amenable to static analysis, only a human expert can resolve many of the issues. Hence, an inspection approach seems an obvious choice. Despite, the success of inspection processes, little work exists on the adoption and specialisation of the generic inspection process into specific domains.
So, How do we verify these models?