Design in Software Engineering

Software engineering design targets developing software solutions to a problem. It can be an independent task, when software engineer needs to elaborate software for an existing system (e.g., industrial robot, flight simulator, etc.), or part of a project that includes several tasks, such as design of mechanical equipment, development of electrical power supply network, implementation of control system.

The phase of design follows a few steps:

The first one is called Architectural design, where software engineers identify all subsystems of the designed system, with corresponding control and communication structure. The Architectural design step results in a document describing functional specifications and constraints under which the subsystems must operate; interfaces for all subsystems are designed as well.

The Component design is the next step, in which the functions of each subsystem are assigned to different components; the detailed implementation designs of the component interfaces are produced.

After Component design, the next task is accomplished at the Data Structure design step when software engineers design in detail the data structure for the system.

Besides the data structure, software designers must complement the system with the algorithms that operate data in compliance with the prescribed task. This is done at the Algorithm design step and in general completes the software design process.

Back to top