Professional Documents
Culture Documents
Design Concepts
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