Decomposition | Modular Programming |
Abstraction | Top-Down Design |
Hierarchy | Modularity |
Bottom-Up Processing | Divide And Conquer |
Dividing a program into separate modules or parts, each of which is responsible for a specific piece of functionality. | The process of dividing a complex problem or system into smaller, more manageable subproblems or components. |
Starting with a high-level overview and breaking the problem down into more detailed sub-tasks | Simplifying complex concepts or systems by focusing on essential features while ignoring unnecessary details. |
Breaking a system into smaller, loosely-coupled components that can be independently developed and maintained. | The arrangement of elements or components into a structure that mirrors their relative significance or connections. |
Breaking a problem into smaller, more manageable parts, solving them individually, and then combining the solutions. | starting with small details and gradually building up to a complete understanding. |
Decentralization | Component |
Subprogram | Function |
Procedure | Return Statement |
Call Statement | Reusability |
A modular, reusable, and self-contained part of a larger system. | The distribution of power, authority, and decision-making to lower-level entities or individuals. |
A subroutine that executes specific tasks within a program and provides a returned value when called. | A program module that performs a specific task within a larger program. |
A command used in a subprogram to show the specific value that will be given back to the main program | A subprogram that is callable within a program and executes a specific task, but does not return a value. |
The ability to use existing code in multiple programs or contexts. | A command in a program that activates a subprogram allowing it to run and perform its tasks. |
Maintainability | Testing |
Readability | Efficiency |
Data Abstraction | Abstract Data Type |
Abstraction Layer | Procedural Abstraction |
The process of executing a program to identify errors. | The ease with which modifications can be made to a codebase. |
The ability to execute tasks with optimal resource usage. | How easily the code can be understood by humans. |
A data type that specifies only the functionality and not the specific way it is implemented. | The technique of simplifying intricate data by offering a high-level interface. |
A technique that conceals the inner workings of a procedure and reveals only the essential information. | A simplified interface is provided to hide the complexity of lower-level components. |
Class | Object |
Encapsulation | Inheritance |
Polymorphism | |
An instance of a class that contains both data and methods. | A blueprint for creating objects that encapsulates data and behavior. |
A mechanism to create a new class using properties and behaviors of an existing class. | The bundling of data and methods that operate on that data within a single unit. |
The ability to present the same interface for different underlying data types. | |