Software Engineering Interview Questions with Answers
Software Engineering Interview Questions and Answers:
1. What is software engineering?
Ans – Software engineering is a systematic and cost-effective technique for software development. These techniques help to develop software using an engineering approach.
2. What is the responsibility of the software project manager?
Ans – A Software Project Manager takes the overall responsibility of steering a project to success. It is a very hazy job description. In fact, it is very difficult to describe the precise job responsibilities of a software project manager.
Most Software Project Manager takes the following responsibilities:
3. Define feasibility study.
Ans – The feasibility study defines the economic, technical and operational feasibility of the project.
4. What is functional programming?
Ans – Functional Programming is a style of programming that uses the concepts of a mathematical function to construct the software.
5. Define software metric.
Ans – A software metric is a measure of various aspects of software process and product. It is divided into requirement metrics, process metrics, and product metrics.
6. Explain Software Development Life Cycle (SDLC).
Ans – Software Development Life Cycle (SDLC) defines a methodology for improving the quality of software and the overall development process. It is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software.
Phases of SDLC:
7. Explain some SDLC Models.
Waterfall Model: The waterfall model is the oldest paradigm for software engineering. The original waterfall model proposed by Winston Royce. Real projects are rarely following the sequential flow that the model proposed. Although the linear model can accommodate, it does so indirectly. As a result, changes can confuse the project team proceeds.
Incremental Model: The Incremental Model combines elements of the waterfall model applied iteratively. Incremental Software process Model releases software as a series of products. The occurrences of the phases are similar to that of the waterfall model but the phases can be repeated in cycles. At the end of each cycle, a deliverable product is obtained.
Spiral Model: The spiral model originally proposed by Boehm. It is an evolutionary software process model that couples the iterative nature of prototyping with the control. The spiral development model is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of software-intensive systems.
8. Explain LOC and FP Estimation.
Ans – Lines of Code (LOC) is the simplest metrics among all available metrics in Software Engineering. This metric measures the size of a project by counting the number of source instructions in the developed program.
FP metric was proposed by Albrecht in 1983. The function point metric is used to computed the problem specification itself. The conceptual idea behind the function point metric is that the size of a software product is directly dependent on the number of different high-level functions.
9. Tell some Project Management tools.
Ans – Project Management Tools:
10. Difference between Gantt Chart and PERT Chart.
|1. It stands for Graphical Depiction of a Project Schedule||1. It stands for Program Evaluation Review Technique.|
|2. Gantt chart is very useful for small, simple and straightforward projects||2. PERT chart is very useful for large and complex projects.
|3. This chart can't display inter-dependency between the tasks.||3. This chart display networks of interdependent tasks.|
|4. Gantt chart uses a bar chart for displaying project details.||4. PERT chart uses a flow chart for displaying project details.|
|5. A Gantt chart that shows the start and finish dates of a project.||5. A PERT chart allows managers to evaluate the time and resources to manage a project.|
11. Define Abstraction and Decomposition.
Ans – Abstraction: It refers to the construction of a simpler version of a problem by ignoring the details. The principle of constructing an abstraction is popularly known as modelling. It is the simplification of a problem by focusing on only one aspect of the problem while omitting all other aspects.
Decomposition: It is another important principle that is available in the repertoire of a software engineer to handle problem complexity. This principle is profusely made use by several software engineering techniques to contain the exponential growth of the perceived problem complexity. The decomposition principle is popularly known as the divide and conquer principle.
12. What is the COCOMO model?
Ans – Constructive Cost Estimation Model (COCOMO) was proposed by Boehm in 1981. COCOMO prescribes a three-stage process for project estimation. In the first stage, an initial estimate is arrived at. Over the next two stages, the initial estimate is refined to arrive at a more accurate estimate. COCOMO uses both single and multivariable estimation models at different stages of estimation.
13. What is Verification and Validation?
Ans – Verification: It is the process of determining whether the output of one phase of software development conforms to that of its previous phase. The primary techniques used for verification include review, simulation, formal verification, and testing. Review, simulation, and testing are usually considered informal verification techniques.
Validation: It is the process of determining whether a fully developed software conforms to its requirements specification. validation is applied to the fully developed and integrated software to check if it satisfies the customer’s requirements.
14. Explain Black-box and White-box testing.
Ans – Black-box: In black-box testing, test cases are designed from an examination of the input/output values only and no knowledge of design or code is required. There are two main approaches available to design black-box test cases:
1. Equivalence class partitioning
2. Boundary value analysis
White-box: It is an important type of unit testing. A large number of white-box testing strategies exist. Each testing strategy essentially designs test cases based on analysis of some aspect of source code and is based on some heuristic.
15. Difference Between Alpha and Beta Testing.
|1. It always performed by the developers.||1. It always performed by the customers.|
|2. It is also performed by Independent Testing Team.||2. It is not performed by Independent Testing Team.|
|3. Alpha Testing is not open to the market and public.||3. Beta Testing is always open to the market and public.|
|4. It is always performed in virtual environment.||4. It is always performed in Real-time-Environment.|
|5. It is a kind of White Box & Black Box Testing.||5. It is only kind of Black Box Testing.|
|6. Alpha Testing is not known by any other name.||6. Beta Testing is also known as Field Testing.|
|7. It is always performed within the organization||7. It is always performed outside the organization.|
16. What is Cohesion?
Ans – The cohesion of a module is the degree to which the different functions of the module co-operate to work towards a single objective. It is a measure that defines the degree of intra-dependability within an element of a module.
17. What is Coupling?
Ans – Coupling is a measure that defines the level of inter-dependability among modules of a program. It tells at what level the modules interface and interact with each other.
18. Difference between .exe and .dll file.
|1. It stands for Executable||1. It stands for Dynamic Link Library|
|2. There are no exported symbols.||2. There are multiple exported symbols|
|3. It can be run independently||3.It can be run dependently|
|4. It can't be reused by other applications||4. It can be reused by other applications|
|5. An .exe file creates its separate process and memory space.||5. A .dll file shares the same process and memory space of the calling application.|
19. What is Six Sigma?
Ans – The purpose of Six Sigma is to improve processes to do things better, faster, and at a lower cost. It can be used to improve every facet of the business, from production to human resources, to order entry, to technical support.
20. Difference between Quality Control and Quality Assurance.
|1. Quality Control is a method to verify the quality||1. Quality Assurance is the technique of managing quality.|
|2. It always involves executing the program.||2. It doesn't involve executing the program.|
|3. QC means Action for executing the planned process.||3. QA means planning for doing a process.|
|4. Quality Control example is Validation||4. Quality Assurance example is Verification|
|5. Quality Control is product-oriented||5. Quality Assurance is process-oriented|
|6. Only testing team members are responsible for Quality Control||6 All team members are responsible for Quality Assurance|
|7. Quality Control is responsible for Software Testing Life Cycle (STLC).||7. Quality Assurance is responsible for Software Development Life Cycle (SDLC).