Software Engineering Question Bank
Software Engineering Question Bank
Waterfall model: A linear approach where each phase is completed before moving on
to the next one.
Incremental model: A iterative approach where the software is developed in
increments, with each increment building on the previous one.
Evolutionary process models:
Prototype model: A model where a prototype is developed and refined based
on user feedback.
Spiral model: A risk-driven approach that combines elements of the waterfall
and prototype models.
Concurrent Development Model: A model where multiple activities are performed
concurrently to reduce the overall development time.
Agile Development: An iterative and incremental approach that focuses on flexibility
and customer satisfaction. Agile process models include Scrum, Kanban, and Lean software
development.
The Software Development Life Cycle (SDLC) is a framework that outlines the stages involved
in developing software. The SDLC lifecycle typically includes:
The Prototype model is a software development process model that involves creating a
working model of the software system to demonstrate its features and functionality. The
prototype is refined based on user feedback, and the final product is developed iteratively.
In contrast, the Waterfall model is a linear approach where each phase is completed before
moving on to the next one. There is no feedback loop, and changes are difficult to incorporate
once the development process has started.
Team management is crucial in software project planning as it ensures that the project is
completed on time, within budget, and to the required quality standards. Effective team
management involves:
A Software Requirements Specification (SRS) document is a formal document that outlines the
functional and non-functional requirements of a software system. It provides a detailed
description of the software's features, functionality, and performance expectations. The SRS
document serves as a guide for the development team and ensures that the software meets
the user's requirements.
The W5HH principle is a framework for problem-solving and decision-making that involves
asking the following questions:
Software projects involve intangible products, whereas other projects involve physical
products.
Software projects require a high degree of creativity and innovation.
Software projects are often iterative and incremental, with frequent changes and
updates.
Software projects require specialized skills and knowledge, such as programming
languages and software development methodologies.
Management planning involves defining the project scope, goals, and timelines. It also
involves identifying the resources, budget, and risks associated with the project. Feasibility
analysis is conducted to determine whether the project is viable and worth pursuing.
13. Effort Estimation, Schedule and staffing
Effort estimation involves estimating the time and resources required to complete a task or
project. Scheduling involves creating a timeline for the project, including milestones and
deadlines. Staffing involves allocating the necessary personnel to complete the project tasks.
Quality planning involves defining the quality objectives, standards, and procedures for a
software project. It includes identifying the quality metrics, testing strategies, and defect
management processes.
15. Risk management- identification, assessment, control, project monitoring plan, Detailed
Scheduling
Risk management involves identifying, assessing, and mitigating risks that could impact the
software project. It includes developing a risk management plan, identifying risk mitigation
strategies, and monitoring the project for potential risks.
Control involves monitoring and controlling the project progress, including tracking the
project schedule, budget, and quality. Project monitoring involves regularly reviewing the
project status and identifying areas for improvement. Detailed scheduling involves creating a
detailed project schedule, including task dependencies and timelines.
Requirement analysis involves analyzing the user requirements to identify the functional and
non-functional requirements of the software system. Requirement elicitation involves
gathering the requirements from the stakeholders through various techniques, such as
interviews, surveys, and focus groups.
Understanding the requirement involves interpreting and clarifying the user requirements to
ensure that the software system meets the user's expectations. It involves identifying the
ambiguities, inconsistencies, and contradictions in the requirements and resolving them
through negotiation and compromise.
Jira: A project management tool for tracking issues, projects, and workflows.
Trello: A visual project management tool for organizing tasks and workflows.
Asana: A work management platform for tracking tasks, projects, and workflows.
GitHub: A web-based platform for version control and collaboration.