Interview Tips for Software Engineer

Interview Tips for Software Engineer

1) What are the important categories of software?

  • System software
  • Application software
  • Embedded software
  • Web Applications
  • Artificial Intelligence software
  • Scientific software.

2) What is the main difference between a computer program and computer software?

A computer program is a piece of programming code. It performs a well-defined task. On the other hand, the software includes programming code, documentation and user guide.

3) What is software re-engineering?

It is a process of software development which is done to improve the maintainability of a software system.

4) Describe the software development process in brief:

The software development is a life cycle is composed of the following stages:

  • Requirement analysis
  • Specification
  • Software architecture
  • Implementation
  • Testing
  • Documentation
  • Training and support
  • Maintenance

5) What SDLC models are available?

Waterfall Model, Spiral Model, Big-bag model, Iterative Model, and V- Model are some of the famous SDLC models.

6) What is verification and validation?

Verification:

Verification is a term that refers to the set of activities which ensure that software implements a specific function.

Validation:

It refers to the set of activities which ensure that software that has been built according to the need of clients.

7) In software development process what is the meaning of debugging?

Debugging is the process that results in the removal of error. It is a very important part of the successful testing.

8) How can you make sure that your code is both safe and fast?

In the software, development security is always first. So if the execution of the program is slow, then try to identify the reason(s) to its time complexity.

9) Name two tools which are used for keeping track of software requirements?

There many ways to keep track of requirements.

Two commonly used are:

  • Make a requirement specifications document to list all of the requirements.
  • Create an excel sheet listing the requirement, type, dependency, priority, etc.

10) What is the main difference between a stubs and a mock?

A stub is a minimal implementation of an interface which generally returns hardcoded data while a mock usually verifies outputs against expectations. Those expectations are set in the test.

11) What language do you like to write programming algorithms?

Every developer has their views when it comes to the programming language choices. Though, one should prefer high-level languages because they are dynamic. Like C and C++ languages.

12) How to find the size of a software product?

The size of software product can be calculated using by following two methods

  • Counting the lines of delivered code
  • Counting delivered function points

13) What are function points?

Function points are the features which are provided by the software product. It is considered as a most important measurement for software size.

14) What are software project estimation techniques available?

Most widely used estimation techniques are:

  • Decomposition technique
  • Empirical technique

15) What is feasibility study?

It is a measure to find out how practical and beneficial the software project development will prove to the organization. The software analyzer conducts a study to know the economic, technical and operational feasibility of the project.

  1. Economic:?It includes the cost of training, cost of additional and tools and overall estimation of costs and benefits of the project.
  2. Technical:?It evaluates the technical aspect. Is it possible to develop this system? Assessing the suitability of machine(s) and OS on which software will execute, knowledge of the software development and tools available for this project.
  3. Operational:?Here the analyst needs to assess that the organization will able to adjust smoothly to the changes done as per the demand for the project. Is the problem worth solving at the estimated cost?

After studying all this, the final feasibility report is created.

16) Explain the differences between Thread and Process?

A process is a collection of code, memory, data and other resources. A thread is a sequence of code that is executed within the scope of the process. You can (usually) have multiple threads executing concurrently within the same process.

17) Tell me the difference between an EXE and a DLL?

An EXE is an executable program while a DLL is a file that can be loaded and executed dynamically. It is an external code repository for programs. As both are different programs, reuse the same DLL instead of having that code in their file. It also reduces required storage space.

18) What is strong-typing and weak-typing? Which is preferred? Why?

Strong typing checks the types of variables at compile time. On the other hand, weak typing checks the types of the system at run-time. Among them, Strong typing is always preferred because it minimizes the bugs.

19) Describe the difference between Interface-oriented, Object-oriented and Aspect-oriented programming.

  • Interface programming is contract based.
  • Object-oriented is a way to write granular objects which have a single purpose.
  • Aspect Oriented Programming is to segregate the code in such a manner that various objects carry the main tasks, and the subsidiary tasks are carried by independent objects.

20) Why is using catch (exception) usually not ideal?

It is not ideal because:

  • As there is no variable defined, it is not possible to read the exception.
  • You can use an exception when you know the exception type, but most of the time you won't know the type of exception.

21) What type of data is passed via HTTP Headers?

Script and metadata passed via HTTP headers.

22) How do you prioritize requirements?

First, you need to design a system by evaluating data structure. Then you should move on to the code structure needed to support it.

23) Give me the differences between object-oriented and component-based designs?

In a nutshell, object-oriented programming focuses on the relationships between classes that are combined into one large binary executable, while component-oriented programming focuses on interchangeable code modules that work independently and don’t require you to be familiar with their inner workings to use them.

24) When do you use polymorphism?

Polymorphism is used when there is a need for override functionality when inheriting class. It’s about shared classes and shared contracts.

25) What is the difference between stack and queue?

  • Queue is always First In, First Out
  • Stack is always Last In, First Out

26) What are functional and non-functional requirements?

Functional requirements are functional features which are expected by users from the proposed software product.

Non-functional requirements are related to security, performance, look, and feel of the user interface.

27) Mentions some software analysis & design tools?

Some of the most important software analysis and designing tools are:

  • Data Flow Diagrams
  • Structured Charts
  • Structured English
  • Data Dictionary
  • Hierarchical Input Process Output diagrams
  • Entity Relationship Diagrams and Decision tables

28) Give me the differences between tags and branches?

Tags are for versioning releases which are temporary holding places for doing such thing. However, branches are deleted when those changes are merged into the trunk.

29) Where is a protected class-level variable available?

Protected class-level variables are available to any sub-class derived from the base class.

30) When do you need to declare a class as abstract?

We should declare a class as abstract in the following situations:

  1. When the class is inherited from an abstract class, but not all the abstract methods have been overridden.
  2. In the case when minimum one of the methods in the class is declared abstract.


要查看或添加评论,请登录

MetiSign的更多文章