mercredi 23 février 2011

The SMV method: Specification, Design, Validation

1. The objectives

The main objective of the SMV method is to offer the stakeholders a set of tools, methods and processes to reduce the technical and functional risks in their IT projects by improving the quality management. It assesses on the requirement in order to:
  • Create an executable model of the system
  • Create automatic functional test sequences
  • Offer the developers, clear, accurate and complete requirements
When used with agile development methods, the SMV method iteratively complies with the V & V (Verification and Validation) during the development of an IT system by creating the three above objectives to answer the questions:
  • Do my requirements exactly reflect my needs?
  • Do my system answers to the requirements of the specification plan?
The SMV method, in order to reduce the development cost of IT projects, identifies the errors and the omissions in the specification plan and reduce the risks implied by the technical and functional difficulties. Thus shortening the time to market and optimize the return on investment of IT projects.

1.1. Why creating an executable model?

The SMV method creates, exclusively from the owner's requirements, a system of the model first in UML, then in MDA in order to obtain an executable file capable of being simulated. This model represents the whole set of requirements already defined in the project and will, with the appropriate test sequences, identify the errors and omissions in the owner's specification plan.
The principal benefit of the creation of a testable and executable model is to get a precise and error free specification plan that can be transmitted to the project leader with all the documentation written for it. The second benefit is that this model will answer the first V (Verification) of the V & V. It will verify at each step of the project if the requirements defines exclusively and completely the system being developed. The model will answer the question: "Am I doing the desired product?"

1.2. Why creating automatic functional test sequences?

The test sequences will validate the system during its development. The automatic functional test sequences created from the requirements will answer the second V (Validation) of the V & V. They will validate the system at each step in order to verify that the system matches the requirements. They will answer the question: "Am I doing my product correctly?"
Another benefit of automatic test sequences in iterative project is the earning due to the reuse of the older automatic test sequences for the new step of the project thus reducing the cost of test creation at each execution of the automatic functional test.

1.3. Why offer clear, accurate and complete requirements?

Having detailed, tested and complete requirements enables to pursue a software development with precise information thus avoiding the risks due to inaccurate specification plan or incomplete documentation. Furthermore, the transformation of literal specification in modeled specification offers an unambiguous interpretation of the project owner's needs.

2. A solution centered on three types of software

In order to answer the three previous questions, the SMV method uses three types of software. The first is the Eclipse IDE used as a Java support for the whole SMV method. Over Eclipse, we use the Open Source Xcarecrows software developed by COGENIT and IBM® Rational® tools provided by IBM®.

2.1. IBM® Rational® software

  • Rational® RequisitePro allows, thanks to a database and a set of traceability matrix and traceability trees, to follow up the changes at each step of the iterative requirement management.
  • Rational® Software Modeler is used as a UML modeler to design, for example, the class diagrams, the use case diagrams or the sequence diagrams.
  • Rational® Functional Tester is used as a test automaton on which we apply in an automatic manner the test created from the sequence diagram to execute them on the executable model and the developed software.

2.2. Xcarecrows

Xcarecrows 4 XML

This tool completes Eclipse with XML edition tasks. It offers an XML GUI, an XSD schema, an XSL style sheet editor, an XML graphical tree comparator, an integrated XSD scheme verifier and a set of tools to transform the XSL.

Xcarecrows 4 MDA

This tool offers a full set of tools to model and verify the behavior of all types applications thanks to a hierarchical approach with state machines.

Xcarecrows 4 MDI

This tool offers a GUI to model software with the UML language and execute them according to the MDA process defined by the OMG®.

Xcarecrows 4 SSL edition MIDP

It is an autonomous Java library to create secure SSL/TLS connections over the CLDC 1.1 and MIDP 2.0 APIs.

Xcarecrows 4 UTP

It is a forerunner tool in the test activity. It describes explicitly the test architecture to simplify the creation of automatic functional test sequences to validate the developed system.

Xcarecrows 4 Developers Edition

This tool contains, in a single package, the full set of Xcarecrows tools to develop MDA applications using Xcarecrows 4 MDI and Xcarecrows 4 MDA, to edit XML documents, XSD schemes and XSL style sheet using Xcarecrows 4 XML.

3. An approach centered on three axes

The SMV method is centered on three axes: the iterative requirement management, the iterative test management and the iterative model management.

3.1. The iterative requirement management

It is a requirement based model development method that helps creating and tracing with traceability matrices, three kinds of diagrams: the use case diagrams, the class diagrams and the sequence diagrams. All these diagrams will show in a structured language, understandable by any stakeholder of the project, the project owner needs.

Figure 1 : Principal of the iterative requirement management

The use case diagrams

The use case diagrams are the first step of the methodology. They consist in transforming the client needs in a structured diagram with all the necessary information to understand the need. It is done with a data collection, a business analysis and a business needs management to list all the important functionalities of the system. They are the language interface between the project owner and the project manager.

Figure 2 : The use case diagram of an E-commerce website in development

Every oval of these diagrams reflects a functionality identified by the project owner. They serve as a foundation for the SMV method as they transform in a model the business needs and as they help creating the class diagrams that represent the internal structure of the system.

The class diagrams

They show the internal structure of the system. The more the requirements are complete, the less business knowledge is necessary to model a complete class diagram. In the best case, we get a "1 for 1" relationship between the class diagram and the functionalities of the use case diagrams.

Figure 3 : The class diagram of an E-commerce website in development

The sequence diagrams

They translate the functional requirements in ordered methods and actions to apply to the system. They describe exactly the progress to do the stakeholders desired objectives.

Figure 4 : Example of a sequence diagram for a user registration of an E-commerce website in development

You can find one or more sequence diagrams per system functionalities. They serve for two utilities:

  • They offer the developers clear, accurate and complete requirements,
  • They offer the testers automatic test sequences applicable on any platform.
This short set of UML models offers a great start for the developers and to continue the SMV method for the iterative model management with the class diagrams and the iterative test management with the sequence diagrams and the UTP (UML Testing Profile) profile.

Figure 5 : The complete diagram of the iterative requirement management

The use of Rational RequisitePro in the iterative requirement management

The main objective of Rational RequisitePro is to record the project owner's requirements and their change history. It is also used to trace the modification between the requirements and the model and to generate documents to explain the progress of the project to every stakeholder.

Linking each UML model with a RequisitePro attribute allows us to create 4 traceability matrices that record the changes in each step of the project. This use of RequisitePro answers to the Verification, the first requirement of the V & V (Verification and Validation), by ensuring that, at each step of the project, the activity has been well done, in accordance of the realization plan, and that no defect has been introduced on the system.

Figure 6 : Diagram of the traceability matrices of the iterative requirement management

3.2. The iterative model management

The iterative model management uses the class diagrams and the iterative requirement management associated to the MDA (Model-Driven Architecture) paradigm to create an executable model. This executable model of the system is generated, in addition of the previous class diagrams, by object and state machine diagrams injected in Xcarecrows 4 MDA and Xcarecrows 4 MDI. This model will be used to validate test sequences and verify the specification plan.

The MDA paradigm, the insurance of a validated system

In the SMV method, the MDA paradigm uses 2 diagrams. Object diagrams and state machine diagrams. The object diagram shows the instances of the state machines and the data flow of the system while the state machine diagrams shows the transition in the model.

Figure 7 : Example of an object diagram for the MDA paradigm of an E-Commerce website in development

Figure 8 : Example of a state machine diagram for an E-Commerce website in development

This model, made from the stakeholder's requirements, shows the completeness and the quality of those requirements. If the model works without any flows, we can estimate that the requirements are complete. If the model has black holes, it means that information is missing in the requirements and it need to be added or clarified before starting the coding stage.
On the other hand, the model can also be used to test the test sequences created in the iterative test management before executing them on the final system. This action will validate the convergence of the system development, the model design and the requirement management at each step of the project.

The MDA paradigm in the SMV method isn't used to generate the code and the replace the developers. It is used to get in a few steps a simplified model of the system to verify the requirements, validate the test sequences and the convergence between the design and the coding stage.

The diagram of the iterative model management

Figure 9 : Principal of the iterative model management

3.3. The iterative test management

The last step of the SMV method is the iterative test. After having translated the requirements in sequence diagrams, having created an executable model on which we can verify the coherence and the completeness of the specification plan, we only need to transform the sequence diagrams into test sequences that will validate the executable model and the final system at each iteration in order to comply with the second requirement of the V & V, the validation.
However, the iterative test management cannot be made without the help of the UML testing Profile (UTP)

The UML Testing Profile

The UML Testing Profile [1] (UTP) helps the testers and the developers speak the same language. It offers them a full set of stereotypes to organize and execute the tests to validate the desired system. The figure 10 shows the complete set of UTP stereotypes proposed by the OMG®.

Figure 10 : The full set of stereotypes defined by the OMG® for the UTP profile

The complete diagram of the iterative test manager

Figure 11 : Principal of the iterative test management

The test scripts creation

From the sequence diagrams and the UTP transformation, we get a full set of executable test scripts on a test automate such as Rational Functional Tester. Those tests, directly created from the system's requirements verify at each step of the project the changes in the system by looking at the compliance between the system and the business needs.

4. How the SMV method reduces the technical and functional risks in IT projects

The SMV method is made to support the software development. It reduces the risks inherent in the creation and the modernization of IT systems. It complies perfectly with the V & V because it's a technical methodology that applies to the technical processes of software development by creating a unique referential from the stakeholder's requirements to get a verification and validation foundation. This referential helps:
  • Reduce the risks due to a defective architecture: As the architecture is already designed, and that tests created from the requirements have been executed on it, the architecture given to the developers is already validated for a more robust coding stage,
  • Better estimate the workload of the project and so the necessary timeline: Disposing of a complete model helps to know the critical points that will create difficulties in a project. This knowledge helps to better share the assets to optimize the realization time,
  • Clarify the specification plan: Creating the executable model exclusively from the specification plan helps identify the errors and omissions of the specification plan. We get as soon as in the design stage a clear knowledge of the accuracy of the specification plan. The errors are corrected in the design stage avoiding the cost of an requirement error correction in the coding stage or worth during maintenance,
  • Reduce the risks due to last minute changes: Applying last minute changes on an executable model before applying them to the developed system helps to verify and correct the errors generated by the last minute changes. They are no longer last minute changes applied to a system in development, but new validated needs that can be safely coded on the system.
The SMV method reduces the risk of misunderstanding in IT project by creating sequence of actions directly from the requirements. These sequences, linked to the model of the system, are the literal translation of the project owner's needs understandable by any project manager.

Finally, the sequences, direct translation of the project owner's requirements, are transformed, thanks to the UML Testing Profile (UTP), in test scripts made to validate the system according to the principal of the V & V by verifying the compliance of the system with the project owner's requirements. The use of the UTP to transform the test sequences helps the testers and the developers speak the same language all along the software lifecycle development (SDLC). Thus reducing the risks due to the lack of experimented testers and also insure the conformity of the project with the specified requirements. It also results in the guarantee of a correct validation because the project owner's needs are linked to the test scripts at each step of the project.

References :
  1. The UML testing profile has been specified by the OMG® in this document: UML Testing Profile, Version 1.0 formal/05-07-07 in July 2005.

Aucun commentaire:

Enregistrer un commentaire