3. 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.
4. 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
6. 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)
7. 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
8. 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.
10. 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
11. 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.