Skip to main content

Abstraction

  • Chapter
  • First Online:
  • 1953 Accesses

Part of the book series: SpringerBriefs in Computer Science ((BRIEFSCOMPUTER))

Abstract

Abstraction is a cognitive means according to which, in order to overcome complexity at a specific stage of a problem-solving situation, we concentrate on the essential features of our subject of thought, ignoring irrelevant details (Devlin 2003; Kramer 2007). Abstraction is especially important in solving complex problems as it enables the problem solver to think in terms of conceptual ideas rather than in terms of their details. Though abstraction is a useful tool, it is not always used. Sometimes, it is just too difficult to think abstractly; in other cases, abstraction is not utilized due to lack of awareness to its significance and its potential contribution to problem-solving processes. This chapter describes how abstraction is expressed and encouraged in agile environments. Further, since abstraction can be addressed on different levels, the shift between different levels of abstraction can also support problem-solving processes. However, the knowledge of how and when to move between different levels of abstraction does not always come naturally, and requires some awareness. We discuss abstraction as it is manifested, either explicitly or implicitly, in agile environments in general and, for illustration, in software projects.

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   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
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

References

  • Beck, K.: Extreme Programming Explained. Addison-Wesley, Boston (2000)

    Google Scholar 

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

    Article  Google Scholar 

  • Fowler, M.: Refactoring—Improving the Design of Existing Code. Addison-Wesley, Boston (1999)

    Google Scholar 

  • Hazzan, O., Dubinsky, Y.: Bridging cognitive and social chasms in software development using Extreme Programming. In: Proceedings of the Fourth International Conference on eXtreme Programming and Agile Processes in Software Engineering, Genova, Italy, pp. 47–53 (2003)

    Google Scholar 

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

    Google Scholar 

  • Highsmith, J.: Agile Software Development Ecosystems. Addison Wesley (2002)

    Google Scholar 

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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Orit Hazzan .

Rights and permissions

Reprints and permissions

Copyright information

© 2014 The Author(s)

About this chapter

Cite this chapter

Hazzan, O., Dubinsky, Y. (2014). Abstraction. In: Agile Anywhere. SpringerBriefs in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-10157-6_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10157-6_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-10156-9

  • Online ISBN: 978-3-319-10157-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics