Explore tens of thousands of sets crafted by our community.
Object-Oriented Analysis and Design
18
Flashcards
0/18
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.
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.
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.
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.
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.
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.
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.
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.
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.
Dynamic Binding
Dynamic binding is the process of resolving method calls at runtime. Benefit: It enables polymorphism and more flexible and extensible code.
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.
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.
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.
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.
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.