Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.

Similar presentations


Presentation on theme: "Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality."— Presentation transcript:

1 Software Design

2 Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality system or product. Design is virtually what every engineer wants to do

3 Design allows a engineer to model the system or product that is to be built This model can be accessed for quality and can be improved before code is generated. Design is the place where software quality is established.

4 Software Design S/w design is an iterative process through which requirements are translated into a blue print for constructing the software. The following are the characteristics (objectives) of a good design The design must implement all the explicit requirement contained in the analysis model and it must accommodate all the implicit requirements also

5 The design must be readable understandable guide for those who generate code and those who test the code and subsequently support the software The design should also provide a complete picture of the software addressing the data and functional domains.

6 The design should be modular that is the software should be logically partitioned into elements that performs specific functions and subfunctions. A design should contain representation of data architecture interfaces and components A good design always comes with a set of well written documents

7 In a good design every requirement is testable the design that can not be easily tested against its requirement is not a good design. A good design should be easily communicated to all interested parties through appropriate abstractions and representations

8 A good design is repeatable and reusable That is given a similar set of conditions (SRS) the design process should produce a relatively similar design reliazation.

9 Design Principles Software design is both a process and a model. Creative skill past experience a sense of what makes good software and a overall commitment to quality are critical success factors for a competent design. The basic design principles are

10 The design process should not suffer from tunnel vision-(should consider various alternatives available ) The design should be traceable to analysis model. The design should not reinvent the wheel The design should exhibit uniformity and integration- If it appears that one person

11 Developed the entire thing A design is integrated if interfaces are developed between design components Design should be structured to accommodate change It should be remembered that design is not coding and coding is not design (the level of abstraction is higher than that of coding)

12 The design should also be accessed for quality as it is being created and not after it is over The design must be reviewed.

13 Seven Generic Design Steps A thorough evaluation of many different design approach reveals that regardless of the design approach used, there are seven steps that should be followed to obtain a good design. These steps are as follows.

14 Function decomposition Interface definition Operational timeline development Data definition Concurrency and real time consideration Consolidation Test Procedure development

15 Function Decomposition – The first step in the design process involves an intelligent partitioning of the software product into components or design entities. The objective is to partition the requirements into smaller set of requirements Some criteria and constraint for partitioning include the following

16 Unit testing improvement System testing enhancement Modularity ( Cohesion & Coupling ) Managerial visibility and control Information Hiding Contractual and organizational compatibility

17 Interface Definition The second step in the design process is to identify and define all component to component and component to external interface. There are several tools that support this step. Examples of such tools are object diagrams,data flow diagrams timing charts and data dictionaries

18 Operational Timeline Development The third step is the design process involves developing realistic operational timelines or scenario to exercise at least intellectually each design step. These timelines should include operator interactions with the system and especially the design component in question

19 Data Definition The fourth step in the design process involves developing data structures in particular defining the files records fields access method global and local data structure and the file maintenance procedures.

20 Concurrency and Real time Consideration The fifth step in the design process is associated with concurrence and real time requirements. It is highly desirable to decouple timing requirements and their design and correctness tests from function performance and data correctness.

21 Consolidation The sixth step in the design process requires consolidation and organization of the design. Information developed in steps one through five and a realization of the consolidated design information into direction to coders in the form of diagrams pseudocode structured english or any other form of program design language(PDL)

22 Test procedure developement The seventh step in the design process examines ways in which the design can be tested as a design components. This step also serves to verify that all requirements in the SRS are formally traced to implementation in the system design specificaiton

23 To conclude formal design reviews may be inserted at appropriate junctures to assure that design efforts are fully coordinated.

24 Design Concepts M.A.Jackson once said “ The beginning of wisdom for software engineer is to recognize the difference between getting a program to work and getting it right” A set of fundamental software design concepts has evolved over the past four decades.


Download ppt "Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality."

Similar presentations


Ads by Google