Chapter 6 - Basics of OOSE
Chapter 6 - Basics of OOSE
Chapter 6 - Basics of OOSE
1
What is OOSE?
• One widely used approach to problem-solving takes an
object-oriented viewpoint.
• The problem domain is characterized as a set of objects
that have specific attributes and behaviors.
• The objects are manipulated with a collection of functions
(called methods, operations, or services) and communicate
with one another through a messaging protocol.
• Objects are categorized into classes and subclasses.
2
What are the steps?
• The definition of objects encompasses a description of
attributes, behaviors, operations, and messages.
• OOSE follows the same steps as conventional
approaches.
– Analysis identifies objects and classes tech that are
relevant to the problem domain;
– Design provides the architecture, interface, and
component-level detail;
– Implementation (using an object-oriented language)
transforms design into code; and
– Testing exercises the object-oriented architecture,
interfaces and components.
3
What are the advantages?
• Object technologies lead to reuse, and reuse (of
program components) leads to faster software
development and higher-quality programs.
• Object-oriented software is easier to maintain
because its structure is inherently decoupled.
• This leads to fewer side effects when changes have
to be made and less frustration for the software
engineer and the customer.
• In addition, object-oriented systems are easier to
adapt and easier to scale.
4
OO Basic concepts
• Formal definition of object-oriented-ness
– objects + classification + inheritance + communication
• A class
– is an OO concept that encapsulates the data and procedural
abstractions required to describe the content and behavior of
some real world entity.
• An object
– is an instance or member of a class.
– encapsulates both data (attributes) and the functions
(operation, methods, or services) that manipulate the data.
• Attribute
• Operations, Methods, and Services
5
OO Basic concepts(cont.)
• Message
– is the means by which objects interact.
– stimulates some behavior to occur in the receiving
object.
– The behavior is accomplished when an operation is
executed.
• Encapsulation, Inheritance, and Polymorphism
• Example person class student, employee, manager,
6
Classes
• object-oriented thinking begins with the
definition of a class often defined as:
– template
– generalized description
– pattern
– “blueprint” ... describing a collection of similar items
• a metaclass (also called a superclass) is a
collection of classes
• once a class of items is defined, a specific
instance of the class can be defined
7
Representation of a class
8
Message passing between objects
9
Encapsulation/Hiding
The object encapsulates
both data and the logical
procedures required to
manipulate the data method method
#1 #2
data
method
#6
method method
#5 #4
10
Class Hierarchy
furniture (superclass)
subclasses of the
furniture superclass
instances of chair
11
Methods
(a.k.a. Operations, Services)
An executable procedure that is encapsulated
in a class and is designed to operate on one or
more data attributes that are defined as part
of the class.
A method is invoked
via message passing.
12
The OO Process Model identify
candidate
classes
Pla n n in g
Risk Ana lysis construct look-up
nth iteration classes
Custo m e r of system in library
Co m m unic a tio n
engineer
classes
C usto m e r Eng ine e ring , if unavailable
Eva lua tio n Co nstruc tio n & Re le a se
OO analysis
OO design
OO programming
OO testing
13
The OO Process Model(cont.)
• An evolutionary process model, coupled with
an approach that encourages component
assembly (reuse), is the best paradigm for OO
software engineering.
• As depicted in previous slide the component-
based development process model been
tailored for OO software engineering.
14
UML
• The heart of object-oriented problem solving is
the construction of a model.
• The model abstracts the essential details of the
underlying problem from its usually complicated
real world.
• Several modeling tools exist.
– UML, which stands for Unified Modeling Language,
is the most common & widely adopted.
15
UML(cont.)
• is an open method used to specify, visualise, construct
and document the artifacts of an object-oriented
software-intensive system under development.
• offers a standard way to write a system's blueprints,
including conceptual components such as:
– actors,
– business processes and
– system's components, and activities
• as well as concrete things such as:
– programming language statements,
– database schemas, and
– reusable software components.
16
UML(cont.)
• combines the best practice from
– data modeling concepts such as ERDs,
– business modeling such as DFDs, and
– object modeling and component modeling.
• can be used with all processes, throughout the
software development life cycle, and across different
implementation technologies.
• UML has succeeded the concepts of the Booch
method, the Object-modeling technique (OMT) and
Object-oriented software engineering (OOSE) by
fusing them into a single, common and widely usable
modeling language.
17
UML(cont.)
• UML 2.0 has 13 types of diagrams divided into
three categories.
– Six diagram types represent the structure
application,
– seven represent general types of behavior,
including
– four that represent different aspects of
interactions.
18
19
About your project
• Steps
– Submit a proposal that includes scope and objectives
– Elicit requirements
– Structure it Analysis modeling
– Propose and discuss some Design Considerations
– etc
N.B: - The same will be repeated using OOSE approach i.e.
using UML
- You have to use an appropriate CASE tool for
everything you are going to do in the project!
20