INTERVIEW QUESTIONS Set-2
does a name clash occur?
A name clash occurs when a name is defined in more than one place. For example.,
two different class libraries could give two different classes the same name. If
you try to use many class libraries at the same time, there is a fair chance
that you will be unable to compile or link the program because of name clashes.
Oriented : Essentials and History
An object-oriented programming language (also called an OO language) is one that
allows or encourages, to some degree, object-oriented programming methods.
Simula (1967) is generally accepted as the first language to have the primary
features of an object-oriented language. It was created for making simulation
programs, in which what came to be called objects were the most important
information representation. Smalltalk (1972 to 1980) is arguably the canonical
example, and the one with which much of the theory of object-oriented
programming was developed.
OO languages can be grouped into several broad classes, determined by the extent
to which they support all features and functionality of object-orientation and
objects: classes, methods, polymorphism, inheritance, and reusability.
* Languages called ?pure? OO languages, because everything in them is
treated consistently as an object, from primitives such as characters and
punctuation, all the way up to whole classes, prototypes, blocks, modules, etc.
They were designed specifically to facilitate, even enforce, OO methods.
Examples: Smalltalk, Eiffel, Ruby.
* Languages designed mainly for OO programming, but with some procedural
elements. Examples: Java, Python.
* Languages that are historically procedural languages, but have been extended
with some OO features. Examples: C++, Fortran 2003, Perl.
* Languages with most of the features of objects (classes, methods, inheritance,
reusability), but in a distinctly original, even elegant, form. Examples:
Oberon, and successor Oberon-2.
* Languages with abstract data type support, but not all features of
object-orientation, sometimes called object-based languages. Examples: Modula-2
(with excellent encapsulation and information hiding), Pliant.
Inheritance and polymorphism are usually used to reduce code bloat. Abstraction
and encapsulation are used to increase code clarity, quite independent of the
other two traits.
between the message and method.
* Objects communicate by sending messages to each other.
* A message is sent to invoke a method.
* Provides response to a message.
* It is an implementation of an operation.
is a dangling pointer?
A dangling pointer arises when you use the address of an object after
its lifetime is over. This may occur in situations like returning
addresses of the automatic variables from a function or using the
address of the memory block after it is freed. The following
code snippet shows this:
ptr = new int(i);
cout << "The value is " << *ptr;
void SomeFunc(Sample x)
cout << "Say i am in someFunc " << endl;
Sample s1 = 10;
}In the above example when PrintVal() function is
called it is called by the pointer that has been freed by the
destructor in SomeFunc.
between a template class and class template.
Template class: A generic definition or a parameterized class not
instantiated until the client provides the needed information. It?s
jargon for plain templates.
Class template: A class template specifies
how individual classes can be constructed much like the way a class
specifies how individual objects can be constructed. It?s jargon for
is a modifier?
A modifier, also called a modifying function is a member function that changes
the value of at least one data member. In other words, an operation that
modifies the state of an object. Modifiers are also known as ?mutators?.
Example: The function mod is a modifier in the following code snippet:
do u meant by ?SBI? of an object?
SBI stands for State, Behavior and Identity. Since every object has the above
State: It is just a value to the attribute of an object at a particular time.
Behaviour:It describes the actions and their reactions of that object.Identity:
An object has an identity that characterizes its own existence. The identity
makes it possible to distinguish any object in an unambiguous way, and
independently from its state.
the class representation of Booch, Rumbaugh and UML?
If you look at the class representation of Rumbaugh and UML, It is some what
similar and both are very easy to draw.
unified method and unified modeling language are same or different?
Unified method is convergence of the Rumbaugh and Booch. Unified modeling lang.
is the fusion of Rumbaugh, Booch and Jacobson as well as Betrand Meyer (whose
contribution is ?sequence diagram?). Its? the superset of all the
is meant by ?method-wars??
Before 1994 there were different methodologies like Rumbaugh, Booch, Jacobson,
Meyer etc who followed their own notations to model the systems. The developers
were in a dilemma to choose the method which best accomplishes their needs. This
particular span was called as ?method-wars?
Aggregation and containment?
Aggregation is the relationship between the whole and a part. We can
add/subtract some properties in the part (slave) side. It won?t affect the
whole part. Best example is Car, which contains the wheels and some extra parts.
Even though the parts are not there we can call it as car. But, in the case of
containment the whole part is affected when the part within that got affected.
The human body is an apt example for this relationship. When the whole body dies
the parts (heart etc) are died.
generalization is very strong?
Even though Generalization satisfies Structural, Interface, Behaviour
properties. It is mathematically very strong, as it is Antisymmetric and
Transitive. Antisymmetric: employee is a person, but not all persons are
employees. Mathematically all As? are B, but all Bs? not A.
do you meant by static and dynamic modeling?
Static modeling is used to specify structure of the objects that exist in the
problem domain. These are expressed using class, object and USECASE diagrams.
But Dynamic modeling refers representing the object interactions during runtime.
It is represented by sequence, activity, collaboration and statechart diagrams
is meant by software development method?
Software development method describes how to model and build software systems in
a reliable and reproducible way. To put it simple, methods that are used to
represent ones? thinking using graphical notations.
do you meant by active and passive objects?
Active objects are one which instigate an interaction which owns a thread and
they are responsible for handling control to other objects. In simple words it
can be referred as client.
Passive objects are one, which passively waits for the message to be processed.
It waits for another object that requires its services. In simple words it can
be referred as server.
persistent & non-persistent objects?
Persistent refers to an object?s ability to transcend time or space. A
persistent object stores/saves its state in a permanent storage system with out
losing the information represented by the object.
A non-persistent object is said to be transient or ephemeral. By default objects
are considered as non-persistent.
are the steps involved in designing?
Before getting into the design the designer should go through the SRS prepared
by the System Analyst. The main tasks of design are Architectural Design and
Detailed Design. In Architectural Design we find what are the main modules in
the problem domains Detailed Design we find what should be done within each
do you mean by analysis and design?
Analysis: It is the process of determining what needs to be done before how it
should be done. In order to accomplish this, the developer refers the existing
systems and documents. So, simply it is an art of discovery.
Design: It is the process of adopting/choosing the one among the many, which best
accomplishes the users needs. So, simply, it is compromising mechanism.