The requirements can be changed into any other desired form enabling the coding and implementation of the software by the programmers. This process is defined as Software Design.
Software Requirement specification document is used for assessing the requirements. But requirements need to keen, specific and should be more particular for carrying out coding and implementation. The programming languages utilize the output for implementation.
The attention is being shifted from the area of problem to the area of solution by Software design. The requirements that are stated in SRS are being fulfilled by Software design.
There are three different levels of software design. They are -
A software system is separated into a number of independent modules thus enabling each of the modules to work and carry out the task independently. This separation practice is known as Modularization. For the complete software the independent modules serve as basic constructs. The modules are separated in such a manner that they are enabled to independently compile or execute.
‘Divide and Conquer’ strategy is followed for solving the problems. The practice of modularization has many benefits associated. They are as follows -
All the software programs are always executed one after the other. As the instructions execute one after the other, at a specific point of time, it is considered that only a portion of the program is active and not the complete program. For instance, At any specific time of execution, only any one of the modules among multiple modules of a software, is active.
The software is separated into different independent modules, enabling each of the modules to execute independently. This facilitates in parallel execution of the modules. This process is known as Concurrency. Hence, parallel execution of the software at multiple places is facilitated by the concept of concurrency.
It is always suggested to identify the modules which can be executed at the same time.
For the word processor software, spell check is a module that works independently. Both the software, word processor and the module spell check runs at the same time parallel.
By modularization, a software system is separated into a number of independent modules. Each module includes set of instructions used for performing a task. Each of the modules is considered independent but they work in a relation with each other. The quality of designing the modules and their interaction is quantified by using certain measures which are known as coupling and cohesion.
For the elements that are within the module, the level of their intra-dependability is defined by Cohesion. It is considered that the program design is better when the rate of cohesion is high.
Cohesion is of different types. They are -
For the modules of a software program, the inter-dependability level is quantified by the measure known as Coupling. A particular level at which the modules interface and interact is measured by Coupling. It is considered that the software program is better when coupling is low.
Coupling has five different levels. They are -
All the functional and non-functional requirements are processed and executed by software design for accomplishing a specific task. The process of software design comes up with output which is in many forms. The output of the process include – design documentation, pseudo codes, logical and process diagrams.
Depending on these outputs, the software is implemented.
It is mandatory to check the output prior to implementation. It is always better to detect mistakes if any, at early stage. If not, it is not possible to detect until the stage of testing. Verification tools which are associated with specific phase of the design are used for detecting errors. In other way, verification and validation cab be done by a detailed and through review of the design.
At some instances, some conditions remain overlooked which may lead to some defects. These defects can be detected by using a approach of structured verification which is usually done by the reviewers. For a software design to a good, accurate and qualitative, it is essential to have a good design review.
Software Engineering Related Interview Questions
|Java Script Interview Questions||ASP.NET Interview Questions|
|MySQL Interview Questions||Manual Testing Interview Questions|
|Artificial Intelligence Interview Questions||Java Interview Questions|
|Software testing Interview Questions||Test Cases Interview Questions|
|Software Development Lifecycle (SDLC) Interview Questions||Software Process Engineer Interview Questions|
|Software Architecture and Design Interview Questions|
Software Engineering Tutorial
All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.