SlideShare a Scribd company logo
Object-Oriented Design [email_address]
Challenges of Software Development Complexity of software systems Longevity and evolution of software systems High user expectations
Outline Challenges of software development Software engineering Activities and processes Waterfall model Software qualities Object-orientation Iterative development
Software Engineering Engineering discipline concerned with all aspects of developing and delivering high-quality and useful software in a cost-effective manner Defines  activities  and  products. Defines the software  development processes , which define the order for carrying out the development activities and the criteria for the deliverables of the activities.
Software Development Activities Requirements analysis Design Implementation and unit testing Integration and system testing Maintenance
Requirements Analysis Goals To define the problem to be solved, i.e., to establish the functions, services, and constraints of the software to be developed. Deliverables Requirements specifications itemizing the functional and nonfunctional requirements, called  system  [ requirements ]  specifications .
Design Goals To construct a solution to the problem by establishing an overall  architecture  of the software, by partitioning the software into components, and by identifying the relationships and dependencies among them. Deliverables System design  document and  detailed design  document, along with various diagrams.
Implementation and Unit Testing Goals To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated. Deliverables Source code and unit testing documentation
Integration and System Testing Goals To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification. Deliverables System testing documentation
Maintenance Goals To improve the system after it is already in use, e.g., correcting bugs, improving performance, enhancing functions or services, and adapting to new environments. Deliverables New version and documentation of changes Longest and most costly activity in the software life cycle!
Software Development Processes Waterfall Model
Waterfall (Life Cycle) Model Characteristics Sequential Phase based Document driven (often called  milestone ) Benefits Discipline and formality
Waterfall Model (Cont.) Critical evaluation Linear, rigid, and monolithic No accommodations for changes => Documents are frozen => Ideal model Q: How to accommodate changes?   Incremental (or evolutionary) approach
Software System Qualities Usefulness Timeliness Reliability Correctness, robustness, availability, … Maintainability Maintainable, i.e., possible to make corrections, adaptations, and extensions without undue costs. Reusability User friendliness Efficiency CPU time, memory, and disk space, etc. …
Qualities (Cont.) Are all of these qualities attainable at the same time? Are they of equal importance? If not, which is more important?
Maintainability Revisited Maintenance costs far exceed development costs. Reliability is attained through repeated corrections. => must be maintainable!
What Contributes to Maintainability? Flexibility Simplicity Readability (understandability)
Flexibility Changeable The various aspects of software systems should be easily changeable. Minimal impact  Impact of change should be confined to a small region. The correctness of the change should be reasoned by examining only the small affected region rather than the entire software.
Simplicity Impossible to avoid making mistakes When things are simple Less error-prone Easier to show correctness Errors become more obvious and correcting errors is easier.  Divide-and-conquer approach
Outline Challenges of software development Software engineering Object-orientation Iterative development
Modeling the Real World A software system provides a solution to a problem in the real world.  It consists of two essential components: Model: abstraction of a part of the real world Algorithm: captures the computations involved in manipulating or processing the model. Algorithm Model Software system Real world Abstraction Interpretation
How to Model Real World? Programming languages Tools to describe computer models  Programming models Computation-oriented model (50s ~ 60s) Data-oriented model (70 ~ 80s) Object-oriented model (90s ~ ) Balanced view between data and computation
Why O-O Model? Possible to directly represent real world objects in the computer system Thus, solves the so-called  impedance mismatch   problem .   Software system Real world Data-oriented model Software system Real world Object-oriented model
Outline Challenges of software development Software engineering Object-orientation Iterative development
Iterative Development Key characteristics Consists of a number of success iterations Each iteration produces a working program Build system incrementally     Monolithic approach of waterfall model Benefits Facilitates and manage changes  Minimize and prevent changes Examples Rational Unified Process (RUP)  Extreme Programming (XP)
Object-Oriented Development Approach Focuses on improving the  maintainability  and  reusability  of software systems through a set of techniques, notations, tools, and criteria. Activities Conceptualization Object-oriented analysis and modeling Object-oriented design Implementation Maintenance
Detailed Activities Conceptualization To establish the vision and core requirements of the software system to be developed. Object-oriented analysis and modeling To build models of the system’s desired behavior, using notations such as the  Unified Modeling Language  ( UML ). To capture the essential relevant aspects of the real world and to define the services to be provided and/or the problems to be solved. To simplify reality to better understand the system to be developed.
Detailed Activities Object-oriented design To create an architecture for implementation. Represented in terms of objects and classes and the relationships among them. Implementation: To implement the design by using an object-oriented programming language (e.g., Java) Maintenance: To manage postdelivery evolution effectively.
O-O Processes (e.g., RUP)

More Related Content

What's hot (20)

PPT
Introduction to Software Engineering 1
IIUI
 
PPT
Slides chapter 3
Priyanka Shetty
 
PPT
Slides chapter 2
Priyanka Shetty
 
PPT
Slides chapters 6-7
Priyanka Shetty
 
PPT
Ch10
guest50f28c
 
PPT
Ch03 prescriptive process models
Dr. C.V. Suresh Babu
 
PPTX
Software Engineering - Lecture 01
Asifuzzaman Hridoy
 
PPT
Ch4
Saad Gabr
 
PPT
Slides chapter 15
Priyanka Shetty
 
PPTX
Software Process Model
Dyanara Pritz Menia
 
DOCX
Quality attribute scenarios
ahsan riaz
 
PPT
Slides chapter 17
Priyanka Shetty
 
PPT
Pressman ch-3-prescriptive-process-models
zeal123123
 
PDF
System requirements engineering
Animesh Chaturvedi
 
PPTX
software Processes
Seif Shaame
 
PPT
SE chapter 4
Hardik Patel
 
PPTX
Notes on software engineering
Ertan Deniz
 
PPTX
Software engineering
sakthibalabalamuruga
 
PPT
Slides chapters 26-27
Priyanka Shetty
 
PPTX
Quality Attributes In Software Architecture & Design Patterns
Gatte Ravindranath
 
Introduction to Software Engineering 1
IIUI
 
Slides chapter 3
Priyanka Shetty
 
Slides chapter 2
Priyanka Shetty
 
Slides chapters 6-7
Priyanka Shetty
 
Ch03 prescriptive process models
Dr. C.V. Suresh Babu
 
Software Engineering - Lecture 01
Asifuzzaman Hridoy
 
Slides chapter 15
Priyanka Shetty
 
Software Process Model
Dyanara Pritz Menia
 
Quality attribute scenarios
ahsan riaz
 
Slides chapter 17
Priyanka Shetty
 
Pressman ch-3-prescriptive-process-models
zeal123123
 
System requirements engineering
Animesh Chaturvedi
 
software Processes
Seif Shaame
 
SE chapter 4
Hardik Patel
 
Notes on software engineering
Ertan Deniz
 
Software engineering
sakthibalabalamuruga
 
Slides chapters 26-27
Priyanka Shetty
 
Quality Attributes In Software Architecture & Design Patterns
Gatte Ravindranath
 

Viewers also liked (20)

PDF
Visibility
Oleg Yaroshevych
 
PDF
Ember Data
Oleg Yaroshevych
 
PDF
event processing system
Jaehong Park
 
PDF
Object Oriented Process basics
Oleg Yaroshevych
 
PPT
Object Oriented Concepts and Principles
deonpmeyer
 
PPT
Oo Design And Patterns
Anil Bapat
 
PDF
Introduction to Object Oriented Design
Oleg Yaroshevych
 
PPT
OO Development 3 - Models And UML
Randy Connolly
 
PPT
OO Development 4 - Object Concepts
Randy Connolly
 
PPT
OO Development 2 - Software Development Methodologies
Randy Connolly
 
PPT
OO Development 1 - Introduction to Object-Oriented Development
Randy Connolly
 
PPT
OO Development 5 - Analysis
Randy Connolly
 
PPS
Vb.net session 03
Niit Care
 
PPT
Visual Studio.NET
salonityagi
 
PPT
Object Oriented Analysis and Design with UML2 part1
Haitham Raik
 
PPT
Static and Dynamic polymorphism in C++
Anil Bapat
 
PPT
Object-Oriented Programming Concepts
Kwangshin Oh
 
PPT
Object-oriented concepts
BG Java EE Course
 
PPT
Basic concepts of object oriented programming
Sachin Sharma
 
PPT
Object oriented programming (oop) cs304 power point slides lecture 01
Adil Kakakhel
 
Visibility
Oleg Yaroshevych
 
Ember Data
Oleg Yaroshevych
 
event processing system
Jaehong Park
 
Object Oriented Process basics
Oleg Yaroshevych
 
Object Oriented Concepts and Principles
deonpmeyer
 
Oo Design And Patterns
Anil Bapat
 
Introduction to Object Oriented Design
Oleg Yaroshevych
 
OO Development 3 - Models And UML
Randy Connolly
 
OO Development 4 - Object Concepts
Randy Connolly
 
OO Development 2 - Software Development Methodologies
Randy Connolly
 
OO Development 1 - Introduction to Object-Oriented Development
Randy Connolly
 
OO Development 5 - Analysis
Randy Connolly
 
Vb.net session 03
Niit Care
 
Visual Studio.NET
salonityagi
 
Object Oriented Analysis and Design with UML2 part1
Haitham Raik
 
Static and Dynamic polymorphism in C++
Anil Bapat
 
Object-Oriented Programming Concepts
Kwangshin Oh
 
Object-oriented concepts
BG Java EE Course
 
Basic concepts of object oriented programming
Sachin Sharma
 
Object oriented programming (oop) cs304 power point slides lecture 01
Adil Kakakhel
 
Ad

Similar to 15 object orienteddesign (20)

PPTX
SWBOKKA
Koomma
 
PPTX
Conventional and Object Oriented Software Engineering
ssrkai2020
 
PDF
Introduction to on Object Oriented Technologies and the UML Method
jaden65832
 
PPTX
Chapter 1-Object Oriented Software Engineering.pptx
aroraritik30
 
PPT
Introduction Software and Software Engineering
infinitetechnology20
 
PDF
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
PPT
Software engineering introduction
Vishal Singh
 
PPTX
Introduction to Software Engineering_Need_SDLC_types of SDLC
DeepakUlape2
 
PPTX
Sofware Engineering LECTURE COMPUTER SCIENCE.pptx
rafaelvillena39
 
PDF
1_Introduction & Process & Development Life Cycle.pdf
CICADA11
 
PDF
Software Engineering : Process Models
Ajit Nayak
 
PPT
Introduction,Software Process Models, Project Management
swatisinghal
 
PPTX
S.E Lec #1.pptx
RaajpootQueen
 
PPT
Review se
Mustafa Atilla
 
PPSX
Scope of software engineering
Muhammad Naveed Zafar
 
PDF
Object Orientation Fundamentals
Pramod Parajuli
 
PDF
Bt0081 software engineering
Techglyphs
 
PDF
Software lifecycle model report
Ashutosh Singh
 
PPT
Soft Eng - Software Process
Jomel Penalba
 
SWBOKKA
Koomma
 
Conventional and Object Oriented Software Engineering
ssrkai2020
 
Introduction to on Object Oriented Technologies and the UML Method
jaden65832
 
Chapter 1-Object Oriented Software Engineering.pptx
aroraritik30
 
Introduction Software and Software Engineering
infinitetechnology20
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
Software engineering introduction
Vishal Singh
 
Introduction to Software Engineering_Need_SDLC_types of SDLC
DeepakUlape2
 
Sofware Engineering LECTURE COMPUTER SCIENCE.pptx
rafaelvillena39
 
1_Introduction & Process & Development Life Cycle.pdf
CICADA11
 
Software Engineering : Process Models
Ajit Nayak
 
Introduction,Software Process Models, Project Management
swatisinghal
 
S.E Lec #1.pptx
RaajpootQueen
 
Review se
Mustafa Atilla
 
Scope of software engineering
Muhammad Naveed Zafar
 
Object Orientation Fundamentals
Pramod Parajuli
 
Bt0081 software engineering
Techglyphs
 
Software lifecycle model report
Ashutosh Singh
 
Soft Eng - Software Process
Jomel Penalba
 
Ad

More from randhirlpu (13)

PPT
system software
randhirlpu
 
PPT
16 user interfacedesign
randhirlpu
 
PPT
14 functional design
randhirlpu
 
PPT
13 configuration management
randhirlpu
 
PPT
12 couplingand cohesion-student
randhirlpu
 
PPT
9 project planning
randhirlpu
 
PPT
8 project planning
randhirlpu
 
PPT
7(srs template)
randhirlpu
 
PPT
5(re dfd-erd-data dictionay)
randhirlpu
 
PPTX
Cocomo m odel
randhirlpu
 
system software
randhirlpu
 
16 user interfacedesign
randhirlpu
 
14 functional design
randhirlpu
 
13 configuration management
randhirlpu
 
12 couplingand cohesion-student
randhirlpu
 
9 project planning
randhirlpu
 
8 project planning
randhirlpu
 
7(srs template)
randhirlpu
 
5(re dfd-erd-data dictionay)
randhirlpu
 
Cocomo m odel
randhirlpu
 

Recently uploaded (20)

PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 

15 object orienteddesign

  • 2. Challenges of Software Development Complexity of software systems Longevity and evolution of software systems High user expectations
  • 3. Outline Challenges of software development Software engineering Activities and processes Waterfall model Software qualities Object-orientation Iterative development
  • 4. Software Engineering Engineering discipline concerned with all aspects of developing and delivering high-quality and useful software in a cost-effective manner Defines activities and products. Defines the software development processes , which define the order for carrying out the development activities and the criteria for the deliverables of the activities.
  • 5. Software Development Activities Requirements analysis Design Implementation and unit testing Integration and system testing Maintenance
  • 6. Requirements Analysis Goals To define the problem to be solved, i.e., to establish the functions, services, and constraints of the software to be developed. Deliverables Requirements specifications itemizing the functional and nonfunctional requirements, called system [ requirements ] specifications .
  • 7. Design Goals To construct a solution to the problem by establishing an overall architecture of the software, by partitioning the software into components, and by identifying the relationships and dependencies among them. Deliverables System design document and detailed design document, along with various diagrams.
  • 8. Implementation and Unit Testing Goals To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated. Deliverables Source code and unit testing documentation
  • 9. Integration and System Testing Goals To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification. Deliverables System testing documentation
  • 10. Maintenance Goals To improve the system after it is already in use, e.g., correcting bugs, improving performance, enhancing functions or services, and adapting to new environments. Deliverables New version and documentation of changes Longest and most costly activity in the software life cycle!
  • 12. Waterfall (Life Cycle) Model Characteristics Sequential Phase based Document driven (often called milestone ) Benefits Discipline and formality
  • 13. Waterfall Model (Cont.) Critical evaluation Linear, rigid, and monolithic No accommodations for changes => Documents are frozen => Ideal model Q: How to accommodate changes? Incremental (or evolutionary) approach
  • 14. Software System Qualities Usefulness Timeliness Reliability Correctness, robustness, availability, … Maintainability Maintainable, i.e., possible to make corrections, adaptations, and extensions without undue costs. Reusability User friendliness Efficiency CPU time, memory, and disk space, etc. …
  • 15. Qualities (Cont.) Are all of these qualities attainable at the same time? Are they of equal importance? If not, which is more important?
  • 16. Maintainability Revisited Maintenance costs far exceed development costs. Reliability is attained through repeated corrections. => must be maintainable!
  • 17. What Contributes to Maintainability? Flexibility Simplicity Readability (understandability)
  • 18. Flexibility Changeable The various aspects of software systems should be easily changeable. Minimal impact Impact of change should be confined to a small region. The correctness of the change should be reasoned by examining only the small affected region rather than the entire software.
  • 19. Simplicity Impossible to avoid making mistakes When things are simple Less error-prone Easier to show correctness Errors become more obvious and correcting errors is easier. Divide-and-conquer approach
  • 20. Outline Challenges of software development Software engineering Object-orientation Iterative development
  • 21. Modeling the Real World A software system provides a solution to a problem in the real world. It consists of two essential components: Model: abstraction of a part of the real world Algorithm: captures the computations involved in manipulating or processing the model. Algorithm Model Software system Real world Abstraction Interpretation
  • 22. How to Model Real World? Programming languages Tools to describe computer models Programming models Computation-oriented model (50s ~ 60s) Data-oriented model (70 ~ 80s) Object-oriented model (90s ~ ) Balanced view between data and computation
  • 23. Why O-O Model? Possible to directly represent real world objects in the computer system Thus, solves the so-called impedance mismatch problem . Software system Real world Data-oriented model Software system Real world Object-oriented model
  • 24. Outline Challenges of software development Software engineering Object-orientation Iterative development
  • 25. Iterative Development Key characteristics Consists of a number of success iterations Each iteration produces a working program Build system incrementally  Monolithic approach of waterfall model Benefits Facilitates and manage changes  Minimize and prevent changes Examples Rational Unified Process (RUP) Extreme Programming (XP)
  • 26. Object-Oriented Development Approach Focuses on improving the maintainability and reusability of software systems through a set of techniques, notations, tools, and criteria. Activities Conceptualization Object-oriented analysis and modeling Object-oriented design Implementation Maintenance
  • 27. Detailed Activities Conceptualization To establish the vision and core requirements of the software system to be developed. Object-oriented analysis and modeling To build models of the system’s desired behavior, using notations such as the Unified Modeling Language ( UML ). To capture the essential relevant aspects of the real world and to define the services to be provided and/or the problems to be solved. To simplify reality to better understand the system to be developed.
  • 28. Detailed Activities Object-oriented design To create an architecture for implementation. Represented in terms of objects and classes and the relationships among them. Implementation: To implement the design by using an object-oriented programming language (e.g., Java) Maintenance: To manage postdelivery evolution effectively.

Editor's Notes

  • #3: Complexity – Windows NT