Key abstractions and mechanisms
A key abstraction is a class or object that forms
part of the vocabulary of the problem domain.
Identification of Abstractions:
identification of key abstraction involves two
processes. Discovery and invention
through discovery we come to recognize the
abstraction used by domain experts. If through
inventions, we create new classes and objects that
are not necessarily part of the problem domain. A
developer of such a system uses these same
abstractions, but must also introduce new ones
such as databases, screen managers, lists queues
and so on. These key abstractions are artifacts of
the particular design, not of the problem domain.
Identifying Mechanisms
A mechanism is a design decision about
how collection of objects cooperates.
Mechanisms represent patterns of
behavior e.g. consider a system
requirement for an automobile: pushing
the accelerator should cause the engine
to run faster and releasing the accelerator
should cause the engine to run slower.
UNIT-3
Why we model
The importance of Modeling:
A model is a simplification of reality.
A model provides the blueprints of a system.
Through modeling, we achieve four aims.
1. Models help us to visualize a system as it is or as we
want it to be.
2. Models permit us to specify the structure or behavior
of a system.
3. Models give us a template that guides us in constructing
a system.
4. Models document the decisions we have made.
Principles of Modeling:
UML is basically a modeling language;
hence its principles will also be related to
modeling concepts. Here are few basic
principal of UML.
First: "The choice of what models to
create has a profound influence on how a
problem is attacked and how a solution is
shaped"
Second: " Every model may be expressed
at different levels of precision ".
Third: "The best models are connected to
reality.“
Fourth: " No single model is sufficient.
Every nontrivial system is best
approached through a small set of nearly
independent models."
Object-Oriented Modeling:
In software , there are several ways to
approaches a model. The two most common
ways are
1. Algorithmic perspective
2. Object-Oriented perspective
1. Algorithmic perspective:
In this approach, the main building blocks of
all software is the procedure or functon.This
view leads developers to focus on issues of
control and decomposition of larger
algorithms into smaller ones.
2. Object-Oriented perspective:
In this approach, the main building blocks of
all software is the object or class. Simply put,
an object is a thing. A class is a description of
a set of common objects. Every object has
identity, state and behavior. For example,
consider a simple a three-tier -architecture
for a billing system, involving a user interface
,middleware, and a data base. In the user
interface, you will find concrete
objects, such as buttons, menus, and dialog
boxes. In the database, you will find concrete
objects ,such as tables. In the middle layer
,you will find objects such as transitions and
business rules.
INDRODUCING THE UML
UML STANDS:
UNIFIED MODELING LANGUAGE
It is not programming language
The UML is a language for
1. Visualizing
2. Specifying
3. Constructing
4. Documenting
A Conceptual Model of the UML
To understand the UML, we need to form a
conceptual model of the language, and
this requires learning three major
elements:
1. Basic Building blocks of the UML
2. Rules of the UML
3. Common mechanisms in the UML.
Basic Building Blocks of the UML:
The vocabulary of the UML encompasses
three kinds of building blocks:
1. Things in the UML
2. Relationships in the UML
3. Diagrams in the UML
Things in the UML: -
Things are the abstractions that are first-
class citizens in a model. There are four
kinds of things in the UML:
1. Structural things
2. Behavioral things
3. Grouping things
4. Annotational things