This document provides an overview of object oriented systems development. It discusses that software development is dynamic in nature and there are many tools and methodologies available. It describes object oriented development as building self-contained modules or objects that can be easily replaced, modified and reused. Object oriented development encourages viewing the world as a system of cooperative and collaborating objects. The document also discusses the Rational Unified Process (RUP) framework and the six best practices it incorporates, including developing iteratively, managing requirements, using components, modeling visually with UML, verifying quality through testing, and addressing risk assessment.
1. MODULE:IMODULE:I
An Overview ofAn Overview of
Object Oriented Systems DevelopmentObject Oriented Systems Development
Dr Arup AAcharyaDr Arup AAcharya
School of Computer EngineeringSchool of Computer Engineering
KIIT Deemed to Be UniversityKIIT Deemed to Be University
01/24/1901/24/19 11MODULE-I OOSDMODULE-I OOSD
2. IntroductionIntroduction
Software development isSoftware development is dynamicdynamic in nature.in nature.
A vast number ofA vast number of toolstools andand methodologiesmethodologies areare
available for software development.available for software development.
System of development refers to allSystem of development refers to all activitiesactivities
which leads to a solution.which leads to a solution.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 22
3. Introduction…Introduction…
System development activities consists of :System development activities consists of :
-analysis-analysis
- modeling & designing- modeling & designing
- implementation- implementation
- testing- testing
- maintenance- maintenance
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 33
4. Introduction…Introduction…
A process consists of number ofA process consists of number of stepssteps andand
rulesrules that should be performed duringthat should be performed during
development.development.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 44
5. Two Orthogonal Views of SoftwareTwo Orthogonal Views of Software
A program can be defined as:A program can be defined as:
ProgramProgram==AlgorithmAlgorithm ++ Data StructuresData Structures
-- Object Oriented System DevelopmentObject Oriented System Development
-- Traditional System DevelopmentTraditional System Development
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 55
6. OOSD MethodologiesOOSD Methodologies
A way to develop software by buildingA way to develop software by building self-self-
containedcontained modules or objects that can bemodules or objects that can be
easilyeasily replacedreplaced,, modifiedmodified andand reusedreused..
It encourages a view of the world as a systemIt encourages a view of the world as a system
ofof cooperativecooperative andand collaboratingcollaborating objects.objects.
In this case, software is a collection ofIn this case, software is a collection of
discrete objectsdiscrete objects that encapsulate theirthat encapsulate their datadata
andand functionfunction..
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 66
7. OOSD Methodologies…OOSD Methodologies…
In OO Systems,In OO Systems, everything is an objecteverything is an object andand
each object is responsible for itself.each object is responsible for itself.
Ex:Ex: Windows ApplicationsWindows Applications
[Opening, sizing, closing][Opening, sizing, closing]
Helpers (objects) are created, that forms aHelpers (objects) are created, that forms a
community whosecommunity whose interactioninteraction becomes thebecomes the
application.application.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 77
8. Why an Object Orientation?Why an Object Orientation?
- easier to- easier to adopt to changing requirementsadopt to changing requirements
- easier to- easier to maintainmaintain
- more- more robustrobust
- greater- greater designdesign andand codecode reusereuse
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 88
9. Why an Object Orientation?...Why an Object Orientation?...
Higher level ofHigher level of AbstractionAbstraction (object Level)(object Level)
Seamless transitionSeamless transition among different phases ofamong different phases of
software development.software development.
EncouragementEncouragement of good programmingof good programming
techniquestechniques
Promotion ofPromotion of reusabilityreusability(classes are designed(classes are designed
generically with reuse as a constantgenerically with reuse as a constant
background goal)background goal)
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 99
10. Overview of the UNIFIEDOverview of the UNIFIED
APPROACHAPPROACH
TheThe Unified Approach(UA)Unified Approach(UA) is a methodologyis a methodology
for software development that is proposed byfor software development that is proposed by
the author Dr. Ali Bahrami.the author Dr. Ali Bahrami.
The UA , based on methodologies byThe UA , based on methodologies by GradyGrady
Booch, Rumbaugh & Ivar JacobsonBooch, Rumbaugh & Ivar Jacobson,, tries totries to
combine the best practices, processes &combine the best practices, processes &
guidelines along with OMG’s (Objectguidelines along with OMG’s (Object
Management Group’s)Management Group’s) UUnified Modelingnified Modeling
Language (UML).Language (UML).
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1010
11. UNIFIED APPROACH…UNIFIED APPROACH…
RRationalational UUnifiednified PProcess (RUP)rocess (RUP)
UML is a set ofUML is a set of notationsnotations andand conventionsconventions used toused to
describe and model an application.describe and model an application.
UMLUML does not specify a methodologydoes not specify a methodology or what stepsor what steps
to follow to develop an application.to follow to develop an application.
The heart of UA isThe heart of UA is Jacobson’s use caseJacobson’s use case..
Use case represents a typical interaction between aUse case represents a typical interaction between a
user and a computer system to capture the user’suser and a computer system to capture the user’s
goals and needs.goals and needs.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1111
12. The main advantage of an object oriented system isThe main advantage of an object oriented system is
that thethat the class tree is dynamicclass tree is dynamic and can grow.and can grow.
( maintain class library/repository)( maintain class library/repository)
This book of OOSD uses aThis book of OOSD uses a LayeredLayered
ArchitectureArchitecture(LA)(LA) to develop applications.to develop applications.
LALA is an approach to software development thatis an approach to software development that
allows us to create objects,allows us to create objects,
- that represents- that represents tangible elementstangible elements of the business,of the business,
independent of how they are represented to the userindependent of how they are represented to the user
through an interface or physically stored in a database.through an interface or physically stored in a database.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1212
13. Layered Approach consists of:Layered Approach consists of:
- View or UI (User Interfaces) Layer- View or UI (User Interfaces) Layer
- Business Layer- Business Layer
- Access Layer- Access Layer
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1313
14. UNIFIED APPROACH…UNIFIED APPROACH…
The UA consists of the following concepts:The UA consists of the following concepts:
Use-case driven developmentUse-case driven development
Utilizing UMLUtilizing UML
Object-oriented analysis (utilizing use case)Object-oriented analysis (utilizing use case)
Repository of reusable classes and maximum reuseRepository of reusable classes and maximum reuse
The layered approachThe layered approach
Incremental development and prototypingIncremental development and prototyping
Continuous testingContinuous testing
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1414
16. Rational Unified Process (RUP)Rational Unified Process (RUP)
TheThe Rational Unified ProcessRational Unified Process ((RUPRUP) is an) is an
iterativeiterative software development processsoftware development process
framework created by the Rational Softwareframework created by the Rational Software
Corporation, a division of IBM since 2003.Corporation, a division of IBM since 2003.
RUP is not a single concrete prescriptive process, butRUP is not a single concrete prescriptive process, but
rather an adaptable processrather an adaptable process frameworkframework, intended to be, intended to be
tailored by the development organizations andtailored by the development organizations and
software project teams that will select the elements ofsoftware project teams that will select the elements of
the process that are appropriate for their needs.the process that are appropriate for their needs.
RUP is a specific implementation of the UnifiedRUP is a specific implementation of the Unified
Process.Process.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1616
17. RUP building blocksRUP building blocks
Roles (who)Roles (who) – A Role defines a set of related– A Role defines a set of related
skills, competencies and responsibilities.skills, competencies and responsibilities.
Work Products (what)Work Products (what) – A Work Product– A Work Product
represents something resulting from a task,represents something resulting from a task,
including all the documents and modelsincluding all the documents and models
produced while working through the process.produced while working through the process.
Tasks (how)Tasks (how) – A Task describes a unit of– A Task describes a unit of
work assigned to a Role that provides awork assigned to a Role that provides a
meaningful result.meaningful result.
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1717
18. Six Best Practices in RUPSix Best Practices in RUP
Develop iterativelyDevelop iteratively
Manage requirementsManage requirements
Use componentsUse components
Model visually (use UML)Model visually (use UML)
Verify quality (testing as a major part)Verify quality (testing as a major part)
Risk Assessment should be taken care ofRisk Assessment should be taken care of
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1818
21. Manifesto for Agile SoftwareManifesto for Agile Software
DevelopmentDevelopment
Manifesto for Agile Software DevelopmentManifesto for Agile Software Development
We are uncovering better ways of developingWe are uncovering better ways of developing
software by doing it and helping others do it.software by doing it and helping others do it.
Through this work we have come to value:Through this work we have come to value:
--Individuals and interactions over processes--Individuals and interactions over processes
and toolsand tools
--Working software over comprehensive--Working software over comprehensive
documentationdocumentation
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 2121
22. Manifesto for Agile SoftwareManifesto for Agile Software
Development…Development…
--Customer collaboration over contract--Customer collaboration over contract
negotiationnegotiation
--Responding to change over following a plan--Responding to change over following a plan
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 2222