Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
DESIGN PROCESS AND CONCEPTS Design process • s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing the s/w. • There are 3 charecteristics for evaluating a good design 1. The design must implement all the explicit requirements and it must accommodate all the implicit requirements. 2. The design must be readable , understandable for those who generate code and test the s/w. 3. The design must provide a complete picture of the software ,addressing the data,functional and behavioral domains. Cont.. Design Guidelines • A design should exhibit an architectural structure • A design should be modular • A design should contain distinct representations of data, architecture, interfaces, & components • A design should lead to data structures that are appropriate for the objects to be implemented • A design should lead to components that exhibit independent functional characteristics • A design should lead to interfaces that reduce the complexity of connections between modules and external environment • A design should be derived using a repeatable method that is driven by information obtained during SW requirement analysis. • A design should be represented using a notation Design Concepts • • • • • • Abstraction Refinement Modularity Architecture Information Hiding Functional Independence 1.Abstraction • concentrate on the essential features and ignore details that are not relevant(ie.,low level details) • Procedural abstraction is a sequence of instructions that has a specific & limited function • Data abstraction is a collection of data that describes a data object • Control abstraction implies a program control mechanisms without specify internal details 2.Refinement • stepwise refinement is a top down strategy • refinement is actually a process of elaboration. • develop hierarchy by decompose a procedural abstraction in a stepwise fashion until programming languages are reached • abstraction & refinement are complementary concepts Abstraction Refinement 3.Modularity • system is decomposed into a number of modules • software architecture and design patterns represent modularity • 5 criteria to evaluate a design method with respect to its ability to define effective modular system i. Modular decomposability - provides a systematic approach for decomposing the problem into sub problems ii. Modular composability - enables existing design components to be assembled into a new system iii. modular understandability - module can be understood as a standalone unit (no need to refer other modules) iv. modular continuity - small changes to the system requirements result in changes to individual modules v. modular protection - unexpected condition occurs within a module & its effects are constrained within that module. 4.Architecture • is the structure or organization of program components (modules) • 5 different types of models are used to represent the architectural design : i. structural models : represent architecture as an organized collection of program components ii. framework models : identify repeatable architectural design framework that similar to the types of applications iii. dynamic models : address the behavioral aspects of the program architecture iv. process models : focus on the design of the business or technical process of a system v. functional models : represent functional hierarchy of a system 5. Information Hiding • Modules should be specified & designed so that information (procedure & data) contained within a module is inaccessible to other modules that have no need for such information. • The use of information hiding for modular systems provides the greatest benefits when modifications are required during testing and later, during s/w maintenance. 6. Functional Independence It is a direct outgrowth of modularity and the concepts of abstraction and information hiding. Cohesion-is a measure of the relative functional strength of a module. Coupling-is a measure of the relative interdependence among modules.