Difference between revisions of "Encapsulation (glossary)"

From SEBoK
Jump to navigation Jump to search
Line 1: Line 1:
<blockquote>'' Encapsulation is the enclosing of one thing within another or the degree to which it is enclosed.'' (Citation).</blockquote>
+
<blockquote>'' (1) As a process, encapsulation means the act of enclosing one or more items within a (physical or logical) container. '' (Parnas, 1972).</blockquote>
 +
 
 +
<blockquote>'' A software development technique that consists of isolating a system function or a set of data and operations on those data within a module and providing precise specifications for the module. '' (IEEE, 1990).</blockquote>
  
 
====Source(s)====
 
====Source(s)====
Source.
+
(1) Parnas,D. 1972. On the Criteria To Be Used in Decomposing Systems Into Modules,' Communications of the ACM, Vol. 5, No. 12, December 1972, pp. 1053-1058
  
 +
(2) IEEE Standard Glossary of Software Engineering, IEEE Std 610.12-1990
 
===Discussion===
 
===Discussion===
System encapsulation encloses system elements and their interactions from the external environment, and usually involves a system boundary that hides the internal from the external (see [[Concepts of Systems Thinking]].
+
Much of the thinking in software engineering on abstraction, information hiding, and encapsulation was shaped by the classic 1972 paper by David Parnas. Parnas recommended that design decisions be encapsulated, especially decisions that are likely to change. This approach limits the rippling effect of a change in one element of a system so it does not result in changes spreading throughout the system.
 +
 
 +
Developments in Object Oriented Programming and Design have been based on these ideas
 +
 
 +
More generally System Encapsulation encloses system elements and their interactions from the external environment, and usually involves a system boundary that hides the internal from the external (see [[Concepts of Systems Thinking]]).  Encapsulation can occur naturally in complex systems, as in the organs of the human body, or it can be used as a design strategy in man made systems.
  
 
{{DISQUS}}
 
{{DISQUS}}
  
 
[[Category:Glossary of Terms]]
 
[[Category:Glossary of Terms]]

Revision as of 12:33, 29 August 2012

(1) As a process, encapsulation means the act of enclosing one or more items within a (physical or logical) container. (Parnas, 1972).

A software development technique that consists of isolating a system function or a set of data and operations on those data within a module and providing precise specifications for the module. (IEEE, 1990).

Source(s)

(1) Parnas,D. 1972. On the Criteria To Be Used in Decomposing Systems Into Modules,' Communications of the ACM, Vol. 5, No. 12, December 1972, pp. 1053-1058

(2) IEEE Standard Glossary of Software Engineering, IEEE Std 610.12-1990

Discussion

Much of the thinking in software engineering on abstraction, information hiding, and encapsulation was shaped by the classic 1972 paper by David Parnas. Parnas recommended that design decisions be encapsulated, especially decisions that are likely to change. This approach limits the rippling effect of a change in one element of a system so it does not result in changes spreading throughout the system.

Developments in Object Oriented Programming and Design have been based on these ideas

More generally System Encapsulation encloses system elements and their interactions from the external environment, and usually involves a system boundary that hides the internal from the external (see Concepts of Systems Thinking). Encapsulation can occur naturally in complex systems, as in the organs of the human body, or it can be used as a design strategy in man made systems.


SEBoK v. 1.9.1 released 30 September 2018

SEBoK Discussion

Please provide your comments and feedback on the SEBoK below. You will need to log in to DISQUS using an existing account (e.g. Yahoo, Google, Facebook, Twitter, etc.) or create a DISQUS account. Simply type your comment in the text field below and DISQUS will guide you through the login or registration steps. Feedback will be archived and used for future updates to the SEBoK. If you provided a comment that is no longer listed, that comment has been adjudicated. You can view adjudication for comments submitted prior to SEBoK v. 1.0 at SEBoK Review and Adjudication. Later comments are addressed and changes are summarized in the Letter from the Editor and Acknowledgements and Release History.

If you would like to provide edits on this article, recommend new content, or make comments on the SEBoK as a whole, please see the SEBoK Sandbox.

blog comments powered by Disqus