CPSC 3720 Final Exam Terms

Waterfall Method Step 1

requirements

Waterfall Method Step 2

design

Waterfall Method Step 3

implementation

Waterfall Method Step 4

testing

Waterfall Method Step 5

deployment & maintenance

Iterative Model Step 1

planning/requirements

Iterative Model Step 2

analysis & design/implementation

Iterative Model Step 3

testing

Iterative Model Step 4

Evaluation

Functional Requirements

describe interactions between system and its environment and users.

Non-functional Requirements

describe aspects of the system not directly related to functional behavior of the system.

FURPS+
-F

functionality

FURPS+
-U

usability

FURPS+
-R

reliability

FURPS+
-P

performance

FURPS+
-S

supportability

FURPS+
-+

implementation, interface, operations, packaging, legal

Usability

#NAME?

Reliability

#NAME?

Performance

#NAME?

Supportability

#NAME?

Implementation

specific tools, languages, hardware platforms

Interface

#NAME?

Operations

constraints on admin and management of system while operational

Packaging

#NAME?

Legal

#NAME?

Use Cases

#NAME?

Contents of a Use Case

title, goal level, main success scenario (MSS), extensions, primary actor, secondary actors, precondition, guarantee, trigger

Primary Actor

has the goal the use case is trying to solve

Secondary Actor

#NAME?

Requirements Specification

#NAME?

Complete

all possible scenarios within the system are described

Consistent

no requirements contradict another requirement

Unambiguous

#NAME?

Correct

accurately represents what the client needs and what developers intend to build

Realistic

system can be implemented

Verifiable

#NAME?

Traceable

-each requirement can be traced throughout the development process to its' corresponding system functions
-dependency tracking
-aids in evaluating changes

System Design

transformation of our analysis model into our system model

Steps of System Design

#NAME?

Design Goals

#NAME?

Developer Tradeoffs
____ vs ____
____ vs ____
____ vs ____
____ vs ____

accuracy vs speed
usability vs customization
flexibility vs stability
accessibility vs security

Subsystem

#NAME?

Decomposing into relatively independent subsystems

#NAME?

Decomposing Subsystem Steps

#NAME?

* =

0 or more

1 =

exactly one

1..* =

1 or more

Service

set of related operations that share a common purpose

Notification Subsystem

#NAME?

Subsystem Interface

#NAME?

Coupling

number of dependencies between subsystems

Loosely Coupled

relatively independent

Strongly Coupled

#NAME?

You want your subsystems to be ____ coupled because ____

loosely because
-minimizes impact of changing one subsystem
-can use abstraction layers to do so

Cohesion

number of dependencies within the subsystem

A subsystem contains many related objects and tasks; cohesion is ____

high

A subsystem contains many unrelated objects; cohesion is ____

low

You want your subsystems to have ____ cohesion

high

You want ____ cohesion and ____ coupling

high; low

You don't want ____ cohesion and ____ coupling

low; high

Developers can deal with ____ concepts on any one level of abstraction

7 (+ or -) 2

System design model is ____ if the analysis model can be mapped to the system design model

correct

The system design model is ____ if every requirement and every system design issue has been addressed

complete

The system design is ____ if it does not contain any contradictions

consistent

The model is ____ if the system can be implemented

realistic

The model is ____ if developers not involved in the system design can understand the model

readable

Object Design Activities

#NAME?

List the three types of contracts

#NAME?

Invariant

-something that is true for every instance of a class
-associated with a class itself
-usually involves a data field

Precondition

what needs to be true before an operation or method is invoked

Postcondition

what is always true after the operation

Reuse

#NAME?

Delegation

way to avoid implementation inheritance

If an object of type S can be substituted in all the places where an object of type T is expected then ____ is a subtype of ____

S is a subtype of T

Advantages of Reuse

#NAME?

Anticipating Change
-New ____ or ____
-New ____
-New ____
-New ____
-____

#NAME?

Model Transformations

#NAME?

Refactoring

#NAME?

Each transformation must
____,
____,
____,
____

address a single criteria,
be local,
be applied in isolation to other changes,
be followed by validation

Four Ways to Optimize

#NAME?

Access Matric
-Each row is ____
-Each column is ____
-Each cell lists ____

each row is an actor
each column is an object
each cell lists the methods they have access to

____ of time is spent in the implementation stage

not a lot

Unidirectional One-To-One

add an attribute in A that contains B

Bidirectional One-To-One

#NAME?

Unidirectional One-to-Many

object A has a collection of type Object B

Bidirectional One-to-Many

#NAME?

Many-to-Many

#NAME?

Testing

systematic attempt to find faults in a planned way in the implemented software

Reliability (Testing)

measure of success with which the observed behavior conforms to the specification of its behavior

Software Reliability (Testing)

probability that a software system will not cause system failure under specified conditions.

Failure (Testing)

any deviation of the observed behavior from the specified behavior

Erroneous State

system is in a state such that further processing of the system will result in a failure.

Fault

mechanical or algorithmic cause of the erroneous state

____ leads to ____ which lead to ____

fault leads to erroneous state which leads to failure

Test Component

part of the system that can be isolated for testing

Fault Avoidance

#NAME?

Fault Detection

#NAME?

Fault Tolerance

#NAME?

Test Stub

partial implantation of components on which the tested components depend

Test Driver

#NAME?

A ____ is a partial implementation of components on which the tested components depend.
A ____ is a partial implementation of component that depends on the test component.

test stub
test driver

XP Values

#NAME?

Three Pillars of Scrum

#NAME?

Values of Scrum

#NAME?

Roles of Scrum

#NAME?