design methodology in software engineering

design methodology in software engineering

Design methodology in software engineering

The software design process is influenced not only be the design approach but also by the criteria used to decompose a system. Some of the major software design methods are using.

  • Function-Oriented Design 
  • Data Structure Based Design
  • Object-Oriented Design 
  • Reuse Based Design 

Function-Oriented Design

A function-oriented system perspective forms the core of the design. Based on the functional requirements contained in the requirements definition, a task-oriented decomposition of the overall system takes place. It is the result of focusing attention to the function of the program. One of the best known advocate of this method is Niklaus Wirth, the creator of Pascal  and other many languages. His special variety is called Stepwise Refinement.

Stepwise Refinement

The first published design method was proposed by the Niklaus Wirth. This method was called Stepwise Refinement and is based on iterative procedural decomposition. Stepwise refinement is an top-down refinement strategy where a program is refined as as a hierarchy of increasing levels of details. Procedural refinement is accompanied by parallel data structure refinement, and is guided by principles of efficiency and clarity. Design alternatives and decisions should be documented.

We continue the refinement of each module until we reach the statement level of our programming language. At that point, we can describe the structure of the our program as a tree of refinements as in top-down structure. 

Some of the nodes of the tree will be modules of the program. Others will be sub-modules or statements.
Unfortunately, if a program is created top-down, the modules become very specialized. Each module is used by at most one other module, it's parent.

Although Wirth's proposal codified an approach probably in common use at the time, it is important as the pioneering design method. Wirth also made several enduring points about good design.
  • Design is an iterative trial-and-error process.
  • Design alternatives should be generated and a decision among them made based on design principles.
  • Design alternatives and decisions should be recorded.
  • Design of even small programs may be a long and difficult task.
Stepwise refinement is an design method was quickly super ceded by more sophisticated methods, but it is used as a technique as a matter of course by most designers and programmers who use procedures.

Data Structure Based Design Method 

The design process focuses on a data-oriented systems perspective. The design strategy orients itself to the data to be processed. The decomposition of the system stems from the analysis of the data.
  • Jackson System Development
  • Warnier-orr system development
Michael Jackson created Jackson System Development (JSD) using the principles laid out in Jackson Structured Programming (JSP). JSD is a structured analysis and design method.

The technique introduced by Jackson is known as Jackson Structured Programming (JSP) and the technique proposed by Warnier-Orr is known as Logical Construction of Program (LCP).

Jackson Systems Development

The basic idea if JSP is that a good program reflects the structure of both the input and output in all its facets. Given a correct model of these data structures, the corresponding program from the model can be derived straightforward. Jackson distinguishes elementary and compound components. Elementary components are not further decomposed. 

These are three types of compound components.
  • Sequence 
  • Iteration
  • Selection
Compound components are represented by diagrams also called Jackson Diagrams or Structure Diagrams.

The fundamental issues involved in the use of JSP are:
  • Modelling input and output using structure diagrams.
  • Merging these to create the program structure.
  • Resolving possible structure clashes.
  • Optimizing the result through program inversion.
JSD distinguishes three stages in the software development process.
  • Modelling Stages:- A modelling stage is that in which a description is made of real world problems through identification of entities and actions.

  • Network Stage:- In this stage,  the system is modelled as a network of communicating concurrent processes.

  • Implementation Stage:- In this stage, the network of processes is transformed into a sequential design.

Jackson System Design (JSD) starts with analysis of a test description of the problem and acquisition of information about the application domain. Once again, objects and their interactions are identified. At this point, JSD models
the lifetime of each object, represented both by a modified structure chart and by a kind of pseudocode called structure text, which includes control concepts. 

To represent a choice between two or more mutually exclusive actions, mark the actions with a small "O" on the upper right hand corner. There is usually only one action under an iteration construct.

The objects are then organized into a network representing interactions. Data streams in the network are classified, and additional functions are added as dictated by the structure text.

Timing and synchronization issues between objects are next dealt with. Finally, detailed design is carried out to simplify the design from an operational standpoint. The techniques of process backtracking, inversion, state-vector inspections are provided to handle data ambiguity and operating system overload.

Jackson System Design (JSD) supporters claim that it is better than object oriented design, since it encompasses many of the same concepts and is more systematic. On the other hand, it is not apparent that JSD would be as effective as object-oriented design in dealing with extremely complex problems. For simpler applications, however, JSD is certainly an competitor.

Warnier-Orr System Design

LCP expanded into Logical Construction of Systems (LCS). Warnier diagrams are like hierarchical block diagrams: they depict information in a tree-like structure, but they allow indicating repetitions and conditional occurrences.

An example of structure of a newspaper: The 'text-indentation' notation might be adequate for the top layer description.

Front section
  Headline news
  National news
  Local news

Editorial section
  Letters to the editor
  Mocking cartoon

Second section
  Sports news
  Business news

Later LCP expanded into the more comprehensive Warnier-Orr method Data Structured Systems Development (DSSD). The latter retains the data structure orientation of LCP but also considers information flow and functional characteristics.

It has two main phases:-
Logical definition
Physical definition

In the first phase the application context, functions, and results of the system are defined. The second phase has five steps.
  • Definition of the constraints imposed upon building the system. These may include aspects such as computer storage and processing capacity, reliability and security, and type of data base management system.
  • Definition of alternative physical solutions, ranging from "do nothing", buy an existing package, ,to develop the system in-house.
  • Identification of the benefits and risks involved for each proposed solutions. 
  • Selection of solution.
  • Preparation of the final requirements definition document.

Post a comment