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 cyberpoint9.com 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
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.
Modularity
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
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.
Coupling
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.
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, facebook, Google Plus