Design Principles and Patterns
Design Principles and Patterns
• Separation of Concerns
⚬ Dividing a system into distinct sections that handle
different tasks minimizes interdependencies and enhances
clarity
• Scalability
⚬ A well-designed system can accommodate growth, whether
in terms of user load, functionality, or data volume
OVERVIEW OF SOFTWARE
DESIGN PATTERNS
Software design patterns provide standard solutions to
recurring design problems. They offer a common vocabulary
for developers and help create systems that are easier to
understand and maintain. Common design patterns include:
• User Research
⚬ Gathering insights about user behaviors, preferences, and pain
points
• Iterative Design
⚬ Continuously refining prototypes based on user feedback
• Usability Testing
⚬ Ensuring that the design is intuitive and meets user expectations
• Feedback Loops
⚬ Engaging with users throughout the development process to
validate design decisions
INCLUSIVE AND ACCESSIBLE
(Aligned with SDG 10)
Inclusive design aims to accommodate a diverse range of users, including
those with disabilities or those from different cultural bachgrounds. Accessible
design is a key component of this, ensuring that everyone can use the software
regardless of their physical or cognitive abilities. Key practices include:
• Adhering to Standards
⚬ Following guidelines such as the Web Content Accessibility
Guidelines (WCAG) to ensure accessible interfaces
• Multiple Modalities
⚬ Providing alternatives such as text-to-speech, keyboard
navigation, and adjustable fonts for users with different needs
• User Testing with Diverse Groups
⚬ Involving users from various demographics in the testing phase
to uncover and address potential accessibility issues
Aligning with SDG 10 (Reduced Inequalities), inclusive design not only makes software more accessible but
also promotes social equity by ensuring that technology benefits all segments of society.
APPLICATION
In practice, the application of design patterns can
dramatically improve the quality and maintainability
of a system. For example:
SCENARIOS
notification systems and live feeds, allowing
objects to communicate changes efficiently
In practice, the application of design patterns can
OF DESIGN
• Microservices Architecture
⚬ Employed by companies like Amazon and Netflix,
microservices break down large applications into
PATTERNS IN
smaller, independently deployable services. This
improves scalability, fault tolerance, and the ability to
deploy updates without affecting the entire system
• Inclusive Design Practices