07 February 2006

OOP: Abstraction (Definitions)

"A view of a problem that extracts the essential information relevant to a particular purpose and ignores the remainder of the information." (IEEE, 1983)

"[A] simplified description, or specification, of a system that emphasizes some of the system's details or properties while suppressing others. A good abstraction is one that emphasizes details that are significant to the reader or user and suppress details that are, at least for the moment, immaterial or diversionary." (M Shaw, Abstraction Techniques in Modern Programming Languages", IEEE Software Vol. 1 (4), 1984)

"[abstraction:] (1) A view of an object that focuses on the information relevant to a particular purpose and ignores the remainder of the information.(2) The process of formulating a view as in (1)."(IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990)  

"[data abstraction:] (1) The process of extracting the essential characteristics of data by defining data types and their associated functional characteristics and disregardng representation details. (2) The result of the process in (1)." (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990) 

"Abstraction is a process whereby we identify the important aspects of a phenomenon and ignore its details." (Ghezzi et al, Fundamentals of Software Engineering, 1991)

"Abstraction is generally defined as 'the process of formulating generalised concepts by extracting common qualities from specific examples.'" (Blair et al, "Object-Oriented Languages, Systems and Applications", 1991)

"An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of object and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer." (Grady Booch, Object-Oriented Design With Applications, 1991)

"The act of concentrating the essential or general qualities of similar things. Also, the resulting essential characteristics of a thing." (Craig Larman, "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process", 1997)

"Abstraction is the purposeful suppression, or hiding, of some details of a process or artifact, in order to bring out more clearly other aspects, details, or structure." (Timothy Budd, "An Introduction to Object-Oriented Programming" 3rd Ed., 2002)

"Abstraction can have several meanings depending on the context. In software, it often means combining a set of small operations or data items and giving them a name. For example, control abstraction takes a group of operations, combines them into a procedure, and gives the procedure a name. As another example, a class in object-oriented programming is an abstraction of both data and control. More generally, an abstraction is a representation that captures the essential character of an entity, but hides the specific details. Often we will talk about a named abstraction without concern for the actual details, which may not be determined." (Beverly A Sanders, "Patterns for Parallel Programming", 2004)

"Abstraction, as a process, denotes the extracting of the essential details about an item, or a group of items, while ignoring the inessential details. Abstraction, as an entity, denotes a model, a view, or some other focused representation for an actual item." (Edward V Berard, "Abstraction, Encapsulation, and Information Hiding", cca. 2006)

"The idea of minimizing the complexity of something by hiding the details and just providing the relevant information. It’s about providing a high-level specification rather than going into lots of detail about how something works. In the cloud, for instance, in an IaaS delivery model, the infrastructure is abstracted from the user." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"Minimizing the complexity of something by hiding the details and just providing the relevant information. It’s about providing a high-level specification rather than going into a lot of detail about how something works. In the cloud, for instance, in an IaaS delivery model, the infrastructure is abstracted from the user." (Judith S Hurwitz, "Cognitive Computing and Big Data Analytics", 2015)

"A model of a complex system that includes only the details essential to the viewer" (Nell Dale & John Lewis, "Computer Science Illuminated, 6th Ed.", 2015)

"The capability to suppress unnecessary details so the important, inherent properties can be examined and reviewed." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"A model of a system that includes only the details essential to the perspective of the viewer of the system" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"Way of expressing an idea in a specific context while at the same time suppressing details irrelevant in that context." (Karl Beecher, "Computational Thinking - A beginner's guide to problem-solving and programming", 2017)

"The act of representing essential features while hiding the details to reduce complexity." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"The deliberate reduction in dependency between a component and other components it works with is a way to make the component generally more useful." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

No comments:

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
IT Professional with more than 24 years experience in IT in the area of full life-cycle of Web/Desktop/Database Applications Development, Software Engineering, Consultancy, Data Management, Data Quality, Data Migrations, Reporting, ERP implementations & support, Team/Project/IT Management, etc.