• Admin
    UC Research Repository
    View Item 
       
    • UC Home
    • Library
    • UC Research Repository
    • College of Engineering
    • Engineering: Conference Contributions
    • View Item
       
    • UC Home
    • Library
    • UC Research Repository
    • College of Engineering
    • Engineering: Conference Contributions
    • View Item
    JavaScript is disabled for your browser. Some features of this site may not work without it.

    Browse

    All of the RepositoryCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

    Statistics

    View Usage Statistics

    Intuitiveness of Class and Object Encapsulation

    Thumbnail
    View/Open
    12622833_ICITA-2009-31-nz-Voigt-130.pdf (703.6Kb)
    Author
    Voigt, J.
    Irwin, W.
    Churcher, N.
    Date
    2009
    Permanent Link
    http://hdl.handle.net/10092/3962

    Encapsulation is one of the most fundamental programming language mechanisms available to software developers for managing the complexity of software systems. One might therefore expect clear guidelines and consistent practices to be used in mature programming languages, and particularly in object oriented (OO) languages, with their rich support for encapsulation. However, the encapsulation practices employed by OO developers are surprisingly variable, even within a given OO language. Published advice on how best to use encapsulation is conflicting and little research has been done to determine what developers do in practice and why. In this work, we focus on one aspect of encapsulation: the encapsulation boundary in OO systems. In the archetypal OO language Smalltalk, object data is private to an object. On the other hand, in statically typed OO languages such as C# and Java, object data is private to a class. This difference has broad implications for software design and maintenance, especially when inheritance is considered. Using a survey of both novice and experienced software developers, we show that the encapsulation boundary supported by mainstream statically typed languages does not coincide with the intuition of most developers.

    Subjects
    encapsulation
     
    encapsulation boundary
     
    OO design
     
    information hiding
     
    Fields of Research::280000 Information, Computing and Communication Sciences::280300 Computer Software::280301 Programming techniques
     
    Fields of Research::280000 Information, Computing and Communication Sciences::280300 Computer Software::280303 Programming languages
     
    Fields of Research::280000 Information, Computing and Communication Sciences::280300 Computer Software::280302 Software engineering
    Collections
    • Engineering: Conference Contributions [1822]
    Rights
    http://library.canterbury.ac.nz/ir/rights.shtml

    UC Research Repository
    University Library
    University of Canterbury
    Private Bag 4800
    Christchurch 8140

    Phone
    364 2987 ext 8718

    Email
    ucresearchrepository@canterbury.ac.nz

    Follow us
    FacebookTwitterYoutube

    © University of Canterbury Library
    Send Feedback | Contact Us