Presentation is loading. Please wait.

Presentation is loading. Please wait.

Design Concepts By Deepika Chaudhary.

Similar presentations


Presentation on theme: "Design Concepts By Deepika Chaudhary."— Presentation transcript:

1 Design Concepts By Deepika Chaudhary

2 Definition M.A.Jackson once said “ The beginning of wisdom for a software engineer is to recognize the difference between getting a program to work and getting it right. The following are the basic concepts for the software design:

3 Concepts The following are the basic concepts for the software design
Abstraction Refinement Modularity Software Architecture Control Hierarchy

4 Structural Partitioning
Data Structure Software Procedure Information Hiding

5 Abstraction Abstraction is a process whereby we identify the important aspects of phenomenon and ignore its details. According to wasserman “the Psychological notion of abstraction permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details

6 Types of Abstraction Procedural abstraction : A sequence of instructions that has a specific and limited function . For eg to open a doorimplies a long sequence of procedural steps ( walk to the door , reach out and grasp knob turn knob and pull door etc)

7 Control Abstaction Control abstraction implies a program control mechanism without specifying internal details . An example of a control abstraction is the synchronization semaphore used to coordinate activities in an operating system.

8 Data Abstraction A data abstraction is a named collection of data that describes a data object . For eg the data abstraction for door would encompass a set of attributes that describe a door (door type , swing direction , opening mechanisms , weight etc)

9 Refinement Refinement is a top down technique for decomposition of a system from high level specifications to more elementary steps. Refinement is also known as “stepwise program Development”

10 IT begins with the specifications derived during requirements analysis and external design. The problem is first decomposed into a major processing steps and then the process is repeated for each part of the system until it is decomposed into sufficient details

11 Abstraction and Refinement
Abstraction enables a programmer to specify procedure and data and get suppress low level details Refinement helps the designer to reveal low level details as design progresses.

12 Modularity There are many definition of the “module” . They range from a module in FORTRAN to a module in ADA to a module as a work assignment for an individual programmer” Modular system consists of well defined manageable units with well defined interfaces among the units. Modularity enhances design clarity which in turn ease implementation debugging testing documenting and maintenance of the software product.

13 Software Architecture
It is “the overall structure of the software and the ways in which that structure provides conceptual integrity for a system” In the simplest form architecture is the hierarchical structure of a program components , the manner in which these components interact and the structure of data that are used by the components.

14 Shaw and Garlan (1996) suggest that software architecture is the step in producing a software design . They distinguish among three design. Architecture Design Code Design Executable Design

15 Architecture Design It associates the system capabilities identified in the requirements specification with the system components that will implement them. Components are usually modules and the architecture defines the interconnection between them.

16 Code Design Involves algorithms and data structures and the components are programming language primitives such as number characters pointers and control threads.

17 Executable Design It addresses the code design at lower levels of details. It discusses memory allocation , data formats , bit patterns and so on.

18 Control Hierarchy Control hierarchy also called program structure represents the organization of program components and implies a hierarchy of control. It does not represent procedural aspects of software such as sequence of processes , occurrence of order of decisions etc.

19 In this design we check that how many components are under the control of a particular component.
To check which one is the better design we minimize the number of components with high fan out ( the number of components controlled by a component) Fan in is the number of components controlling a particular component.( )

20 Structural partitioning
If the architectural style of a system is hierarchical the program structure can be partitioned both horizontal and vertically . The simplest approach to horizontal partitioning defines three partitions-input , data transformation and output.

21 Horizontal Partitioning
Defines separate branches of the modular hierarchy of each major program function. The simplest approach to horizontal partitioning defines three partitions Input Data transformation Output

22 Vertical Partitioning
Vertical partitioning often called factoring suggests that control and work should be distributed top down in the program structure. Top level modules should perform control functions and do little actual processing work.

23 Data Structure Data structure is a representation of the logical representation among individual elements of data. Data structure dictates the organization method of access degree of associativity and processing alternatives for information.

24 Software procedure Software procedure focuses on the processing details of each module individually. Procedure must provide a precise specification of processing, including sequence of events, exact decision points and even data organization.

25 Information Hiding Information hiding is a fundamental design concept for software . Each module in the system hides the internal details of its processing activities and modules communicate only through well defined interfaces.


Download ppt "Design Concepts By Deepika Chaudhary."

Similar presentations


Ads by Google