scispace - formally typeset
Search or ask a question
Journal ArticleDOI

UML --- the Good, the Bad or the Ugly? Perspectives from a panel of experts

01 Feb 2005-Software and Systems Modeling (Springer Berlin Heidelberg)-Vol. 4, Iss: 1, pp 4-13
TL;DR: The dynamic semantics of UML are defined quite generally and cover a wide range of possible specializations and have led many (including, obviously, several of my co-panellists) to conclude that “UML has no semantics”.
Abstract: ion is the process of removing or hiding nonessential detail from view so that the principal characteristics of interest and their relationships are more clearly visible and, thus, more easily understood. This obviously depends on the area of concern, which means that abstraction is always done from a particular viewpoint. With the exception of the very earliest ones, thirdgeneration programming languages provided two fundamental and clearly separated viewpoints for specifying software: the structural and behavioural. This basic partitioning, although quite useful, is not sophisticated enough for today’s complex needs. In a modern objectoriented programming language, for instance, one can clearly see which objects are declared in a program (the structure), but it is very difficult to determine from looking at the code how their mutual interactions combine to realize an overall end-to-end use case (the behaviour). This is because these languages do not provide constructs that allow direct specification of interaction sequences – a common failing of all “modern” object-oriented programming languages. Instead, you specify how each component responds to individual inputs and then cross your fingers and hope that these increments add up to the desired end-to-end sequence. Unfortunately, quite often they do not. When that happens, it is very difficult to find out why, because it is not easy to discern the high-level sequence out of the mass of fragmented behaviour code. In contrast, UML provides a number of high-level viewpoints through a series of diagrams. This gives users the ability to specify systems using any convenient combination of diagrams. Since the semantic relationships between these viewpoints is specified by the underlying UML metamodel, it is often possible to automatically detect inconsistencies in the specifications – “often”, but not always. As Steve Mellor points out in his discussion, there are examples where one would like to be able to detect inconsistencies but where UML does not help. (What he fails to point out, however, is that the problem of determining this type of inter-viewpoint consistency is still an unresolved theoretical problem in the general case, particularly when concurrency is involved.) Still, UML 2.0 has done much to allow detection of such inconsistencies. In particular, it has done a much more thorough job of defining the dynamic (run-time) semantics of UML. At the most fundamental level, these semantics consist of an explicit specification of the essential structural entities involved at run time – elements such as objects, attributes, variables, and links – and the effects that individual actions have on these entities. This is complemented by a trace-based model that defines the semantics of inter-object actions (interactions). At the next level up are the semantics of higher-level behavioural formalisms, such as state machines and activities. These are layered on top of the semantics of actions and interactions. Although these semantics are not definedusing amathematical formalism, they are certainly open to such formalization and at least one major research project is currently under way to do just that. Of course, in the ideal situation, a formal model of these semantics should have been included in the standard, but this is hardly ever the case in practice (after all, how many modern programming languages have a formal semantics included in their definition)? The dynamic semantics of UML are defined quite generally and cover a wide range of possible specializations. This is because UML is intended to cover a relatively wide range of diverse domains. For example, the same semantics can be specialized to support either a synchronous worldview (i.e., a view in which all events occur at discrete intervals according to the beat of some global clock) or an asynchronous one. The organization of the UML 2.0 specification document is such that the sections describing semantics are not gathered in one place but are, instead, fragmented and scattered throughout the text – this is due to the nature of a specification document, which is not necessarily optimized for readability. Unfortunately, this has led many (including, obviously, several of my co-panellists) to conclude that “UML has no semantics”. However, a closer examination of the spec would clearly reveal that this is not the case. While it is fair to argue that the semantics of UMLmight be incomplete, imprecise and, perhaps, inconsistent, and it is fair to complain about the organization of the document itself, it is definitely incorrect and unfair to claim that UML has no semantics. As noted, some of the latitude in the semantics of UML is intentional, to allow a range of different domainspecific specializations. Still, UML was never intended as a universal base that covers all possible domains. Where the semantics of UML or its syntax are inappropriate, users have the option to use the Meta-Object Facility (MOF) to define a language that is independent of UML. However, in those cases where UML is suitable, it provides a very rich catalogue of pre-packaged, expertlydesigned modelling capabilities that are likely to be shared by many modelling languages. These include the foundational run-time semantics model described above as well as facilities for modelling system architectures, event-driven behaviour, high-level end-to-end interactions and complex hierarchical procedures. 12 B. Henderson-Sellers : UML – the Good, the Bad or the Ugly? Clearly, this capability is valuable to language designers. However, much more significant is the benefit to users who may already have knowledge of general UML. It is useful to recall that, since its adoption as a standard in 1997, UML has been taught and used more than any other modelling language and, consequently, has a significant and growing base of users. This large and growing community is able to reuse all of that knowledge when working with domain-specific variants. On top of such semantic reuse there is also the potential for tool reuse because a tool that supports standard “general” UML can, in principle, also support any profile of UML. Since there are very many commercial tools that support standard UML the benefit of this should not be underestimated. It is muchmore likely that such tools can be used to support domain-specific variants than custom tools for domain-specific languages. In many ways, the success of model-driven development in general is predicated on the availability of sophisticated and powerful tools, comparable to the kinds of sophisticated tools for supporting current programming languages (e.g., configuration management tools, compilation tools, build tools, debugging tools etc.). If a whole new array of such tools has to be developed for each new domain-specific language, it is unlikely that tool vendors would ever be able to keep up. Model-driven development would look a lot less attractive to its potential beneficiaries under such circumstances. Another distinguishing and highly useful characteristic of UML 2.0 is its support for constructing higherlevel abstractions. This includes concepts for specifying complex interconnected object structures, concepts for specifying either complex functions (UML activities) and for complex object interactions (UML interactions). Because most of these capabilities can be applied recursively, it becomes possible to define custom abstractions at practically any conceptual level. The net result of this is that UML 2.0 scales up much more easily to allow modelling of very complex systems of different kinds. Inevitably, one of the drawbacks of supporting multiple domains is a relatively large number of language features. This leads to another often repeated complaint about UML: that the language is just “too big and unwieldy”. But this ignores the fact that UML has been carefully modularized into a set of sub-languages many of which are independent of each other. Hence, it is not an “all or nothing” proposition. Just like one does not need to know all of the English language to use it effectively, users of UML can pick and appropriate only those parts that are of use in solving their problem. The rest can be safely ignored. To summarize, the support for abstraction in UML 2.0 is based on a proven set of capabilities that seem to be shared across many different domains. For such domains, this makes it much a more suitable foundation for constructing domain-specific languages. Support for automation Automation is, by far, the most effective way to boost reliability and productivity. The objective is to mechanize repetitive and uncreative tasks, where human fallibility causes problems. There are a number of ways in which automation can be applied in model-driven development. Perhaps the most obvious one is automatic code generation or, to put it differently, model compilation. While various historical and other incidental aspects may force us to compromise and use partial code generation that is supplemented by manual programming, fully automated code generation from models is clearly the ultimate objective. There are many examples of industrial modelbased systems that use full automatic code generation, so this is not merely a promise for the future but state of the art. Another way in which automation can be applied to models is in formal verification and validation. This has been a long-standing objective in software development, but has been thwarted in the past by the highly complex and non-linear nature of current programming languages. A single misaligned pointer can spell doom for a multimillion-line program and its users. Because of this, it is very difficult to mathematically formalize these languages in a way that accurately reflects their semantics. Therefore, results of formal analyses of modern software are often inaccurate and untrustworthy. The advantage that modelling languages provide is that their con
Citations
More filters
Proceedings ArticleDOI
23 May 2007
TL;DR: Model-Driven Engineering (MDE) is typically used to describe software development approaches in which abstract models of software systems are created and systematically transformed to concrete implementations as discussed by the authors, but full realizations of the MDE vision may not be possible in the near to medium-term primarily because of the wicked problems involved.
Abstract: The term model-driven engineering (MDE) is typically used to describe software development approaches in which abstract models of software systems are created and systematically transformed to concrete implementations. In this paper we give an overview of current research in MDE and discuss some of the major challenges that must be tackled in order to realize the MDE vision of software development. We argue that full realizations of the MDE vision may not be possible in the near to medium-term primarily because of the wicked problems involved. On the other hand, attempting to realize the vision will provide insights that can be used to significantly reduce the gap between evolving software complexity and the technologies used to manage complexity.

1,155 citations

Journal ArticleDOI
TL;DR: The Palladio component model (PCM) is used to specify component-based software architectures in a parametric way to enable the prediction of extra-functional properties, and the resulting prediction accuracy is sufficient to support the evaluation of architectural design decisions.

749 citations

Journal ArticleDOI
TL;DR: The Object Management Group initiated the Unified Modeling Language 2.0 effort to address significant problems in earlier versions, but its size and complexity can present a problem to users, tool developers, and working groups charged with evolving the standard.
Abstract: Experience indicates that effective complexity management mechanisms automate mundane development tasks and provide strong support for separation of concerns. For example, current high-level programming languages and integrated development environments provide abstractions that shield developers from intricate lower-level details and offer automated support for transforming abstract representations of source code into faithful machine-executable forms. The Object Management Group initiated the Unified Modeling Language 2.0 effort to address significant problems in earlier versions. While UML 2.0 improves over earlier versions in some aspects, its size and complexity can present a problem to users, tool developers, and OMG working groups charged with evolving the standard.

213 citations

Proceedings ArticleDOI
28 Jan 2010
TL;DR: Action AbstractResourceDemandingActionResource DemandingAction AquireAction ExternalCallAction ParametricResourceDemand demand : String unit : String
Abstract: Action AbstractResourceDemandingActionResourceDemandingAction AquireAction ExternalCallAction ParametricResourceDemand demand : String unit : String

104 citations


Cites methods from "UML --- the Good, the Bad or the Ug..."

  • ...Besides the effort of addition performance annotations using a UML profile, such models would need significant effort to prepare them for automated predictions aligning the model with the concepts as expected by the transformation (for further discussions on using UML2 in model-driven approaches see [37])....

    [...]

References
More filters
Book ChapterDOI
TL;DR: An overview of the basic MDA terms and concepts and the relationships among them are offered, with the latter expressed in terms of the UML, and also an outline of a proposed software development process that would leverage MDA.
Abstract: This paper offers an overview of the basic MDA terms and concepts and the relationships among them, with the latter expressed in terms of the UML, and also an outline of a proposed software development process that would leverage MDA. The article also discusses the idea of "accelerated" MDA, which involves using one metamodel to do mappings of metamodels to multiple platforms.

1,210 citations

Journal ArticleDOI
TL;DR: The authors analyze the underlying motivation for MDD and derive a concrete set of requirements that a supporting infrastructure should satisfy and explain how it can be extended to unlock MDD's full potential.
Abstract: Metamodeling is an essential foundation for MDD, but there's little consensus on the precise form it should take and role it should play. The authors analyze the underlying motivation for MDD and then derive a concrete set of requirements that a supporting infrastructure should satisfy. They discuss why the traditional "language definition" interpretation of metamodeling isn't a sufficient foundation and explain how it can be extended to unlock MDD's full potential.

1,158 citations

BookDOI
01 Jan 1974

850 citations


"UML --- the Good, the Bad or the Ug..." refers background in this paper

  • ...As our craft matures over the decades, the practical value of solid foundations will come to be more widely recognized by modelling tool vendors and users, so more attention will be paid to the scientific foundation laid in the last hundred years, particularly the work on models and languages [22, 23] Awareness of the value of simplicity, coherence, and consistency, which can only be achieved through science, might spread first among users, thus commanding the attention of tool vendors....

    [...]

Book
01 Jan 1960
TL;DR: The Peano Axioms of Extension, Unordered Pairs, Unions and Intersections, Complements and Powers, Relations, Functions, Inverses and Composites, Numbers, and Countable Sets of Ordinal Numbers as discussed by the authors.
Abstract: 1 The Axiom of Extension.- 2 The Axiom of Specification.- 3 Unordered Pairs.- 4 Unions and Intersections.- 5 Complements and Powers.- 6 Ordered Pairs.- 7 Relations.- 8 Functions.- 9 Families.- 10 Inverses and Composites.- 11 Numbers.- 12 The Peano Axioms.- 13 Arithmetic.- 14 Order.- 15 The Axiom of Choice.- 16 Zorn's Lemma.- 17 Well Ordering.- 18 Transfinite Recursion.- 19 Ordinal Numbers.- 20 Sets of Ordinal Numbers.- 21 Ordinal Arithmetic.- 22 The Schroder-Bernstein Theorem.- 23 Countable Sets.- 24 Cardinal Arithmetic.- 25 Cardinal Numbers.

642 citations

Proceedings ArticleDOI
01 Dec 1989
TL;DR: A new typed model of inheritance is presented that allows more of the flexibility of Smalltalk inheritance within a statically-typed system and the introduction of polymorphism into the typing of inheritance and the uniform application of inheritance to objects, classes and types.
Abstract: In typed object-oriented languages the subtype relation is typically based on the inheritance hierarchy. This approach, however, leads either to insecure type-systems or to restrictions on inheritance that make it less flexible than untyped Smalltalk inheritance. We present a new typed model of inheritance that allows more of the flexibility of Smalltalk inheritance within a statically-typed system. Significant features of our analysis are the introduction of polymorphism into the typing of inheritance and the uniform application of inheritance to objects, classes and types. The resulting notion of type inheritance allows us to show that the type of an inherited object is an inherited type but not always a subtype.

432 citations


Additional excerpts

  • ...To make matters worse, the class hierarchy used to specify UML 2 is not a type hierarchy: there are subclasses that are not at all like their superclasses [13, 14] For example: Two subclasses of InteractionFragment are ExecutionOccurrence and StateInvariant....

    [...]