SlideShare a Scribd company logo
1 of 8
Software Basics
Brushup Brownbag
COMPUTER SCIENCE 101 IN A NUTSHELL
Presentation Format
 Intro
 Abstraction – The Concept
 Encapsulation – The Usage
 Reuse – The Benefit
 Summary
Intro
 Short Re-cap of basic Computer Science first principles
 Designed for everyone from management to software masters
 Basic concepts applicable to planning, management and all
programming languages and technologies
Abstraction – The Concept
 Abstraction is a way of handling complexity when working with
computers
 “The essence of abstractions is preserving information that is
relevant in a given context, and forgetting information that is
irrelevant in that context.” – John V. Guttag [1]
 “The purpose of abstraction is not to be vague, but to create a new
semantic level in which one can be absolutely precise.” – Dijkstra [2]
 The effective exploitation of his powers of abstraction must be
regarded as one of the most vital activities of a competent
programmer. – Paraphrasing of Dijkstra [3]
 Example: Programming Languages abstract the physical hardware
Encapsulation – The Usage
 Encapsulation is a way to implement abstractions, it involves a
particular piece of software (library, module, component or class)
having a defined responsibility and keeping the details of managing
that responsibility to itself
 It is "the process of compartmentalizing the elements of an
abstraction that constitute its structure and behavior; encapsulation
serves to separate the contractual interface of an abstraction and
its implementation.” – Grady Brooch [4]
 In Java this is usually achieved by using Interfaces but applies to
other techniques such as a utilities class hiding what 3rd party
libraries and / or custom code it uses to implement its behavior
 Example: A Web Sockets library hides the details of TCP/IP
Reuse – The Concept
 Having proper abstractions in place implemented by encapsulated
software leads to the economic benefit of Reusability
 “Code reuse aims to save time and resources and reduce
redundancy by taking advantage of assets that have already been
created in some form within the software product development
process” –”What Is Software Reuse” [5]
 Reuse is hampered or in extreme cases destroyed by the
accumulation of Technical Debt – poor usage of abstractions,
encapsulation or implementation details
 A well maintained, reusable code base can be worth millions of
dollars over time (like a precious collectable) and a poorly
maintained one can be worth nothing (like tires from 1980)
 Example: Using the AWS libraries developed in Phase 1 again
Summary
 Intro
 Abstraction – The Concept
 Encapsulation – The Usage
 Reuse – The Benefit
 Summary
References
 [1] Guttag, John V. (2013-01-18). Introduction to Computation and
Programming Using Python (Spring 2013 edition ed.). Cambridge,
Massachusetts: The MIT Press. ISBN 9780262519632.
 [2] The Humble Programmer (1972) Turing Award Lecture[1],
Communications of the ACM 15 (10), October 1972: pp. 859–866.
 [3] “Edsger W. Dijkstra”, Wikipedia,
http://en.wikiquote.org/wiki/Edsger_W._Dijkstra#Quotes_about_E.W.
_Dijkstra, Extracted on Jan 7, 2015
 [4] Grady Booch, Object-Oriented Analysis and Design with
Applications, . Addison-Wesley, 2007, ISBN 0-201-89551-X, p. 51-52
 [5] Lombard Hill Group. "What Is Software Reuse?". lombardhill.com.
Lombard Hill Group. Retrieved 22 October 2014.

More Related Content

Similar to Software basics brushup brownbag

International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingDr Sukhpal Singh Gill
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-oplbergmans
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITYA FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITYcscpconf
 
Software Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented ProgrammingSoftware Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented Programmingkim.mens
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
 
Please discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdfPlease discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdfajinthaenterprises
 
Refreshing Domain Driven Design
Refreshing Domain Driven DesignRefreshing Domain Driven Design
Refreshing Domain Driven DesignAndré Borgonovo
 
An Introduction to Cluster Computing
An Introduction to Cluster ComputingAn Introduction to Cluster Computing
An Introduction to Cluster Computingijtsrd
 
A REVIEW ON PARALLEL COMPUTING
A REVIEW ON PARALLEL COMPUTINGA REVIEW ON PARALLEL COMPUTING
A REVIEW ON PARALLEL COMPUTINGAmy Roman
 
Deep Learning libraries and first experiments with Theano
Deep Learning libraries and first experiments with TheanoDeep Learning libraries and first experiments with Theano
Deep Learning libraries and first experiments with TheanoVincenzo Lomonaco
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuseMarco Brambilla
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
ANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik Patel
ANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik PatelANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik Patel
ANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik PatelAgileNetwork
 

Similar to Software basics brushup brownbag (20)

International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud Computing
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-op
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITYA FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
 
Software Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented ProgrammingSoftware Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented Programming
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
 
Please discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdfPlease discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdf
 
Refreshing Domain Driven Design
Refreshing Domain Driven DesignRefreshing Domain Driven Design
Refreshing Domain Driven Design
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
An Introduction to Cluster Computing
An Introduction to Cluster ComputingAn Introduction to Cluster Computing
An Introduction to Cluster Computing
 
Co question 2008
Co question 2008Co question 2008
Co question 2008
 
D033017020
D033017020D033017020
D033017020
 
Mca 504 dotnet_unit3
Mca 504 dotnet_unit3Mca 504 dotnet_unit3
Mca 504 dotnet_unit3
 
A REVIEW ON PARALLEL COMPUTING
A REVIEW ON PARALLEL COMPUTINGA REVIEW ON PARALLEL COMPUTING
A REVIEW ON PARALLEL COMPUTING
 
Deep Learning libraries and first experiments with Theano
Deep Learning libraries and first experiments with TheanoDeep Learning libraries and first experiments with Theano
Deep Learning libraries and first experiments with Theano
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
ANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik Patel
ANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik PatelANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik Patel
ANIn Ahmedabad May 2024 | Reusability Using Agile by Pratik Patel
 
Resisting skew accumulation
Resisting skew accumulationResisting skew accumulation
Resisting skew accumulation
 

Recently uploaded

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 

Recently uploaded (20)

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 

Software basics brushup brownbag

  • 1. Software Basics Brushup Brownbag COMPUTER SCIENCE 101 IN A NUTSHELL
  • 2. Presentation Format  Intro  Abstraction – The Concept  Encapsulation – The Usage  Reuse – The Benefit  Summary
  • 3. Intro  Short Re-cap of basic Computer Science first principles  Designed for everyone from management to software masters  Basic concepts applicable to planning, management and all programming languages and technologies
  • 4. Abstraction – The Concept  Abstraction is a way of handling complexity when working with computers  “The essence of abstractions is preserving information that is relevant in a given context, and forgetting information that is irrelevant in that context.” – John V. Guttag [1]  “The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.” – Dijkstra [2]  The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer. – Paraphrasing of Dijkstra [3]  Example: Programming Languages abstract the physical hardware
  • 5. Encapsulation – The Usage  Encapsulation is a way to implement abstractions, it involves a particular piece of software (library, module, component or class) having a defined responsibility and keeping the details of managing that responsibility to itself  It is "the process of compartmentalizing the elements of an abstraction that constitute its structure and behavior; encapsulation serves to separate the contractual interface of an abstraction and its implementation.” – Grady Brooch [4]  In Java this is usually achieved by using Interfaces but applies to other techniques such as a utilities class hiding what 3rd party libraries and / or custom code it uses to implement its behavior  Example: A Web Sockets library hides the details of TCP/IP
  • 6. Reuse – The Concept  Having proper abstractions in place implemented by encapsulated software leads to the economic benefit of Reusability  “Code reuse aims to save time and resources and reduce redundancy by taking advantage of assets that have already been created in some form within the software product development process” –”What Is Software Reuse” [5]  Reuse is hampered or in extreme cases destroyed by the accumulation of Technical Debt – poor usage of abstractions, encapsulation or implementation details  A well maintained, reusable code base can be worth millions of dollars over time (like a precious collectable) and a poorly maintained one can be worth nothing (like tires from 1980)  Example: Using the AWS libraries developed in Phase 1 again
  • 7. Summary  Intro  Abstraction – The Concept  Encapsulation – The Usage  Reuse – The Benefit  Summary
  • 8. References  [1] Guttag, John V. (2013-01-18). Introduction to Computation and Programming Using Python (Spring 2013 edition ed.). Cambridge, Massachusetts: The MIT Press. ISBN 9780262519632.  [2] The Humble Programmer (1972) Turing Award Lecture[1], Communications of the ACM 15 (10), October 1972: pp. 859–866.  [3] “Edsger W. Dijkstra”, Wikipedia, http://en.wikiquote.org/wiki/Edsger_W._Dijkstra#Quotes_about_E.W. _Dijkstra, Extracted on Jan 7, 2015  [4] Grady Booch, Object-Oriented Analysis and Design with Applications, . Addison-Wesley, 2007, ISBN 0-201-89551-X, p. 51-52  [5] Lombard Hill Group. "What Is Software Reuse?". lombardhill.com. Lombard Hill Group. Retrieved 22 October 2014.