Best Software Engineering Interview Questions and Answers
Dear Readers, Welcome to software engineering Interview Questions and Answers have been designed specially to get you acquainted with the nature of questions you may encounter during your Job interview for the subject of software engineering.These software engineering Questions are very important for campus placement test and job interviews. As per my experience good interviewers hardly plan to ask any particular questions during your Job interview and these model questions are asked in the online technical test and interview of many IT companies.
1. Explain the importance of system analysis ?
The importance of system analysis is as follows -
1. It offers a means to greater understanding of the complex structures.
2. It is a means to trade off between functional requirements of subsystems to the total system.
3. It helps in understanding and comparing functional impacts of subsystem to the total system.
4. It helps in achieving inter-compatibility and unity of purpose of subsystems.
5. It helps in discovering means to design systems where subsystems may have apparently conflicting objectives.
6. Finally , it helps in placing each subsystem in its proper perspective and content , so that the system as an whole may be best achieve its objectives with minimum available resources.
2. What are the characteristics of a software ?
Following are the characteristics of software -
1. Software is deterministic because it does not wear out.
A system is called as deterministic system if it operates in the desired manner and the output is known.A system is called as probabilistic system if it does not operates in the desired manner and the output is not known.
Software is deterministic but hardware is probabilistic because it does not wear out.Hardware has higher failure rate because of old age,poor quality fabrication,design error,overload of the component etc.
Software also fails because of programing errors,human operator errors etc.But software does not grow old.Every time it is executed it acts like new born baby and dies when execution stops.
2. Software is customized
Most of the software are developed as per the requirement of the customers specification.Assembling software from the existing components is generally avoided.
3. Version are created
When any error is detected in the software then a new version is created after fixing the error.Also,when any new specification is added as per the requirement of the customer,then new version of software is created.
4. Different hardware requirement
Software may use various hardware components as per the usability and applicability.
3. What are the different qualities of a software ?
Following are the different qualities of software -
If the software works perfectly as per the functionality then it is functionally correct.
Reliability gives the time duration in which the software will operate correctly.
3. User Friendliness
If any novice person is able to handle the software correctly then it is user friendly system.For eg, if you have developed a software for measuring current then any person from electronics firm can operate it easily.But if a person from the accounts department understands the software and operates it easily then it is user friendly software.
The software system should not always expect correct input.It should validate the input before accepting it.For eg,suppose you have developed a form for saving student details.The field percent accepts float value.If the user enters character value then it should be accepted.
Robustness refers to the extend to which software will operate correctly despite of invalid inputs.
5. Performance Performance of the software depends upon the execution speed and memory consumption.If the logic used in the program is correct then it will optimize the execution speed.If it incorrect then it will affect the execution speed of other softwares.
The system should be feasible to accept new additions in it,update existing components and fix the errors easily.The change in the software should not create any errors and disturb the execution of the software.
7. Re usability
If the software is modified , some little changes are done to build another product then it is reusable.
If the software executes on different computer system with any run time errors then it is called as portable software.
Productivity is related to development process.If the software is developed in less time ,then faster delivery of the product is possible.
The software development process should be transparent.It is achieved by documenting all the steps of software development.Visibility keeps all the team members on the same track and misunderstanding is avoided.This is very useful when any team member leaves the organization and new one takes his place.With the help of these documents the new member can easily understand the system and resume the development process.
It refers to the ability of the system to co exists and co operate with other system.In microsoft office ,while we are working in word processor we may link directly to graphics package.
4. What are the different stages of system development life cycle ?
Following are the different stages of system development life cycle -
1. Preliminary Investigation
2. System Analysis
3. System Design
4. System Development/Coding
5. System Testing
6. System Implementation and Evaluation
7. System Maintenance
5. What are the different parts of preliminary investigation ?
Following are the different parts of preliminary investigation -
1. Request Clarification
2. Feasibility Study
3. Request Approval
6. Explain the preliminary investigation phase ?
When any request is received from the user or client then the preliminary investigation starts.Following are the different parts of the preliminary investigation phase
1. Request Clarification
Any request received from the use must be examined properly to determine precisely what the originator wants,before the system investigation starts.
2. Feasibility Study
Feasibility study evauates the cost incurred in system development and benefits of the system.It is generally expected that the benefits should be greater than the cost incurred in system development.
The major aspects of the feasibility study are as follows -
i. Technical Feasibility
The Technical Feasibility considers the existing computer hardware,software and personnel.It also considers the more hardware,software or personnel required for the system.
ii. Economical Feasibility
It considers the cost/benefit analysis of the proposed system.The benefit is always expected to be overweighing the costs.
Economical Feasibility is helpful to find the system development cost and checks whether it is justificable.It checks investigation cost,software and hardware cost,training cost,salaries,maintenance cost etc.
Suppose there is a company whose annual income is 5 lakh.The company plans to implement SAP.The cost of each license is Rs.60,0000 and the company needs 10 licenses.In this case,the annual cost of the SAP system is 6 lakh.As per economic feasibility ,the company can not afford to use SAP.The company should use Tally instead of SAP.If the company grows in multi crores then it should implement SAP since SAP is advanced ERP and the company can afford the maintenance cost.
iii. Operational Feasibility
It checks the acceptability of the system.It checks whether system will be used if it developed and whether the proposed system cause any trouble etc.
The request received from various persons are studied for its feasibility and request which are feasibilty are approved.After the request is approved its cost/priority,completion time and personnel requirement are estimated and project planning is updated.
7. Explain the system analysis phase ?
System analysis phase is the most important phase in the system development life cycle.The entire system can fail if system analysis is not done properly.There are many misunderstandings between the customer and system analyst.All the misunderstandings and communication gaps should be cleared in this phase.
System analysis includes review of the existing procedures and information flow.Decision making and individual information needs at various levels in different functional areas are also reviewed.The system analysis phase primarily focuses on isolation of defiencies of the existing system.
The fundamental activities involved in the system analysis are as follows -
1. Definition of the overall system.
2. Separation of the system into smaller and manageable parts.
3. Understanding the nature,function,interrelationship of various subsystems.
Various tools are used for system analysis such as review of documentation,observation of the situation,conducting interviews and quesionnaries.
System analysis phase is time consuming phase and yet a crucial phase.The final output of this phase is a functional specification report of the existing system containing processing controls,response times and input and output methods.
8. Explain the system design phase ?
System design phase defines the way how the system will meet the requirements which are identified during system analysis.This phase includes developement of the following -
1. Output definition/Reports
2. Input definitions/Screen/Forms
3. Data element dictionary
4. Program specification/Procedures
5. System specifications.
9. Explain the system development phase ?
In the system development phase,programs are written as per system design.The basic activities in this phase are as follows -
1. Checking the program specification received from the system development stage and expanding their specification.
2. Breaking the system modules into smaller programs and allocating these programs to the members of the system development team.
3. Writing programmer code in the selected programming language.
4. Prepare the documentation for each one of the programs.
10. Can you differentiate computer software and computer program?
A computer program is piece of programming code which performs a well defined task where as software includes programming code, its documentation and user guide.
11. What is software engineering?
Software engineering is an engineering branch associated with software system development.
12. When you know programming, what is the need to learn software engineering concepts?
A person who knows how to build a wall may not be good at building an entire house. Likewise, a person who can write programs may not have knowledge of other concepts of Software Engineering. The software engineering concepts guide programmers on how to assess requirements of end user, design the algorithms before actual coding starts, create programs by coding, testing the code and its documentation.
13. What is software process or Software Development Life Cycle (SDLC)?
Software Development Life Cycle, or software process is the systematic development of software by following every stage in the development process namely, Requirement Gathering, System Analysis, Design, Coding, Testing, Maintenance and Documentation in that order.
14. What are SDLC models available?
There are several SDLC models available such as Waterfall Model, Iterative Model, Spiral model, V-model and Big-bang Model etc.
15. What is software project management?
Software project management is process of managing all activities like time, cost and quality management involved in software development.
16. Who is software project manager?
A software project manager is a person who undertakes the responsibility of carrying out the software project.
17. What are software project estimation techniques available?
There are many estimation techniques available.The most widely used are -
Decomposition technique (Counting Lines of Code and Function Points)
Empirical technique (Putnam and COCOMO).
18. What is Software configuration management?
Software Configuration management is a process of tracking and controlling the changes in software in terms of the requirements, design, functions and development of the product.
19. What are software requirements?
Software requirements are functional description of proposed software system. Requirements are assumed to be the description of target system, its functionalities and features. Requirements convey the expectations of users from the system.
20. What is software metric?
Software Metrics provide measures for various aspects of software process and software product.
They are divided into –
Requirement metrics : Length requirements, completeness
Product metrics :Lines of Code, Object oriented metrics, design and test metrics
Process metrics: Evaluate and track budget, schedule, human resource.
21. What is functional programming?
Functional programming is style of programming language, which uses the concepts of mathematical function. It provides means of computation as mathematical functions, which produces results irrespective of program state.
22. Quality assurance vs. Quality Control?
Quality Assurance monitors to check if proper process is followed while software developing the software.
Quality Control deals with maintaining the quality of software product.
23. What is software re-engineering?
Software re-engineering is process to upgrade the technology on which the software is built without changing the functionality of the software. This is done in order to keep the software tuned with the latest technology.
24. What is the difference between software engineering and system engineering?
System Engineering - is concerned with all aspects of computer based systems development including hardware, software and process engineering.
System Engineering - are involves in system specification architectural design intergration and deployment.
25. What are the categories of software?
Artificial Intelligence software
26. What is debugging?
Debugging is the process that results in the removal of error. It occurs as a consequence of successful testing.
27. What is error tracking?
Error tracking is an activity that provides a means for assessing the status of a current project.
28. Define cohension and coupling?
Cohension is a measure of the relative functional strength of a module.
Coupling is a measure of the relative interdependence among modules.