Class 1 Flashcards

1
Q

What is a process?

A

A process is a set of activities that
interact to produce a result.

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

What are the activities
in software development?

A

Specification
Designing
Implementing
Testing
Maintaining

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

A software process model

A

is a description
of the sequence of activities carried out in
a SE project, and the relative order of
these activities.

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

By changing the SP model, we can improve and/or
tradeoff:

A
  • Development speed (time to market)
  • Product quality
  • Project visibility
  • Administrative overhead
  • Risk exposure
  • Customer relations
  • etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Code-and-fix model

A

> starts with little or no initial planning
➢ usually no documentation
➢ anyone who has knowledge of coding can use this

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

Code-and-fix model pros

A

Low overhead
Low expertise, anyone can use it!

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

Code-and-fix model cons

A

No way to assess progress or
manage the project
Does not fit a complex project
Unclear what and when will be
delivered
Low quality

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

Waterfall model

A

➢ every step is strictly documented and predefined
➢ follow a very strict lifecycle
➢ well defined milestones, outputs
➢ finish one step before moving to the next step

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

Waterfall model pros

A

Simple to use and understand
Has clear deliverables and
milestones
Management is simple
Easy to classify and prioritize tasks

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

Waterfall model cons

A

Too rigid
Non-adaptive design constraints
Ignores mid-process client feedback
Testing in the very end, which does
not give the option of identifying the
problem in advance
no working software is produced
until late during the life cycle

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

Why is waterfall model is not popular now?

A
  • Main assumption: all requirements can be
    determined at the beginning, no change later on
  • This does not correspond to current software development
  • Data shows change rates from 35%–50% for large projects
  • “change” is the most expensive operation in the waterfall model
  • Feedback (from clients, programmers) comes very/too late
  • Note: that doesn’t mean you should fall into the
    opposite extreme and do no planning at all
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

The broken iron triangle

A

Resources (Cost, Budget)
Scope (Features, Functionality)
schedule (Time)

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

What kinds of projects can use
waterfall model?

A

The requirements are precisely
documented
 aviation system
 warehousing systems
 There are no ambiguous requirements
 Product definition is stable, no changes

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

Prototype model

A

➢ help customers and
developers understand the
system requirements
➢ build a prototype, adjust the
requirements, and revise
the prototype until have a
clear picture

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

Prototype model pros

A

Can help reduce risk of incorrect
user requirements
Missing functionality can be
identified easily
Projects have a higher visibility

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

Prototype model cons

A

Requires extensive customer
collaboration
Difficult to know how long project
will last, users may change
requirements now and then
Easy to fall back into code-and-fix
without proper design, customer
feedback evaluation

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

What kinds of projects can use
prototype model?

A

When the requirements are unclear
When the users are involved

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

Spiral model

A

➢ a combination of waterfall and
prototype models
➢ includes risk analysis and risk
management
➢ each iteration identifies and
solves the sub-problems with the
highest risk

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

Spiral model phases

A

Plan
* communicate with the clients to get the necessary requirements
Risk Analysis
* identify all the possible risks and alternative solutions
Engineering
* develop/test the software
Customer evaluation
* customers/clients evaluate the developed system.

20
Q

Risk analysis
Example Risks

A

Personnel shortfalls
Unrealistic schedules and budgets
Developing the wrong software functions
Developing the wrong user interface
Continuing stream of requirement changes
Shortfalls in externally furnished components
Shortfalls in externally performed tasks
Real-time performance shortfalls

21
Q

Spiral model pros

A

Has risk and cost management
More flexible, changing
requirements can be handled
Allows for extensive use of
prototypes
High visibility, users see the system
early

22
Q

Spiral model cons

A

Management is more complex
Large number of intermediate
stages, which requires excessive
documentation
Could be expensive for small
projects
Relies on developers to have risk-
assessment expertise

23
Q

What kinds of projects can use spiral
model?

A

It is favored for large, expensive, and
complicated systems
For high-risk projects

24
Q

Agile models

A

plan quickly, develop quickly, release quickly, and revise quickly
➢a user-centered and practice-
based model
➢a collection of practices based on
several values and proven
software engineering principles
➢development is divided into small
iterations, at the end of each
iteration, a working product is
delivered

25
Q

Agile models

A

plan quickly, develop quickly, release quickly, and revise quickly
➢a user-centered and practice-
based model
➢a collection of practices based on
several values and proven
software engineering principles
➢development is divided into small
iterations, at the end of each
iteration, a working product is
delivered

26
Q

Core Principles Agile model:

A
  • Assume Simplicity
  • Embrace Change
  • Close Communication between
    company and client
    Incremental Change
  • Model With a Purpose
  • Multiple Models
  • Maximize Stakeholder
    Investment
  • Quality Work
  • Rapid Feedback
  • Software Is Your Primary Goal
  • Travel Light
27
Q

Core Practices Agile model:

A
  • Test-Driven Development
  • Continuous delivery of software
  • Continuous collaboration with
    customer
  • Continuous update according to
    changes
  • Continuous integration
  • Simple design
  • Pair programming
  • Sharing the code base between all or
    most programmers
  • A single coding standard to which all
    programmers adhere
28
Q

Extreme Programming (XP)

A

Emphasises
* Individuals and interactions
* Over processes and tools
* Working software
* Over documentation
* Customer collaboration
* Over contract negotiation
* Responding to change
* Over following a plan
* software engineering practices >
project management
XP practices

  • Programming in pairs
  • Test-driven development (TDD)
  • Continuous planning, change, delivery
  • Shared project metaphors, coding
    standards and ownership of code
29
Q

XP pros

A

Lightweight methods suit small-
medium size projects
Produces good team cohesion
Emphasises final product
Iterative Test based approach to
requirements and quality assurance

30
Q

XP cons

A

More difficult to scale up to large
projects where documentation is
essential
Needs experience and skill for not to
degenerate into code-and-fix
Programming in pairs is costly
Test case construction is a difficult
and specialized skill

31
Q

Scrum

A

A simple process framework for effective
team collaboration on complex products.
* Lightweight
* Simple to understand
* Difficult to master

32
Q

Scrum has been used by:

A

*Microsoft
*FB
*Google
*Electronic Arts
*High Moon Studios
*Lockheed Martin
*Philips
*Siemens
*Nokia
*Capital One
*BBC
*Intuit
*Intuit
*Nielsen Media
*First American Real Estate
*BMC Software
*Ipswitch
*John Deere
*Lexis Nexis
*…
Used from small startups to
Fortune-100 companies

33
Q

Scrum has been used for:

A

Scrum has been used for:
* Commercial software
* In-house development
* Contract development
* Research
* Financial applications
* ISO 9001-certified
applications
* Embedded systems
* 24x7 systems with
99.999% uptime
requirements
* the Joint Strike Fighter
* Video game development
* FDA-approved, life-critical
systems
* Satellite-control software
* Websites
* Handheld software
* Mobile phones
* Network switching applications
* ISV applications
* Some of the largest applications
in use

34
Q

Characteristics

A
  • Self-organizing teams
  • Product progresses in a series of month-long “sprints’’
  • Requirements are captured as items in a list of “product
    backlog”
  • No specific engineering practices prescribed
  • Uses generative rules to create an agile environment for
    delivering projects
35
Q

Sprints

A
  • Scrum projects make progress in a series of “sprints”
  • Analogous to iterations
  • Typical duration is 2–4 weeks or a calendar month at
    most
  • A constant duration leads to a better rhythm
  • Product is designed, coded, and tested during the
    sprint
36
Q

changes during a sprint

A
  • Plan sprint durations around how long you can
    commit to keeping change out of the sprint
37
Q

Scrum framework roles

A

*Product owner
*ScrumMaster
*Team

38
Q

Scrum Ceremonies

A

*Sprint planning
*Sprint review
*Sprint retrospective
*Daily scrum meeting

39
Q

Scrum Artifacts

A

*Product backlog
*Sprint backlog
*Burndown charts

40
Q

Product owner

A
  • Define the features of the product
  • Decide on release date and content
  • Be responsible for the profitability of the product
    (ROI)
  • Prioritize features according to market value
  • Adjust features and priority every iteration, as
    needed
  • Accept or reject work results
41
Q

The ScrumMaster

A
  • Represents management to the project
  • Responsible for enacting Scrum values and
    practices
  • Removes impediments
  • Ensure that the team is fully functional and
    productive
  • Enable close cooperation across all roles
    and functions
  • Shield the team from external interferences
42
Q

The team

A
  • Typically 5-9 people
  • Cross-functional:
  • Programmers, testers, user experience designers,
    etc.
43
Q

Sprint planning meeting
Sprint prioritization

A
  • Analyze and evaluate product backlog
  • Select sprint goal
44
Q

Sprint planning

A
  • Decide how to achieve sprint goal
    (design)
  • Create sprint backlog (tasks) from
    product backlog items (user stories /
    features)
  • Estimate sprint backlog in hours
45
Q

What kinds of projects can use Agile
models?

A

Projects that have dynamic requirements
When rapid productions are need
IT companies

46
Q

Model Evaluation

A

Model Evaluation
* Some criteria for evaluating models
* Risk Management
* Quality / cost control
* Visibility of progress
* Customer involvement
->Overall aim for the one fits your project.