Hoofdstuk 1 Flashcards

1
Q

How does Software Engineering differ from programming?

A

There are many more aspects to software engineering than there is to programming. There is analysis and design, there is testing,… Also programming is more a solo activity whilst software engineering requires a team spirit. It is working together to achieve a larger goal or project.

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

Why is programming only a small part of the cost of a “real” software project?

A

Because there are so many more aspects to a software project then just programming. There is the requirements collection, there is analysis and design. Then we have the implementation and testing to verify the solution against the requirements. After that, maintenance is also a part of the software project and last but not least we have quality assurance.

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

Give a definition for “traceability”.

A

◦ The quality of having an origin or course of development that may be found or followed
◦ The ability to verify the history, location, or application of an item by means of documented recorded identification.
◦ Can we deduce which product components will be affected by changes?

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

What is the difference between analysis and design?

A

◦ Analysis = model and specify the requirements = “what”
◦ Design = model and specify a solution = “how”
◦ Analysis is looking at “what” does the client need and translating those needs into requirements. Design is specifying how those requirements need to be build. It is looking at system design (architecture) and formal specifications.

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

Explain verification and validation in simple terms.

A

◦ Are we building the right product? = Validation
◦ Are we building the product right? = Verification

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

Why is the “waterfall” model unrealistic? Why is it still used?

A

◦ Four reasons:
▪ Incomplete: a customer cannot state all requirements explicitly
▪ Idealistic: in real projects iteration occurs (but tools and organization obstruct)
▪ Time: A working version of the system in only available late in the project
▪ Change: it is very difficult and costly to adapt to changes in the requirements
◦ It is still used because it is easy for the upper management to control project progress
◦ The waterfall model is popular for upper management, because it is visible: it is easy to control project progress

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

Can you explain the difference between iterative development and incremental development?

A

◦ Iterative development = controlled reworking of a system part to make improvements
▪ we get things wrong before we get them right
◦ Incremental development = make progress in small steps to get early tangible results
▪ always have a running version

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

How do you decide to stop in the spiral mode?

A

◦ When the software is retired. Meaning when there is no longer a need to keep working on the software or there is no longer use for it.
◦ After risk analysis

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

How do you identify risk? How do you asses a risk? Which risks require action?

A

◦ Identify risk factors via risk item checklist.
◦ For each risk factor, estimate the likelihood and the impact. Use a 3 or 5 point likert scale.
◦ The risks with the highest priority and with the highest points on previous said scale, need to be taken action for.

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

What is Failure Mode and Effects Analysis (FMEA) ?

A

A step-by-step approach for identifying all possible failures in a design, a manufacturing or assembly process, or a product or service. It identifies the modes in which something might fail and studies the consequences of those failures.

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

List the 6 principles of extreme programming.

A

◦ Fine scale feedback
◦ Continuous process
◦ Shared understanding
◦ Programmer welfare
◦ Coding
◦ Testing

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

What is a “sprint” in the SCRUM process?

A

It is a 2 to 4 week period in which the team creates a working, potentially shippable, product increment. The features created in the increment are chosen from the product backlog.

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

Give the three principal roles in a scrum team. Explain their main responsibilities.

A

◦ Product Owner: prioritize backlog. Defines which features will be implemented first
◦ Scrum Master: facilitator
◦ Development Team: responsible for the increment(s) to be added to the product.

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