Characterising the Use of Encapsulation in Object Oriented Systems

dc.contributor.authorVoigt, Janina
dc.date.accessioned2017-12-05T03:03:20Z
dc.date.available2017-12-05T03:03:20Z
dc.date.issued2009en
dc.description.abstractSoftware is commonly very large and complex, and consequently hard to develop, understand and maintain. Encapsulation is the practice of breaking a system up into well-defined pieces and hiding internal details within each piece. It supports modularisation and information hiding, making it one of the most fundamental tools software developers have for managing complexity. Object oriented design heuristics have been proposed to help developers achieve better software designs and thus improve overall software quality; many of these design heuristics concern the use of encapsulation or are based on underlying assumptions about encapsulation. However, design advice in this area often conflicts. Little is known about how developers apply encapsulation in practice. In this work, we identify and compare two radically different schools of thought that underpin encapsulation policies and lead to the conflicting encapsulation advice. We conducted a survey to reveal which encapsulation policy is more intuitive, and found that novices’ intuition about encapsulation differs from the encapsulation mechanisms supported by languages such as Java and C#. Following the survey, we empirically analysed encapsulation in real-world software to determine which encapsulation policies are followed in practice, uncovering a general culture of confusion and inconsistency around the use of encapsulation. This finding leads us to propose refactoring tools and a visualisation for helping developers improve encapsulation in software.en
dc.identifier.urihttp://hdl.handle.net/10092/14854
dc.identifier.urihttp://dx.doi.org/10.26021/1772
dc.languageEnglish
dc.language.isoen
dc.publisherUniversity of Canterburyen
dc.rightsAll Right Reserveden
dc.rights.urihttps://canterbury.libguides.com/rights/thesesen
dc.titleCharacterising the Use of Encapsulation in Object Oriented Systemsen
dc.typeTheses / Dissertationsen
thesis.degree.grantorUniversity of Canterburyen
thesis.degree.levelDoctoralen
thesis.degree.nameOtheren
uc.collegeFaculty of Engineeringen
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
hons_0901.pdf
Size:
5.52 MB
Format:
Adobe Portable Document Format
Description:
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.71 KB
Format:
Item-specific license agreed upon to submission
Description: