Software Architecture Interview Questions

Table of Contents

What is the definition of software architecture?

Software architecture means to describe overall design and structure of a computer system. To describe this system you can either use UML, free text, control flow diagram etc.

Can you explain different software development life cycles?

SDLC (System Development Life Cycle) is overall process of developing information systems through multi stage process systems from investigation of initial requirements through analysis, design, implementation, and maintenance. The days are gone when one COBOL programmer used to analyze, test, and implement software systems. Systems have become complex, huge team members are involved, architects, analyst, programmers, testers, users etc. To manage this number of SDLC models have been created.
Following are popular models, which are listed:-

  • Waterfall Model : This is the oldest model. It has sequence of stages; output of one stage becomes input of other.
  • Spiral Model: Spiral Model removes the drawback of waterfall model, by providing emphasis to go back and
    reiterate earlier stages a number of times as project progresses.
  • Build and Fix model: This is the way free-lancers work Write some code and keep modifying it until the customer is
    happy. This approach can be quite dangerous and risky.
  • Rapid prototyping Model: This model is also called as Rapid Application Development. The initial emphasis is on creating prototype that look and acts like the desired product. Prototype can be created by using tools, which is different from those used for final product
  • Incremental Model: In this model, we divide products into builds, where section of product are created and tested separately. Here errors are found in requirement phase itself, user feedback is taken for each stage and code is tested after it is written.

what is a definition of enterprise architecture?

Enterprise is a collection of organization which has common set of goals. Enterprise architecture defines the IT infrastructure architecture for the collection of organization with common set of goals.

What is TOGAF ?

TOGAF is a framework – a detailed method and a set of supporting tools – for developing enterprise architecture.

What is the difference Between OOA and OOD ?

OOA looks at the problem domain with the purpose of creating a model. OOA only creates a model and does not look in to the implementation details of the same.
OOD takes the model derived from OOA and get in to technical implementation details like transactions, language, platform etc.

In short OOA gives us a model while OOD defines the details technical implementation of the model.

what is round-robin?

In this the load balancer gives connection to the server in a round-robin manner.

What is OOP?

OOP is an approach towards software development. In this approach we think software as objects which interact with each other to complete a task. One of the main goals of OOP is to map software architecture with the real word. In real world we interact with objects and the object with other objects to accomplish a task. For instance currently you are currently interacting with the book object and the book is interacting with the pages object to accomplish the reading activity.

What are the main characteristic of OOP?

There are four main characteristics of OOP:-

  • Abstraction: – Abstraction filters un-necessary information from the user’s perspective. It just gives enough information to the user rather than giving him unnecessary information by which he can get confused.
  • Encapsulation: – Encapsulation separates an object interface from its implementation. It hides internal implementation details from the users.
  • Inheritance: – OOP is all about mapping with real world. One of the relationships in real world is parent child relationship. Inheritance is a methodology by which you can form new classes using existing classes as base.
  • Polymorphism: – Polymorphism means one object can exist in different forms. It refers to ability of the object to take different forms depending on situations.

What are abstract classes?

Abstract class is designed to act as a base class (to be inherited by other classes). Abstract class is a design concept in program development and provides a base upon which other classes are built. An abstract class is a special kind of class that cannot be instantiated.

What is UML?

Unified Modeling Language, a standard language for designing and documenting a system in an object-oriented manner. It has nine diagrams which can be used in design document to express design of software architecture.

What are class diagrams?

Class is basically a prototype which helps us create objects. Class defines the static structure of the project. A class represents family of an object. By using Class we can create uniform objects.

How do we represent private, public and protected in class diagrams?

In order to represent visibility for properties and methods in class diagram we need to place symbols next to each property and method as shown in figure ‘Private, Public and Protected’. ‘+’ indicates that it’s public properties/methods. ‘-‘indicates private properties which means it can not be accessed outside the class. ‘#’ indicate protected/friend properties. Protected properties can only be seen within the component and not outside the component.

What is Multiplicity?

Multiplicity can be termed as classes having multiple associations or one class can be linked to instances of many other classes.

Whatb is System entity and service class?

System entity class represents persistent information which is related to the system. For instance in the below figure ‘System entity and service class’ we have a system entity class which represents information about ‘loggedindate’ and ‘loggedintime’ of the system registry.
System service class come in two flavors one is it acts like a wrapper in the system entity class to represent behavior for the persistent system entity data. In the figure you can see how the ‘ClsAudit’ system entity is wrapped by the ‘ClsAuditSytem’ class which is the system service class. ‘ClsAuditSystem’ adds ‘Audit’ and ‘GetAudit’ behavior to the ‘ClsAudit’ system entity class.

Have Some Questions? Share with us

Leave a Comment

Your email address will not be published.

Scroll to Top