Management Flashcards

1
Q

Name a briefly describe the four fundamental software engineering activities

A

Specification: Defining what the system should do, A.K.A. requirements gathering.

Design and implementation: Defining the organization of the system and implementing the system, including writing source code, creating any necessary assets, and creating documentation.

Validation: Checking that the system does what the customer wants.

Evolution: changing the system in response to changing customer needs, A.K.A Maintenance (This activity also includes release/deployment)

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

Name and briefly describe the three families of software process models

A

Waterfall: A plan-driven model where you proceed sequentially through the activities described in the software engineering activities.

Incremental: The activities described are interleaved and performed repeatedly in cycles.

Integration & configuration: The system is assembled from pre-existing components which are then customized and integrated.

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

Name and briefly describe three types of testing

A

Component: Individual parts of the system are tested independently. Unit testing usually falls into this category.

System: Testing of the system as a whole, how the different components interact with each other.

Customer: Real users (customers) use the system and evaluate whether it meets their needs - This can also include testing with “real world” data rather than with human customers.

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

Name and briefly describe the types of prototyping

A

Throw-away: A prototype that is quickly developed for testing for early demonstration and then discarded.

Evolving: Building off and expanding a prototype to develop it into the final product.

Horizontal: A broad but shallow prototype that shows many features but with little to no functionality (UI mockup).

Vertical: A narrow, deep prototype that demonstrates one specific feature of the product.

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

List the five levels of CMMI

A
Initial
Repeatable
Defined
Managed (Capable)
Optimizing (Efficient)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Name and briefly describe the organizational principles of agile

A
Put the customer at the center:
Let the team self-organize:
Work at a sustainable pace:
Develop minimal software
    1. Produce minimal functionality
    2. Produce only the product requested.
    3. Develop only code and tests
Accept change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Name and briefly describe the technical principles of agile

A

Develop interactively:

  1. Produce frequent working iterations.
  2. Freeze requirements during iterations.

Treat tests as a key resource:

  1. Do not start any new development until all tests pass.
  2. Test first.

Express requirements as scenarios

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

Name and briefly describe the techniques (Practices) employed by XP

A
Pair programming
On-site customer
Test-driven development
40-hour weeks
Open workspaces
Refactoring
Collective ownership of the code
Continuous Integration
The planning game
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe some methods for checking the quality of the code before it’s checked in.

A

Pair programming
Code review
Test-driven development/automated testing

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

Name and briefly describe the roles in Scrum

A

Product owner: Customer or customer representative responsible for prioritizing product backlog.

Scrum Master: Facilitator who helps the team use the Scrum process productively and advocates for the rest of the team to the rest of the organization.

Developer: Self-explanatory

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

Name and briefly describe the practices employed by scrum

A

Product backlog defined as a list of user stories.
Development carried out in sprints.
Daily standup meeting.
Regular retrospective meetings.
Closed-window rule (Requirements are frozen during development)

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