You are on page 1of 7

Module 3: System Design

1. Function oriented design Continuous function abstraction 2. Object oriented design Continuous data abstraction Design principles:These are guidelines or factors on which design principle is based on. They are as follows: 1. Problem partitioning and hierarchy • • • • • Divide problems into various parts Divide the problem in such a way that each module is independent The design should be the best efficient etc… Principles used are ‘divide and conquer’ Since each modules are independent each module can be enhanced independently and hence cost is reduced 2. Abstraction • • • Only external details are mentioned Describes the external behavior of the concepts without describing the internal behavior Basic rule of the system design is to specify the modules in the systems and their abstractions There are two types of abstraction a. Functional abstraction • • A module specified by the function it performs Data not treated simply as objects but as objects with predefined operations on them from outside the operations on them b. Data abstraction

• • 3. Modularity • •

Internal details of the object are hidden Only the outside details are visible

Modules are independent and hence every operation can be done separately System is considered modular if it consist of discrete components so that each component can be implemented separately to change to one component has minimal impact gains, system repair and system building

4. Top down and bottom up strategies • • • Principles followed in top down strategy is ‘step wise implementation’ Level of abstraction is high in higher levels Top down approach used in non existing systems • • • • Starts by identifying major component of the systems and decomposing them to lower level components Iteration is done until the desired level of detail is obtained Designing the most major component and proceeding to higher level components Methods work with level of abstraction b. Bottom up:

a. Top down:

Module level concepts: In order to increase the dependency between two modules the dependency within the module should be increased. 1. Coupling • • Interconnection between two different modules Coupling should be top down • When there is strong interconnection between two modules

a. Highly coupled

b. Loosely coupled • • • • When there is loose interconnection between two modules

Coupling can’t be measured directly There are interface between many modules, the coupling top down Types of data passes to the module o The information: higher couplings o Data • To produce design using modules some criteria must be used to select modules so that the modules support abstraction that can be solved and modified separately. Coupling and cohesion is the criteria used. • • • Coupling is how strongly the measure of independent modules Highly coupled modules are strong interconnection between them Factors influencing coupling: o Types of connection between the module o How complex is the interface is? o Types of information flow between the modules 2. Cohesion • • • • • Interconnection between the same elements Cohesion should be bottom up Represents how tightly bounded interval elements of a module are to one another By increasing cohesion you can decrease coupling There are several levels of cohesion o Coincidental Occurs when there is no meaningful relationship among the elements of the module o Logical

where as loosely coupled modules have weak interconnection between them

There is some logical relationship between elements of a module and elements performed that fall in same logical class o Temporal It is the same as of logical except that the elements are related to time and are executed together. E.g. Initiation, termination o Procedural Modules contain elements that contain common procedural unit. E.g. parts of function, variable inside the loop. o Communicational It has elements that are related by reference to the same input or output data o Sequential Output of one element form the input of the other element o Functional All the elements are related to perform a single function • Depending up on words used to describe the level of cohesion can be identified Structured design methodology (SDM): • • • • • • • • • Function oriented design Goal is to create a good design Transform is a function that rotate the input and output Every module are considered as function Method used to design a system is called methodology The aim of the SDM is to create the structure for the system using the SDM The principle used here is factoring The main modules dose co-ordination of the particular system and the lower modules dose all the work Larger the modules lesser the work done by the higher levels

SDM views every software system having some inputs that is connected to the output by some software system. The software is the transformation that transforms the input to output. The SDM controls the structures of the final program. The design aims at a hierarchical structure with functionally cohesive modules and a few interconnections between the modules. Factoring is the processes of decomposing the module so that most of their works are done by sub modules. A system is said to completely factor if actual work is done by all the bottom level atomic modules. The non atomic modules perform coordination and control. The four major steps in SDM are 1. Restate the problem as DFD 2. Identify the most abstract input and the most abstract output data elements 3. Factoring of input and output transform branches There can be cases of multiple inputs and multiple processes

Find the most abstract level of input and output. The most abstract level is the level farthest from the actual physical input. For example sorted word list is a kind of abstract input processes. Hence it is the most abstract level of inputs. The most abstract level of output is count the number of words. Most abstract inputs (MAI) are those elements in the DFD that are farthest from the physical input but still can be considered as inputs. They have little resemblance to the actual physical data and often obtained after error checking, data validation and proper formation etc…

Most abstract output (MAO) are data elements that are farthest from the actual output but can still but can still be considered outgoing. These can be considered as logical and data items and the transforms in the DFD after these are to convert to the desired output. First level factoring: Central transform is the one which dose the actual operation Central transform is the “count the no of words” in the above example It comes between MAO and MAI.

Refine each module: Since modules are of high level or dose not contain any more details, refine each module. Modules should be modified in such a way that the fan-in should be more and fanout should be less.