Top 50 Software Engineering Interview Questions and Answers
21) 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.
- Economic: It includes the cost of training, cost of additional and tools and overall estimation of costs and benefits of the project.
- Technical: It evaluate 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.
- Operational: Here the analyst need 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.
22) 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.
23) What is software metric?
Software Metrics offers measures for various aspects of software process which are divided into:
- Requirement metrics: Length requirements, completeness
- Product metrics: Number of coding Lines, Object-oriented metrics, design and test metrics.
25) What is modularization?
Modularization is a technique which is used for dividing a software
system into various discreet modules. That is expected to carry out the
tasks independently.
26) What is cohesion?
Cohesion is a measure that defines the intra-dependability among the elements of the module.
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) What is mean by level-0 Data flow diagram?
Highest abstraction level is called Level 0 of DFD. It is also called
context level DFD. It portrays the entire information system as one
diagram.
29) Tell me about some project management tools.
There are many types of management tools used as per the need for a
software project. Some of them are Pert Chart, Gantt Chart, Resource
Histogram, Status Reports, etc.
30) What are software requirements?
Software requirements are a functional description of a proposed
software system. It is assumed to be the description of the target
system, its functionalities, and features.
30) What is the major difference between structured English and Pseudo Code?
Structured English is native English language. It is used to write
the structure of a program module. It uses programming language
keywords. On the other hand, Pseudo Code is more like to the programming
language without syntax of any specific language.
31) What is structured design?
Structured design is a conceptualization of problem. It also called
solution design and which is based on ‘divide and conquer’ strategy.
32) What is functional programming?
It is a programming method, which uses the concepts of a mathematical
function. It provides means of computation as mathematical functions,
which also produces results irrespective of program state.
33) What is Quality Assurance vs. Quality Control?
Quality Assurance checks if proper process is followed while
developing the software while Quality Control deals with maintaining the
quality of software product.
34) What are CASE tools?
CASE means Computer Aided Software Engineering. They are set of
automated software application programs, which are used to support,
enhance and strengthen the SDLC activities.
35) Which process model removes defects before software get into trouble?
Clean room software engineering method removes defects before software gets into trouble.
36) Do you think that the maintenance of software is expensive?
According to me, maintenances of software will never be expensive if we are using proper development process.
37) Give me 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.
38) Explain the differences between a Thread and a Process?
A process is instance of the computer program.In a single program it is possible to have one or more threads.
39) 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 by programs 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.
40) 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.
41) 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.
42) Why using catch (exception) is always a bad idea?
It is a bad idea because:
- As there is no variable defined, it is not possible to read the exception
- It’s good to use an exception when you have known exception types.
43) What type of data is passed via HTTP Headers?
Script and metadata passed via HTTP headers.
44) 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.
45) Give me differences between object-oriented and component-based design?
Object-oriented design can easily be encapsulated to some degree in component-based design.
46) 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.
47) What is the difference between stack and queue?
- Queue is always First In, First Out
- Stack is always Last In, First Out
48) What is essential for testing the quality of the code?
According to me, the unit testing framework is essential for testing the quality of the code.
51) Where is a protected class-level variable available?
Protected class-level variables are available to any sub-class derived from the base class.
52) Is it possible to execute multiple catch blocks for a single try statement?
Yes. Multiple catch blocks can be executed for a single try statement.
53) When do you need to declare a class as abstract?
We should declare a class as abstract in the following situations:
- When the class is inherited from an abstract class, but not all the abstract methods have been overridden.
- In the case when minimum one of the methods in the class is declared as an abstract
54) Solve this problem
There are twenty different socks of two types in a drawer in one dark
room. What is the minimum number of socks you need to take to ensure
you have a matching pair?”
If you pick up three socks, they may be of the same type even if the
odds are 50%. Odds never an equal reality. Therefore, the only way to
‘ensure you have a matching pair’ is to pick up at least 11 number of
shocks.
55) How you can make sure that your written code which can handle various kinds of error situation?
I can write tests that define the expected error situations.
To be continue...