Software Engineering Processes Flashcards

1
Q

What is a

Software Engineering Process?

A

A structured set of activities required to develop a software system

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

SE Processes:

Fundamental Software Engineering Activities

A

Specification

Development

Validation

Evolution

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

SE Processes:

Opportunistic Approach

A

Essentially, just immediately write code

  • Sort of ok for small, informal projects
  • Inappropriate of complex software
  • Inappropriate for professional environments where On-Time Delivery and High Quality are expected
  • Requirements are not worked out before implementation
  • Design deteriorates quickly
  • No plans, no formal testing
  • Maintenance and development costs are high
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Software Engineering Processes:

3 Major Process Models

A

Waterfall Model

Incremental Development Model

Reuse-Oriented Model

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

Software Engineering Processes:

Plan-Driven

vs

Agile

Processes

A

Plan Driven

All process activities are planned in advance.

Progress is measured against this plan

Agile

Planning is incremental, it is easier to change the process to reflect changing customer requirements.

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

Waterfall Software Process:

Basic Idea and Phases

A

Takes the fundamental process activities and represents them as separate, sequential phases.

In theory, a phase should only be visited once in a development/release cycle.

Phases

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

Waterfall Software Process:

When to Use

A

Waterfall Process can be used when:

  • Requirements are well-understood
  • Changes will be fairly limited during design process
    • A few business systems have stable requirements
  • Large Systems Engineering projects where a system will be developed at several sites
    • The Plan-Driven nature of the model helps coordinate this kind of work
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Incremental Development Model

Basic Description

A
  • Interleaves the activities of Specification, Development and Validation
  • Product is developed as a series of versions, with each version adding functionality to the previous version
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Incremental Development Model:

Benefits

A
  • Cost of accomodating changing requirements is reduced
  • Easier to get customer feedback on the development work that has been done
  • More rapid delivery and deployment of useful software is possible, even if all functionality is not included
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Incremental Development Model:

Issues

A

(Largely managerial issues)

  • Process is not very visible
    • Difficult to measure progress without deliverables
    • Documentation for each version is not cost effective
  • System structure tends to degrade as new increments are added
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Reuse-Oriented Software Engineering:

Basic Description

A

Based on the existence of a significant number of reusable components.

Focuses on integrating components into a system rather than developing them from scratch

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

Reuse-Oriented Process:

Benefits

A
  • Reudce the amount of software to be developed
  • Reduce cost
  • Faster delivery of software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Reuse-Oriented Process:

Problem

A

Existing components may not cover requirements.

May need to compromise requirements to match available software

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

Reuse-Oriented Process:

Three common types of

Software Component

that may be reused

A
  • Web Services
    • Existing services such as Web APIs that are developed according to service standards and are available for remote invocation
  • Code Collections/Frameworks/Libraries
    • Collections of objects/components developed as a package to be integrated with a component framework like .NET
  • Stand-alone Software Systems
    • Can be configured for use in particular environments
    • Like control systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Reuse-Oriented Process:

Intermediate Stages

A

Component Analysis

Requirements Modification

System Design with Reuse

Development and Integration

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

Rational Unified Process:

The RUP is normally described from what 3 Perspectives?

A

Dynamic Perspective

Shows the phases of the model over time

Static Perspective

Shows the process activities that are enacted

Practice Perspective

Suggests good practices to use during the process

17
Q

Rational Unified Process:

Phases (4)

A

Inception

Elaboration

Construction

Transition

18
Q

Rational Unified Process:

Inception Phase

A

Inception

Establish a business case for the system

19
Q

Rational Unified Process:

Elaboration Phase

A

Elaboration

Develop an understanding of problem domain.

Establish architectural framework for system.

Develop project plan.

Identify Key project risks.

20
Q

Rational Unified Process:

Construction Phase

A

Construction

System Design

Implementaion

Testing

21
Q

Rational Unified Process:

Transition Phase

A

Transition

Move the system from the development community to the user community

22
Q

Boehm’s Spiral Process Model:

Basic Description

A

Software Engineering activities are organized into a “Spiral”

  • Each loop in the spiral represents a phase(cycle) in the process.
  • There are not fixed phases such as specification or design
  • The sectors(quadrants) of the spiral represent general types of SE activities
23
Q

Boehm’s Spiral Process Model:

Four Sectors

A

Objective Setting

Determine phase objectives, alternatives and constraints

Risk Assessment and Reduction

Identify and resolve risks, evaluate alternatives

Development and Validation

Develop, verify the next level of the product

Planning

Plan the next phase

24
Q

Software Lifecycle Stages

A

Inception

Pre-Development

Development

Post-Development