Welcome!

Java Authors: Maureen O'Gara, Bruce Armstrong, Liz McMillan, Walter H. Pinson, III, Yakov Werde

Related Topics: Java

Java: Article

Three Sources of a Solid Object-Oriented Design

Design heuristics, scientifically proven OO design guidelines, and the world beyond the beginning

Conclusion

Because OO design elements focus on different aspects of OO design, coupled with their controversial and generic nature, knowing or even mastering only one or two levels of the OO design pyramid isn't enough to develop contemporary, robust, flexible, extensible, and stable software. OO designers and developers have to take all levels of the pyramid into account and apply them in a systematic manner.

Applying OO design levels in a top-down approach (from design patterns to design principles and heuristics to basic OO principles) saves design time and increases design quality by ensuring that none of the important dependencies are lost.

References

  • Thinking in Java, Third Edition by Bruce Eckel, Prentice Hall PTR, 2002, ISBN: 0131002872
  • Agile Software Development, Principles, Patterns, and Practices by Robert Cecil Martin, Prentice Hall, 2002, ISBN: 0135974445
  • Object-Oriented Design Heuristics by Arthur J. Riel, Addison-Wesley Professional, 1996, ISBN: 020163385X
  • Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley Professional, 1995, ISBN: 0201633612
  • Design Patterns Java Workbook by Steven John Metsker, Addison-Wesley Pub Co, 2002, ISBN: 0201743973
  • Core J2EE Patterns: Best Practices and Design Strategies, Second Edition by Deepak Alur, Dan Malks, John Crupi, Prentice Hall PTR, 2003, ISBN: 0131422464
  • Patterns of Enterprise Application Architecture by Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford, Addison-Wesley Professional, 2002, ISBN: 0321127420
  • www.objectsbydesign.com/tools/umltools_byCompany.html for a list of design tools.

    SIDEBAR

    OO Design Principles

    Class structure and relationships
    • Single Responsibility Principle (SRP)
    • Open/Closed Principle (OCP)
    • Liskov Substitution Principle (LSP)
    • Dependency Inversion Principle (DIP)
    • Interface Segregation Principle (ISP) Package cohesion
    Package cohesion
    • Reuse/Release Equivalency Principle (REP)
    • Common Closure Principle (CCP)
    • Common Reuse Principle (CRP) Package coupling
    Package coupling
    • Acyclic Dependency Principle (ADP)
    • Stable Dependency Principle (SDP)
    • Stable Abstractions Principle (SAP)
  • More Stories By Gene Shadrin

    Gene Shadrin is an enterprise architect with 17 years of software development experience, including object-oriented analysis, design, architecture, and development of real-life enterprise Java systems. He is a Sun Certified Enterprise Architect, PMP, and consults government and Fortune 500 organizations. Gene can be contacted at genes@eltrong.com

    PUBLICATIONS
    ------------
    Third Annual International Conference of Open systems. Moscow, Russia 1996. Thesis of lecture
    Client-Server Technology Journal. Russia, 1996, 3-4 (double). ?PowerBuilder - Open Tool for Client-Server Computing? article.
    Database Management Systems Journal. Russia, 1996, 5-6 (double). ?PowerBuilder - Open Tool for Complex Distributed Client-Server Computing? article.
    ?PowerBuilder: Developer?s Guide? Book. Translation from English. Russia, 1997, MIR Publishing-house (400 pages)
    Database Management Systems Journal. Russia, 1997, 5-6 (double). "PFC Basics" article

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.