23 September 2021

Scrum and Software Development Design Practices

Design flow

  • Sketches, wireframes, mockups, and prototypes actually represent the different stages of the design flow.
    • They start from low-fidelity and end with high-fidelity respectively.
      • The sketch is the simplest way to present an idea or initiative, even can be drawn in a piece of paper and has a minimum level of fidelity.
      • Wireframe, a low-fidelity way to present a product, can efficiently outline structures and layouts.
      • A mockup looks more like a finished product or prototype, but it is not interactive and not clickable.
      • A Prototype has an interactive attribute and has a maximum level of fidelity and is interactive and clickable.

Design Patterns

  • A Design Pattern is a general, reusable solution to a commonly occurring problem within a given context in software design
    • It is generally divided into three main categories :
      • creational design patterns,
      • structural design patterns, and
      • behavioral design patterns.

Creational design patterns

  • In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation.
    • The basic form of object creation could result in design problems or in added complexity to the design.
    • Creational design patterns solve this problem by somehow controlling this object creation.
      • Creational design patterns are composed of two dominant ideas.
        • One is encapsulating knowledge about which concrete classes the system uses.
        • Another is hiding how instances of these concrete classes are created and combined.
      • Creational design patterns are further categorized into object
        • Creational patterns and Class-creational patterns, where Object-creational patterns deal with Object creation and Class-creational patterns deal with Class-instantiation.
        • In greater details, Object-creational patterns defer part of its object creation to another object, while Class-creational patterns defer its object creation to subclasses.

Five well-known Creational design patterns

  • Abstract factory pattern, which provides an interface for creating related or dependent objects without specifying the objects’ concrete classes.
  • Builder pattern, which separates the construction of a complex object from its representation so that the same construction process can create different representations.
  • Factory method pattern, which allows a class to defer instantiation to subclasses.
  • Prototype pattern, which specifies the kind of object to create using a prototypical instance, and creates new objects by cloning this prototype.
  • Singleton pattern, which ensures that a class only has one instance, and provides a global point of access to it.

Structural design patterns

  • In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships among entities.

Behavioral design patterns

  • In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects.
    • By doing so, these patterns increase flexibility in carrying out communication.

Domain-driven Design

  • Domain-Driven Design (DDD) is the concept that the structure and language of software code (class names, class methods, class variables) should match the business domain.
    • For example, if a software processes loan applications, it might have classes such as Loan Application and Customer, and methods such as Accept, Offer and Withdraw.
    • DDD connects the implementation to an evolving model.
    • Domain-driven design is predicated on the following goals:
      • placing the project’s primary focus on the core domain and domain logic;
      • basing complex designs on a model of the domain;
      • initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.

Scrum and Software Development Practices

More informations for the Scrum PSD certification here.

Updated : 04/09/2021

Leave a Reply

Your email address will not be published. Required fields are marked *