SlideShare a Scribd company logo
INTRODUCTION TO
1   OBJECT-ORIENTATION
    What is it and why do we need it?
Paradigms
2

       Object-orientation is both a programming and
        analysis/design paradigm.
           A paradigm is a set of theories, standards and methods that
            together represent a way of organizing knowledge; that is, a way
            of viewing the world [Kuhn 70]
       Examples of other programming paradigms:
           Procedural (Pascal, C)
           Logic (Prolog)
           Functional (Lisp)
           Object-oriented (C++, Smalltalk, Java, C#, VB.NET)
       Example of other analysis/design paradigm
           Structural (process modeling, data flow diagrams, logic modeling)
Object-Oriented Paradigm
3

        A development strategy based on idea that computer
         systems should be built from a collection of reusable
         components called objects.
        Unlike the structural paradigm, objects contain both
         data and functionality/behavior. That is, objects know
         things (data) and can do things (behavior).
                                                                              object
          object

                                                                                       data
                   data

                                                                                 behavior
            behavior
                                               object                            behavior
            behavior

                                                  data                           behavior


                                                  behavior


        Source: Scott Ambler, The Object Primer (Cambridge University Press, 2001), p.2
Object vs Functional-Oriented
4



                               Library Information System




                                                       Structured Approach
                                                       Decompose by functions or processes
                                                                         System
Object Approach
Decompose by objects or concepts

                                                Record Loans         Add Resources    Report Fines
     Catalog       Librarian


      Book          Library




       Source: Craig Larman, Applying UML and Patterns (Prentice Hall, 1998), p. 14
Why was a new paradigm needed?
5


        According to one survey,
           30%   to 40% of all software projects are cancelled
           the average software project costs more than double
            the original cost estimate
           only 15% to 20% of all software projects are
            completed on-time and on-budget.
        According to another survey (1998)
          3    out of 4 software projects have exceeded deadlines
              and budgets, not worked, or been unmaintainable.

        Source: Scott Ambler, The Object Primer (Cambridge University Press, 2001), p.xvii

        Source: Leszek Maciaszek, Requirements Analysis and System Design (Addison Wesley, 2001), p. 3
6


Software Success?

                                    Used as delivered
                       Used after
                                          2%
                        changes
                          3%



    Used but
   extensively
reworked or later                                         Delivered but
                                                              never
   abandoned
      19%                                               successfully used
                                                              47%




    Paid for but not
       delivered
          29%




Source: US Government Accounting
Office. Report FGMSD-80-4.
From
Craig Larman, Software Economics
presentation
Why things go wrong?
7


        Quality problems
           The       wrong problem is addressed
                 Failure to align the project with business strategy
           Wider           influences are neglected
                 Project team or business managers don’t take account of the
                  system environment
           Incorrect           analysis of requirements
                 Poor skills or not enough time allowed
           Project         undertaken for wrong reason
                 Technology pull or political push
        Source: Bennett, McRobb, and Farmer, Object-Oriented Systems Analysis and Design (McGraw Hill, 2002), p. 34-36
Why things go wrong?
8


        Productivity problems
           Users change their minds (requirements drift)
           External events
                 E.g. introduction of the Euro
           Implementation                   not feasible
                 May not be known at start of the project
           Poor        project management
                 Inexperienced management or political difficulties


        Source: Bennett, McRobb, and Farmer, Object-Oriented Systems Analysis and Design (McGraw Hill, 2002), p. 36-38
Complexity
9


        Ultimately, in sum, software projects fail due to the
         inherent complexity of building software.
           Physician,            civil engineer and computer scientist joke.




        Source: Grady Booth, Object-Oriented Analysis and Design (Addison Wesley, 1994), p. 3-8
        Source: Xiaoping Jia, Object-Oriented Software Development using Java (Addison Wesley, 2003), p. 3
Complexity
10

         That is, large software projects are inherently complex due to:
              Complexity of problem domain
                  Often contradictory requirements (usability vs performance, cost vs reliability)
                   as well as requirements that change over time.
              Difficulty of managing the developmental process
              Longevity and evolution of software systems
              High user expectations
              The flexibility possible through software
              The problems of characterizing behavior in discrete systems.
                  That is, making changes in one thing will often effect other things, and due to
                   the sheer number of “things” in a software system. Exhaustive testing is
                   impossible.
         Object-oriented techniques seem to be better at managing this
          complexity than does structured approaches.

         Source: Grady Booth, Object-Oriented Analysis and Design (Addison Wesley, 1994), p. 3-8
         Source: Xiaoping Jia, Object-Oriented Software Development using Java (Addison Wesley, 2003), p. 3
11


     Cost of Complexity
                                                           System development plans must be based
                                                           on the complete cost of a system, not
                          Other                            solely on development costs.

            Code
                                                Revise &
                                                Maintain
    Test
                                                           But why is this so large?




Design



    Doc




           Source: Source: DP Budget, Vol. 7,
           No. 12, Dec. 1988
           From
           Craig Larman, Software Economics
           presentation
Why is Maintenance so Expensive?
12

        AT&T study indicates that business rules (i.e., user
         requirements) change at the rate of 8% per month !
            Another study found that 40% of requirements arrived after
             development was well under way [Casper Jones]
        Thus the key software development goal should be to
         reduce the time and cost of revising, adapting and
         maintaining software.
        Object technology is especially good at
          Reducing the time to adapt an existing system (quicker
           reaction to changes in the business environment).
          Reducing the effort, complexity, and cost of change.

         From
         Craig Larman, Software Economics presentation
Benefits of Object Orientation (OO)
     13

                                                        Some potential benefits are:
                                                             Reusability
                                                                 Once an object is defined, implemented, and tested, it can be reused in other
                                                                  systems.
                                                             Reliability
                                                                 Object-oriented code lends itself to verfication via unit testing.
                                                             Robustness
                                                                 Most object-oriented languages support exception and error handling.
                                                             Extensibility
                                                                 Objects can inherit from other objects, thus lessening the need to constantly
                                                                  “reinvent the wheel.”
  Manageability                                              Easier to manage
                                                                 Each object is relatively small, self-contained, and manageable, thus reducing
                                         Extensibility
                            Robustness
Reusability
              Reliability




                                                                  complexity and leading to higher quality systems that are easier to maintain.


                                                         Source: Satzinger and Orvik, The Object-Oriented Approach (Course Technology, 2001), p. 9
                                                         Source: Scott Ambler, The Object Primer (Cambridge University Press, 2001), p. 10-20
                                                         Source: Meiler Page-Jones, Fundamentals of Object-Oriented Design in UML(Addison-Wesley, 2000), p.64-72
History of the Object Approach
14

        Smalltalk, developed by Xerox PARC in the late seventies,
         was the first commercial object-oriented language.
        In the late eighties, several existing programming languages
         (C++, Pascal) were extended to include object-orientation.
        In the mid-nineties other object-oriented languages were
         developed.
        Java, developed by Sun Microsystems, became popular
         because of its object-orientation (as well as its ability to run
         on any operating system).
        Microsoft's new .NET Framework now has fully object-
         oriented languages (C#, C++.NET, and VB.NET).

         Source: Satzinger and Orvik, The Object-Oriented Approach (Course Technology, 2001), p. 8
More History of the Object Approach
15

         As languages developed, object-orientation evolved in the 1990s
          from a programming methodology to a software development
          methodology that addresses the analysis, design, implementation,
          testing, and maintenance of software systems.
         Modeling techniques and notations have been developed and
          unified in the form of the Unified Modeling Language (UML).

                                                                           Object-Oriented
                                              evolves into              Software Development
                                                                             Methodology
          Object-Oriented
     Programming Methodology
                                                                                       developed
                                                                                       as part of



                                                                    Unified Modeling Language



         Source: Xiaoping Jia, Object-Oriented Software Development using Java (Addison Wesley, 2003), p. 11

More Related Content

What's hot

IntrIntroduction
IntrIntroductionIntrIntroduction
IntrIntroduction
Preeti Mishra
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
RohitGoyal183
 
System engineering
System engineeringSystem engineering
System engineering
Lisa Elisa
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
devika g
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
Siddharth Ayer
 
Object oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptObject oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle ppt
Kunal Kishor Nirala
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
Ashesh R
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
Lilia Sfaxi
 
UML
UMLUML
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
mewaseem
 
+Software development methodologies
+Software development methodologies+Software development methodologies
+Software development methodologies
walid sassi
 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
Nwabueze Obioma
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
Priyanka Shetty
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
Dr Reeja S R
 
UML Diagram @ Software engineering discussion
UML Diagram @ Software engineering discussionUML Diagram @ Software engineering discussion
UML Diagram @ Software engineering discussion
CherryBerry2
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
Kumar
 
Software quality
Software qualitySoftware quality
Software quality
Sara Mehmood
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
University of Haripur
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
Manish Kumar
 
Component level design
Component   level designComponent   level design
Component level design
Midhula Chandren
 

What's hot (20)

IntrIntroduction
IntrIntroductionIntrIntroduction
IntrIntroduction
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
System engineering
System engineeringSystem engineering
System engineering
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Object oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptObject oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle ppt
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
UML
UMLUML
UML
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
+Software development methodologies
+Software development methodologies+Software development methodologies
+Software development methodologies
 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
UML Diagram @ Software engineering discussion
UML Diagram @ Software engineering discussionUML Diagram @ Software engineering discussion
UML Diagram @ Software engineering discussion
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
Software quality
Software qualitySoftware quality
Software quality
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Component level design
Component   level designComponent   level design
Component level design
 

Viewers also liked

Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
naina-rani
 
OO Development 4 - Object Concepts
OO Development 4 - Object ConceptsOO Development 4 - Object Concepts
OO Development 4 - Object Concepts
Randy Connolly
 
Introduction to Object Oriented Concepts
Introduction to Object Oriented Concepts Introduction to Object Oriented Concepts
Introduction to Object Oriented Concepts
Mamoun Nawahdah
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
Sharath g
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development Methodologies
Randy Connolly
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...
Ashok Mohanty
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and Design
Motaz Saad
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling Techniques
Shilpa Wadhwani
 
Introduction to Object Oriented Concepts
Introduction to Object Oriented ConceptsIntroduction to Object Oriented Concepts
Introduction to Object Oriented Concepts
SetFocus
 
OOD - Object orientated design
OOD - Object orientated designOOD - Object orientated design
OOD - Object orientated design
Ruberto Paulo
 
Mutation Testing and MuJava
Mutation Testing and MuJavaMutation Testing and MuJava
Mutation Testing and MuJava
Krunal Parmar
 
itft-Fundamentals of object–oriented programming in java
itft-Fundamentals of object–oriented programming in javaitft-Fundamentals of object–oriented programming in java
itft-Fundamentals of object–oriented programming in java
Atul Sehdev
 
Ppt19
Ppt19Ppt19
Ppt19
raj732723
 
Object Oriented Paradigm
Object Oriented ParadigmObject Oriented Paradigm
Object Oriented Paradigm
Hüseyin Ergin
 
OOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOPOOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOP
Mudasir Qazi
 
Scenario Methodoology
Scenario MethodoologyScenario Methodoology
Scenario Methodoology
Prof. David E. Alexander (UCL)
 
Mobilizers Training
Mobilizers TrainingMobilizers Training
Mobilizers Training
Chandan Rout
 
Introduction to software development methodologies- Agile vs Waterfall
Introduction to software development methodologies- Agile vs WaterfallIntroduction to software development methodologies- Agile vs Waterfall
Introduction to software development methodologies- Agile vs Waterfall
Prateek Shrivastava
 
Garcia & Lepage 2013 Methods for Scenario Development
Garcia & Lepage 2013 Methods for Scenario DevelopmentGarcia & Lepage 2013 Methods for Scenario Development
Garcia & Lepage 2013 Methods for Scenario Development
Claude Garcia
 
The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11
The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11
The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11
Lohfeld Consulting Group
 

Viewers also liked (20)

Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
OO Development 4 - Object Concepts
OO Development 4 - Object ConceptsOO Development 4 - Object Concepts
OO Development 4 - Object Concepts
 
Introduction to Object Oriented Concepts
Introduction to Object Oriented Concepts Introduction to Object Oriented Concepts
Introduction to Object Oriented Concepts
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development Methodologies
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and Design
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling Techniques
 
Introduction to Object Oriented Concepts
Introduction to Object Oriented ConceptsIntroduction to Object Oriented Concepts
Introduction to Object Oriented Concepts
 
OOD - Object orientated design
OOD - Object orientated designOOD - Object orientated design
OOD - Object orientated design
 
Mutation Testing and MuJava
Mutation Testing and MuJavaMutation Testing and MuJava
Mutation Testing and MuJava
 
itft-Fundamentals of object–oriented programming in java
itft-Fundamentals of object–oriented programming in javaitft-Fundamentals of object–oriented programming in java
itft-Fundamentals of object–oriented programming in java
 
Ppt19
Ppt19Ppt19
Ppt19
 
Object Oriented Paradigm
Object Oriented ParadigmObject Oriented Paradigm
Object Oriented Paradigm
 
OOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOPOOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOP
 
Scenario Methodoology
Scenario MethodoologyScenario Methodoology
Scenario Methodoology
 
Mobilizers Training
Mobilizers TrainingMobilizers Training
Mobilizers Training
 
Introduction to software development methodologies- Agile vs Waterfall
Introduction to software development methodologies- Agile vs WaterfallIntroduction to software development methodologies- Agile vs Waterfall
Introduction to software development methodologies- Agile vs Waterfall
 
Garcia & Lepage 2013 Methods for Scenario Development
Garcia & Lepage 2013 Methods for Scenario DevelopmentGarcia & Lepage 2013 Methods for Scenario Development
Garcia & Lepage 2013 Methods for Scenario Development
 
The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11
The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11
The Art of the Wargame-Black Hat Reviews-APMP 2011-Pat Brosey 6-1-11
 

Similar to OO Development 1 - Introduction to Object-Oriented Development

OOP ppt.pdf
OOP ppt.pdfOOP ppt.pdf
OOP ppt.pdf
ArpitaJana28
 
Bt0081 software engineering
Bt0081 software engineeringBt0081 software engineering
Bt0081 software engineering
Techglyphs
 
IRJET- Software Architecture and Software Design
IRJET- Software Architecture and Software DesignIRJET- Software Architecture and Software Design
IRJET- Software Architecture and Software Design
IRJET Journal
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
ArifaMehreen1
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV
pkaviya
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
RedHeart11
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
IJORCS
 
06 styles and_greenfield_design
06 styles and_greenfield_design06 styles and_greenfield_design
06 styles and_greenfield_design
Majong DevJfu
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IJCSEA Journal
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IJCSEA Journal
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
acijjournal
 
20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx
JayaramB11
 
Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?
CAST
 
H1803044651
H1803044651H1803044651
H1803044651
IOSR Journals
 
Design Principles of Advanced Task Elicitation Systems
Design Principles of Advanced Task Elicitation SystemsDesign Principles of Advanced Task Elicitation Systems
Design Principles of Advanced Task Elicitation Systems
Prof. Dr. Alexander Maedche
 
Clone of an organization
Clone of an organizationClone of an organization
Clone of an organization
IRJET Journal
 
1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx
KALPANAC20
 
Software requirement analysis enhancements byprioritizing re
Software requirement analysis enhancements byprioritizing reSoftware requirement analysis enhancements byprioritizing re
Software requirement analysis enhancements byprioritizing re
AlleneMcclendon878
 
Software component reuse repository
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
Sandeep Singh
 

Similar to OO Development 1 - Introduction to Object-Oriented Development (20)

OOP ppt.pdf
OOP ppt.pdfOOP ppt.pdf
OOP ppt.pdf
 
Bt0081 software engineering
Bt0081 software engineeringBt0081 software engineering
Bt0081 software engineering
 
IRJET- Software Architecture and Software Design
IRJET- Software Architecture and Software DesignIRJET- Software Architecture and Software Design
IRJET- Software Architecture and Software Design
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
 
06 styles and_greenfield_design
06 styles and_greenfield_design06 styles and_greenfield_design
06 styles and_greenfield_design
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 
20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx
 
Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?
 
H1803044651
H1803044651H1803044651
H1803044651
 
Design Principles of Advanced Task Elicitation Systems
Design Principles of Advanced Task Elicitation SystemsDesign Principles of Advanced Task Elicitation Systems
Design Principles of Advanced Task Elicitation Systems
 
Clone of an organization
Clone of an organizationClone of an organization
Clone of an organization
 
1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx1-PE-I-OOAD.pptx
1-PE-I-OOAD.pptx
 
Software requirement analysis enhancements byprioritizing re
Software requirement analysis enhancements byprioritizing reSoftware requirement analysis enhancements byprioritizing re
Software requirement analysis enhancements byprioritizing re
 
Software component reuse repository
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
 

More from Randy Connolly

Celebrating the Release of Computing Careers and Disciplines
Celebrating the Release of Computing Careers and DisciplinesCelebrating the Release of Computing Careers and Disciplines
Celebrating the Release of Computing Careers and Disciplines
Randy Connolly
 
Public Computing Intellectuals in the Age of AI Crisis
Public Computing Intellectuals in the Age of AI CrisisPublic Computing Intellectuals in the Age of AI Crisis
Public Computing Intellectuals in the Age of AI Crisis
Randy Connolly
 
Why Computing Belongs Within the Social Sciences
Why Computing Belongs Within the Social SciencesWhy Computing Belongs Within the Social Sciences
Why Computing Belongs Within the Social Sciences
Randy Connolly
 
Ten-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS DegreeTen-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS Degree
Randy Connolly
 
Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)
Randy Connolly
 
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Randy Connolly
 
Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)
Randy Connolly
 
Modern Web Development (2018)
Modern Web Development (2018)Modern Web Development (2018)
Modern Web Development (2018)
Randy Connolly
 
Helping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing DisciplinesHelping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing Disciplines
Randy Connolly
 
Constructing a Web Development Textbook
Constructing a Web Development TextbookConstructing a Web Development Textbook
Constructing a Web Development Textbook
Randy Connolly
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
Randy Connolly
 
Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"
Randy Connolly
 
17 Ways to Fail Your Courses
17 Ways to Fail Your Courses17 Ways to Fail Your Courses
17 Ways to Fail Your Courses
Randy Connolly
 
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Randy Connolly
 
Constructing and revising a web development textbook
Constructing and revising a web development textbookConstructing and revising a web development textbook
Constructing and revising a web development textbook
Randy Connolly
 
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing DisciplinesComputing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
Randy Connolly
 
Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...
Randy Connolly
 
Thinking About Technology
Thinking About TechnologyThinking About Technology
Thinking About Technology
Randy Connolly
 
A longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission dataA longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission data
Randy Connolly
 
Web Security
Web SecurityWeb Security
Web Security
Randy Connolly
 

More from Randy Connolly (20)

Celebrating the Release of Computing Careers and Disciplines
Celebrating the Release of Computing Careers and DisciplinesCelebrating the Release of Computing Careers and Disciplines
Celebrating the Release of Computing Careers and Disciplines
 
Public Computing Intellectuals in the Age of AI Crisis
Public Computing Intellectuals in the Age of AI CrisisPublic Computing Intellectuals in the Age of AI Crisis
Public Computing Intellectuals in the Age of AI Crisis
 
Why Computing Belongs Within the Social Sciences
Why Computing Belongs Within the Social SciencesWhy Computing Belongs Within the Social Sciences
Why Computing Belongs Within the Social Sciences
 
Ten-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS DegreeTen-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS Degree
 
Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)
 
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
 
Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)
 
Modern Web Development (2018)
Modern Web Development (2018)Modern Web Development (2018)
Modern Web Development (2018)
 
Helping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing DisciplinesHelping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing Disciplines
 
Constructing a Web Development Textbook
Constructing a Web Development TextbookConstructing a Web Development Textbook
Constructing a Web Development Textbook
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
 
Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"
 
17 Ways to Fail Your Courses
17 Ways to Fail Your Courses17 Ways to Fail Your Courses
17 Ways to Fail Your Courses
 
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
 
Constructing and revising a web development textbook
Constructing and revising a web development textbookConstructing and revising a web development textbook
Constructing and revising a web development textbook
 
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing DisciplinesComputing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
 
Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...
 
Thinking About Technology
Thinking About TechnologyThinking About Technology
Thinking About Technology
 
A longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission dataA longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission data
 
Web Security
Web SecurityWeb Security
Web Security
 

Recently uploaded

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 

Recently uploaded (20)

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 

OO Development 1 - Introduction to Object-Oriented Development

  • 1. INTRODUCTION TO 1 OBJECT-ORIENTATION What is it and why do we need it?
  • 2. Paradigms 2  Object-orientation is both a programming and analysis/design paradigm.  A paradigm is a set of theories, standards and methods that together represent a way of organizing knowledge; that is, a way of viewing the world [Kuhn 70]  Examples of other programming paradigms:  Procedural (Pascal, C)  Logic (Prolog)  Functional (Lisp)  Object-oriented (C++, Smalltalk, Java, C#, VB.NET)  Example of other analysis/design paradigm  Structural (process modeling, data flow diagrams, logic modeling)
  • 3. Object-Oriented Paradigm 3  A development strategy based on idea that computer systems should be built from a collection of reusable components called objects.  Unlike the structural paradigm, objects contain both data and functionality/behavior. That is, objects know things (data) and can do things (behavior). object object data data behavior behavior object behavior behavior data behavior behavior Source: Scott Ambler, The Object Primer (Cambridge University Press, 2001), p.2
  • 4. Object vs Functional-Oriented 4 Library Information System Structured Approach Decompose by functions or processes System Object Approach Decompose by objects or concepts Record Loans Add Resources Report Fines Catalog Librarian Book Library Source: Craig Larman, Applying UML and Patterns (Prentice Hall, 1998), p. 14
  • 5. Why was a new paradigm needed? 5  According to one survey,  30% to 40% of all software projects are cancelled  the average software project costs more than double the original cost estimate  only 15% to 20% of all software projects are completed on-time and on-budget.  According to another survey (1998) 3 out of 4 software projects have exceeded deadlines and budgets, not worked, or been unmaintainable. Source: Scott Ambler, The Object Primer (Cambridge University Press, 2001), p.xvii Source: Leszek Maciaszek, Requirements Analysis and System Design (Addison Wesley, 2001), p. 3
  • 6. 6 Software Success? Used as delivered Used after 2% changes 3% Used but extensively reworked or later Delivered but never abandoned 19% successfully used 47% Paid for but not delivered 29% Source: US Government Accounting Office. Report FGMSD-80-4. From Craig Larman, Software Economics presentation
  • 7. Why things go wrong? 7  Quality problems  The wrong problem is addressed  Failure to align the project with business strategy  Wider influences are neglected  Project team or business managers don’t take account of the system environment  Incorrect analysis of requirements  Poor skills or not enough time allowed  Project undertaken for wrong reason  Technology pull or political push Source: Bennett, McRobb, and Farmer, Object-Oriented Systems Analysis and Design (McGraw Hill, 2002), p. 34-36
  • 8. Why things go wrong? 8  Productivity problems  Users change their minds (requirements drift)  External events  E.g. introduction of the Euro  Implementation not feasible  May not be known at start of the project  Poor project management  Inexperienced management or political difficulties Source: Bennett, McRobb, and Farmer, Object-Oriented Systems Analysis and Design (McGraw Hill, 2002), p. 36-38
  • 9. Complexity 9  Ultimately, in sum, software projects fail due to the inherent complexity of building software.  Physician, civil engineer and computer scientist joke. Source: Grady Booth, Object-Oriented Analysis and Design (Addison Wesley, 1994), p. 3-8 Source: Xiaoping Jia, Object-Oriented Software Development using Java (Addison Wesley, 2003), p. 3
  • 10. Complexity 10  That is, large software projects are inherently complex due to:  Complexity of problem domain  Often contradictory requirements (usability vs performance, cost vs reliability) as well as requirements that change over time.  Difficulty of managing the developmental process  Longevity and evolution of software systems  High user expectations  The flexibility possible through software  The problems of characterizing behavior in discrete systems.  That is, making changes in one thing will often effect other things, and due to the sheer number of “things” in a software system. Exhaustive testing is impossible.  Object-oriented techniques seem to be better at managing this complexity than does structured approaches. Source: Grady Booth, Object-Oriented Analysis and Design (Addison Wesley, 1994), p. 3-8 Source: Xiaoping Jia, Object-Oriented Software Development using Java (Addison Wesley, 2003), p. 3
  • 11. 11 Cost of Complexity System development plans must be based on the complete cost of a system, not Other solely on development costs. Code Revise & Maintain Test But why is this so large? Design Doc Source: Source: DP Budget, Vol. 7, No. 12, Dec. 1988 From Craig Larman, Software Economics presentation
  • 12. Why is Maintenance so Expensive? 12  AT&T study indicates that business rules (i.e., user requirements) change at the rate of 8% per month !  Another study found that 40% of requirements arrived after development was well under way [Casper Jones]  Thus the key software development goal should be to reduce the time and cost of revising, adapting and maintaining software.  Object technology is especially good at  Reducing the time to adapt an existing system (quicker reaction to changes in the business environment).  Reducing the effort, complexity, and cost of change. From Craig Larman, Software Economics presentation
  • 13. Benefits of Object Orientation (OO) 13  Some potential benefits are:  Reusability  Once an object is defined, implemented, and tested, it can be reused in other systems.  Reliability  Object-oriented code lends itself to verfication via unit testing.  Robustness  Most object-oriented languages support exception and error handling.  Extensibility  Objects can inherit from other objects, thus lessening the need to constantly “reinvent the wheel.” Manageability  Easier to manage  Each object is relatively small, self-contained, and manageable, thus reducing Extensibility Robustness Reusability Reliability complexity and leading to higher quality systems that are easier to maintain. Source: Satzinger and Orvik, The Object-Oriented Approach (Course Technology, 2001), p. 9 Source: Scott Ambler, The Object Primer (Cambridge University Press, 2001), p. 10-20 Source: Meiler Page-Jones, Fundamentals of Object-Oriented Design in UML(Addison-Wesley, 2000), p.64-72
  • 14. History of the Object Approach 14  Smalltalk, developed by Xerox PARC in the late seventies, was the first commercial object-oriented language.  In the late eighties, several existing programming languages (C++, Pascal) were extended to include object-orientation.  In the mid-nineties other object-oriented languages were developed.  Java, developed by Sun Microsystems, became popular because of its object-orientation (as well as its ability to run on any operating system).  Microsoft's new .NET Framework now has fully object- oriented languages (C#, C++.NET, and VB.NET). Source: Satzinger and Orvik, The Object-Oriented Approach (Course Technology, 2001), p. 8
  • 15. More History of the Object Approach 15  As languages developed, object-orientation evolved in the 1990s from a programming methodology to a software development methodology that addresses the analysis, design, implementation, testing, and maintenance of software systems.  Modeling techniques and notations have been developed and unified in the form of the Unified Modeling Language (UML). Object-Oriented evolves into Software Development Methodology Object-Oriented Programming Methodology developed as part of Unified Modeling Language Source: Xiaoping Jia, Object-Oriented Software Development using Java (Addison Wesley, 2003), p. 11

Editor's Notes

  1. A physician, a civil engineer, and a computer scientist were arguing about what was the oldest profession in the world. The physician remarked, "Well, in the Bible, it says that God created Eve from a rib taken out of Adam. This clearly required surgery, and so I can rightly claim that mine is the oldest profession in the world." The civil engineer interrupted and said, "But even earlier in the book of Genesis, it states that God created the order of the heavens and the earth from out of the chaos. This was the first and certainly the most spectacular application of civil engineering. Therefore, fair doctor, you are wrong: mine is the oldest profession in the world." The computer scientist leaned back in her chair, smiled, and then said confidently, "Ah, but who do you think created the chaos ?"