Software Engineering

Design Fundamentals

In software design world following are common vocabulary used. These terms establishes the standard communication framewrok for architects or deisgners who prepares solution logic for a problem. Design Characteristic: Attribute or quality of a body of solution logic that we document in a design specification and plan to realize in development solution logic. Example: Consistency, Predictability, Reliability. In SOA Context : Although each system can have its own unique characteristics, we are primarily interested in establishing common design characteristics. Increased commonality ensures an increased degree of consistency, making different kinds of solution logic more alike. When things are more alike they become more predictable. In the world of distributed, shareable logic, predictability is a good thing. Predictable design characteristics lead to predictable behavior. This, in turn, leads to increased reliability and the opportunity to leverage solution logic in many different ways.

Svitlovods’k Design Principle: Generalized, accepted industry practice. When it comes to building solutions, a design principle represents a highly recommended guideline for shaping solution logic in a certain way and with certain goals in mind.These goals are usually associated with establishing one or more specific design characteristics Ex: Promoting loose coupling. Design Paradigm: Governing approach to designing solution logic. It represents set of design principles. Ex.: Object orientation, Service orientation.

Rānāghāt Design Pattern: A design pattern describes a common problem and provides a corresponding solution. It essentially documents the solution in a generic template format so that it can be repeatedly applied. Knowledge of design patterns not only arms you with an understanding of the potential problems designs may be subjected to, it provides answers as to how these problems are best dealt with. Design patterns are born out of experience. Pioneers in any field had to undergo cycles t work, approaches that finally did achieve their goals were developed. When a problem and its corresponding solution were identified as sufficiently common, the basis of a design pattern was formed.

Design Pattern language: The application of one design pattern can raise new issues or problems for which another pattern may be required. A collection of related patterns can establish a formalized expression of a design process whereby each addresses a primary decision point. Combining patterns in this manner forms the basis of a pattern language. A pattern language is essentially comprised of a chain of related design patterns that establish a configurable sequence in which the patterns can be applied.

Design standard: Design standards are design conventions customized to consistently pre-determine solution design characteristics in support of organizational goals and optimized for specific enterprise environments. It is through the use of internal design standards that organizations can consistently deliver solutions tailored to their environments, resources, goals, and priorities.

Best Practice: A technique or approach to preventing or solving a certain problem. A best practice can relate to anything from project delivery to organizational issues, governance, or process. A design principle could be considered a best practice associated only with solution design.

The above described design vocabulary form a fundamental design framework. Few of the key points about this framework are :

  1. A design principle is an accepted design guideline or practice that, when
    applied, results in the realization of specific design characteristics.
  2. A design paradigm represents a set of complementary design principles that
    are collectively applied in support of common goals.
  3. A design pattern identifies a common problem and provides a recommended
  4. A design standard is a convention internal and specific to an enterprise that
    may or may not be derived from a design principle or pattern.