Upload
slideshare
View
1.384
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Design Process and Concepts
Saranya.VAP/CSE,
Sri Vidya College of Engineering & Technology,Virudhunagar
Design Specification Modules
• Data Design• Architectural Design• Interface Design• Procedural Design
Design Languages
• O-O Paradigm– Use Case Diagram
• Functional Requirements of the system• Actors
– Class Diagram• Static structure of the system and relationships and
association between the classes.
– State Diagram• Show the permissible states and the transitions.
– Sequence Diagram• Show the temporal dependencies between different
actions and objects.
Fundamental software Design concepts
• Abstraction– Procedural– Data abstraction
• Refinement (improve the design component)• Modularity• Software Architecture• Control Hierarchy or Program Structure • Structure Partitioning• Data Structure• Software Procedure• Information Hiding
Modular Design
Modular Design Method Evaluation Criteria
• Modular Decomposability (problem to sub problem)
• Modular composability (reuse of existing modules)
• Modular Understandability• Modular Protection (minimize the process
errors)• Modular Continuity (module changes
minimized)
Control Terminology
• Span of control : (number of levels control within the product)
• Depth (distance between top and bottom modules)
• Fan-Out or Width: Number of modules controlled by particular module.
• Fan-in: Number of modules control the particular module.
• Visibility• Connectivity
Effective Modular Design
• Functional dependency– Should have high cohesion and low coupling
• Cohesion– Module focus on just one thing
• Coupling– Module is connected to other modules and to the
outside world.
Design Heuristic
Design heuristic for effective modularity
• Evaluate the first iteration (reduce coupling and increase cohesion)
• Minimize the structure with high fan out• Keep the scope of the effect• Reduce complexity• Predictable functions
Ten Heuristic for User Interface Design
• Visibility of system status• Match between the system and the real world• User control and freedom• Consistency and standards• Error prevention• Recognition rather than recall• Flexibility and efficiency of use• Aesthetic (artistic) and minimalist design• Help users recognize, diagnose and recover from errors.• Help and documentation.