Design Techniques
Design techniques
> Specification design sits at the technical kernel of the software engineering process
> Specification design is applied regardless of the software process model that is used.
> Software design is the first of three technical activities – design, code generation, and testing – that are required to built and verify the software.
One of the most important principles for mastering the complexity of software systems is the principle of abstraction.
Two approaches:
• Top-down design, and
• Bottom-up design.
Top-down design
([Dijkstra 1969], [Wirth 1971])
> The design activity must begin with the analysis of the requirements definition and should not consider implementation details at first.
> A project is decomposed into subprojects, and this procedure is repeated until the subtasks have become so simple that an algorithm can be formulated as a solution.
> Top-down design is a successive concretization of abstractly described ideas for a solution.
> Abstraction proves to be the best medium to render complex systems comprehensible; the designer is involved only with those aspects of the system that are necessary for understanding before the next step or during the search for a solution.
Bottom-up design
The fundamental idea:
> To perceive the hardware and layer above it as an abstract machine.
Technique:
> Bottom-up design begins with the givens of a concrete machine and successively develops one abstract machine after the other by adding needed attributes, until a machine has been achieved that provides the functionality that the user requires.
An abstract machine is a set of basic operations that permits the modeling of a system.
Posted in Computer Science, Information Technology, Software Engineering, Software Engineering |
