OOSD QUESTIONS
OOSD QUESTIONS
Object-Oriented Model
The object-oriented model is a programming paradigm that organizes software design around data,
or objects, rather than functions and logic. Objects are instances of classes, which define the
properties (attributes) and behaviors (methods) that the objects can have. Key principles include
encapsulation, inheritance, and polymorphism, which promote code reusability, modularity, and
abstraction.
2. Architectural Model
3. Multiple Inheritance
Multiple inheritance is a feature of some object-oriented programming languages that allows a class
to inherit characteristics and behaviors from more than one parent class. This can lead to complex
hierarchies and potential issues such as the "diamond problem," where ambiguity arises if two
parent classes define the same method. Some languages, like C++, support multiple inheritance,
while others, like Java, do not and instead use interfaces to achieve similar functionality.
5. SA/SD Structure
SA/SD stands for Structured Analysis and Structured Design. This methodology is used in software
engineering to analyze and design systems in a structured manner. SA focuses on understanding the
requirements and functionalities of the system, while SD emphasizes creating a blueprint for
implementation. Together, they provide a systematic approach to software development, ensuring
that all aspects of the system are considered.
6. Optimization of Design
Optimization of design refers to the process of improving a software system's architecture and code
to enhance performance, reduce resource consumption, and increase maintainability. This can
involve refactoring code, improving algorithms, and ensuring efficient data structures. The goal is to
create a system that not only meets functional requirements but also performs efficiently under
various conditions.
7. Late and Early Binding
Binding refers to the process of linking a procedure call to the code that will be executed. Early
binding occurs at compile time, where the method to be invoked is determined during compilation,
leading to faster execution. Late binding, on the other hand, occurs at runtime, allowing for more
flexibility and dynamic behavior, such as method overriding in polymorphism. Late binding is often
used in scenarios where the exact method to be called is not known until execution.
Emphasizes what the system should Emphasizes how the system will
Emphasis
do (functional requirements). be built (technical specifications).