Not A Process But A Language
Not A Process But A Language
Not A Process But A Language
“A graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software intensive system” [Booch]
UML History
Goals:
The primary goals in the design of the UML were:
1. Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
2. Provide extensibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development processes.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of the OO tools market.
6. Support higher-level development concepts such as collaborations, frameworks, patterns and components.
Diagrams
UML is for :
1) Visual Modeling
2) Specifying
3) Constructing
Models are related to OO programming languages.
Round-trip engineering requires tool and human intervention to avoid information loss
Forward engineering — direct mapping of a UML model into code.
Reverse engineering — reconstruction of a UML model from an implementation.
4)
Documenting
Architecture, Requirements, Tests, Activities (Project planning, Release management)
UML is for visualizing, specifying, constructing, and documenting with emphasis on system architectures (things in the system and relationships
among the things) from five different views
scalability distribution
Use Case Analysis is a technique to capture business process from user’s perspective.
Encompasses thethroughput
behavior as seen by users, analysts and testers. delivery
Specifies forces that shape the architecture.
Static aspects captured in use case diagrams. installation
Dynamic aspects captured in interaction diagrams, statechart diagrams, and activity diagrams.
Design View
Encompasses classes, interfaces, and collaborations that define the vocabulary of a system.
Supports functional requirements of the system.
Static aspects captured in class diagrams and object diagrams.
Dynamic aspects captured in interaction, statechart, and activity diagrams.
Process View
Implementation View
Encompasses components and files used to assemble and release a physical system.
Addresses configuration management.
Static aspects captured in component diagrams.
Dynamic aspects captured in interaction, statechart, & activity diagrams.
Deployment View
Encompasses the nodes that form the system hardware topology.
Addresses distribution, delivery, and installation.
Static aspects captured in deployment diagrams.
Dynamic aspects captured in interaction, statechart, & activity diagrams.
Things
Important modeling concepts (individual ones as the primitive kinds)
Relationships
Tying individual things (i.e., their concepts)
Diagrams
Grouping interrelated collections of things and relationships
Things
Structural Things
Nouns of UML models.
Conceptual or physical elements.
1. Class
A description of a set of objects that share the same attributes, operations, relationships, and semantics.
Usually implements one or more interfaces.
Cf. Active Class
2. Interface
A collection of operations that specify a service (for a resource or an action) of a class or component. It describes the externally visible
behavior of that element.
3. Collaboration
4. Use Case
5. Active Class
6. Component
Interaction
behavior of a set of objects comprising of a set of message exchanges within a particular context to accomplish a specific purpose.
State Machine
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.
Relationships in UML
4 Kinds
Dependency
Association
Generalization
Realization
Relationships in UML
1. Dependency
a semantic relationship between two things in which a change to one thing (independent) may affect the semantics of the other thing
(dependent).
2. Associations
a structural relationship that describes a set of links, a link being a connection between objects.
Aggregation
a special kind of association. It represents a structural relationship between the whole and its parts.
Represented by a black diamond.
3. Generalization
a specialization/generalization relationship in which objects of the specialized element (the child) are more specific than the objects of
the generalized element.
4. Realization
a semantic relationship between two elements, wherein one element guarantees to carry out what is expected by the other element.
Where?
Between interfaces and classes that realize them…
Between use cases and the collaborations that realize them...
Diagrams in UML
Object Diagrams: Shows a set of objects and their relationships And a static snapshot of instances
✔ Interaction Diagram :
describe how use cases are realized as interactions among societies of objects, including the messages that may be dispatched among
them. They address the dynamic view of the system. 2 Types are:
Sequence Diagram :
• A sequence diagram displays object interactions arranged in a time sequence
Collaboration Diagram :
• Displays object interactions organized around objects and their direct links to one another.
• Emphasizes the structural organization of objects that send and receive messages
✔ Statechart Diagram
• The life history of a given class
• The events that cause a transition from one state to another
• The actions that result from a state change
• shows a state machine, consisting of states, transitions, events and activities
✔ Activity Diagram
• A special kind of statechart diagram that shows the flow from activity to activity.
✔ Component Diagram
• Shows the organizations and dependencies among a set of components.
✔ Deployment Diagram
• The deployment diagram shows the configuration of run-time processing elements and the software processes living on them.
• The deployment diagram visualizes the distribution of components across the enterprise
Display the boundary of a system & its major functions using use cases and actors
Illustrate use case realizations with interaction diagrams
Represent a static structure of a system using class diagrams
Model the behavior of objects with state transition diagrams
Reveal the physical implementation architecture with component & deployment diagrams
Extend your functionality with stereotypes