The introduction of UML models in the software life cycle poses new issues and challenges that are not adequately supported by current state-of-the-art development tools, especially concerning V&V activities. Indeed, every tool usually focuses on a small set of specialized activities, failing to provide a satisfactory (general purpose) V&V framework.In this paper we propose a methodology which allows a seamless integration of V&V into a UML-based development environment. The methodology exploits a set of supporting tools designed to be integrated in a unified framework. We believe that such proactive collaboration between tools can reduce significantly both effort and time required to tackle consistency, correctness, quality and long-term maintainability of UML models, increasing the development productivity and the overall quality of the delivered system.One way of managing the complexity of modern software systems is to raise the abstraction level of the whole software development. This is the approach followed in model-driven development (MDD), wherein models of software are the primary artifacts of development, not just mere documentation. However, even raising the level of abstraction to models, we are faced to some crucial questions:• Are our models correct, consistent, and suited to their purpose? • Are they an expression of good design? • Are they maintainable in the long term?Answering to the first question means both validate (we have built the right model) and verify (we have built the model right) the specification. Answering to the last two questions implies addressing issues pertaining to design quality. V&V activities for UML models involve several tasks, which range from simple syntactic and static semantic checking to dynamic property verification and design heuristic fulfilling. In order to automatize the V&V process, these activities need to be supported by different tools. In the following sections, we propose a methodology divided in phases and workflows. For each phase then we discuss the required tool support that should be provided by the development environment.
Our methodology for UML model V&VThe methodology we propose combines two existing process models: the Unified Process (UP) [7] which is an incarnation of the iterative and incremental life cycle and the V-Model [9], which is a variation of the waterfall model that demonstrates how V&V activities are related to analysis and design. Similarly to the UP process, the methodology is organized in the following four phases (see Figure 1):The workflows (the set of activities performed in each phase) are grouped into two categories: primary workflows (system analysis & design, coding, testing, deployment) and supporting workflows (project & configuration management, development environment setup, etc.). For lack of space we do not describe in detail phases and workflows as they are simply the standard activities of the UP process. Instead, we discuss some aspects that characterize the integration of the V-Model in our approach, differentia...