Dirk Riehle's Industry and Research Publications

Category: 2.6 Architecture and Design

  • Lessons Learned from Using Design Patterns in Industry Projects [TPLOP Journal]

    Lessons Learned from Using Design Patterns in Industry Projects [TPLOP Journal]

    Abstract: Design patterns help in the creative act of designing, implementing, and documenting software systems. They have become an important part of the vocabulary of experienced software developers. This article reports about the author’s experiences and lessons learned with using and applying design patterns in industry projects. The article not only discusses how using patterns…

  • Talk slides: Design pattern density defined

    Talk slides: Design pattern density defined

    Here the slides for my OOPSLA Onward! 2009 talk on “Design Pattern Density Defined.” First the abstract: Design pattern density is a metric that measures how much of an object-oriented design can be understood and represented as instances of design patterns. Expert developers have long believed that a high design pattern density implies a high…

  • Design pattern density defined

    Design pattern density defined

    Abstract: Design pattern density is a metric that measures how much of an object-oriented design can be understood and represented as instances of design patterns. Expert developers have long believed that a high design pattern density implies a high maturity of the design under inspection. This paper presents a quantifiable and observable definition of this…

  • Design pattern density and design maturity

    Design pattern density and design maturity

    JUnit is a widely-adopted unit testing framework for Java, developed by Kent Beck and Erich Gamma. In their discussion of JUnit 3.8’s design, the authors state: Notice how TestCase, the central abstraction in the framework, is involved in four patterns. Pictures of mature object designs show this same ‘pattern density’. The star of the design…

  • Object-oriented software design documentation

    Object-oriented software design documentation

    Software researchers need case studies to validate new tools and methods of object-oriented software design. A good thing to do is to standardize on a set of open source frameworks and libraries that are known and available to everyone. Basically, a benchmark set for new tools and methods in object-oriented software design. JUnit and JHotDraw…

  • JUnit 3.8 documented using collaborations [Technical Report]

    JUnit 3.8 documented using collaborations [Technical Report]

    Author: Dirk Riehle Abstract: This paper describes the design of the unit testing framework JUnit v3.8. The documentation technique employed is an enhanced version of collaboration-based design, also known as role modeling. In collaboration-based design, objects are viewed as playing multiple roles in different contexts, and different contexts are viewed as task specific collaborations. The…