Subscribe Us

header ads

Software Engineering (SE) principles and their role in software system design


Software design principles are concerned with providing means to handle the complexity of the design process effectively. Effectively managing the complexity will not only reduce the effort needed for design but can also reduce the scope of introducing errors during design.

Following are the principles of Software Design

  1. Problem partitioning
  2. Abstraction
  3. Modularity
  4. Top down and bottom up approach
1. Problem partitioning :-
For small problem, we can handle the entire problem at once but for the significant problem, divide the problems and conquer the problem it means to divide the problem into smaller pieces so that each piece can be captured separately.
For software design, the goal is to divide the problem into manageable pieces.

Benefits of Problem Partitioning
  • Software is easy to understand
  • Software becomes simple
  • Software is easy to test
  • Software is easy to modify
  • Software is easy to maintain
  • Software is easy to expand
2. Abstraction :-
An abstraction is a tool that enables a designer to consider a component at an abstract level without bothering about the internal details of the implementation. Abstraction can be used for existing element as well as the component being designed.

Here, there are two common abstraction mechanisms
  • Functional Abstraction
  • Data Abstraction
3. Modularity :-
Modularity specifies to the division of software into separate modules which are differently named and addressed and are integrated later on in to obtain the completely functional software. It is the only property that allows a program to be intellectually manageable. Single large programs are difficult to understand and read due to a large number of reference variables, control paths, global variables, etc.

4. Top down and bottom up approach :-
A good system design strategy is to organize the program modules in such a method that are easy to develop and latter too, change. Structured design methods help developers to deal with the size and complexity of programs. Analysts generate instructions for the developers about how code should be composed and how pieces of code should fit together to form a program.

To design a system, there are two possible approaches:
  • Top down Approach
  • Bottom up Approach

Post a Comment

0 Comments