(1) As a process, encapsulation means the act of enclosing one or more items within a (physical or logical) container. (Parnas 1972).
(2) 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).
(1) Parnas,D. 1972. "On the Criteria To Be Used in Decomposing Systems Into Modules," Communications of the ACM, 5:(12) (December 1972) 1053-1058.
(2) IEEE. 1990. Standard Glossary of Software Engineering. Washington, DC, USA: Institute of Electrical and Electronics Engineers (IEEE). IEEE 610.12-1990.
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 Modular systems and in Object Oriented Programming and Design have largely 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.
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