Unit 6
Unit 6
Module 6
Domain-Driven Design (DDD)
Domain-Driven Design(DDD)
DDD provides a set of principles, patterns, and practices to help developers effectively
capture and express domain concepts in their software designs.
Domain? -> in a banking application, the domain includes concepts like accounts,
transactions, customers, and regulations related to banking operations.
Importance of Domain Knowledge->what if the system does not solve business needs?
“It is not the customer’s job to know what they want” – Steve Jobs
Strategic Design in Domain-Driven Design (DDD) focuses on defining the overall architecture and
structure of a software system in a way that aligns with the problem domain
Web Design
Backend Design
Simplicity and Clarity: Keep the interface simple to reduce cognitive load. Use clear navigation,
consistent layout, and familiar design patterns to enhance usability
Responsiveness: Ensure the application is adaptable to various devices and screen sizes by using
responsive design techniques like fluid grids and flexible images
Performance Optimization: Minimize loading times and resource consumption through techniques like
caching, compression, and lazy loading
Security: Implement robust security measures such as HTTPS, encryption, and authentication to protect
user data
Iterative Improvement: Continuously test and refine the application based on user feedback and
performance data
For lecture purposes only; please refrain from further distribution
WOU Classification: Restricted
Embedded System
Typical Components:
• Processor: microprocessor or a microcontroller.
• Memory: Embedded systems often use both volatile
(RAM) and non-volatile (ROM, flash) memory
• Input/Output Units: Facilitate interaction with
external devices through sensors, actuators, and
Embedded systems are specialized communication interfaces like USB or Ethernet
computing systems that are designed to • Sensors and Actuators: Sensors convert physical
perform dedicated functions within larger phenomena into electrical signals, while actuators
mechanical or electrical systems
perform actions based on processed data
Characteristics:
• Task-Specific
• Real-Time Operation
• Integration
• Resource Constraints
Platform Selection: Choose the appropriate hardware components that meet the functional and non-
functional requirements of the system
Modular Design: Divide the system into independent modules for easier development, testing, and
maintenance.
Resource Optimization: Efficiently manage memory, power, and processing resources to improve
performance and extend battery life
Security and Safety: Ensure the system is secure from unauthorized access and safe for users through
rigorous testing and validation
Thorough Testing: Conduct extensive testing at various stages (unit, integration, system) to ensure
reliability and functionality before deployment
Power Management
2. User-centered design: User interface design should be 2. Feedback: Feedback is significant in user
focused on the needs and preferences of the user. This interface design, as it helps users to understand the
involves understanding the user’s goals, tasks, and context results of their actions and confirms that they are
of use, and designing interfaces that meet their needs and making progress towards their goals. Feedback can
expectations. take the form of visual cues, messages, or sounds.
3. Consistency: Consistency is important in user interface 3. Accessibility: User interfaces should be designed
design, as it helps users to understand and learn how to use to be accessible to all users, regardless of their
an application. Consistent design elements such as icons, abilities. This involves considering factors such as
color schemes, and navigation menus should be used color contrast, font size, and assistive technologies
throughout the application. such as screen readers.
4. Simplicity: User interfaces should be designed to be 4. Flexibility: User interfaces should be designed to
simple and easy to use, with clear and concise language be flexible and customizable, allowing users to
and intuitive navigation. Users should be able to tailor the interface to their own preferences and
accomplish their tasks without being overwhelmed by needs.
unnecessary complexity.
For lecture purposes only; please refrain from further distribution
WOU Classification: Restricted
Objectives of CASE
• To increase productivity
• To help produce better quality software at lower cost.
Frameworks
Frontend
Frameworks Frameworks: Backend Mobile Full-stack
streamline the Frameworks: Development Frameworks:
development process Frameworks:
React: A JavaScript library Django: A Python-based
by providing pre- for building dynamic user framework for rapid
built components, interfaces, ideal for single- development with built-in Flutter: Google's UI toolkit Meteor.js: A JavaScript
libraries, and page applications. tools like ORM and for creating natively platform for real-time web
Angular: A full-fledged authentication. compiled apps across and mobile apps.
structures for platforms using a single
framework for scalable Express.js: A minimalist Ruby on Rails: Known for
building applications. web applications with two- codebase. its simplicity and speed in
Node.js framework for
Key examples way data binding and building APIs and web React Native: Allows developing RESTful web
include: dependency injection. applications. developers to build cross- applications.
Vue.js: Known for its platform mobile apps using
Laravel: A PHP framework
simplicity and flexibility, React and JavaScript.
with elegant syntax, ideal
suitable for both small and for complex web
large projects. applications.
• These tools focus on creating user interfaces (UI) and improving user
experience (UX):
• Figma: A collaborative design tool with real-time editing and
prototyping capabilities.
• Adobe XD: Integrates with Creative Cloud, offering advanced
prototyping features like auto-animation.
• Sketch: Popular among designers for its plugin ecosystem and design
libraries.