Saturday, July 6, 2019

Software Engineering Interview Questions and Answers

1. What is software engineering?

Answer:

Software engineering is the process of analyzing user needs and designing, constructing and testing end user applications. The outcome of software engineering is an efficient and reliable software product.

2. Explain the difference between computer software and computer program.

Answer:

A computer program is piece of programming code that performs a specific task when executed by a computer.

Software is broad term that includes Programs, Installation Manual and Documentation.

3. Why do you need to learn software engineering concepts?

Answer:

Software engineering concept helps to design and build reliable, high-quality software products. 

It helps to create and improve large software systems.

Software engineering ensures that the application is built consistently, correctly, on time and on budget and within requirements.

4. What is software process or Software Development Life Cycle (SDLC)?

Answer:

The software development life cycle is also known as the software development process. SDLC is a structure that consists of a detailed plan describing how to develop, maintain and replace specific software. 

The entire SDLC process divided into the following stages:

Requirement Gathering
System Analysis
Design
Coding
Testing
Installation/Deployment
Maintenance

5. What are SDLC models available?

Answer:

There are several software development models followed by various organizations:

Waterfall Model - This model involves finishing each phase completely before commencing the next one. 

V-Shaped Model - It is an extension of the waterfall model, instead of moving down in a linear way, the process steps are bent upwards after the implementation and coding phase, to form the typical V shape. The major difference between the V-shaped model and waterfall model is the early test planning in the V-shaped model.

Prototyping Model - It refers to the activity of creating prototypes of software applications

Spiral Model - This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. 

Iterative Model - Iterative process starts with a simple implementation of a subset of the software requirements and iteratively enhances the evolving versions until the full system is implemented.

Incremental model - In this model, each module passes through the requirements, design, implementation and testing phases.

6. What are various phases of SDLC?

Answer:

The various phases of SDLC are: 

Requirement Gathering
System Analysis and Design
Coding
Testing 
Implementation

7. What is software project management?

Answer:

Software project management is process of managing all activities in such a way that software should be created within time, within budget and with less effort.

8. What is project estimation?

Answer:

Project estimation involves calculation of the cost of development in terms of efforts, time and resources. 

This estimation can be derived from past experience, by consulting experts or by using pre-defined formulas.

9. What are function points?

Answer:

Function points are a unit measure for software much like other measures such as kilometers, Fahrenheit, hours, so on and so forth.

It is a unit of measurement for software size.

10. How can we derive the size of software product?

Answer:

Size of software product can be calculated using either of two methods:

Counting the lines of delivered code
Counting delivered function points

11. What is Software configuration management?

Answer:

Any change in the software configuration Items will affect the final product. Therefore, changes to configuration items need to be controlled and managed.

SCM is a process of managing and controlling the changes in software in terms of the requirements, design, functions and development of the product.

12. What is change control?

Answer:

Change control is a systematic approach to managing all changes made to a product or system. 

The purpose is to ensure that no unnecessary changes are made, that all changes are documented

13. What is SRS?

Answer:

SRS or Software Requirement Specification is a document produced at the time of requirement gathering process. 

It is a description of a software system to be developed.

The SRS fully describes what the software will do and how it will be expected to perform.

14. What is cohesion?

Answer:

Basically, cohesion is the internal glue that keeps the module together. A good software design will have high cohesion.

15. What is coupling?

Answer:

Coupling is the measure of the degree of interdependence between the modules. A good software will have low coupling.

16. Differentiate validation and verification.

Answer:

Verification is the process of evaluating products of a development phase to find out whether they meet the specified requirements.

Validation is the process of evaluating software at the end of the development process to determine whether software meets the customer expectations and requirements.

Validation confirms the right product and verification confirms if the product is built in a right way.

17. What is black-box and white-box testing?

Answer:

Black box testing is a high level of testing that focuses on the behavior of the software. It involves testing from an external or end-user perspective. It does not verify the actual implementation of the program.

White-box testing is a testing technique which checks the internal functioning of the system. White-box testing not only checks for desired and valid output when valid input is provided but also it checks if the code is implemented correctly.

18. Quality assurance vs. Quality Control.

Answer:

Quality Assurance monitors to check if proper process is followed while developing software.

Quality Control deals with maintaining the quality of a software product.

19. What is software re-engineering?

Answer:

Software re-engineering is restructuring or rewriting part or all of a system without changing its functionality.  It is applicable when some (but not all) subsystems of a larger system require frequent maintenance.

20. What are CASE tools?

Answer:

CASE stands for Computer Aided Software Engineering. 

It is a computer-based product aimed at supporting software engineering activities within a software development process.

CASE tools are set of automated software application programs, which are used to support, accelerate and smoothen the SDLC activities.

No comments:

Post a Comment

Get max value for identity column without a table scan

  You can use   IDENT_CURRENT   to look up the last identity value to be inserted, e.g. IDENT_CURRENT( 'MyTable' ) However, be caut...