0% found this document useful (0 votes)
18 views3 pages

Tabij

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views3 pages

Tabij

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Design Concepts 1)Abstraction

o The process of hiding implementation details and showing only the essential features of
an object or system.

o Example: An API exposing functionality without revealing its internal workings.

2. SOS (Separation of Concerns)

o Dividing a system into distinct sections, each addressing a separate concern.

o Example: Frontend and backend separation in a web application.

3. Modularity

o Breaking a system into smaller, manageable, and independent modules that can function
separately and be reused.

o Example: Dividing software into authentication, payment, and user management


modules.

4. Coupling

o The degree of dependency between modules. Lower coupling is preferable to increase


flexibility.

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.

o Example: A module focused solely on user profile management.

6. Component-Level Design

o Designing each software component to perform specific tasks as part of the overall
system.

o Example: Designing a shopping cart component in an e-commerce application.

7. Architecture

o The overall structure of a system, defining its components, their relationships, and how
they interact.

o Example: Using Model-View-Controller (MVC) as the architectural pattern.

Testing Concepts 1 )Categorization

o Dividing testing into types and levels to ensure quality.

Example: Functional vs. Non-functional testing; Unit vs. System testing.


2. Black Box Testing

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.

3. White Box Testing

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.

4. Grey Box Testing

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

o Hides complexity by exposing only essential details.

o Focuses on "what" an object or function does, not "how."

o Example: Using an interface in object-oriented programming (OOP).

2. Separation of Concerns (SOS)

o Divides a system into distinct parts with specific responsibilities.

o Reduces complexity and improves maintainability.

o Example: Separating UI logic from backend data processing.

3. Modularity

o Divides a system into smaller, manageable modules.

o Each module can be developed, tested, and maintained independently.

o Example: A payment module in an e-commerce application.

4. Coupling

o Describes the level of dependency between modules.

o High Coupling: Modules are tightly interconnected (undesirable).

o Low Coupling: Modules work independently (desirable).

o Example: APIs reduce coupling by standardizing communication.

5. Cohesion
o Measures how closely related the functions within a module are.

o High Cohesion: A module focuses on a single task (desirable).

o Low Cohesion: A module handles unrelated tasks (undesirable).

o Example: A user profile module only manages user-related data.

6. Component-Level Design

o Focuses on designing individual components in a system.

o Each component has a specific role within the architecture.

o Example: Designing a "search" component in a library management system.

7. Architecture

o Provides a blueprint for the overall system structure.

o Defines how components interact and work together.

o Example: Using a microservices architecture for scalability and fault isolation.

Testing Concepts Categorization

Testing is divided into:

▪ Functional Testing: Ensures features work as expected.

▪ Non-Functional Testing: Tests performance, scalability, and security.

o Levels include Unit Testing, Integration Testing, System Testing, etc.

2. Black Box Testing

o Focuses on inputs and outputs without knowing the internal logic.

o Ensures functionality aligns with requirements.

o Example: Verifying if a login page processes credentials correctly.

3. White Box Testing

o Involves testing with full knowledge of the internal code.

o Targets code logic, paths, and edge cases.

o Example: Writing test cases for loops and conditionals in code.

4. Grey Box Testing

o Combines elements of Black Box and White Box testing.

o Testers have partial knowledge of the system's internals.

o Example: Testing a web application with some insight into database operations.

You might also like