Tabij
Tabij
o The process of hiding implementation details and showing only the essential features of
an object or system.
3. Modularity
o Breaking a system into smaller, manageable, and independent modules that can function
separately and be reused.
4. Coupling
o Example: A loosely coupled microservices architecture where services interact via APIs.
5. Cohesion
o The degree to which the elements of a module belong together. High cohesion is
desirable.
6. Component-Level Design
o Designing each software component to perform specific tasks as part of the overall
system.
7. Architecture
o The overall structure of a system, defining its components, their relationships, and how
they interact.
o Testing without knowing the internal code or logic, focusing only on inputs and outputs.
o Example: Checking if a login page accepts valid credentials and denies invalid ones.
o Testing with knowledge of the internal logic and code of the system.
o Example: Writing unit tests for a sorting algorithm to check edge cases.
o A mix of Black Box and White Box testing, with partial knowledge of the system.
o Example: Testing a web application with some knowledge of the database schema to
ensure consistency.
Design Concepts
1. Abstraction
3. Modularity
4. Coupling
5. Cohesion
o Measures how closely related the functions within a module are.
6. Component-Level Design
7. Architecture
o Example: Testing a web application with some insight into database operations.