Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 14

Design Concepts

• Abstraction
• Modularity
• Architecture
• Refinement
• Pattern
• Information Hiding
• Functional Independence
• Refactoring
• Design Classes
Abstraction
• To cope up with the complexity
• To refine the S/W solution.
• Higher level  Broad terms
• Lower level  Detailed description
• Procedural Abstraction
• Procedure is hidden
• E.g., Search the record
• Data Abstraction
• Collection of data object is represented.
• E.g., Search the record  ID, Name, Address
Modularity
• Divided into separately named and addressable components 
Modules
• Monolithic software
• Problem A  More complexity  More Effort, Time
• Problem B  Less complexity  Less Effort, Time
• Divide and Conquer strategy
Meyer defines 5 Criteria
• Modular Decomposability
• Modular Composability
• Modular Understandability
• Modular Continuity
• Modular Protection
Importance
• Separate, Distinct module
• I/P, O/P well defined
• Test independently
• Reused
• Large projects  Easy to monitor and control
Architecture
• Overall structure
• Components interaction
• Provides basic framework
• Models
• Structural
• Framework
• Dynamic
• Process
• Functional
Refinement
• Elaboration
• Top-down strategy  Niklaus Wirth
• Elaborate low level details
Pattern
• Problem  Solution
• Reusable
• Current work
• Solve similar kind of problem
Information Hiding
• Other modules cannot access the information
• Avoids errors
• Changes made without affecting the other module
Functional Independence
• Independent modules
• Cohesion
• Only one task at a time
1. Coincidentally cohesive  Loosely related
2. Logically  Logically related
3. Temporal  Specific time span
4. Procedural  Specific order
5. Communicational  Share the data
• Coupling
• How the modules are connected; Interconnection
1. Data  Data interaction
2. Control Share related control data
3. Common  global data sharing
4. Content Using data from another module
Refactoring
• Changing a software system No change in external behavior;
Internal structure is improved.
• BENEFITS:
• Redundancy
• Inefficient algorithms
• Inaccurate DS
• Design failures
Design Classes
• Describe elements of problem domain from user point of view
• Five types
1. UI Class Visual representation
2. Business Domain  Attributes, Services
3. Process  Lower level business abstractions
4. Persistent  Retaining
5. System  Complete and efficient, Primitiveness, High cohesion,
Low coupling

You might also like