It takes a lot of knowledge to be a good Software Engineer, so it makes sense that your potential employer might want to make sure that you know your stuff. In this article, we cover a clear definition of software engineering along with a series of commonly asked interview questions for your review.
What is a software engineer?
Software engineers design and develop software, much like a software developer. What makes software engineers unique is the application of engineering principles to the design process. For example, software engineers think about more than just the immediate design of a program, they also take into consideration important ‘outside’ aspects like the physical hardware that will be executing the software.
Software Engineer Interview Questions
- What is the SDLC?
SDLC stands for Software Development Life Cycle, and it is a clear, high-level, multi-step guide for finishing a project. The SDLC steps include:
- Requirements Analysis/Planning – In this stage, a clear plan for project development is drafted using input from the client or business.
- Defining Requirements – Here the plan for the proposed software is put into more concrete terms in an SRS (Software Requirement Specification), which outlines all of the requirements for the software that have not been designed yet.
- Designing – Designers now start building the various proposed models for software architecture which are weighed against each other until one proposed design is accepted. The previous three phases culminate in the production of a design document for the project.
- Development – At this stage lines of code are written according to the design document for the software. Here the actual software is built.
- Unit Testing – Testing means making sure the product has no holes and that it meets the specifications laid out in the first few stages. This step is often repeated throughout the design process.
- Implementation – The product is deployed into the market, or starts being used by the client.
- Maintenance – With the help of client or user feedback the product is adjusted, improved, and refined.
- What are the different SDLC models available?
The most popular models are:
- Waterfall Model
- V-Shaped Model
- Iterative Model
- Spiral Model
- Big Bang Model
- Agile Model
- Which SDLC model is the best?
This is a trick question. Selecting the best SDLC model depends on a variety of factors including the project, the team, and the corporate structure of the company. There is no one right SDLC model.
- What is a project baseline?
The baselines are project goals set by the project manager. They are used to make sure the project is healthy and on track.
- What is a Software Project Manager?
The software project manager is the lead role for a software development team. They often get the final say in product decisions and must ensure product development goes smoothly every step of the way resulting in a high-quality product.
- What is the project scope?
The project scope is a clear outline of what the resulting software both can and cannot do.
- What is project estimation?
Estimation is the art of determining the cost for a project that has yet to start, and the result from estimation provides the client with a clear financial target for the project.
- Name two project estimation techniques.
- Decomposition technique
- Empirical technique
- How are cohesion and coupling different?
- Cohesion relates to how specific or focused a software module is designed. A module with low cohesion can do many things poorly, while a module with high cohesion can do a few things well.
- Coupling is how interdependent a module is with another module. A module with low coupling can operate on its own, while a module with high coupling is dependant on many other functions to run.
Good software design has high cohesion and low coupling.
- What is modularization?
This is the concept of breaking a project into modules or chunks that separate developers or teams can work on independently, and will be combined to create a final product.
- What is black box testing?
In black box testing, the product is tested with no regard to how it operates internally, with the only measured results being what the product accomplishes.
- What is white box testing?
In white box testing the internal operation of the product is both understood and considered in the testing process.
- What is a feasibility study?
A feasibility study is a study with the goal of determining if a potential product will function well in its intended environment.
- What is the TELOS?
TELOS is a five-point model for feasibility studies that includes the following areas:
- What is the difference between functional and non-functional requirements?
- Functional requirements are clear hard targets for a final product, like the ability to take photos or a connection with banking web services.
- Non-functional requirements put limits on how those functional requirements are to be accomplished; like how large the resolution of the photos should be or how quick the connection with banking services should be.
- List some project management tools.
- Status Reports
- Gantt Charts
- Microsoft Projects
- What are CASE tools?
CASE stands for Computer Aided Software Engineering. CASE tools are special software designed to help software engineers.
- What is quality assurance?
Quality assurance tests a product to make sure it ships with as few defects as possible, and that it accomplishes the task it was designed to accomplish.
- What is quality control?
Quality control manages a product even after it is released, making sure that bugs are fixed and that the product continues to accomplish what it was designed to accomplish. This is typically done by a dedicated team.
- How can project execution be measured?
Project execution can be measured with the following:
- Status Reports
- Milestone checklists
- Activity Monitoring
- What is a data dictionary?
A data dictionary is a collection of information on data, including its meaning and how it relates to other data. This is also called metadata.
- What is a DFD?
DFD stands for Data Flow Diagram, and it is a way to visually describe the flow of data in a program.
These are only a few of the most popular questions asked at an interview; you’ll still need a strong working knowledge of software engineering to ace the interview, but hopefully, these questions provide an easy reference for quick answers.