Software Processes Flashcards
(25 cards)
What is a software process?
A software process is a series of steps followed to build a software product. It includes everything from gathering requirements to maintaining the software after it’s delivered.
What are the 6 main engineering process steps?
Specification – Understand and write down what the product should do.
Design – Create a plan or model of how the product will work.
Manufacture – Build the actual product.
Test – Check if the product works correctly.
Install – Deliver the product and make it ready for use.
Maintain – Fix any issues and improve the product after delivery.
What is SDLC (Software Development Life Cycle)?
A life cycle model is a visual and descriptive plan that shows how software is developed from start to finish.
Why is the SDLC important
It ensures that software is developed in a disciplined, efficient, and cost-effective way while meeting customer requirements and reducing risks.
What are the main phases of the SDLC?
Planning & Analysis
Design
Implementation
Testing
Deployment
Maintenance
What is the goal of the planning & analysis
This phase is about understanding the problem and what the stakeholders want.
Who are the stakeholders in software engineering?
People interested in the project (e.g., users, customers, developers, managers).
What are the 5 steps in Planning & Analysis?
Elicitation – Collect requirements from stakeholders.
Analysis – Study and understand the requirements.
Specification – Organize and save the requirements clearly.
Validation – Make sure the requirements are complete and correct.
Management – Handle any changes to the requirements.
What happens in the Design phase?
This phase takes the software requirements and creates a detailed structure of how the system will work internally.
What is the Development phase?
The actual software is built based on the design and requirements. This is where programmers write the code.
Name the 4 fundamental principles of software engineering.
Reduction of Complexity – Make software simple and easy to understand.
Anticipation of Diversity – Be ready for future changes.
Structure for Validation – Design software that’s easy to test.
Use Standards – Follow rules like coding standards to maintain quality.
What is the goal of the Testing phase?
To check if the software works correctly and meets requirements.
What’s the difference between validation and verification?
Validation: Did we build the right system?
Verification: Did we build the system right?
What is Deployment?
Releasing the software to users and making it ready for use.
Example: A small group of users gets the new feature first (canary release).
What is maintenance
Ongoing support and improvement of the software after it’s delivered.
Why is maintenance needed?
To fix bugs, add features, or adapt to new environments (e.g., new operating systems).
Name the 3 types of software maintenance.
Corrective – Fix errors
Perfective – Improve performance/usability
Adaptive – Adjust to new conditions
What is a software process model?
A structured plan that shows the order of development steps.
What is the different software life cycle models
Waterfall model
Iterative Waterfall model
Evolutionary model
Prototyping model
Spiral model
What is the Waterfall Model?
A step-by-step software development model where each phase must be completed before the next.
Each step happens one after the other in a clear order. Often used in traditional projects.
Advantages of the Waterfall Model?
Simple and easy to follow
Good documentation
Works well for small projects with fixed requirements
Easy to manage and track
Disadvantages of the Waterfall Model?
Hard to make changes
Customers can’t give feedback until the end
Bugs are found late
Not ideal for complex or flexible projects
What is the Prototyping Model?
A model where a sample version of the software is created to understand user needs better. Used when requirements are not clear.
What are the benefits of a prototyping model
Helps visualise the system early
Useful when users are unsure of their needs