Explore tens of thousands of sets crafted by our community.
Object-Oriented Analysis and Design
18
Flashcards
0/18
Encapsulation
Encapsulation is the bundling of data with the methods that operate on that data. Benefit: Encapsulation helps in controlling the access to the data and prevents unintended interference.
Abstraction
Abstraction is the concept of hiding the complex reality while exposing only the necessary parts. Benefit: It simplifies the design of complex systems by hiding the unnecessary details from the user.
Inheritance
Inheritance is a mechanism by which a new class is derived from an existing class. Benefit: It promotes code reuse and establishes a natural hierarchy for objects.
Polymorphism
Polymorphism is the ability of different object types to respond to the same message (or method call) in different ways. Benefit: It allows for implementing and interacting with different types through a common interface.
Dynamic Binding
Dynamic binding is the process of resolving method calls at runtime. Benefit: It enables polymorphism and more flexible and extensible code.
Static Binding
Static binding refers to the compile-time resolution of method calls. Benefit: It improves performance as method calls are determined at compile time.
Class
A class is a blueprint for creating objects (a particular data structure), providing initial values for state (member variables or attributes), and implementations of behavior (member functions or methods). Benefit: Classes provide a modular and reusable structure to model real-world entities.
Object
An object is an instance of a class that encapsulates data and behavior related to that data. Benefit: Objects are the building blocks of OOAD and enable the representation of real-world entities.
Interface
An interface is a contract that defines the set of methods that must be implemented by a class. Benefit: Interfaces ensure that certain methods will be available on an object, promoting a consistent method of interaction.
Message Passing
Message passing involves the sending of a message to an object to invoke behavior (a method). Benefit: It facilitates communication between objects and defines a clear mechanism for interaction in a system.
Association
Association is a relationship between two or more objects where all objects have their own lifecycle and there is no owner. Benefit: The association represents real-world relationships and collaborations between objects.
Aggregation
Aggregation is a specialized form of association where objects have a whole-part relationship, but the parts can exist independently. Benefit: Aggregation allows for a clear representation of the whole-part hierarchy without strict dependency.
Composition
Composition is a strong form of aggregation where the parts cannot exist independently of the whole. Benefit: Composition establishes a strong lifecycle dependency which is good for modeling a strong ownership relationship.
Dependency
Dependency is a relationship where a change in one object may affect another object. Benefit: It represents one-way relationships where one object depends on the functionality or state of another.
Coupling
Coupling refers to the degree of direct knowledge one class has of another. Benefit: Low coupling reduces the impact of changes, leading to more maintainable and extensible systems.
Cohesion
Cohesion refers to the degree to which the elements inside a module belong together. Benefit: High cohesion within modules results in better modularization, enhanced reusable code, and simplifies maintenance tasks.
Design Patterns
Design patterns are typical solutions to commonly occurring problems in software design. Benefit: They provide a standard terminology and are specific to particular scenarios, aiding in more efficient problem-solving.
Unified Modeling Language (UML)
Unified Modeling Language (UML) is a standardized modeling language used to specify, visualize, construct, and document the artifacts of an object-oriented system. Benefit: UML provides a way to design systems architecturally, offering a language common to both business and technical stakeholders.
© Hypatia.Tech. 2024 All rights reserved.