SoftwareDesign

Table of Contents

Introduction

Software design is the process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints.

(en.wikipedia.org)

Modeling techniques

Design Principles

Object-oriented programming

Object types

  • Entity
  • Control
  • Boundary
  • Value

Principles

  • Abstraction
  • Generalization
  • Composition
  • Decomposition
  • Encapsulation

Quality metrics

  • Low coupling
  • High cohesion
  • Separation of concerns

Simple design rules

Design Pattern

Feature Toggles

Tools

Miscellaneous

GitHubImpressum