[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Free access

Object-oriented design: a responsibility-driven approach

Published: 01 September 1989 Publication History

Abstract

Object-oriented programming languages support encapsulation, thereby improving the ability of software to be reused, refined, tested, maintained, and extended. The full benefit of this support can only be realized if encapsulation is maximized during the design process.
We argue that design practices which take a data-driven approach fail to maximize encapsulation because they focus too quickly on the implementation of objects. We propose an alternative object-oriented design method which takes a responsibility-driven approach. We show how such an approach can increase the encapsulation by deferring implementation issues until a later stage.

References

[1]
Cardelli, Luca, and Peter Wegner, "On Understanding Types, Data Abstraction, and Polymorphism," Computing Surveys, 17(4), December, 1985, pp. 471 522.
[2]
Cox, Brad, Object-oriented Programming, An Evolutionary Approach, Addison-Wesley, Reading, MA, 1986.
[3]
Golberg, Adele, and David Robson, Smalltalk-80: The Language and Its Implementation, Addison-Wesley, Reading, MA, 1983.
[4]
Halbert, Daniel C. and Patrick D. O'Brien, "Using Types and Inheritance in Object-Oriented Languages," Technical Report DEC-TR-437, Digital Equipment Corporation, April, 1986.
[5]
Lieberherr, K., I. Holland and A. Riel, "Object-Oriented Programming" An Objective Sense of Style," SIGPLAN Notices, 23(11), November 1988, pp. 323 334.
[6]
Lieberherr, Karl L. and Ian Holland, "Formulations and Benefits of the Law of Demeter," SIGPLAN Notices, 24(3) March, 1989, pp. 67 78.
[7]
Meyer, Bertrand, Object-oriented Software Construction, Prentice Hall, Englewood Cliffs, NJ, 1988.
[8]
Schaffert, Craig, Topher Cooper, Bruce Bullis, Mike Kilian, and Carrie Wilpolt, "An Introduction to Trellis/Owl," SIGPLAN Notices, 21(11), November, 1986, pp. 9 16.
[9]
Snyder, Alan, "Encapsulation and Inheritance in Object- Oriented Programming Languages," SIGPLAN Notices, 21(11), November, 1986, pp. 38 45.
[10]
Stroustrup, Bjarne, The C++ Programming Language, Addison- Wesley, Reading, MA, 1987.
[11]
Unger, David, and Randall B. Smith, "Self: The Power of Simplicity," SIGPLAN Notices, 22(12), December, 1987, pp. 227 242.
[12]
Wirfs-Brock, Allen and Brian Wilkerson, "An Overview of Modular Smalltalk," SIGPLAN Notices, 23(11), November, 1988, pp. 123 134.
[13]
Wirfs-Brock, Allen and Brian Wilkerson, "Variables Limit Reusability," Journal of Object-Oriented Programming, 2(1), May/June, 1989, pp. 34-40.

Cited By

View all
  • (2023)A Synthesis-Based Stateful Approach for Guiding Design Thinking in Embedded System DevelopmentSoftware10.3390/software20300162:3(332-349)Online publication date: 12-Aug-2023
  • (2020)Automatic Code Generation with Document Responsibility Collaboration Modelling Method2020 Turkish National Software Engineering Symposium (UYMS)10.1109/UYMS50627.2020.9247013(1-6)Online publication date: 7-Oct-2020
  • (2019)Scented Since the Beginning: On the Diffuseness of Test Smells in Automatically Generated Test CodeJournal of Systems and Software10.1016/j.jss.2019.07.016Online publication date: Jul-2019
  • Show More Cited By

Recommendations

Reviews

Ariel Fabius

Responsibility-driven design is an alternative to data-driven abstraction as a design methodology. The authors argue in favor of maximizing encapsulation and assert that in pursuit of that goal the designer should be “viewing the program in terms of the client/server model.” The client asks the server to provide services, which the server provides upon request. The interactions are defined by the terms of a contract, which provides a list of services that may be requested from the server. According to the authors, responsibility-driven design focuses on the contract (by studying the actions the object is responsible for and the information shared by it), thereby gaining independence from close binding to data structure definitions. Classes and subclasses are viewed as clients of themselves and of the superclass. This approach minimizes reliance on class structure, making changes in the structure easier to implement. While the concept seems worthy of consideration, I would have liked to see more examples and a deeper analysis. On the other hand, the author's objections to the data-driven approach are real enough.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 24, Issue 10
Special issue: Proceedings of the 1989 ACM OOPSLA conference on object-oriented programming
Oct. 1989
446 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/74878
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '89: Conference proceedings on Object-oriented programming systems, languages and applications
    September 1989
    528 pages
    ISBN:0897913337
    DOI:10.1145/74877
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1989
Published in SIGPLAN Volume 24, Issue 10

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)576
  • Downloads (Last 6 weeks)45
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A Synthesis-Based Stateful Approach for Guiding Design Thinking in Embedded System DevelopmentSoftware10.3390/software20300162:3(332-349)Online publication date: 12-Aug-2023
  • (2020)Automatic Code Generation with Document Responsibility Collaboration Modelling Method2020 Turkish National Software Engineering Symposium (UYMS)10.1109/UYMS50627.2020.9247013(1-6)Online publication date: 7-Oct-2020
  • (2019)Scented Since the Beginning: On the Diffuseness of Test Smells in Automatically Generated Test CodeJournal of Systems and Software10.1016/j.jss.2019.07.016Online publication date: Jul-2019
  • (2018)Software DesignApplication Development and Design10.4018/978-1-5225-3422-8.ch002(18-56)Online publication date: 2018
  • (2018)Delivering the fundamentals of software architecture, design and abstraction by developing a ray tracer for 3‐dimensional graphical scenesComputer Applications in Engineering Education10.1002/cae.2196326:6(2002-2011)Online publication date: 26-Apr-2018
  • (2017)The accuracy of dependency analysis in static architecture compliance checkingSoftware—Practice & Experience10.1002/spe.242147:2(273-309)Online publication date: 1-Feb-2017
  • (2016)Software DesignHandbook of Research on Computational Simulation and Modeling in Engineering10.4018/978-1-4666-8823-0.ch014(417-455)Online publication date: 2016
  • (2016)IT Development:Science Communication10.1177/107554709501700100417:1(57-89)Online publication date: 18-Aug-2016
  • (2016)Feature-Driven Requirement Dependency Analysis and High-Level Software DesignInternetware10.1007/978-981-10-2546-4_13(279-300)Online publication date: 3-Dec-2016
  • (2015)A Framework for Data-Driven Automata DesignRequirements Engineering in the Big Data Era10.1007/978-3-662-48634-4_3(33-47)Online publication date: 26-Oct-2015
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media