Computer software, or just software, is a collection of computer programs and related data that provides the instructions for telling a computer what to do and how to do it.Software is a set of programs, procedures, algorithms and its documentation concerned with the operation of a data processing system.
Design elements describe the desired software features in detail These design elements are intended to describe the software in sufficient detail.The focus of this process is to cover the gapbetween understanding the specification and implementing them in the software Design process takes inputs of softwarespecifications and is dedicated to plan for implementation of the software.
Structured analysis Structured Analysis (SA) in software engineering and its allied technique, Structured Design (SD), are methods for analyzing and converting business requirements into specifications and ultimately, computer programs, hardware configurations and related manual procedures.
Scenario basedBehavioral Analysis model Flow oriented based Class based
To describe customerrequirementTo establish basis ofdesign
A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modeling its process aspects. A DFD shows what kinds of information will be input to and output from the system, where the data will come from and go to, and where the data will be stored.
Synchronous Asynchronous operations operations If data goes to aIf data is going from 1 data store then to bubble to another other bubble
• Is the basis of partitioning in the functional oriented approach1. • when problem is being partitioned ,the complete transformation function for the system is partitioned into2. smaller functions • The decomposition of the system is in terms of functional modules3.
It supports certain operations required from a data object, depending on the object & environment in which it is used. Only such operations are visible & internals are hidden. It forms the basis of object oriented design.
Rule of “Divide & Conquer”.Goal is to divide the problem into manageable small pieces that can be solved separately The cost of solving the entire problem is more than the sum of the cost of solving all the pieces Different pieces have to cooperate & communicate to solve larger problem The design produced by using problem partitioning can be represented as a hierarchy of components
Hierarchical structure makes it much easier to comprehend larger problemsAll design methodologies aim to produce a design that employs hierarchical structures
Fan-in refers to no. of units that use a particular software unit. Fan-out refers to no. of units used by particular software unit
Fan-in for B is 1 & fan- Super-ordinate of B & C out is 2 A Sub-ordinate of A & super-ordinate of D,E&F B CSub-ordinate of B &C D E F
Two modules are considered independent if one can function completely without the presence of other. The more connections between the modules ,the more they are dependent. Hence, fewer & simpler the connections between modules the easier is to understand them.
Coupling is the strength of A B interconnections between Highly modules. coupled Highly – coupled modules D C are joined by strong interconnections. A B While loosely-coupled Loosely modules have weak connections. D C Independent modules have no interconnections. A Uncoupled B
Coupling increases the complexity. To minimize coupling , the no. of interfaces per module. Interface is used to pass information to & from modules.
Reference made from 1 module to anotherAmount of data passed from 1 module to anotherAmount of control passed from 1 module to another
It represents how tightly bound the internal elements of the module are to 1 another. It gives an idea whether the different elements of a module belong together in the same module. Greater the cohesion of each module in the system , lower the coupling between modules is.