Software Engineering Final Flashcards
(127 cards)
What is the core idea of rapid software development in Agile?
Rapid delivery is more critical than having perfect requirements in modern day
Why do traditional plan-driven models struggle in modern day?
Struggle with changing requirements and time-sensitive needs
Why was agile developed?
To reduce delivery time and support evolving software
What activities does Agile development interleave?
Specification, design, implementation, and testing
What is produced in increments in Agile?
Software versions
How does Agile involve stakeholders?
Stakeholders are involved continuously throughout the development process
What tools support Agile for speed and quality?
Automated testing
What does Agile minimize?
Documentation
What are key traits of Plan-driven development?
Structured stages, heavy upfront planning/documentation, output-focused, suitable for stable systems
What are key traits of Agile development?
Overlapping activities, lightweight/evolving plans, feedback-focused, suitable for changeable or innovative projects
What are the 4 core values of the Agile Manifesto?
Individuals & Interactions
Working Software
Customer Collaboration
Responding to Change
What is the core principles of Agile
Deliver software frequently
Welcome changing requirements
Keep teams motivated
measure progress
Promote technical excellence
What is Extreme Programming (XP)?
A practice-oriented agile method focused on code quality, testing, and collaboration
Highlights of XP
Daily builds, biweekly releases, and must pass automated test
XP Practices
User stories
Refactoring
Test-first development (TTD)
Pair programming
How does user stores work in XP?
Customers write scenarios, developers break into tasks, customer select story for release
What does refactoring do in XP?
Improves code clarity/structure without changing functionality
What is Test-First Development (TDD)?
Write test -> write code -> Run test
What tool is for TDD?
JUnit
What is pair programming?
Two developers work on one machine to share knowledge and review code live
Benefits of pair programming?
Increased code quality, shared team understanding, on-the-fly review
Does pair programming reduce speed?
Not always—studies suggest two together outperform two alone
Agile PM vs Traditional PM?
Traditional = plan everything early; Agile = plan just enough, adapt continuously.
What is Scrum?
An Agile PM framework dividing projects into 2–4-week sprints, each producing a product increment