Midterm 1 Practice Flashcards
(32 cards)
What is Software Engineering/Development?
The application of engineering principles to design, develop, test, and maintain software systems.
What is Programming?
The act of writing code to solve specific problems, often without considering broader software design or maintenance concerns.
What is Computer Science?
The theoretical study of algorithms, computation, and data structures, forming the foundation for software engineering.
How is Software Engineering different from Programming?
Software engineering involves a structured, engineering-based approach to software development, while programming is just writing code.
How is Software Engineering different from Computer Science?
Software engineering focuses on practical application, while computer science is more theoretical.
What is the Waterfall model?
A sequential, structured software development approach where each phase must be completed before moving to the next.
What is the Incremental model?
A software development approach where functionality is built and delivered in small, usable parts.
What is the Iterative model?
A software development approach that involves repeated cycles of development and refinement based on feedback.
How does the Waterfall model compare to the Incremental model?
Waterfall is rigid and sequential, while Incremental delivers functionality in parts, allowing partial system use earlier.
How does the Waterfall model compare to the Iterative model?
Waterfall follows a fixed plan, while Iterative allows continuous improvement through repeated cycles.
Why is the Waterfall model sometimes criticized?
It struggles with changing requirements and lacks flexibility, making it difficult to adapt mid-project.
What are the phases of the software lifecycle?
- Requirement Analysis – Gather and define user needs. 2. Design – Create system architecture and detailed specifications. 3. Implementation – Write and integrate code. 4. Testing – Identify and fix defects. 5. Deployment – Release the software for use. 6. Maintenance – Ongoing bug fixes, updates, and improvements.
What happens in the Requirement Analysis phase of the software lifecycle?
Gather and define user needs, setting the foundation for development.
What happens in the Design phase of the software lifecycle?
Create system architecture and detailed specifications.
What happens in the Implementation phase of the software lifecycle?
Write and integrate the code based on design specifications.
What happens in the Testing phase of the software lifecycle?
Identify and fix defects to ensure software works as expected.
What happens in the Deployment phase of the software lifecycle?
Release the software for users to access and utilize.
What happens in the Maintenance phase of the software lifecycle?
Fix bugs, update features, and improve system performance over time.
What is Incremental Development?
A development approach where the system is built in small, usable parts (increments).
What is Iterative Development?
A development approach where the software is refined in repeated cycles based on feedback.
What is Agile Software Engineering?
A flexible, iterative approach to software development that emphasizes collaboration, customer feedback, and rapid delivery.
What are the four core tenets of the Agile Manifesto?
- Individuals and interactions over processes and tools. 2. Working software over comprehensive documentation. 3. Customer collaboration over contract negotiation. 4. Responding to change over following a plan.
What is a Daily Standup in Agile?
A short daily meeting where team members update each other on progress, blockers, and plans.
What is Sprint Planning in Agile?
A meeting where the team selects tasks for the next sprint based on priorities and capacity.