Software Processes and Agile Development Flashcards

1
Q

What is a software process?

A

A process identifies the activities that must be performed in order to achieve the desired outcome

A process organizes activities into stages or phases with gateways that defines the criteria when the process can move from one phase to another

A process defines roles that team members play while following a process

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

Software Process Components?

A

Activities (HOW)
Phases (WHEN)
Roles (WHO)
Artefacts (WHAT)

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

Plan Driven Processes?

A

Activities are planned in advance
Measured against the plan
Significant upfront engineering effort
Minimize changes

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

Agile Processes?

A

Planning is incremental and continually adapted as software is developed.

Change is embraced and mitigated with recurrent refactoring / rework.

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

Simplification of Reality?

A

Allows to better understand and analyze what is being modelled

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

Waterfall?

A

Each software activity is treated as a distinct phase of the process

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

Incremental?

A

The process is divided into iterations. Each iteration consists of all activities necessary for an executable deliverable

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

Integration and Configuration?

A

Activities center around assembly, configuration and customization of existing components.

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

Waterfall model was proposed as?

A

Winson Royce as a way to manage the development of large systems in 1970s

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

Waterfall model components?

A
Requirements Definition
System and Software Design
Implementation and Unit Testing
Integration and System Testing
Operation and Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Spiral Model?

A

Bohem 1988
Iterative process with Iterations that are designed to minimize risk
Uses evolutionary prototyping

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

RUP?

A

Rational Unified Process

Iterative development where each iteration includes all activities with different emphasis

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

Phases of RUP?

A

Inception,
Elaboration,
Construction,
Transition

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

Inception Phase?

A

Establish a business case and identify stakeholders and business requirements

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

Elaboration Phase?

A

Develop understanding, build requirement models, architecture and early system prototypes.

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

Construction Phase?

A

Emphasizes design, programming and testing activities

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

Transition Phase?

A

Taking the system from development to operation and developing user documentation

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

RUP Phases can be implemented based on which processes?

A

Plan Based: phases contain iterations of the same type

Agile: each iteration contain the each phases

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

Workflows in RUP?

A
Business Modelling
Requirements Modelling
Analysis and Design
Implementation
Testing
Deployment
Configuration and Change Management
Project Management
Environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Integration and Configuration?

A

Using or customizing general purpose systems

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

List General Purpose systems?

A

Customer Relationships Management Systems (CRMs)
Human Resources Management Systems (HRMs)
Financial Management Solutions (FMS)
Supply Chain Management
Enterprise Resource Planning (ERP)

22
Q

Vendors that provide the platform and consulting services?

A

Microsoft
SAP
PeopleSoft
Oracle

23
Q

Software Specification Activities & Artifacts?

A

Requirements Analysis
- Identify, elicit, discover requirements

Require Specification
- Define, describe, document requirements

Requirements Validation

  • Feasibility
  • Consistency
  • Completeness
24
Q

General model of the design process?

A

Architectural Design
Interface Design
Detailed Design
Database Design

25
Software Validation Activities?
Component Testing System Testing User Testing
26
When selecting a process what goals should be achieved?
``` Time to market Cost Quality Predictability Visibility ```
27
Time to Market?
Increase development speed
28
Cost
Effective use of resources
29
Quality
Software development best practices
30
Predictability
Effective planning and risk management
31
Visibility
Communication, user satisfaction
32
4 Dimensions of good software?
Process People Product Technology
33
Traditional Processes?
Develop a stable plan and follow it - Focus on predictability Minimize change - Changes lead to replanning - Changes in the plan can have unpredictable results Minimize rework - Decrease time to market by avoiding unnecessary rework
34
Agile Processes?
Plan is small increments and adapt the plan often - Focus on visibility and time to market Embrace change no matter when it comes - Future changes are irrelevant if the future is not planned ``` Embrace Rework (Refactoring) - Rework is accepted as necessary cost of unpredictability ```
35
2 Different Types of Prototyping?
Throwaway | Evolutionary
36
Throwaway Prototyping?
Prototype is scrapped after it served its purpose | Used to test technologies, concepts, mitigate risks
37
Evolutionary Prototyping?
Engineered and re-factored continuously and transformed into final product A process of iterative and incremental development When it gets enough critical mass it becomes the product
38
Incremental Delivery?
System is developed iteratively Several iterations make up a system increment System increments are delivered and installed at the customer
39
Challenges of Incremental Delivery?
Customer may not be able to use a partially developed system | Required system infrastructure and design can be hard to determine
40
Processes need to be?
Measured, Analyzed, Improved (Process improvement cycle)
41
Capability Maturity Model?
``` Initial Managed Defined Quantitatively Managed Optimizing ```
42
Motivation for Agile Development?
Fastest time to market Unprecedented pace of technological change may force redevelopment despite best engineering efforts Defining a reliable plan is hard and takes itself significant time and resources
43
Agile Methodologies?
SCRUM TDD Pair Programming
44
SCRUM?
Iterative and incremental project management methodology Process is broken down into iterations whose input are requirements managed through a back-log Estimation is performed in relative terms based on story points
45
Test-Driven Development?
Increased emphasis on unit-testing and testability with significant effects on modularization and abstraction
46
Agile Challenges?
Customer Involvement Team Challenges Product Challenges
47
Customer Involvement?
Reliant on customer being available and involved when that is rarely the case Single product owner or customer representative is not feasible when different people have different expertise
48
Team Challenges?
Requires self-driven, senior developers for the same task Without models, documentation and supporting artifacts the process relies on having the same people always involved. Development team continuity is critical and cannot be guaranteed
49
Product Challenges?
Incompatible with many types of systems and expectations of delivery For systems that are informal, fast paced, one-time development with no large planned maintenance or evolution Does not scale to large systems
50
Decision Making Framework components?
Complex Complicated Chaotic Simple
51
Roles in Scrum Team?
Product Owner ScrumMaster Development Team