1/36
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
What is the difference between coding and software engineering?
Coding is about writing programs, while software engineering involves applying systematic processes, scalability, maintainability, and working in teams.
What happened with the Therac-25?
The Therac-25 caused radiation overdoses due to software bugs, demonstrating the critical importance of safety in software systems.
Why did the Denver Airport baggage system fail?
It was an over-engineered waterfall system that failed due to the rigid methodology not accommodating changing requirements.
What was the problem with Healthcare.gov's launch?
It had requirements and scale issues that caused major problems during its initial release.
What is the Waterfall methodology?
A sequential, rigid requirements process that works when requirements are well-known and stable (e.g., safety-critical systems), but frequently fails when requirements evolve.
What are the core principles of Agile?
Incremental change, iterative development, embracing change, expecting evolving requirements, delivering working software early and often for feedback, and rapid feedback loops.
What is Extreme Programming (XP)?
An Agile methodology emphasizing practices like pair programming, test-driven development, collective code ownership, and continuous integration, with emphasis on simplicity and feedback.
What are the three roles in Scrum?
Product Owner, Scrum Master, and Development Team.
What are the main Scrum events?
Sprint, Daily Scrum, Sprint Review, and Sprint Retrospective.
What are the five Scrum values?
Focus, Courage, Openness, Commitment, and Respect.
What is the difference between Sprint Review and Sprint Retrospective?
Sprint Review evaluates the work product, while Sprint Retrospective evaluates the process and team dynamics.
What are the core principles of Kanban?
Visualize work, limit Work-in-Progress (WIP), manage flow, and continuous improvement.
What is the difference between pull and push models in Kanban?
Pull model: team members pull tasks when ready. Push model: tasks are assigned to team members.
How do Scrum and Kanban differ in time structure?
Scrum uses time-boxed sprints with defined start and end dates, while Kanban uses continuous flow without fixed time periods.
What metrics do Scrum and Kanban use?
Scrum uses velocity (story points per sprint), while Kanban uses cycle time (time to complete a task).
What does Scrum optimize for vs. Kanban?
Scrum optimizes for communication and team learning, while Kanban optimizes for speed and throughput.
What is a traditional requirement?
A formal, declarative statement describing something the system must do, typically written as imperative sentences ("The system shall…"). They are static and precise but often lack context.
What is a user story?
A short, narrative description of functionality from the end-user's perspective, usually following the format: "As a [type of user], I want [goal], so that [reason]."
What are the strengths of traditional requirements?
Clear, testable, and unambiguous if well-written.
What are the weaknesses of traditional requirements?
Can be too rigid or abstract and doesn't always capture user intent or workflow.
What are the strengths of user stories?
Captures user's intent, facilitates discussion, encourages prioritization, and is adaptable.
What are the weaknesses of user stories?
Less formal and requires further elaboration before implementation.
Give an example of a user story.
"As a returning customer, I want to log in with my username and password, so that I can access my past orders quickly."
What is program comprehension?
Understanding existing codebases, which is essential for maintaining and extending software systems.
What is bug localization?
Identifying where defects occur in the codebase.
What is defect prediction?
Anticipating where future bugs may arise in the software.
What is refactoring?
Improving internal code structure without changing the external behavior of the system.
What is traceability in software engineering?
Linking requirements → design → code → tests to ensure all components align with original specifications.
What is automatic program repair?
Tools that attempt to fix bugs automatically without human intervention.
How do startups structure teams differently from large companies?
Startups have small teams where members wear many hats and handle multiple responsibilities, while large companies have specialized roles with clear divisions of labor.
What are the main types of team structures?
Functional (skills-based), modular (feature-based), and maintenance vs. development teams.
What are challenges of global teams?
Division of labor across time zones creates communication challenges and coordination difficulties.
What are the ethical responsibilities of software engineers?
Safety, accessibility, and privacy considerations in software development.
Why is software important to society?
Software pervades all aspects of modern life and has significant economic impact through automation and software systems.
Why is rapid feedback important in Agile?
It allows teams to identify and fix problems early, adapt to changing requirements, and ensure the product meets user needs before too much time and resources are invested.
What is Work-in-Progress (WIP) limit in Kanban?
A constraint on how many tasks can be in progress at once, which helps prevent bottlenecks, improves focus, and ensures smoother workflow.
When might Waterfall be more appropriate than Agile?
When requirements are well-known, stable, and unlikely to change, especially in safety-critical systems where thorough upfront planning and documentation are essential.