Short Questions for Design Principles

  • 1 What is a good pattern in software engineering?


    A good pattern is a named and well-known problem/solution pair that can be applied in new contexts, with advice on how to apply it in novel situations and discussion of its trade-offs, implementations, variations, and so forth.

  • 2 Explain Responsibilities and Responsibility-Driven Design.


    A popular way of thinking about the design of software objects and also larger-scale components is in terms of responsibilities, roles, and collaborations. This is part of a larger approach called responsibility-driven design or RDD.

    • Responsibility is a contract or obligation of a classifier 
    • Responsibilities are of the following two types: 
      • Doing responsibilities of an object include: 
        • doing something itself, such as creating an object or doing a calculation 
        • initiating action in other objects
        • controlling and coordinating activities in other objects  
      • Knowing responsibilities of an object include: 
        • knowing about private encapsulated data 
        • knowing about related objects 
        • knowing about things it can derive or calculate 
      • Responsibilities are assigned to classes of objects during object design

  • 3 What Are Inputs to Object Design?


    o Use case text o Supplementary Specification o System sequence diagrams o Glossary o Operation contracts

  • 4 Describe briefly the principle/patterns of the GRASP


    General Responsibility Assignment Software Patterns or Principles are :

    1. Information Expert : Class has the information to fulfill its responsibilities
    2. Creator: Who create object X?
    3. Controller: Which object will receive and coordinate system operations
    4. Low Coupling: Reduce impact of change
    5. High Cohesion: Keep object focused, understandable and manageable to support low coupling
    6. Polymorphism: Same method with different behavior/form in children/inherited classes.
    7. Pure Fabrication: Assign a highly cohesive set of responsibilities to an artificial class that does not represent a problem domain concept to support high cohesion low coupling and reuse.
    8. Indirection: Avoid dire coupling and assign responsibilities to an intermediate object
    9. Protected Variations: Identify point of predicted variation or instability assign responsibilities to create a stable interface around them.

Contact Us
Write to Us View Help
Subject Expert Logo

Subject Expert

Learn and Evaluate

Follow Us
© 2020 - Subject Expert