Introduction to UML · - defines an interaction and is a society of roles and other elements that...
Transcript of Introduction to UML · - defines an interaction and is a society of roles and other elements that...
![Page 1: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/1.jpg)
UNIT-II
Introduction to UML
- P. P. Mahale
![Page 2: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/2.jpg)
UML
• OVERVIEW OF UML :-
We need a Modeling Language!
We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development – (semantic models, syntactic notation, and diagrams: the things that must understood, controlled, and exchanged.
• The Unified Modeling Language (UML) is a language for
• Specifying
• Visualizing
• Constructing
• Documenting
The UML Provides Standardized Diagrams
![Page 3: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/3.jpg)
SCOPE OF UML• UML is a language for
• Specifying
• Visualizing
• Constructing
• Documenting
UML is a language:-
- Language provide vocabulary &
rule for combining words for
communication.
- Modeling language is a lang. which focus
on conceptual & physical representation of
a system
- Standard language for s/w blueprint
- Tell how to create real well formed models.
![Page 4: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/4.jpg)
UML is a language for Visualizing
- Each symbol in UML is a well-defined semantics
![Page 5: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/5.jpg)
UML is a language for Specifying
- Building model that are precise, unambiguous, & complete
- It address specification of all important analysis, design &implementation
![Page 6: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/6.jpg)
UML is a language for constructing
- it’s model can directly connected to a variety of programming languagesuch as java,c,c++ etc
- Mapping permit forward engg: generation of code from a UML modelinto a programming language. Reverse also possible
![Page 7: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/7.jpg)
• UML is a language for documenting
- Artifact include:-
- Requirement - source code - prototypes
- Architecture - project plans - release
- Design - tests
- It express requirements, activities ,planning & release management
![Page 8: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/8.jpg)
Where Can the UML Be Used?• Enterprise information systems
• Banking and financial services
• Telecommunications
• Transportation
• Defense/aerospace
• Retail
• Medical electronics
• Scientific
• Distributed Web-based services
![Page 9: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/9.jpg)
UML
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~
![Page 10: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/10.jpg)
DeploymentDiagrams
Use-CaseDiagramsUse-Case
DiagramsUse-CaseDiagrams
ScenarioDiagramsScenario
DiagramsSequenceDiagrams
StateDiagramsState
DiagramsStateDiagrams
ComponentDiagramsComponent
DiagramsComponentDiagrams
Models
StateDiagramsState
DiagramsObject
Diagrams
ScenarioDiagramsScenario
DiagramsCollaborationDiagrams
Use-CaseDiagrams
Use-CaseDiagramsActivity
Diagrams
StateDiagramsState
DiagramsClassDiagrams
![Page 11: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/11.jpg)
UML 2.0 New Features
• Goal:-
- provide user with ready-to-use expressive visual modeling language
- Support higher level development concept, such as collaboration,framework, pattern, component
• New diagram include:-
- Structure diagram
- Composite diagram
- Communication diagram
- Timing diagram
- Interaction overview diagram
![Page 12: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/12.jpg)
Significant changes in 2.0
• Activity diagrams completely overhauled – OMG realized theywere being used for business modeling instead of class modeling.Diagrams were made more similar to flowcharts.
• Package Diagrams added for high level overview of code structure.
• Collaboration diagrams renamed as communication diagrams butspecification remains the same.
• Timing diagrams added for real-time applications.
![Page 13: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/13.jpg)
DIAGRAM STRUCTURE
![Page 14: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/14.jpg)
STRUCTURAL BEHAVIORAL
DIAGRAM
DIAGRAM STRUCTURE
PACKAGE DIAGRAM
STRUCTURAL DIAGRAM
COMPOSITEDIAGRAM
COMPONENT DIAGRAM
DEPLOYMENT DIAGRAM
CLASS DIAGRAM
OBJECT DIAGRAM
![Page 15: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/15.jpg)
• Behavioral diagramBehavioral DIAGRAM
ACTIVITY DIAGRAM
INTERACTION DIAGRAM
USE-CASE DIAGRAM
STATE MACHINE DIAGRAM
INTERACTION OVERVIEW DIAGRAM
TIMING DIAGRAM
COMMUNICATIONDIAGRAM
SEQUENCE DIAGRAM
![Page 16: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/16.jpg)
CONCEPTUAL MODEL OF UML
• 3 major element
1. UML’s basic building block
2. Rule that dictate how those building block may be put together
3. Common mechanism apply through UML
1. UML’s basic building block
3 kind of building block
1. Things
2. Relationship
3. Diagrams
![Page 17: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/17.jpg)
Things: 4 kind
1. Structural
2. Behavioral
3. Grouping
4. Annotational
![Page 18: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/18.jpg)
1. Structural things :-
• These are the mostly static parts of a model, representing elements that are either conceptual or physical
Class: class is a description of a set of objects that share the same attributes, operations, relationships, and semantics.
- class implements one or more interfaces.
- Graphically, a class is rendered as a
rectangle, usually including
its name, attributes, and operations
![Page 19: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/19.jpg)
Interface :-
- it is a collection of operations that specify a service of a class or component.
- An interface therefore describes the externally visible behavior of that element.
- defines a set of operation specifications but never a set of operation implementations
- Graphically, an interface is rendered as a circle together with its name.
- it is typically attached to the class or component that realizes the interface
![Page 20: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/20.jpg)
Collaboration :
- defines an interaction and is a society of roles and other elements that work
together to provide some cooperative behavior that's bigger than the sum of all the elements.
- have structural, as well as behavioral, dimensions
- represent the implementation of patterns that make up a system.
![Page 21: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/21.jpg)
Use case :
- It is a description of set of sequence of actions that a system performs that
yields an observable result of value to a particular actor.
- A use case is used to structure the behavioral things in a model.
![Page 22: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/22.jpg)
Active class :
- It is a class whose objects own one or more processes or threads and therefore can initiate control activity
- Graphically, an active class is rendered just like a class, but with heavy lines, usually including its name, attributes, and operations
![Page 23: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/23.jpg)
Component
- It is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces.
- A component typically represents the physical packaging of otherwise logical elements, such as classes, interfaces, and collaborations.
- Graphically, a component is rendered as a rectangle with tabs, usually including only its name
![Page 24: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/24.jpg)
Node
- It is a physical element that exists at run time and represents a computational
resource, generally having at least some memory and, often, processingcapability.
- a node is rendered as a cube, usually including only its name
![Page 25: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/25.jpg)
2. Behavioral Things
- Behavioral things are the dynamic parts of UML models.
- representing behavior over time and space
Interaction is a behavior that comprises a set of messages exchanged among a set of objects within a particular context to accomplish a specific purpose
State machine is a behavior that specifies the sequences of states an object or an interaction goes through during its lifetime in response to events, together with its responses to those events.
![Page 26: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/26.jpg)
![Page 27: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/27.jpg)
3. Grouping Things
• Grouping things are the organizational parts of UML models. These are the boxesinto which a model can be decomposed
Package is a general-purpose mechanism for organizing elements into groups.Structural things, behavioral things, and even other grouping things may be placedin a package
- Graphically, a package is rendered as a tabbed folder, usually including only its nameand, sometimes, its contents
![Page 28: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/28.jpg)
4. Annotational Things
• Annotational things are the explanatory parts of UML models. These are the comments you may apply to describe, illuminate, and remark about any element in a model
Note:
- note is simply a symbol for rendering constraints and comments attached to an element or a collection of elements
![Page 29: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/29.jpg)
Relationships in the UML
• Four kinds of relationships in the UML:
1. Dependency
2. Association
3. Generalization
4. Realization
![Page 30: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/30.jpg)
1. Dependency is a semantic relationship between two things in which a change to one thing(the independent thing) may affect the semantics of the other thing (the dependent thing).
- Graphically, a dependency is rendered as a dashed line, possibly directed, and occasionally including a label
![Page 31: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/31.jpg)
2. Association is a structural relationship that describes a set of links, a linkbeing a connection among objects.
- Aggregation is a special kind of association
![Page 32: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/32.jpg)
3. Generalization
- is a specialization/generalization relationship in which objects of the specialized element (the child) are substitutable for objects of the generalized element (the parent).
- rendered as a solid line with a hollow arrowhead pointing to the parent
![Page 33: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/33.jpg)
4. Realization
- is a semantic relationship between classifiers, wherein one classifier specifies a contract that another classifier guarantees to carry out.
- Graphically, a realization relationship is rendered as a cross between a generalization and a dependency relationship
![Page 34: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/34.jpg)
Aggregation
• A special form of association that specifies a whole-part relationship between the aggregate (whole) and a component part.
Composition
• A form of aggregation with strong ownership and coincident lifetime as part of the whole.
![Page 35: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/35.jpg)
![Page 36: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/36.jpg)
Diagrams in the UML
1.Class diagram 8. Component diagram
2. Object diagram 9. Deployment diagram
3. Use case diagram
4. Sequence diagram
5. Collaboration diagram
6. State chart diagram
7. Activity diagram
![Page 37: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/37.jpg)
• A class diagram shows a set of classes, interfaces, and collaborationsand their relationships.
• An object diagram shows a set of objects and their relationships.
• A use case diagram shows a set of use cases and actors (a special kindof class) and their relationships.
• Both sequence diagrams and collaboration diagrams are kinds ofinteraction diagrams. An shows an interaction, consisting of a set ofobjects and their relationships, including the messages that may bedispatched among them.
![Page 38: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/38.jpg)
• A state chart diagram shows a state machine, consisting of states,transitions, events, and activities.
• An activity diagram is a special kind of a state chart diagram that showsthe flow from activity to activity within a system.
• A component diagram shows the organizations and dependenciesamong a set of components.
• A deployment diagram shows the configuration of run-time processingnodes and the components that live on them.
![Page 39: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/39.jpg)
Rules of UML• UML has a number of rules so that the models are semantically self-
consistent and related to other models in the system harmoniously.
• UML has semantic rules for the following:
1. Names
2. Scope
3. Visibility
4. Integrity
5. Execution
![Page 40: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/40.jpg)
Common Mechanisms in the UML
1. Specifications
2. Adornments
3. Common divisions
4. Extensibility mechanisms
![Page 41: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/41.jpg)
1. Specifications
• UML is more than just a graphical language. Rather, behind every part of its graphical notation .
• There is a specification that provides a textual statement of the syntax and semantics of that building block.
• For example, behind a class icon is a specification that provides the full set of
attributes, operations (including their full signatures), and behaviors
• UML's specifications provide a semantic backplane that contains all the parts of all the models of a system, each part related to one another in a consistent fashion.
• The UML's diagrams are simply visual projections into that backplane, each diagram revealing a specific interesting aspect of the system.
![Page 42: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/42.jpg)
2. Adornments
• Most elements in the UML have a unique and direct graphical notation thatprovides a visual representation of the most important aspects of the element.
- For example, the notation for a class is intentionally designed to be easy to drawexposes the most important aspects of a class, namely its name, attributes, andoperations.
• Every element in the UML's notation starts with a basic symbol, to which can beadded a variety of adornments specific to that symbol.
![Page 43: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/43.jpg)
3. Common Divisions
• There is the division of class and object. A class is an abstraction; an object is oneconcrete manifestation of that abstraction.
• In the UML you can model classes as well as objects.
![Page 44: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/44.jpg)
4. Extensibility Mechanisms
• UML provides a standard language for writing software blueprints, but it is notpossible for one closed language.
• Allows you to extend the language by adding new building blocks, creating newproperties and specifying new semantics.
• For this reason, the UML is opened-ended, making it possible for you to extend thelanguage in controlled ways.
• Extensibility mechanisms include
1. Stereotypes
2. Tagged values
3. Constraints
![Page 45: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/45.jpg)
1. Stereotypes
- Stereotype extends the vocabulary of the UML allowing you to createnew kinds of building blocks that are derived from existing ones butthat are specific to your problem.
• You can make exceptions in your models like basic building blocks bymarking them with an appropriate stereotype, as for the class Overflow.
![Page 46: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/46.jpg)
![Page 47: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/47.jpg)
2. Tagged values
• Tagged value extends the properties of a UML building block, allowing youto create new information in that element's specification.
• For example, if you are working on a product that undergoes many releasesover time, you often want to track the version and author of certain criticalabstractions. Version and author are not primitive UML concepts. They can beadded to any building block, such as a class, by introducing new tagged valuesto that building block.
• class EventQueue is extended by
marking its version and author
explicitly.
![Page 48: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/48.jpg)
3. Constraints
• Constraint extends the semantics of a UML building block, allowing you to addnew rules or modify existing ones.
• For example, you might want to constrain the EventQueue class so that all additionsare done in order. As Figure above shows, you can add a constraint that explicitlymarks these for the operation add.
![Page 49: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/49.jpg)
![Page 50: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/50.jpg)
MAJOR COMPONENT IN UML 2.0
• New concept for describing internal architecture & collaboration by mean ofport, connector & part
• Introduction of inheritance of behavior in state machine & encapsulation ofsub machine through use of entry & exit point
• Improve encapsulation of component through complex parts with protocolstate machine that control interaction with environment
• Improvement of specification, realization & wiring aspect of component
• Interaction of action & activities & use of flow semantics instead of statemachine
• Interaction improved by composition, reference, exception , loop etc
![Page 51: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/51.jpg)
Composite state• Difficult to specify composite state that can be reused in other state machine
• UML 2.0 introduces exit & entry point that control access to a compositestate
![Page 52: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/52.jpg)
ARCHITECTURAL CONCEPTS IN UML• Core concept of describing internal structure are part, connector, port
1. PARTS:-
- Describe internal structure of a class
- Part lives & dies as part of lifetime of an object of containing class
2. PORTS:-
- Port describe interaction point for a class, it is addressable i.e. signal can besend to it
- Port has interfaces that specifies operation & signal offered by class
- Class can send & receive signal via port
![Page 53: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/53.jpg)
• CONNECTOR:-
- It specifies a link that enables communication between two or more parts
- It specify link between parts only
- It may attached to port on directly to part
- Fig. shows engine e:engine in a class car is connected by axle connector toinstances in rear: wheel
![Page 54: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/54.jpg)
![Page 55: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/55.jpg)
STATE MACHINE IN UML 2.0• Major changes in UML 2.0
- Composite state with entry/exit points
- State machine generalization that enables inheritance & specification of behavior
- State machine diagram is a behavior diagram which shows discrete behavior of a part of designed system through finite state transitions
![Page 56: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/56.jpg)
OVERVIEW OF ALL UML 2.0 DIAGRAMS
• 3 classification of all UML 2.0 diagrams
1. Behavioral diagram:-
- Include activity, state, use-case, interaction diagram
2. Interaction diagram:-
- communication, Interaction overview, sequence & timing diagram
3. Structure diagram:-
- Class , object ,composite,component,deployment, package diagram
• Activity Diagram
- Illustrate the dynamic view of a system.
- Activity diagrams are especially important in modeling the function of a system.
- Emphasize the flow of control among objects.
![Page 57: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/57.jpg)
![Page 58: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/58.jpg)
• Class diagram
- shows a set of classes, interfaces, and collaborations and their relationships.
- static design view of a system.
• Communication Diagram
- Show instance of classes ,their relationship & message flow between them
- Focus on structural organization, send & receive message
- Known as collaboration diagram
![Page 59: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/59.jpg)
• Component diagram
- Component ,their relationship & interfaces are depicted
• Composite diagram
- Depict internal structural of classifier such as class, component including interaction point
-
![Page 60: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/60.jpg)
• Deployment diagram
- Shows execution architecture of system , include node, h/w or s/w execution environment
• Interaction Overview Diagram
- Variant of activity diagram which overview the control flow within system
• Use – case diagram
- Show use cases, actor & relationships
![Page 61: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/61.jpg)
![Page 62: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/62.jpg)
• Object diagram
• Package diagram
- Show how model element are organized into packages as well as dependencies between packages
![Page 63: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/63.jpg)
• Sequence diagram
- Model sequential logic, ordering of message between classifiers
![Page 64: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/64.jpg)
• State diagram
- Describe state within object
• Timing diagram
- Depict change in state / condition
![Page 65: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/65.jpg)
OBJECT CONSTRAINT LANGUAGE (OCL)
• OCL is a sub-language of UML that allow for capturing rules & attaching them tomodel elements which satisfy constraint for model to describe correct or wellformed
• It is a declarative language for describing rules that apply to UML model
• The Object Constraint Language (OCL) is an expression language that describesconstraints on object-oriented languages and other modeling artifacts.
• A constraint can be seen as a restriction on a model or a system. OCL is part ofUnified Modeling Language (UML) and it plays an important role in the analysisphase of the software lifecycle.
![Page 66: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/66.jpg)
• Object Constraint Language (OCL), is a formal language to expressside effect-free constraints. Users of the Unified Modeling Languageand other languages can use OCL to specify constraints and otherexpressions attached to their models.
• OCL is the expression language for the Unified Modeling Language(UML). To understand OCL, the component parts of this statementshould be examined. Thus, OCL has the characteristics of anexpression language, a modeling language and a formal language.
• A UML diagram (e.g., a class diagram) does not provide all relevantaspects of a specification
![Page 67: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/67.jpg)
• It is necessary to describe additional constraints about the objects in themodel Constraints specify invariant conditions that must hold for thesystem being modeled
• Constraints are often described in natural language and this alwaysresult in ambiguities
• Traditional formal languages allow to write unambiguous constraints,but they are difficult for the average system modeler
• OCL: Formal language used to express constraints, that remains easy toread and write
• It’s a precise text lang. that provide constraints & object queryexpression
![Page 68: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/68.jpg)
![Page 69: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/69.jpg)
![Page 70: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/70.jpg)
![Page 71: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/71.jpg)
![Page 72: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/72.jpg)
Object Constraint Language (OCL)
• Pure expression language: expressions do not have side effect
✸when an OCL expression is evaluated, it returns a value
✸ its evaluation cannot alter the state of the corresponding executing system
✸ an OCL expression can be used to specify a state change (e.g., in a postcondition)
• Not a programming language
✸ it is not possible to write program logic or flow of control in OCL
✸ cannot be used to invoke processes or activate non-query operations
![Page 73: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/73.jpg)
• Typed language: each expression has a type
✸well-formed expressions must obey the type conformance rules of OCL
✸ each classifier defined in a UML model represents a distinct OCL type
✸ OCL includes a set of supplementary predefined types
• The evaluation of an OCL expression is instantaneous
✸ the state of objects in a model cannot change during evaluation
![Page 74: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/74.jpg)
Basic Types Boolean
True or False
Integer
Any integer value
Real
Any decimal value
String
A series of letters, numbers, symbols
Casting
OCL does supports casting objects from one type to another as longas they are related through a generalization relationship.
oldType.oclAsType(NewType)
![Page 75: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/75.jpg)
Basic Values and Types
75
Type Values Operations
Boolean false, true or, and, xor, not, =, <>, implies
Integer -10, 0, 10, … =, <>, <, >, <=, >=, +, -, *, /, mod(),
div(), abs(), max(), min(), round(),
floor()Real -1.5, 3.14, …
String ‘Carmen’=, <>, concat(), size(), toLower(),
toUpper(), substring()
• Several built-in types and operations
![Page 76: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/76.jpg)
OCL Syntax
• Constraints on Classifiers
Context
Keyword: Self
self.GPA>2.0
Follow associations between classifiers
self.instructor.salary>0.00
If the association has multiplicity you can treat the association end as a set and checkto see if the value is set by built in notempty()
Self.instructor->notEmpty()
If an association role name is not specified you can use the classifier name.
self.Course->forAll(roomAssignment<> ‘No Room’
Comments
-- make sure this student could graduate
self.GPA>2.0
![Page 77: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/77.jpg)
![Page 78: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/78.jpg)
![Page 79: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/79.jpg)
If you can’t determine the context or if you want explicit context
Keyword: invcontext Student
Inv: self.GPA>2.0
Instead of using keyword self, you can assign a name to a classifier that you can use in the expression
context s : Student
Inv: s.GPA>2.0
Finally you can name the expression by placing a label after the expression type but before the colon
Context s : Student
Inv minimumGPARule: s.GPA>2.0
![Page 80: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/80.jpg)
OCL Syntax
• Constraints on Operations
Beyond basic classifiers, OCL expressions can be associated with operations to preconditions and postconditions.
Keyword: pre post
context Course::registerStudent(s : Student) : boolean
pre : s.tuitionPaid=true
when writing postconditions you can use keyword result to refer to the value return by operation.
context Course::registerStudent(s : Student) : boolean
pre : s.tuitionPaid=true
post: result=true
![Page 81: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/81.jpg)
As you can with invariants, you can name preconditions and postconditions by placing label after pre or post keyword
context Course::registerStudent(s : Student) : boolean
pre haspaidTuition:s.tuitionPaid=true
post: sudentWasRegistar:result=true
You may specify the results of query operation using keyword body.Because OCL doesn’t have syntax for program flow, you are limited torelatively simple expression.
context Course::getHonorsStudents() : Student
body : self. Student->select(GPA>3.5)
![Page 82: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/82.jpg)
![Page 83: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/83.jpg)
![Page 84: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/84.jpg)
OCL Syntax
• Constraints on Attributes
OCL expression can specify the initial and subsequent values for attributes of classifiers.
context School::tuition: float
init:2500.00
![Page 85: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/85.jpg)
Advanced OCL Modeling
Conditional
OCL supports basic boolean expression evaluation using the if-then-else-end if keywords
For eg.
context student Inv:
If tuitionPaid=true then
yearofGraduation=2016
else
yearofGraduation=0000
endif
![Page 86: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/86.jpg)
The boolean evaluation rules are:
1. True OR-ed with anything is true
2. False AND-ed with anything is false
3. False IMPLIES anything is true
• Context [some context here] if ( ... some conditions... ) then ( result = 1 post: self.isComplete() -- for example ) endif
![Page 87: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/87.jpg)
![Page 88: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/88.jpg)
For eg.
Context student Inv:
Self.GPA<1.0 IMPLIES self.yearOfGraduation=0000
Variable Declaration
OCL support several complex construct you can use to makeyour constraints more expressive and easier to write.
You can break the complex expression into reusable pieces byusing the let and in keyword.
Advanced OCL Modeling
![Page 89: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/89.jpg)
Advanced OCL ModelingFor eg.
context Course inv:
let salary : float= self.insructor.salary in
if self.courselevel>4000 then
salary>8000
else
salary<8000
endif
You can define variable that can be used in multiple expression on aclassifier-by classifier basis using the def keyword
context Course
Def salary: float = self.insructor.salary
![Page 90: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/90.jpg)
Advanced OCL Modeling
OCL Precedence
1. @pre
2. Dot (.) and arrow (->) operation
3. Not and unary minus (-)
4. * And /
5. + and –
6. if-then-else-endif
7. <, >, <= and >=
8. = and <>
9. AND, OR and XOR
10. IMPLIES
![Page 91: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/91.jpg)
OCL Collection• C -> size ()
• C -> includes (o)
• C -> excludes (o)
• C -> count (o)
• C -> includesAll (c2)
• C -> excludesAll (c2)
• C -> isEmpty ()
• C -> notEmpty ()
• C -> sum ()
• C -> exists (p)
• C -> forall (p)
• C -> isUnique (e)
• C -> sortedBy (e)
• C -> iterate (e)
![Page 92: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/92.jpg)
![Page 93: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/93.jpg)
![Page 94: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/94.jpg)
![Page 95: Introduction to UML · - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of](https://reader034.fdocuments.net/reader034/viewer/2022042211/5eafd42b9216167adf1ed536/html5/thumbnails/95.jpg)