You are on page 1of 27

Introduction to OOSE

Revision

What is software?

What is software Engineering?

History of software/ software engineering?

Why software engineering?

What are the challenges of software engineering?


System Development (SD) : -
SD refers to all activities that go into producing an

information systems solution. Like systems analysis,


modeling, design, implementation, testing and
maintenance.
A software development methodology is a series of

processes that can lead to the development of an


application/software.
Used to perform certain action on certain data. output
Two orthogonal views of software
Traditional approach
focuses on the functions of the system and says software
as a collection of programs (or functions /procedures )
and isolated data.
Which follows structured approach and uses traditional
models like waterfall…
Object oriented approach
centers on the object, which combines data and
functionality i.e., Programs = Algorithms + Data
Structures
develop software by building self – contained modules or
objects that can be easily replaced, modified and reused.
Structured Vs object oriented
Object Oriented Modeling
Object oriented…
software is a collection of discrete objects that
encapsulate their data as well as the functionality of
model real–world events “objects”
A software design technique that is used in software
design in object-oriented programming.
Why object oriented? easier to evolve, more flexible, more
robust, and more reusable than a top – down approach.
 Allows higher level of abstraction: at object level encapsulates
(attribute/data and function/method )
 Seamless transition among different phases: uses same language ..
 Promotes of reusability: objects are reusable because they are
modeled directly out of a real – world problem domain.
Why object oriented
Study of 280,000 projects completed in 2000
Only about 1 in 4 was a success
Legal Implications of the Current Situation
2002 survey of information technology organizations
78% have been involved in disputes that ended in
litigation(court)
For the organizations that entered into litigation:
In 67% of the disputes, the functionality of the
information system as delivered did not meet not
up to the claims of the developers
In 56% of the disputes, the promised delivery date
slipped several times
In 45% of the disputes, the defects were so severe
that the information system was unusable
Object oriented concepts
Objects are Grouped in Classes :a set of objects that
share a common structure and a common behavior.
Attributes: Object state and properties .
Class hierarchy
attributes and methods of a super class are inherited by its
subclasses
Messages
the means by which objects exchange information with
one another
Inheritance
provides a means for allowing subclasses to reuse existing
super class data and procedures
provides mechanism for propagating changes
OO Concepts …
Multiple Inheritance:
Some object–oriented systems permit a class to inherit
its state (attributes) and behaviors from more than one
super class.
Polymorphism: It means that the same operation may
behave differently on different classes.
Object Relationships: (aggregation, association and
generalization) cardinality.
Encapsulation, or information hiding, is the feature
of separating the external aspects of an object, from the
internal implementation details of that object.
Persistence, override, method, coupling, cohesion…(read
more)
10
Generally

The program is composed of different objects those have


some responsibilities toward each other as well as
toward the system.
The objects  attributes to fulfill the responsibilities
and objects perform some operations on the attributes
& pass messages between each other for the same
Object – Oriented System Development Life Cycle
The basic software development life cycle consists of
analysis, design, implementation, testing and refinement. Its
main aim is to transform users’ needs into a software
solution.
The development is a process of change, refinement,

transformation or addition to the existing product.


The software development process can be viewed as a series

of transformations, where the output of one transformation


becomes input of the subsequent transformation
Transformation 1 (analysis) translates the users’ needs into
system requirements & responsibilities.
Transformation 2 (design )
Transformation 3 (implementation) : refines the detailed
design into the system deployment that will satisfy the
users’ needs. It represents embedding s/w product within
its operational environment.
Requirements analysis: the analyst works with—
 end users, and domain experts
to enumerate the use cases that are key to the system’s
operation.
Objective: Requirements analysis essentially forms a
contract between the customer and the developers on
what they system is to provide.
Deliverables:
System charter—outlines the responsibilities of the system.
System function statement—outlines the key use cases of the
system.
Domain analysis: an o-o model of the real-world
system is developed.
Good domain analysis also adds appropriate levels of
abstraction.
This allows structures to be built that will be reusable in
many other domains.
Deliverables:
Class diagrams—identify key classes of the domain.
Inheritance diagrams—show which classes inherit from
other classes. (Do not over-use inheritance!)
Use-case diagrams—illustrate how objects will interact to
carry out key functions.
System design :an effective and efficient implementation
is defined.
Deliverables
Architectural descriptions—capture major design
decisions, such as choice of processors, language, etc.
Executable-release descriptions—define the goals and
content of successive executable release
implementations.
Package diagrams—partition the system into high-
level groupings of classes and objects.
 Component diagrams—show how the classes relate
to the actual code. Specify the libraries and
subsystems
Sequence diagrams, which show the detailed
operational logic to carry out functions.
Relationship of OO A&D
Object Oriented Methodologies
Numbers of methodology are modeling the business

problem and implementing the application in an object


oriented fashion. to solve the traditional problem
The major differences is documentation of information, &

modeling notations and language. What is the problem ?


The three major methodologies and their modeling

notations developed by Rumbaugh et al., Booch and


Jacobson which are the origins of the Unified Modeling
Language.
Each method has its strengths.
Rumbaugh method is well-suited for describing the object
model or the static structure of the system.
 The Jacobson et al, good for producing user – driven
analysis models.
The Booch method produces detailed object–oriented
design models.
Rambaugh et al.’s Object Modeling
Technique(OMT) :
OMT is a fast, intuitive approach for identifying and
modeling all the objects making up a system.
class, attributes, method, inheritance and association also
can be expressed easily.
OMT consists of four phases
Analysis: -objects ,dynamic and functional models
System Design: -structure of basic architecture of system
Object Design: detail design document,
Implementation:
OMT separates modeling into three different parts.
An object model, presented by the object model and the
data dictionary.
A dynamic model presented by the state diagrams and even
flow diagrams.
A functional model presented by data flow and constraints
Booch Methodology : -
It is a widely used object oriented method that helps
us design our system using the object paradigm. It
covers the analysis and design phases of an object
oriented system. Consists
Class diagrams, Object diagrams, State Transition
diagrams, Module diagrams Process diagrams,
Interaction programs.
Jacobson Et Al. Methodology: -
It cover the entire life cycle and stress traceability
between different phases, both forward and
backward.
Unified Approach (UA) : -
 UA is a methodology for software development is based
on methodologies by Booch, Rumbaugh and Jacobson.
It tries to combine best practices, processes, and
guidelines along with UML notations & diagrams
UA to s/w development revolves around the following
process & concepts: –
Use–case driven development,
Object–oriented analysis,
Object– oriented design,
Incremental development
 prototyping and Continuous testing.
The Unified Process is iterative and incremental
Modeling: -
A model is an abstract representation of a system
constructed to understand the system prior to building or
modifying it.
Models can represent static or dynamic situations
Static Model: It can be viewed as a snapshot of a system’s
parameters at rest or at a specific point in time. It is used to
represent structural or static aspect of system. It assume
stability and absence of change in data over time.
Dynamic Model: It can viewed as collection of procedures
or behaviors taken together which reflect behavior of system
over time.

UML.. Next

You might also like