Basics of Software Design and Development Tutorial with Examples

Basics of Software Design and Development Tutorial with Examples

Basics of Software Design and Development Tutorial with Examples:The Complete Guide of Computer Science and Information Technology to Crack any Examination:-In this  cyberpoint9 tutorial we are going to describe about the  concept of Any Competitive Examination in Computer Science and Information Technology and cyber programming. And also we will describe that how can we crack any Competitive Examination Like GATE-CS ,UGC-NET,BARC,VSSC, DRDO, ISRO, NASA, BHEL,SPACEX,GOOGLE,FACEBOOK, etc .This is the free Full Complete Guide for Computer Science and Information Technology Students and Achievers Scientist.In this tutorials: course for Beginners to Advance And why we  use  Handbook of CS AND IT  to make  more interactive and  save our time  for our Daily life. Best Online Tutorial for Computer Science and It students .When ever we want to learn any thing the things become more earlier is somebody/tutorial/study material taught us through Examples. Here we have tried to describe each and every concept of  Programming and Cyber Security   in the light of  best Hindi  Short tutorial using simple and best possible example. These examples are so simple that even a beginner who had never even heard about hacking and Cyber law can easily learn and understand How  the  isro and barc drdo for computer science books works in our today’s Technical Field. This is  the best  tutorial/Study Material  very beneficial for beginners  as well as Professional.The Complete Guide of Computer Science and Information Technology.

Software Design

Software design translates requirements into a blueprint for constructing the software. The purpose of design phase is to produce a solution to be Problem given in Software Requirement Specification (SRS) document Here, we generate a Software Design Document(SDD)

Design Concepts

It basically describes the three things given below

  • Separation of function/data structure detail from a conceptual representation of the software (abstraction and refinement)
  • Deciding criteria to partition software into individual components(i.e,, modularity).
  • Criteria to define the technical quality of a software design.


Abstraction can be defined as the process of looking what is essential to your perspective or understanding without looking at the complex or low level details.

Types of Abstraction

Two types of abstractions are available in modern programming language.

  • Data Abstraction: e., a named collection of data that describes a data object.
  • Procedural Abstraction: e., a named sequence of instructions with a specific and limited function.

Consider a sentence of two words i.e., open door, In this sentence, open could be an example of procedural abstraction and door could be an example of data abstraction.

Open implies a long sequence of procedural steps such as

  • Walk to the door
  • Turn knob and pull door
  • Reach out and grasp knob
  • Step away from moving door

The data abstraction for door would encompass as set of attributes that describes the door such as.

  • Door Type
  • Manufacturer
  • Model number
  • Swing direction
  • Weight and dimensions

Refinement/Stepwise Refinement

A hierarchy is developed by decomposing a macroscopic statement of function (a procedural abstraction) in a step-wise fashion until programming language statements are reached.

Top.down Decomposition: In each step of the refinement, one or several Instructions of the given program are decomposed into more detailed instructions. This successive decomposition or refinement of specifications terminates when all instructions are expressed in terms of underlying computer or programming language.

Basics of Software Design and Development Tutorial with Examples
Basics of Software Design and Development Tutorial with Examples


Modularity is the process, wherein software is divided into separately named and addressable components, often called modules, that are Integrated to satisfy problem requirements. it uses the divide and conquere approach for solving a complex problem by breaking it or modularising it Into smaller modules.

Control Hierarchy

lt represents the organisation of program components (modules) and implies a  hierarchy of control. does not It represent procedural aspects of software such as sequence of processes, occurrence or order of decisions or repetitions, nor is it necessarily applicable to all architectural styles.

Horizontal Partitioning

A module that controls other module is called as manager module, while module controlled by another is known as subordinate of the manager module. Horizontal partitioning defines separate branches of the hierarchy for each valor program function. The simplest approach to horizontal partitioning defines three partitions; input, data transformations or processing and output.

Vertical Partitioning

It is also called factoring. it suggests that control (decision-making) and work should be distributed top-down in the program structure.

Key Points

  • Top-level modules should perform control functions and do little processing
  • Modules that reside lower in the structure should be the workers, performing all input, computations and output tasks.

Functional Independence

Functional independence is achieved by developing modules with single-minded functionality (functionally cohesive) and an aversion to excessive interactive, with other modules (weak coupling). Functional independence is a key to good design and good design is key to software quality.

Functional independence is measured using two qualitative criteria

 (I) Cohesion                                                                         (ii) Coupling


Cohesion is a measure of the degree to which the elements of a module are functionally related.

Key Points

  • A strongly cohesive module implements functionality that is related to one feature of the solution and requires little or no interaction with other modules.
  • Cohesion is equal to strength of relations within modules.

Here , an important design objective is to maximize the module cohesion and minimize the module coupling.

Handbook of cs and it
Handbook of cs and it


Coupling is the measure of the degree of interdependence or interconnection between modules.

Key Points

  • Two modules with high coupling are strongly interconnected and thus dependent on each other.
  • Two modules with low coupling are less or not dependent on one another.


Basics of Software Design and Development Tutorial with Examples
Basics of Software Design and Development Tutorial with Examples

Sorting in Design and Analysis of Algorithm Study Notes with Example

Learn Sorting in Handbook Series:  Click here 

Follow Us on Social Platforms to get Updated : twiter,  facebookGoogle Plus

Leave a Reply

Your email address will not be published. Required fields are marked *