Process Models Flashcards

1
Q

What is a software process?

A

A frameworks for the tasks that are required to build high quality software.

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

What is software engineering?

A

The application of systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is the application of engineering to software.

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

What is SE made of?

A
  1. The basis is the quality focus: everything is done to ensure the quality of the software.
  2. Process: schedules and controls the activities of software development.
  3. Methods: the tasks that are performed (communication, design, construction, testing, …).
  4. Tools: software that help build software (compilers, IDE, etc.).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is CASE

A

Computer-aided software engineering. It is based on integrated tools covering all software activities. Output form each intermediate tool is an input for another tool.

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

General view of a software process.

A

A process consists of a small number of activities (communication, planning, etc). Each activity is a set of concrete tasks. There are also umbrella activities which are performed throughout the whole process.

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

What are the common SP framework activities?

A
  1. Communication (requirements gathering).
  2. Planning (Identify tech. tasks, risks, resources, products, schedule).
  3. Modeling (to better understand the requirements and design)
  4. Construction (code generation and testing).
  5. Deployment (deliver to the customer and get the feedback).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is analysis?

A

A modeling task: requirements gathering, elaboration, negotiations, specification and validation. Result - analysis model and/or specification.

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

What is design?

A

A modeling task: data, architectural, interface, and component-level design. Result - design model and/or specification.

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

What are the SP umbrella activities?

A
  1. Software project tracking and control.
  2. Risk management.
  3. Software quality assurance.
  4. Formal technical reviews.
  5. Measurement.
  6. Software configuration management.
  7. Reusability management.
  8. Work product preparation and production.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is software configuration management for?

A

To manage the effect of change throughout the process.

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

What are the stages of the Waterfall model?

A
  1. Communication.
  2. Planning.
  3. Modeling.
  4. Construction.
  5. Deployment.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

When the Waterfall model can be acceptable?

A

When the requirements are well understood. For example, when a well-defined adaptation is made to the software.

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

What are the problems with the Waterfall model?

A
  1. Real projects rarely follow sequential flow. Changes are made. And they cause confusion as there are no provisions for them in the workflow.
  2. It is difficult for the customer to state the requirements clearly.
  3. It takes a long time to produce a working version of the software.
  4. Often teams have to wait others to finish their part of the software before they can proceed.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the Incremental model?

A
  1. Delivers a series of releases (increments) that provide progressively more functionality.
  2. To produce each increment a Waterfall model is used.
  3. Next iteration starts when the results of the previous one are clear, feedback is given and requirements clarified.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

When the Incremental model is appropriate?

A

When an operational (partly) software must be delivered early. When more advanced requirements are not fully understood.

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

What is the RAD model?

A
  1. Rapid Application Development model is a parallelised Waterfall model
  2. Based on heavy use of ready made components.
  3. The requirements must be well understood.
  4. After Communication and Planning phases separate teams begin work (Waterfall) on different functionalities.
  5. Modeling and Construction take 60 to 90 days,
  6. After which the system is integrated, tested and delivered (deployed).
17
Q

What are the drawbacks of the RAD model?

A
  1. For large projects many developers are required to achieve rapidness.
  2. Developers and customers must be committed to the fast pace of development.
  3. Cannot be used if the system cannot be sufficiently modularised.
  4. Cannot be used for high performance software.
  5. May not be used if high technical risks are present (eg, new technologies).
18
Q

What are the Evolutionary process models?

A

Evolutionary process models produce increasingly more complete versions of the software with each iteration.

19
Q

When an evolutionary model is appropriate?

A

When only a core of the requirements are well understood. But the extensions are yet to be defined.

20
Q

What is the difference between the Incremental and Evolutionary models?

A

In the Incremental model the increments can be planned.

21
Q

Name some Evolutionary models.

A
  1. Prototyping.
  2. Spiral model.
  3. Concurrent development.
22
Q

What is prototyping?

A

Prototyping is a process model and a paradigm which can be applied to a part of another process model. It is used when the requirements are fuzzy, new technology, no certainty about the design.

23
Q

How does prototyping work?

A
  1. Communication
  2. Quick plan
  3. Quick design
  4. Prototype construction
  5. Delivery and feedback
  6. 1-5 a few iterations
  7. Throw away prototype and rebuild system properly
24
Q

Problems with prototyping?

A
  1. Customer may demand to keep prototype after applying some fixes.
  2. Choices made during prototyping (inappropriate language, inefficient algorithm, etc) may find their way into the final system.
25
Q

What is the spiral model?

A
  1. It’s an evolutionary risk-driven model for large multi-stakeholder projects.
  2. It uses a cyclic approach to grow the system at the same time reducing risk.
  3. It defines a set of anchor point milestones.
  4. Each cycle is a strict, waterfall-style process.
  5. It starts with communication, planning involves explicit risk assessment, modelling, development, delivery and feedback
  6. Feedback is used to plan and risk-assess the next cycle.
  7. Heavy use of prototyping.
26
Q

Problems with the spiral model.

A
  1. Customers may not be convinced that the evolutionary approach is controllable.
  2. Requires significant risk assessment expertise.
  3. Problems will occur if major risks aren’t uncovered.
27
Q

What is concurrent model (concurrent engineering)?

A

A concurrent model defines a set of activities along with their states (such as None, In-progress, Awaiting-Change, Done,…). If activities are independent they can be done concurrently. Activities can trigger events (eg, pause or resume) in other activities.

28
Q

Common problems with evolutionary models.

A
  1. Difficult to plan.
  2. Some blah-blah about maximum speed of evolution: too fast is bad (chaos), and too slow is also bad (productivity).
  3. The focus is on flexibility, extensibility and speed, not on quality.
29
Q

Component-based development.

A

Uses commercial off-the-shelf components to build the system. Uses an evolutionary model (spiral).

  1. Research and evaluate available components.
  2. Integration issues considered.
  3. Architecture is designed, adjusted to the chosen components.
  4. Components are integrated.
  5. Comprehensive testing is conducted.

Reuse, speed, productivity.

30
Q

Problems with formal methods.

A
  1. Time consuming and expensive.
  2. Extensive training is required.
  3. Difficult to communicate to the customer.
31
Q

What is Unified Process (UP)?

A

It’s a iterative process model for OOP using UML.

32
Q

Phases of the Unified Process.

A

Phases (= activities):

  1. Inception (communication and planning; use cases).
  2. Elaboration(communication and modeling; use-case, analysis, design, implementation and deployment models)
  3. Construction (construction). Analysis and design models are finalised, code is written and unit tested. Acceptance tests are derived from use-cases.
  4. Transition (late construction + early deployment). Beta testing by user, feedback, defect reports, changes requests. Software is ready for deployment.
  5. Production (deployment). Defect and change reports for next iteration.
33
Q

What is a workflow in UP?

A

A task set.

34
Q

Use-case model of UP.

A

Started at Inception phase (10-20%). Refined at Elaboration.

35
Q

Analysis model of UP.

A

Models customer’s business via a set of analysis classes. Done during Elaboration.

36
Q

Design model of UP.

A

Models the software as a set of classes. Derived from the analysis model. Done during Elaboration.

37
Q

Products of the Construction phase of UP?

A

Implementation, deployment and test models.

38
Q

Products of the Transition phase of UP?

A

Working software, documentation.