MODULE:I
An Overview of
Object Oriented Systems Development
04/28/20 MODULE-I OOSD 1
Introduction
Software development is dynamic in nature.
A vast number of tools and methodologies are
available for software development.
System of development refers to all activities
which leads to a solution.
04/28/20 MODULE-I OOSD 2
Introduction…
System development activities consists of :
-analysis
- modeling & designing
- implementation
- testing
- maintenance
04/28/20 MODULE-I OOSD 3
Introduction…
A process consists of number of steps and
rules that should be performed during
development.
04/28/20 MODULE-I OOSD 4
Two Orthogonal Views of Software
A program can be defined as:
Program=Algorithm + Data Structures
- Object Oriented System Development
- Traditional System Development
04/28/20 MODULE-I OOSD 5
OOSD Methodologies
A way to develop software by building self-
contained modules or objects that can be
easily replaced, modified and reused.
It encourages a view of the world as a system
of cooperative and collaborating objects.
In this case, software is a collection of
discrete objects that encapsulate their data
and function.
04/28/20 MODULE-I OOSD 6
OOSD Methodologies…
In OO Systems, everything is an object and
each object is responsible for itself.
Ex: Windows Applications
[Opening, sizing, closing]
Helpers (objects) are created, that forms a
community whose interaction becomes the
application.
04/28/20 MODULE-I OOSD 7
Why an Object Orientation?
- easier to adopt to changing requirements
- easier to maintain
- more robust
- greater design and code reuse
04/28/20 MODULE-I OOSD 8
Why an Object Orientation?...
Higher level of Abstraction (object Level)
Seamless transition among different phases of
software development.
Encouragement of good programming techniques
Promotion of reusability(classes are designed
generically with reuse as a constant background
goal)
04/28/20 MODULE-I OOSD 9
Overview of the UNIFIED
APPROACH
The Unified Approach(UA) is a methodology
for software development that is proposed by
the author Dr. Ali Bahrami.
The UA , based on methodologies by Grady
Booch, Rumbaugh & Ivar Jacobson, tries to
combine the best practices, processes &
guidelines along with OMG’s (Object
Management Group’s) Unified Modeling
Language (UML).
04/28/20 MODULE-I OOSD 10
UNIFIED APPROACH…
Rational Unified Process (RUP)
UML is a set of notations and conventions used to
describe and model an application.
UML does not specify a methodology or what steps
to follow to develop an application.
The heart of UA is Jacobson’s use case.
Use case represents a typical interaction between a
user and a computer system to capture the user’s
goals and needs.
04/28/20 MODULE-I OOSD 11
The main advantage of an object oriented system is
that the class tree is dynamic and can grow.
( maintain class library/repository)
This book of OOSD uses a Layered
Architecture(LA) to develop applications.
LA is an approach to software development that
allows us to create objects,
- that represents tangible elements of the business,
independent of how they are represented to the user
through an interface or physically stored in a database.
04/28/20 MODULE-I OOSD 12
Layered Approach consists of:
- View or UI (User Interfaces) Layer
- Business Layer
- Access Layer
04/28/20 MODULE-I OOSD 13
UNIFIED APPROACH…
The UA consists of the following concepts:
Use-case driven development
Utilizing UML
Object-oriented analysis (utilizing use case)
Repository of reusable classes and maximum reuse
The layered approach
Incremental development and prototyping
Continuous testing
04/28/20 MODULE-I OOSD 14
04/28/20 MODULE-I OOSD 15
Rational Unified Process (RUP)
The Rational Unified Process (RUP) is an
iterative software development process
framework created by the Rational Software
Corporation, a division of IBM since 2003.
RUP is not a single concrete prescriptive process, but
rather an adaptable process framework, intended to be
tailored by the development organizations and
software project teams that will select the elements of
the process that are appropriate for their needs.
RUP is a specific implementation of the Unified
Process.
04/28/20 MODULE-I OOSD 16
RUP building blocks
Roles (who) – A Role defines a set of related
skills, competencies and responsibilities.
Work Products (what) – A Work Product
represents something resulting from a task,
including all the documents and models
produced while working through the process.
Tasks (how) – A Task describes a unit of
work assigned to a Role that provides a
meaningful result.
04/28/20 MODULE-I OOSD 17
Six Best Practices in RUP
Develop iteratively
Manage requirements
Use components
Model visually (use UML)
Verify quality (testing as a major part)
Risk Assessment should be taken care of
04/28/20 MODULE-I OOSD 18
04/28/20 MODULE-I OOSD 19
04/28/20 MODULE-I OOSD 20
Manifesto for Agile Software
Development
Manifesto for Agile Software Development
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
--Individuals and interactions over processes
and tools
--Working software over comprehensive
documentation
04/28/20 MODULE-I OOSD 21
Manifesto for Agile Software
Development…
--Customer collaboration over contract
negotiation
--Responding to change over following a plan
04/28/20 MODULE-I OOSD 22