Summary: Lecture 13 Flashcards

1
Q

Software Development Process Model

A
  1. Linear
  2. Iterative
  3. Concurrent
  4. Configurable or Adaptive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Agile Manifesto

A
  1. 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Requirement Elicitation

A
  1. Identify the project stakeholders
  2. Elaborate the full user requirements
  3. Draw the system boundary
  4. Understand the organisational context and culture
  5. Make hidden assumptions explicit
  6. Define other goals for the project.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Requirement Elicitation Techniques

A
  1. Questionnaires
  2. Observations
  3. Interviews
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

User Stories/Features

A

As an [actor]
I want to [action on or by the system]
so that [rationale]

As a first-time house buyer,
I want to enquire about available properties that match my preferences,
so that I can find somewhere to live.

As an estate agent,
I want to be notified about a new enquiry,
so that I can follow up with the new client.

Non-Functional:
As an buyer,
I want my search of properties to return in less than 5 seconds,
so that I don’t waste time.

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

Scenarios

A
Given [a fixture]
And [another fixture]
And [...]
When [an action is performed on a feature]
And [another action is performed on a feature]
And [...]
Then [a condition is holds]
And [another condition holds]
And [...]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Study Prioritisation - MOSCOW

A
  1. Must have
  2. Should have
  3. Could have
  4. Would be nice to have (or Won’t have this time)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Estimating Tasks Methods

A
  1. Delphi methods
  2. Market testing (priced to win, bidding)
  3. Empirical methods
  4. Algorithmic methods
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Branching is useful for?

A
  1. Experimenting with implementation of new features
  2. Undertaking substantial reorganisation
  3. Supporting a specialised variant to an application
  4. Creation of a release
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Software Development Life Cycle

A
  1. Planning: organising the project’s teams, creating a roadmap with target milestones, and defining high-level scope and objectives
  2. Analysis: defining requirements and getting them approved from the customer
  3. Design: Work on different aspects of design such as architecture, user interface, technical framework, and communications
  4. Development: Writing of the software program and documenting necessary software processes
  5. Testing: Involving various types of tests, including unit test, system integration, and user acceptance test
  6. Maintenance: Deploying the product and fixing bugs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Approaches to SDLC

A
  1. Predictive
    - Planned and organised in advance
    - Well-understood and well-defined requirements
    - Low technical risk
  2. Adaptive
    - Flexible and modified in progress
    - Uncertain requirements and needs
    - High technical risk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Code Review Items

A

1) Application Source Code
2) Source Code Documentation
3) Test Code
4) Design Descriptions
5) Requirements Specifications

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

Why undertake code reviews?

A
  1. Detect defects in software
  2. Identify refactoring opportunities for poorly structured code
  3. Develop a shared understanding of code between developers
  4. Share good practice between team members
  5. Gain knowledge about legacy systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When do code reviews take place?

A
  1. Periodically on a portion of the accepted code base.
  2. On a proposed change to a code base.
  3. Before a proposed change to a legacy system.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Defect Detection Rate

A
  1. Total Defects = Um E methods defects(m) + undetected defects
  2. Defect Detection Rate(method) = |defects(m)| / |total defects|
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Types of dependency

A
  1. Environmental
    - Explicit: explicitly documented in the configuration
    - Implicit: can’t be checked by the dependency management system
  2. Application
17
Q

Release Branches

A
  1. Allows the development team to prepare a new stable release to a customer
  2. Only changes to support bug fixes are permitted in the release branch
  3. Bug fixes in the release can be merged into master
  4. New features continue to be developed in master
18
Q

Semantic Versioning

A

Format:
major.minor.incremental[-tag]

Example:
4.0.3-SNAPSHOT

  • Major increments denotes a breaking change to a published API
  • Minor increments denotes a non-breaking feature addition change
  • Patch increments denote a non-breaking bug fixing change
  • Tag denotes release status, type or other information