![]() |
Csmates.com |
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
Editorials
Columns
Letters to the editor
Mocking cartoon
Second section
Sports news
Business news
Classified
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.
0 Comments