190 likes | 291 Views
Introduction to UML. UML Is Based on Object-oriented 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.
E N D
UML Is Based on Object-oriented 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.
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.
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.
~ U 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. ~ M • Modeling: • Making a semantically* complete abstraction of a system.(* The formal specification of the meaning and behavior of something) L ~ • Language: • A graphical language
«document» Unified Method 0.8 «document» Unified Method 0.9 «document» Unified Method 1.0 «document» Unified Method 1.1 «document» Unified Method 1.2 «document» Unified Method 1.3 UML Origins «refine» Editorial revision With no significant Technical changes «refine» September 1997 (final submission to OMG) «refine» January 1997 (initial submission to OMG) «refine» 1996 1995 «refine»
Some of the UML Goals • Define an easy-to-learn but semantically richvisual 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.
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.
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.
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.
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, introduced by Grady Booch (Rational Software). This method is considered to be strong in design and weak when it comes to analysis. • 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.
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)
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.
Reality System Modeling • When you make a model you are making a mapping from the problem domain to a representation of the system you are modeling. • When you work object-oriented the model tends to be close to the system modeled, anda program execution can be regarded as a simulation of the behavior of the system.
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.
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.
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