DESIGN CONCEPTS AND PRINCIPLES:

BR-TECHNICAL
0

 DESIGN CONCEPTS AND PRINCIPLES:

Design Principles: - 

Software design is both a process and a model. The design process is a sequence of steps that enable the 

designer to describe all aspects of the software to be built. It is important to note, however, that the design 

pƌoĐess is Ŷot siŵplLJ a Đookďook. Cƌeatiǀe skill, past edžpeƌieŶĐe, a seŶse of ǁhat ŵakes ͞good͟ softǁaƌe, aŶd 

an overall commitment to quality are critical success factors for a competent design. 

The desigŶ ŵodel is the eƋuiǀaleŶt of aŶ aƌĐhiteĐt͛s plaŶs foƌ a house. It ďegiŶs ďLJ ƌepƌeseŶtiŶg the totalitLJ of 

the thing to be built (e.g., a three-dimensional rendering of the house) and slowly refines the thing to provide


guidance for constructing each detail (e.g., the plumbing layout). Similarly, the design model that is created for 

software provides a variety of different views of the computer software. Basic design principles enable the 

software engineer to navigate the design process. 

Principles for software design, which have been adapted and extended in the following list:

 The desigŶ pƌoĐess should Ŷot suffeƌ fƌoŵ ͞tuŶŶel ǀisioŶ.͟ 

 The design should be traceable to the analysis model. 

 The design should not reinvent the wheel. 

 The design should ͞ŵiŶiŵize the iŶtelleĐtual distaŶĐe͟ ďetǁeeŶ the softǁaƌe aŶd the pƌoďleŵ as it 

exists in the real world. 

 That is, the structure of the software design should (whenever possible) mimic the structure of the 

problem domain. 

 The design should exhibit uniformity and integration. 

 The design should be structured to accommodate change. 

 The design should be structured to degrade gently. 

 The design should be assessed for quality as it is being created, not after the fact. 

 The design should be reviewed to minimize conceptual (semantic) errors. 

Design concepts: 

Following issues are considered while designing the software. 

 Abstraction: ͞AďstƌaĐtioŶ peƌŵits oŶe to ĐoŶĐeŶtƌate oŶ a pƌoďleŵ at soŵe leǀel of aďstƌaĐtioŶ 

without regard to low level detail. At the highest level of abstraction a solution is stated in broad terms 

using the language of the problem environment. At lower level, a procedural orientation is taken. At the 

lowest level of abstraction the solution is stated in a manner that can be directly implemented. 

Types of abstraction: 1. Procedural Abstraction 2. Data Abstraction 

 Refinement: Process of elaboration. Refinement function defined at the abstract level, decompose the 

statement of function in a stepwise fashion until programming language statements are reached. 

 Modularity: software is divided into separately named and addressable components called modules. 

Folloǁs ͞diǀide aŶd ĐoŶƋueƌ͟ ĐoŶĐept, a Đoŵpledž pƌoďleŵ is ďƌokeŶ doǁŶ iŶto seǀeƌal ŵaŶageaďle 

pieces.



Post a Comment

0 Comments
Post a Comment (0)