Important Object Software Engineering Interview questions.

  1. What is an object?

    Answer: An object is anything that exists in the real world, such as a person, a place or a thing. It can be any noun or noun phrase, either physical or conceptual. An object contains data and functions as its integral parts. The data integral to an object are called attributes of the object and the functions are called methods.
  2. Differentiate between class and object.

    Answer: A class is a group of similar objects. It is a blueprint that is used to create objects. A single object is simply an instance of a class.
  3. What is Inheritance?

    Answer: Inheritance is the process by which objects acquire the properties of objects of other class. When two classes have parent child relationship, the child class (subclass) inherits the properties of the parent class (super class). Inheritance is specified by 'Is-A Relationship'.
  4. What is meant by Encapsulation in OOSD?

    Answer: Encapsulation means containing or packaging data within an object. Here data and procedures are tied together to prevent them from external misuse. Encapsulation also means data hiding, which is the process of hiding all aspects of an object that do not contribute to its essential characteristics.
  5. What is meant by Encapsulation in the context of object technology?

    Answer: Polymorphism means the ability to take more than one form. It means the same operation behaving differently on different classes. Polymorphism is achieved by method overloading and method overriding.
  6. What are different types of relationships?

    Answer: There are three main types of relationships, as given below.
    C) Is-A Relationship: This relationship specifies inheritance.
    D) Has-A Relationship: This relationship is used for Aggregation. Here, a class contains another class as its member.
    E) Uses-A Relationship: This relationship represents Association.
  7. What is Object Identifier (OID)?

    Answer: Whenever an object is created, it is uniquely identified in the system by a unique code called OID or sometimes as unique identifier (UID). OID is never changed or deleted even if the objects name or its location is changed or the object is deleted.
  8. Write about the four phases in OMT?

    Answer: OMT consists of four phases. These are:
    1. Analysis: In this phase an abstraction of what the desired system must do is made in terms of attributes and operations.
    2. System design: The overall architecture and high-level decisions about the system are made.
    3. Object design: It produces a design document, consisting of detailed objects static, dynamic and functional models.
    4. Implementation: This activity produces reusable, extendible, robust code.
  9. What is object model of OMT?

    Answer: The object model describes the static structure of the objects in the system and their relationships. It represents the data aspects of the system.
  10. What are different diagrams used in Booch methodology?

    Answer: Booch's methodology uses six types of diagrams to depict the underlying design of a system. These are: (1) Class Diagram, (2) Object Diagram, (3) State Transition Diagram, (4) Module Diagram, (5) Process Diagram and (5) Interaction Diagram.
  11. What are Use-cases?

    Answer: Use-cases are scenarios for understanding the user requirements. A use-case is depicted through the use-case diagram. The use-case diagram has mainly two types of components, namely, 'actors' and 'use-cases'. Actors in the use-case diagram are represented by stick men and use-cases by ovals.
  12. Write a short note on Objectory.

    Answer: Jacobson along with others developed a complete set of tools required for OO software engineering. This was called object factory for software development and is often referred to as ObjectOry or 'Objectory'. It is built around several models. These are: Use-case model, Requirement model, Domain object model, Analysis model, Design model, Implementation model and Test model.
  13. Why do we go for the unified approach?

    Answer: The unified approach combines the best practices, processes, methodologies and guidelines of different OO methodologies. It uses UML (Unified Modeling Language) notations and diagrams that are considered as universal standard in OO system development.
  14. What is UML?

    Answer: UML stands for Unified Modeling Language. It is a language for specifying, constructing, visualizing and documenting the software system and its components. It is accepted by Object Management Group (OMG) as standard for modeling in OOSD.
  15. Write the primary goals of UML.

    Answer: The primary goals of UML in the design are as follows:
    • Provide users a ready-to-use, expressive visual modeling language.
    • Provide extensibility and specialization mechanisms to extend the core concepts.
    • Be independent of any particular programming language or development process.
    • Encourage the use of OO tools and their demand in the market.
    • Support higher-level development concepts.
    • Integrate best practices and methodologies.
  16. Enumerate different diagrams of UML.

    Answer: Different diagrams used in UML are: (1) Use-case diagram, (2) Class diagram, (3) Object diagram, (4) Activity diagram, (5) State diagram, (6) Sequence diagram, (7) Collaboration diagram, (8) Component diagram and (9) Deployment diagram.
  17. What are various approaches for identifying classes?

    Answer: There are different alternative approaches for identifying classes. These are: (1) Noun phrase approach, (2) Classical approach, (3) Function point (FP) approach, (4) Domain analysis approach, (5) Structural approach, (6) CRC approach and (7) Use-case-driven approach.
  18. What do you mean by relevant, fuzzy and irrelevant classes?

    Answer: In the noun phrase approach the list of nouns is divided into three categories:
    • Relevant classes: These classes have a purpose. Each class must have a purpose and should be clearly defined and necessary.
    • Irrelevant classes: These classes have no purpose and are unnecessary. It is safe to scrap these irrelevant classes.
    • Fuzzy classes: Fuzzy classes are those classes that we are not sure about. These classes cannot be determined as either relevant or irrelevant and thus considered as fuzzy.
  19. What are the sources used for finding the candidate classes?

    Answer: Some sources used for finding candidate class and object are: (1) People - who carry out some functions, (2) Places - set aside for people or things, (3) Devices - with which the application interacts, (4) Organization, (5) Concepts, principles or ideas, (6) Events - that happen, (7) Other external systems with which the application interacts and (8) Roles played by different roles, the users.
  20. What is CRC?

    Answer: CRC stands for class, responsibility and collaborator. It is a technique used for identifying the attributes and methods of classes.
  21. Write the three steps of the CRC process?

    Answer: The CRC process consists of three steps as given below.
    1. Identify classes' responsibilities (and identify classes)
    2. Assign responsibilities
    3. Identify collaborators
  22. How can we identify the methods?

    Answer: Methods usually correspond to queries about attributes and sometimes association of objects. Methods determine the value of the attributes. For example, if 'cost' is an attribute of a product, then getCost() can be a corresponding method.
  23. List the main activities of the OO design process?

    Answer: The main activities of the OO design process are listed as under.
    • Designing classes (their attributes, methods, associations, structures etc.)
    • Designing the access layer
    • Designing the user interface
    • Testing user satisfaction and usability
    • Iteratively refining the design
  24. Define axiom? What are the two design axioms applicable to the OO design?

    Answer: An axiom is a fundamental truth that always is observed to be valid. The axioms may not be proven or derived but they cannot be invalidated by counterexamples or exceptions. There are two design axioms applied to the OO design.
    • Axiom 1: The independence axiom. Maintain the independence of components.
    • Axiom 2: The information axiom. Minimize the information content of the design.
    F) Axiom 1 deals with relationships between system components and Axiom 2 deals with the complexity of design.
  25. Define corollary? Give an example of a corollary derived from design axioms.

    Answer: A corollary is a proposition that follows from an axiom or another proposition that has been proven. 'Uncoupled design with less information content' is an example of a corollary derived from design axioms.
  26. What are different types of coupling in the OO design?

    Answer: The OO design has three types of coupling. These are:
    1. Interaction Coupling: It is a measure of the number of message types an object must send to another object and the number of parameters passed with those messages.
    2. Identity Coupling: It refers to the level of connectivity in a design. For example, in case of a reference from one object to another, the object must know the identity of the other object.
    3. Inheritance Coupling: It refers to the coupling between super-classes and sub-classes. A sub-class is coupled to its super-class in terms of attributes and methods.
  27. What do you mean by cohesion in the OO design?

    Answer: Cohesion can be defined as the interactions within a single object or software component. It reflects the 'single-purpose-ness' of an object.
  28. Define anti-patterns.

    Answer: An anti-pattern represents a worst practice while a pattern represents a best practice. Anti-patterns come in two types:
    1. Those that describe a bad solution to a problem resulting in a bad situation
    2. Those that describe how to get out of a bad situation
  29. Write the differences between design patterns and frameworks.

    Answer: Design patterns are more abstract, are smaller architectural elements and are less specialized than frameworks. A framework is executable software whereas design patterns represent knowledge and experience about the software.


Feel free to contact the admin for any suggestions and help.