Consistency Checking of Specification in UML

Consistency Checking of Specification in UML

P. G. Sapna, Hrushikesha Mohanty, Arunkumar Balakrishnan
Copyright: © 2014 |Pages: 17
DOI: 10.4018/978-1-4666-4494-6.ch014
(Individual Chapters)
No Current Special Offers


The increasing use of software is giving rise to the development of highly complex software systems. Further, software systems are required to be of high quality as a defect can have catastrophic effect on business as well as human life. Testing is defined as the process of executing a program with the intention of finding errors. Software testing is an expensive process of the software development life cycle consuming nearly 50% of development cost. Software testing aims not only to guarantee consistency in software specification but also to validate its implementation meeting user requirements. On the whole, it is observed that in general, errors in software systems set in at the early stages of the software development cycle (i.e. while gathering user requirements and deciding on specification of intended software). Even though formal specification in B and Z assures a provable system, its use has become less popular due to mathematical rigor. The Unified Modeling Language (UML), a semi-formal language with graphical notations consisting of various diagrams has caught software developers’ imaginations and, it has become popular in industry. UML, with its several diagrams, helps to develop a model of intended software, and the model behaviour is simulated and tested to the satisfaction of both developer as well as users. As a UML model includes specifications of different aspects of a software system through several diagrams, it is essential to maintain consistency among diagrams so that quality of the model is maintained, and through inconsistency checking and removal, the model moves toward completeness. The works reported in literature on this topic are reviewed here.
Chapter Preview

The Unified Modeling Language

What is UML?

The Unified Modeling Language (UML) is a general-purpose visual modeling language used to specify, visualize, construct, and document artifacts of a software system. Developed and propagated by the OMG group, UML can be used across all phases of the software development process (requirement, analysis and design, testing, and documentation). One or more diagrams can be used to represent the system. UML models can be classified as static models and dynamic models. Static models represent the structure of the system, whereas dynamic models are used to represent the behaviour of the system. Thus, a combination of the models may be used to suit the type and domain of the software to be developed. A UML diagram is not refined to provide all relevant aspects of an application. The semi-formal nature of UML leads to ambiguities in representation and interpretation of stated requirements. To overcome this, the Object Constraint Language (OCL) is used to write constraints on model elements. OCL expressions are used to specify invariants on classes, define pre- and post conditions on operations and methods, describe guards, constraints on methods as well as specify derivation rules for attributes for an expression over a UML model. Hence, OCL is used along with UML to make up for the lack of formalism.

Complete Chapter List

Search this Book: