_____ is the process of translating requirements into a blueprint for building a
software system.
Software design
It defines how the software will be structured, how components interact, and
how user needs will be met effectively
Software Design Concept
Breaking down a software system into smaller, manageable parts
Modules
Promotes reuse and maintainability.
Modules
____ in software design refers to dividing a software system into smaller, self-contained
units called modules
Modularity
A module is like a “_____” of software
building block
Modularity design approach is based on the principle of “____”, making complex systems easier to understand and manage
Divide and conquer
Characteristics of a Good Module
Each module should do one specific task well
Cohesion
Modules should minimizer dependencies on other modules
Low coupling
Clear input and output between modules
Well-defined interfaces
Benefits of Modularity
Modules can be reused across multiple applicationms
Reusability
Error as easier to locate and fix within specific module
Maintainability
Different teams can work on different modules at the same time
Parallel Development
Modules can be tested independently before integration
Testing and Debuggin
New features can be aded by simply plugging in new modules
Scalability
Modularity in Software Design Principles
Breaking programs into smaller procedures or functions
Structured programming
Classes and objects represent modules with attributes and behaviors
Object Oriented Programming
_____ : Software built using interchangeable components (e.g.,
plugins).
Component-Based Design
_____ : Applications divided into independent services
communicating via APIs.
Microservices Architecture
Hiding unnecessary details and showing only essential features.
Abstraction
Helps developers focus on what a module does rather than how it does it.
Abstraction