0% found this document useful (0 votes)
17 views

OOSD QUESTIONS

Uploaded by

medhavib05
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)
17 views

OOSD QUESTIONS

Uploaded by

medhavib05
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

1.

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

An architectural model in software engineering refers to the high-level structure of a software


system. It defines the system's components, their relationships, and how they interact. Architectural
models help in understanding the system's design, guiding the development process, and ensuring
that the system meets its requirements. Common architectural styles include layered architecture,
microservices, and client-server models.

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.

8. Private and Public Member Functions

In object-oriented programming, member functions (methods) can be designated as private or


public, determining their accessibility. Public member functions can be accessed from outside the
class, allowing interaction with the object's data. Private member functions, however, are restricted
to the class itself, promoting encapsulation by hiding implementation details and protecting the
object's state from external interference. This distinction is crucial for maintaining the integrity of the
object and controlling how its data is accessed and modified.

(i) Late Binding vs. Early Binding


Feature Early Binding Late Binding

Method resolution occurs at


Definition Method resolution occurs at runtime.
compile time.

Generally faster due to


Performance Slower due to runtime resolution.
compile-time resolution.

Less flexible; method calls More flexible; allows for dynamic


Flexibility
are fixed at compile time. method calls.

Commonly used in statically Commonly used in dynamically typed


Use Case
typed languages. languages and polymorphism.

Direct method calls in C++ or Virtual methods in C++ or method


Example
Java. overriding in Java.

Error Errors can be caught at


Errors may only be caught at runtime.
Detection compile time.
(ii) Structured Analysis vs. Structured Design
Feature Structured Analysis Structured Design

Focuses on understanding and Focuses on creating a blueprint for


Purpose
defining system requirements. system implementation.

Involves gathering requirements, Involves defining system


Process modeling data flow, and identifying architecture, modules, and
processes. interfaces.

Produces models such as data flow Produces design specifications,


Output diagrams (DFDs) and entity- including structure charts and
relationship diagrams (ERDs). module definitions.

Emphasizes what the system should Emphasizes how the system will
Emphasis
do (functional requirements). be built (technical specifications).

Structure charts, pseudocode, and


Tools Used DFDs, ERDs, and use case diagrams.
design patterns.

Detailed design of system


Level of High-level overview of system
components and their
Detail requirements.
interactions.

You might also like