Introduction to UML 1 UML Is Based on
Introduction to UML 1
UML Is Based on Objectoriented Concepts • A program will typically consist of objects that cooperate to solve a task. • An object will typically have attributes (data) and methods (behavior), this defines the state of the object and the manner in which the object operate. • Objects communicate by sending messages to each other. Sending a message to an object is the same as calling a method of the object. 2
Class and Object as Defined by Booch, Rumbaugh and Jacobson • Class: A description of a set of objects that share the same attributes, operations, relationships, and semantics. • Object: A concrete manifestation of an abstraction; an entity with a well defined boundary and identity that encapsulates state and behavior; an instance of a class. 3
UML • The UML is a language for – visualizing – specifying – constructing – documenting the artifacts of a software-intensive system • UML can also be applied outside the domain of software development. 4
U~ M~ L~ Unified: Unified • Unification of earlier object-oriented analysis and design methods. • Same concepts and notation for different application domains and different development processes. • Same concepts and notation through the whole development lifecycle. Modeling: • Making a semantically* complete abstraction of a system. (* The formal specification of the meaning and behavior of something) Language: • A graphical language 5
UML Origins Editorial revision With no significant Technical changes September 1997 (final submission to OMG) January 1997 (initial submission to OMG) 1996 1995 «document» Unified Method 0. 8 «document» Unified Method 1. 3 «refine» «document» Unified Method 1. 2 «refine» «document» Unified Method 1. 1 «refine» «document» Unified Method 1. 0 «refine» «document» Unified Method 0. 9 «refine» 6
Some of the UML Goals • Define an easy-to-learn but semantically rich visual modeling language. • Unify ideas from other modeling languages and incorporate industry best practices. • Support higher-level development concepts such as collaborations (design patterns), frameworks and components. • Provide flexibility for applying different processes and mapping to different programming languages. • Support extensibility and specialization mechanisms so that the core concepts can be extended. • Provide a formal basis so that model interchange between different OO tools will be possible. 7
The Value of UML • Open standard. • Supported by many tools. • Supports the entire development lifecycle. • Support diverse application areas. • Based on experience and needs of the user community. 8
UML Is Not a Visual Programming Language • UML is a visual modeling language. It does not have all necessary visual and semantic support to replace programming languages. • But UML has a tight mapping to a family of OO languages like C++ and Java. 9
Software Engineering Methods • Most methods consist of both a modeling language and a process (who is doing what and when). • The modeling language, the notation, typically include some visual language (different types of diagrams). • A tool to support the method is also crucial. 10
Three of the most popular methods (What is the difference between a methodologist and a terrorist? Answer: You can negotiate with a terrorist. ) • Object Modeling Technique, OMT introduced by Jim Rumbaugh. OMT is considered to be strong on analysis and weaker in the design area. • Booch, Booch introduced by Grady Booch (Rational Software). This method is considered to be strong in design and weak when it comes to analysis. • OOSE, OOSE (use cases ) introduced by Ivar Jacobson. OOSE is considered to be strong when it comes to behavior analysis and weaker in the other areas. 11
UML Is Not a Development Process A development process defines: - Who is doing What, - When to do it, and - How to reach a certain goal • The UML is intentionally process independent, and defining a standard process was not a goal of UML. Different domain may require different processes. • But the UML authors promote a development process that is use-case -driven, architecture centric, iterative and incremental. (Example of method: RUP) 12
Abstraction • Abstraction is a fundamental human capability, it let us filter out nonessential details about a complex problem or structure. • Through abstraction a system can be viewed at different levels. Often there is a hierarchic structure, each level of model is more precise than its parent. When developing a software system, code will be the lowest and most detailed level. 13
Modeling • When you make a model you are making a mapping from the problem domain to a representation of the system you are modeling. Reality System • When you work object-oriented the model tends to be close to the system modeled, and a program execution can be regarded as a simulation of the behavior of the system. 14
Why Do We Model? • Models give us a template that guides us in constructing a system. • If you want to make a building you first make a blueprint of the building to make, in the same way you should make a model of the system you want to make. As the complexity of systems increases, so does the importance of good modeling techniques. • Models help us visualize a system at different levels of abstraction, this makes it easier to manage complexity and to understand the system. 15
More Arguments Why Do We Model? • It is not expensive to experiment with multiple solutions when you operate on a high level of abstraction. • Models document the decisions we have made. • Models help for communication between different stakeholders. 16
References • Grady Booch, James Rumbaugh and Ivar Jacobson: The Unified Modeling Language User Guide. Addison-Wesley, 1999 • James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy and William Lorenzen: Object-Oriented Modeling and Design. Prentice Hall, 1991 • Martin Fowler with Kendall Scott: UML Distilled. Addison-Wesley, 1997 • Terry Quatrani: Visual Modeling with Rational Rose and UML. Addison-Wesley, 1998 • Rational software: http: //www. rational. com/uml/documentation. html 17
- Slides: 17