Software Engineering Final Flashcards

(127 cards)

1
Q

What is the core idea of rapid software development in Agile?

A

Rapid delivery is more critical than having perfect requirements in modern day

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why do traditional plan-driven models struggle in modern day?

A

Struggle with changing requirements and time-sensitive needs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Why was agile developed?

A

To reduce delivery time and support evolving software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What activities does Agile development interleave?

A

Specification, design, implementation, and testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is produced in increments in Agile?

A

Software versions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does Agile involve stakeholders?

A

Stakeholders are involved continuously throughout the development process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What tools support Agile for speed and quality?

A

Automated testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What does Agile minimize?

A

Documentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are key traits of Plan-driven development?

A

Structured stages, heavy upfront planning/documentation, output-focused, suitable for stable systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are key traits of Agile development?

A

Overlapping activities, lightweight/evolving plans, feedback-focused, suitable for changeable or innovative projects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the 4 core values of the Agile Manifesto?

A

Individuals & Interactions
Working Software
Customer Collaboration
Responding to Change

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the core principles of Agile

A

Deliver software frequently
Welcome changing requirements
Keep teams motivated
measure progress
Promote technical excellence

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Extreme Programming (XP)?

A

A practice-oriented agile method focused on code quality, testing, and collaboration

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Highlights of XP

A

Daily builds, biweekly releases, and must pass automated test

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

XP Practices

A

User stories
Refactoring
Test-first development (TTD)
Pair programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How does user stores work in XP?

A

Customers write scenarios, developers break into tasks, customer select story for release

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What does refactoring do in XP?

A

Improves code clarity/structure without changing functionality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is Test-First Development (TDD)?

A

Write test -> write code -> Run test

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What tool is for TDD?

A

JUnit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is pair programming?

A

Two developers work on one machine to share knowledge and review code live

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Benefits of pair programming?

A

Increased code quality, shared team understanding, on-the-fly review

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Does pair programming reduce speed?

A

Not always—studies suggest two together outperform two alone

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Agile PM vs Traditional PM?

A

Traditional = plan everything early; Agile = plan just enough, adapt continuously.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is Scrum?

A

An Agile PM framework dividing projects into 2–4-week sprints, each producing a product increment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What are the phases of Scrum?
Planning Sprint cycles Closure
26
What are the Scrum meetings?
Daily Scrum Sprint review: present to stakeholders Retrospective: team evaluation
27
Q: What are challenges in scaling Agile?
Distributed teams, multi-system integration, need for architecture/docs
28
Techniques to scale Agile?
Scrum of Scrums, role replication (e.g., product owners), release alignment, cross-team planning
29
What does scaling Agile require?
Adapting without abandoning core principles—keep flexible planning, frequent releases, CI
30
What are limitations of Agile?
Fixed-scope contracts, legacy systems, long-lifetime systems, regulated industries, skill-dependent teams
31
Why is software change unavoidable?
Evolving business needs, hardware/environment upgrades, etc
32
3 stages of software lifecycle evolution?
Evolution: system is active Servicing: essential updates Phase-out: in use but frozen; no change
33
Why does software evolution matter to businesses?
Software systems are major business assets. Software budgets go toward modifying system and not creating
34
What does the evolution process involve?
Change request Impact analysis Identifying affect components Estimating cost/time Implementing and testing changes
35
What kind of requests might bypass the full lifecycle process?
Urgent requests such as critical bugs or business pressure
36
How does Agile support software evolution?
Agile enables continuous delivery and frequent releases. Automated tests
37
What are handover issues when transitioning between Agile and Plan-driven methods?
Agile -> Plan-based: evolution need more documentation Plan-based -> Agile: lack of testing/refactoring
38
What is a legacy system?
Outdated technology that is still used due to business dependency
39
What elements might be outdated in a legacy system?
Hardware Support software Poorly doc. code Inconsistent/duplicated code Embedded business rules/processes
40
What are the risks of replacing legacy systems?
Missing documentation Business process lock in New system delays Budget overruns
41
What are the two key dimensions in assessing legacy systems?
System quality Business value
42
What are the four legacy system strategy categories?
Low Quality, Low Value: Scrap the system Low Quality, High Value: Reengineer or replace High Quality, Low Value: Maintain or replace High Quality, High Value: Continue maintenance
43
What assessment factors are used for legacy systems?
Stakeholder feedback (users, managers) Frequency and importance of use Efficiency of supported processes System reliability and output importance
44
What is software maintenance?
Modifying programs after release to fix bugs, adapt to new environments, or improve the system
45
What are the 3 types of software maintenance?
Corrective Adaptive Perfective
46
What challenges are faced in maintenance?
Cost grows over time Maintainers may lack knowledge of the og system Old system often degrades
47
How can maintenance needs be predicted?
Analyzing parts likely to fail Maintainability assessment System complexity and environment dependencies
48
What are common maintenance-related metrics?
Control/data structure complexity Time to analyze/implement change Frequency of change requests
49
What is software reengineering?
Improving structure and documentation of legacy systems w/o changing behavior
50
Why might an organization choose reengineering over full replacement?
Often cheaper and less risky
51
What are typical reengineering activities?
Code translation Reverse engineering Modularization Data cleanup
52
What is refactoring?
Maintenance involving small, continuous improvements to structure, w/o adding functionality
53
Examples of refactoring targets
Removing dupe code Breaking long methods into smaller Elimination data clumps removing speculative features Replace switch statements with OOP
54
What is software project management?
Ensures software is delivered in time, within budget, and meets customer needs
55
Why is software project management important?
Software projects have tight schedules, budget constraints, changing requirements, and uncertain processes
56
What are the criteria for a successful software project?
Delivered on time Within budget Meets customer teams Build with effective team
57
What are the unique challenges in software project management?
Intangible product One-off nature Unpredictable process
58
Factos influencing management style?
Company size Customer type Project size and type Organization culture Development process
59
Universal software project management activities?
Planning Risk management People management Status reporting Proposal writing
60
Risk management
Software is unpredictable due to vague requirements, changing needs, estimation issues, and human variability
61
What are the three main types of software project risks?
Project risk Product risk Business risk
62
What are the 4 stages of risk management?
Identification Analysis Planning Monitoring
63
What is the core principle of people management?
People are the organization’s most valuable asset; poor people management leads to project failure
64
What are key values in people management?
Consistency Respect inclusion Honesty
65
What are the types of motivation in project teams (needs-based)?
Basic needs Social needs Esteem needs Self-realization needs
66
What are the personality-based motivation types?
Task-oriented Self-oriented Interaction-oriented
67
67
What is the ideal mix of motivation types in a team?
Balance is crucial
68
Why is teamwork important in software development?
Software typically requires group effort. A cohesive team shares knowledge, ensures quality, and supports continuity
69
What are the features of a cohesive group?
Mutual support Collective ownership of problems Shared standards Continuous learning and improvement
70
How should a team be composed?
By mixing technical skills and personality types
71
What happens if a team has only one personality type?
Task-oriented -> isolation Self-oriented -> competition Interation-oriented -> Distraction
72
What are the two types of group organization?
Informal (agile): no roles Hierarchical (traditonal): yes roles
73
What key organizational decisions must be made in a team?
Who makes decisions, handles communication How remote workers integrated How knowledge is shared
74
What factors influence group communication effectiveness?
Group size Structure Composition Physical environment
75
What is project planning in software development?
It involves breaking down work into parts, assigning tasks, anticipating problems, and preparing solutions
76
What is the role of a project plan?
It communicates the project approach to the team and customers, and helps track progress throughout the lifecycle
77
What are the three stages of planning?
Proposal stage: provide cost Startup phase: define team Ongoing updates: modify plan
78
Why doesn't software cost equal price?
Price reflet strategic factors beyond effort
79
What are two common pricing strategies?
Underpricing: to gain market Pricing to win: based on customer
80
Plan-Driven Development
A traditional approach where everything is planned in detail early in the project.
81
Pros and cons of plan-driven development?
Pro: anticipate problems Cons: inflexible to changes
82
What are typical sections of a project plan?
Introduction Organization Risk analysis Resources Work breakdown Schedule Monitoring and reporting
83
Why is the planning process iterative?
Projects are evolving so it has the change to reflect new strats
84
How does risk impact planning?
Risk mitigation may require re-planning
85
What does project scheduling involve?
Organizing work into tasks and estimating: Calendar time, effort, resources
86
What are the goals of good scheduling?
Run task concurrently Minimize dependencies Optimize flow
87
What tools support scheduling?
bar charts, activity networks, milestones, deliverables
88
What are the key ideas in Agile planning?
Plan just enough to guide the next increment; embrace iteration
89
What are the two levels of Agile planning?
Release planning: guides next several month Iteration planning: focuses 2-4 week increments
90
What are Agile planning techniques?
Scrum: Daily backlog reviews to adjust priorities XP Planning
91
What is a key Agile principle regarding iteration scope?
If the iteration is incomplete, scope is reduced
92
What are common challenges of Agile planning?
Requires active customer involvement Doesn't scale easily to large/distributed teams
93
What are the two main types of estimation techniques?
Experience-based estimation Algorithmic estimation
94
What is COCOMO II?
A widely accepted empirical model for estimating effort and time based on software size and complexity
95
What are the different COCOMO II models?
Application composition model Early design model Reuse model post-architecture model
96
What is the key effort formula in COCOMO II?
Effort (Person-Months) = A × Size^B × M
97
What is software quality management?
ensures software meets required quality levels through both organizational and project-level quality processes
98
What does quality management do?
Provides oversight, sets quality goals, and verifies software matches organizational standards
99
What is a quality plan?
A brief document outlining: Product intro project-specific plans Process descriptions Quality goals Risk management strategies
100
What does software quality focus on (beyond meeting specs)?
Fitness for purpose Non-functional qualities
101
What are common trade-offs in quality management?
Between performance and reliability
102
What’s the difference between process and product quality?
Process quality: how software is built Product quality: outcome
103
Does good process always lead to good product?
No
104
What is a 'quality culture'?
A mindset where everyone is responsible for quality
105
What are software standards?
Formal definitions of product and process attributes
106
Types of software standards?
Product standards: documentation Process standards: design
107
Why are standards important?
Embed best practices and ensure consistency
108
What are some problems with standards?
Seen as outdated/bureaucratic
109
What is ISO 9001?
An international framework for quality systems based on broad principles.
110
What is a criticism of ISO 9001?
Emphasizes conformance
111
What are reviews and inspections in software?
Structured evaluations of code/docs to detect problems early
112
What are the types of reviews?
Inspection Review Quality review
113
What are the steps in the review process?
Pre-review Review meeting Post-review
114
How are modern reviews supported?
Shared documents, online tools
115
How does Agile manage quality?
Prioritizes informal culture and team responsibility, encourages immediate feedback
116
What shared Agile quality practices exist?
Check before check-in Never break the build Fix problem when arise
117
What are Agile review methods?
Sprint Review (Scrum) Pair Programming (XP)
118
What are trade-offs of pair programming?
May miss shared misunderstandings Close working relationships may reduce critical feedback
119
When might Agile QM be insufficient?
In large teams with often regulated systems
120
Why do we measure software?
To assign numerical values to attributes, compare progress, control quality, and predict future outcomes
121
What are the 4 types of software metrics?
Process metrics: Time, effort Product metrics: Size, complexity Static metrics: Source code Dynamic metrics: Runtime
122
What are software metrics used for?
Maintainability, problems, decision making
123
What is software analytics?
Uses large-scale code and usage data to gain insights, predict failures, and guide decision-making
124
What enables effective analytics?
Automatic crash reports Open-source code Usage tracking
125
What challenges exist with software analytics?
Still immature, mostly adopted by large firm Custom software harder to analyze
126