Concepts and Solutions

Estimated time to read: 1 minute

For complex software problems, you don't dive into it immediately without having a design in place. That iteratively deals with the problem space and the solution space.

  • Conceptual Design breaks down the solution into its constituent parts; my looking at attributes and behaviours.
  • Technical Design describes and refines the solution further by looking at the above parts in detail.

Previous ways of looking at conceptual design include;

  • Top Down Programming - Maps the processes to the problem routines to be called, eventually creating a tree of routines that make up the application.

For many kinds of complex problems, it makes sense to use the concept of objects. Any noun in a problem description could be an important object. This has lead to the popularity of Object-Oriented Programming with object-oriented languages, as it makes things more relatable to the real world. By organising objects, it enables the creation of code which is flexible, reusable and maintainable.