Final Material - Midterm Material Flashcards

1
Q

What is the aim of software engineering?

A

To produce fault-free software that satisfies user needs, is delivered on time, and within budget

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

What is a software development life cycle?

A

A description of the steps that should be performed when building software

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

What are the major steps of a software development life cycle?

A

Requirements, analysis, design, implementation, testing, and maintenance

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

What is the most costly phase of a software development life cycle and why?

A

Maintenance (about 2/3 of total cost). This is because it is spread over a much longer time frame

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

What is the difference between a software process and a process model?

A

A layer of abstraction similar to the difference between an ADT and an implemented data type

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

What is the waterfall model?

A

Plan-driven process model with separate and distinct phases of specification and development

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

What are the stages of the waterfall model?

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
8
Q

What are the problems with the waterfall model?

A

It is difficult to change things once the process has begun and is costly to go back
The client only sees a working product when it is entirely complete

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

When should the waterfall model be used?

A

When requirements are well understood and changes will be limited. Also for large systems engineering projects

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

What are the 5 levels of the Capability Maturity Model (CMM) and what do they mean?

A
  1. Initial - Process is unpredictable, poorly controlled, and reactive
  2. Repeatable - Processes are made for specific project but there is no organization wide process and so the organization is reactive as a whole
  3. Defined - A process has been defined at the organization level but projects may change the process to meet its specifics
  4. Managed - You are measuring the process and analyzing the resulting data
  5. Optimizing - Using the collected data to make improvements to the process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the rational unified process?

A

A generic process for object-oriented models designed and documented using UML. It is iterative and incremental

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

What are the phases of the rational unified process?

A

Inception - Establish the business case for the system
Elaboration - Develop understanding of the problem domain and system architecture
Construction - System design, programming, and testing
Transition - Deploy the system in its operating environment

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

What are the core workflows of the rational unified process?

A

Requirements, analysis, design, implementation, test

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

What are the rational unified process best practices?

A
  1. Develop software iteratively - Plan increments based on customer priority with higher priority items coming first
  2. Manage requirements - Explicitly document customer requirements and keep track of changes
  3. Use component based architecture - Organize the system out of reusable components
  4. Visually model software - Use UML models to present static and dynamic views of the software
  5. Continuously verify quality - Performing testing throughout the project
  6. Control changes - Manage changes using a change management system and configuration management tools
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the 4 points of the 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
16
Q

What is pair programming?

A

When two programmers work together at the same machine to develop the software. The pairs are created dynamically so every programmer works with every other programmer at some point

17
Q

What is refactoring and why is it important?

A

Refactoring is the process of making constant improvements to code throughout the development process. It is important because it helps to make changes easier when they need to be implemented

18
Q

How is refactoring done?

A

The programming team looks for any improvements to be made within the code and implement them event if there is no immediate reason for doing so. In doing this, the code becomes much more understandable

19
Q

What is scrum?

A

Scrum is an agile methodology with a focus on project management

20
Q

What type of environment should a scrum master foster?

A

An environment where a product owner orders work for a problem into a product backlog, the scrum team turns a selection of work into an increment of value for the sprint, and the scrum team and stakeholders inspect the results and adjust for next sprint

21
Q

What is a scrum team?

A

A self organizing group of developers usually 3-9 people

22
Q

What is a scrum meeting?

A

A daily meeting where the scrum team reviews what has been done and prioritizes work to be done that day

23
Q

What is a scrum master?

A

The project manager for the scrum team. They ensure the scrum process is being followed and act as a liaison between the scrum team and the rest of the company

24
Q

Why is scrum preferred to extreme programming?

A

Extreme programming gets the job done fast but it is messy and there is no project management

25
Q

What are the advantages of scrum?

A
  1. Larger projects are broken down into manageable chunks
  2. Ensures efficient use of client time and money
  3. Development team and client work closely together and receive more feedback
  4. Allows for increased flexibility
26
Q

What is a sprint?

A

A single development iteration in scrum, usually 2-4 weeks

27
Q

What is velocity and how is it calculated?

A

Velocity is the amount of work that is done within a period of time such as a spring. Could be based on story points or person hours.
It is calculated by finding the average number of story points per sprint

28
Q

What is kanban?

A

An agile software development practice based on visual project management to track tasks and reduce inefficiencies

29
Q

What is the difference between scrum and kanban?

A

Scrum is a discrete process whereas kanban is a continuous process. This means that work in scrum is organized into sprints of defined length and work is added to a sprint backlog to complete. In kanban, user stories are continually moved from the backlog, to in progress, to complete, until the project is finished