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
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
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
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
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
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
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
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
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
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
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
 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
 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
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
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1515
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
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
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
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 1919
01/24/1901/24/19 MODULE-I OOSDMODULE-I OOSD 2020
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
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

Object Oriented System Design

  • 1.
    MODULE:IMODULE:I An Overview ofAnOverview 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 developmentisSoftware 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 developmentactivities 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 processconsists 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 Viewsof 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 ObjectOrientation?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 ObjectOrientation?...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 theUNIFIEDOverview 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 mainadvantage 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 Approachconsists 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
  • 15.
  • 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 blocksRUPbuilding 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 Practicesin 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
  • 19.
  • 20.
  • 21.
    Manifesto for AgileSoftwareManifesto 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 AgileSoftwareManifesto 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