Skip to main content

Abstractionabstraction

  • Chapter
  • First Online:
  • 3003 Accesses

Part of the book series: Undergraduate Topics in Computer Science ((UTICS))

Abstract

Software development is a complex task. Abstraction is one means used for reducing the complexity involved in software product development. One way by which abstraction is expressed is by removing details in order to simplify and capture a concept, finding a common denominator for generalizationgeneralization . Though abstraction is a useful tool, it is not always used; sometimes it is just difficult to think abstractly, and sometimes abstraction is not utilized due to a lack of awareness of its significance and its potential contribution. This chapter describes how abstraction is expressed in agile software development environments. Specifically, software designsoftware design and architecturearchitecture are abstractions used in this chapter to discuss the concepts of simple design and refactoringrefactoring . In addition, we revisit subjects that have been introduced in earlier chapters of the book and analyze them from the perspective of abstraction.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   29.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   39.95
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    This code was taken from a refactoring example by Jaela Gulamhusein and Albert Choi (example by Michael Hanna). The URL is not accessible anymore.

References

  • Beck KBeck K (2000) Extreme programming explained. Addison-Wesley, Reading, MA

    Google Scholar 

  • Devlin KDevlin K (2003) Why universities require computer science students to take math. Commun ACM 46(9):37–39

    Article  Google Scholar 

  • Dubinsky Y, Hazzan O, Keren AKeren A (2005) Introducing extreme programming into a software project at the Israeli Air Force. Proceedings of the 6th international conference on extreme programming and agile processes in software engineering, Sheffield University, UK

    Google Scholar 

  • Fowler MFowler M (1999) Refactoring—improving the design of existing code. Addison-Wesley, Reading, MA

    Google Scholar 

  • Hazzan O (1999) Reducing abstraction level when learning abstract algebra concepts. Educational studies in mathematics 40. Kluwer Academic, pp 71–90

    Google Scholar 

  • Hazzan O, Dubinsky Y (2003) Bridging cognitive and social chasms in software development using extreme programming. Proceedings of the fourth international conference on eXtreme programming and agile processes in software engineering. Genova, Italy, pp 47–53

    Google Scholar 

  • Hazzan O, Kramer J Kramer J (2007) Abstraction in computer science & software engineering: a pedagogical perspective. Featured Frontier Columnist. System Design Frontier 4(1):6–14

    Google Scholar 

  • Highsmith J Highsmith J (2002) Agile software development ecosystems. Addison Wesley, Reading, MA

    Google Scholar 

  • Kramer JKramer J (2007) Is abstraction the key to computing? Commun ACM 50(4):37–42

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag London

About this chapter

Cite this chapter

Hazzan, O., Dubinsky, Y. (2008). Abstractionabstraction . In: Agile Software Engineering. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-1-84800-198-5_8

Download citation

  • DOI: https://doi.org/10.1007/978-1-84800-198-5_8

  • Published:

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-84800-198-5

  • Online ISBN: 978-1-84800-199-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics