Ooad Unit 3
Ooad Unit 3
1.Inheritance
Inheritance is also called generalization and is used to describe the relationship
between parent and child classes.
2.Realization / Implementation
Implementation (Implementation) is mainly used to specify the relationship
between interfaces and implementation classes .
The combination relationship represents the relationship between the whole and part
of the class, and the overall and part have a dependable lifetime. Once the overall
object does not exist, some of the objects will not exist, and they will all die in the
same life. For example, a person is composed of a head and a body. The two are
inseparable and coexist.
4.Aggregation Relationship
An object of one class can own or access the objects of another class.
For example, bus drivers and work clothes and hats are part of the overall
relationship, but they can be separated. Work clothes and hats can be damaged
on other drivers. Bus drivers can also wear other work clothes and hats.
Example of a car and a wheel. A car needs a wheel to function correctly, but a
wheel doesn’t always need a car. It can also be used with the bike, bicycle, or any
other vehicles but not a particular car. Here, the wheel object is meaningful even
without the car object. Such type of relationship is called an aggregation relation.
5.Association Relationships
objects can be connected or associated with another object inside the system..
There are four kinds of associations : two-way associations , one-way
associations , self-association , and multiple-number associations .
For example: cars and drivers, one car corresponds to a particular driver, and one driver
can drive multiple cars.
In UML diagrams, bidirectional associations can have two arrows or no arrows , and one-way
associations or self-associations have an arrow.
In a multiplicity relationship, you can add a number directly to the associated line to indicate the
number of objects in the corresponding class.
For example: The car relies on gasoline. If there is no gasoline, the car will not be
able to drive.
Class Diagrams
TERMS AND CONCEPTS
A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and
their relationships. Graphically, a class diagram is a collection of vertices and arcs.
Common Properties: A class diagram is just a special kind of diagram and shares
the same common properties as do all other diagrams name and graphical content
that are a projection into a model. What differentiates a class diagram from other
kinds of diagrams is its particular content.
Class diagrams may also contain packages or subsystems, both of which are used to
group elements of your model into larger amounts. Sometimes you'll want to place
instances in your class diagrams as well, especially when you want to visualize the
(possibly dynamic) type of an instance.
Common Uses :
You use class diagrams to model the static design view of a system. This view
primarily supports the functional requirements of a system the services the system
should provide to its end users.
When you model the static design view of a system, you'll typically use class
diagrams in one of three ways.
1. To model the vocabulary of a system
Think of a schema as the blueprint for the conceptual design of a database. In many
domains, you'll want to store constant information in a relational database or in an
object-oriented database. You can model schemas for these databases using class
diagrams.
COMMON MODELING TECHNIQUES
• For each mechanism, identify the classes, interfaces, and other collaborations that
participate in this collaboration. Identify the relationships among these things as well.
• Use scenarios to walk through these things. Along the way, you'll discover parts of
your model that were missing and parts that were just plain semantically wrong.
• Be sure to populate these elements with their contents. For classes, start with
getting a good balance of responsibilities. Then, over time, turn these in to concrete
attributes and operations.
2. Modeling a Logical Database Schema
To model a schema,
• Identify those classes in your model whose state must transcend the lifetime of
their applications.
• Create a class diagram that contains these classes. You can define your own set
of stereotypes and tagged values to address database-specific details.
• Expand the structural details of these classes. In general, this means specifying
the details of their attributes and focusing on the associations and their multiplicities
that relate these classes.
• Watch for common patterns that complicate physical database design, such as
cyclic associations and one-to-one associations. Where necessary, create
intermediate abstractions to simplify your logical structure.
• Consider also the behavior of these classes by expanding operations that are
important for data access and data integrity. In general, to provide a better
separation of concerns, business rules concerned with the manipulation of sets of
these objects should be encapsulated in a layer above these constant classes.
• Where possible, use tools to help you transform your logical design into a
physical design.
3. Forward and Reverse Engineering: https://slideplayer.com/slide/8049773/
·Depending on the semantics of the languages you choose, you may want to
constrain your use of certain UML features.
There is a loss of information when forward engineering models into code, and so
you can't completely recreate a model from code unless your tools encode
information in the source comments that goes beyond the semantics of the
implementation language.
·Identify the rules for mapping from your implementation language or languages of
choice.
·Using a tool, point to the code you'd like to reverse engineer. Use your tool to
generate a new model or modify an existing one that was previously forward
engineered.
·Manually add design information to the model to express the intent of the design that
is missing or hidden in the code.
Object Diagrams:
Object diagrams are derived from class diagrams so object diagrams are dependent
upon class diagrams.
Object diagrams represent an instance of a class diagram. The basic concepts are
similar for class diagrams and object diagrams. Object diagrams also represent the
static view of a system but this static view is a snapshot of the system at a particular
moment.
Object diagrams are used to provide a set of objects and their relationships as an
instance.
Similar to classes, you are able to list object attributes inside a separate compartment.
However, unlike classes, object attributes should have values assigned for them.
Links:
Links tend to be instances associated with associations. You can draw a link while
using the lines utilized in class diagrams.
An object diagram is a diagram that shows a set of objects and their relationships
at a point in time. Graphically, an object diagram is a collection of vertices and arcs.
Common Properties
An object diagram is a special kind of diagram and shares the same common
properties as all other diagrams that is, a name and graphical contents that are a
projection into a model. What differentiates an object diagram from all other kinds
of diagrams is its particular content.
Contents
Like all other diagrams, object diagrams may contain notes and constraints.
Sometimes you'll want to place classes in your object diagrams as well, especially
when you want to visualize the classes behind each instance.
Common Uses
You use object diagrams to model the static design view or static process view of a
system just as you do with class diagrams, but from the perspective of real or
prototypical instances.
This view primarily supports the functional requirements of a system that is, the
services the system should provide to its end users. Object diagrams let you model
static data structures.
When you model the static design view or static process view of a system, you
typically use object diagrams in one way:
• For each mechanism, identify the classes, interfaces, and other elements that
participate in this collaboration; identify the relationships among these things as
well.
•Consider one scenario that walks through this mechanism. Freeze that scenario
at a moment in time, and provide each object that participates in the mechanism.
•Expose the state and attribute values of each such object, as necessary, to
understand the scenario.
Reverse engineering
Identify the objects that collaborate with each other and represent them in an
object diagram.
Also identify the links between the objects to understand their semantics.