Final Exam Flash Cards

1
Q

Name the 4 main steps in the Requirements Engineering Process

A
  1. Feasibility Study
  2. Requirements Elicitation
  3. Requirements Definition
  4. Requirements Specification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Requirements Process step that is:

  • Quick and cheap
  • Can user needs be met using current tech?
  • Will the proposed system be cost effective?
  • Is more detailed analysis warrented?
A

Feasibility Study

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

Which Requirements Process step can be described as:

  • Observation of existing systems, processes
  • Discussion with potential users, procurers
  • Development of problem domain models (Process, State, Data flow, Class diagrams, etc.)
  • Prototype development
A

Requirements Elicitation

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

Customer-oriented and written using natural language and easy to understand diagrams.

A

Requirements definitions

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

Software-designer oriented and more precise description of functionality and constraints.

A

Requirements Specifications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  • Should specify only external behavior.
  • Should specify constraints on the implementation.
  • Should be easy to change.
  • Should serve as a reference tool for system maintainers.
  • Should record forethought about life cycle.
  • Should characterize acceptable responses to undesired events.
A

Requirements Document Attributes

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

Check that all requirements are:
• Correct
– In practice, requirements are a compromise across a diverse group of stakeholders, so what are the “correct” requirements?
• Precise
• Complete
• Consistent
• Clear / Understandable / Unambiguous
• Realistic
– There is no point in specifying unrealistic requirements
• Verifiable: How can the requirement be tested?
• Traceable: What is the source of the requirement?

A

Requirements Validation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  • Developer “walks” customer through each requirement, explaining implications.
  • Review team checks each requirement to make sure it satisfies all of the criteria in requirements validation.
A

Requirements Review (formal)

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

Gathering requirements from stakeholders is defined as _______.

A

Elicitation

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

The following list the steps of which process?

  • Domain Understanding
  • Requirements Collection
  • Classification
  • Conflict Resolution
  • Prioritization
  • Requirements Validation
  • Requirements Definition
A

Requirements Elicitation Process

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

End-users, managers, engineers who develop or maintain related systems, domain experts, union representatives, etc.

A

Stakeholders

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

What are some challenges that we can face while working with stakeholders?

A
  • They may not know what they really want, or may find it difficult to articulate it
  • May make unrealistic demands
  • May express requirements in their own terms with implicit knowledge of their own work.
  • May be politically motivated
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the components of Elicitation Methodologies?

A
  • Process Model
  • Domain modeling notations
  • Rules applied to domain models
  • Design guidelines
  • Report templates
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Technique whereby a sociologist spends considerable time observing in the working environment. Does not involve people explaining what they do.

A

Ethnography

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

What is the problem with Ethnographic Analysis?

A

Studying existing work supported by imperfect systems may lead to erroneous conclusions concerning requirements.

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

What type of modeling is about discovering and documenting what already exists in the real world?

A

Domain Modeling

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

If we think of something in the real world as text or a number, it is probably an _______, otherwise it is an ________.

A

attribute; entity

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

_________ should imply an enduring relationship which needs to be remembered.

A

Association

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q
  • Focus on enduring relationships rather than transient events
  • Entities are more important than associations
A

Associations

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

“Part-of” associations

A

Aggregations and Composition

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

_________ is a strong form of ________ where parts may belong to only one whole, and whose existence depends on the whole.

A

Composition; aggregation

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

How is a composition represented on a domain model?

A

A line with a filled in diamond coming from the larger hierarchy.

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

How is aggregation represented on a domain model?

A

A line with an unfilled diamond coming from the secondary hierarchy entity.

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

What does * represent on a domain model?

A

Zero or more

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

What does 1..* represent on a domain model?

A

One or more

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

What does 1..10 represent on a domain model?

A

One to ten

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

What does 3, 5, 10..* represent on a domain model?

A

three, five, or at least 10

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

Relate concepts with _______, not _______.

A

associations; attributes

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

What are the 2 types of domain model inheritance?

A

Bottom-up

Top-down

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

What is a useful method for diagramming entities and associations?

A

UML Class Diagrams

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

________ are more important than ______ and should receive more attention.

A

Entities; associations

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

What are some problems with Natural Language?

A
  • Lack of Clarity
  • Requirements confusion
  • Amalgamation - several different requirements may be expressed as a single requirement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

The following is a example of what type of requirement format?

2.6 Grid facilities. To assist in the positioning of entities on a diagram, the user may turn on a grid in either centimeters or inches, via an op0on on the control panel. Initially, the grid is off. The grid may be turned on and off at any time during an editing session and can be toggled between inches and centimeters at any time. A grid option will be provided on the reduce-to-fit view but the number of grid lines shown will be reduced to avoid filling the smaller diagram with grid lines.

A

Natural Language

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

The following is an example of what type of requirements format?

2.6 Grid facili0es
- 2.6.1 The editor shall provide a grid facility where a matrix of horizontal and ver&cal lines provide a background to the editor window. This grid shall be a passive grid where the alignment of en00es is the user’s responsibility.
Ra0onale: A grid helps the users to … Although an ac0ve grid … the user is the best person to decide where en00es should be posi0oned.
- 2.6.2 When used in ‘reduce-to-fit’ mode (see 2.1), the number of units separa0ng grid lines must be increased.
Ra0onale: If line spacing is not increased, the background will be very cluWered with grid lines.

A

Standard format

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

What are the different methods of requirements specification?

A
  • Structured natural language
  • Requirements specification language
  • Graphical notations
  • Formal specifications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

A _________ constitutes a complete course of events initiated by an actor and provides something of value to the actor.

  • Specifies the interaction that takes place between an actor and the system
  • Represent the functionality of a system.
A

use case

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

What do Use Case Diagrams show?

A

Actors and use cases (scenarios), and the relationships among them.

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

________ represent the users of a system (human or otherwise.)

A

Actors

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

What are the 4 types of relationships that actors and use cases can have in a diagram?

A
  • Association
  • Generalization
  • Extend
  • Include
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

This type of diagram shows objects by their “lifelines” and the sequence of stimuli that they exchange.

A

UML Sequence Diagrams

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

This type of formal specification consists of:

  • a set of places
  • a set of transition
  • an input function (maps transitions to places)
  • an output function (maps transitions to places)
A

Petri Nets

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

When a transition fires, _______ are placed at the target of each output arc.

A

tokens

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

What is a formal specification type that defines a model of a system using well-understood mathematical entities?

A

Z Specification

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

An effective low-level structuring facility

A

schemas

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

What does a schema in Z specification include?

A
  • a name identifying the schema
  • a signature introducing entities and their types
  • a predicate part defining invariants over these entities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

T/F: Schemas can be included in other schemas and may act as type definitions

A

True

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

T/F: Names are not local to schemas.

A

False

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

In Z specification, what does a variable name with a (quotation mark) (N’) represent?

A

The value of the state of N after an operation.

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

In Z specification, what does a schema name with a dash indicate?

A

It introduces the dashed values of all names defined in the schema.

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

In Z specification, what does a variable name decorated with a ! represent?

A

Output

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

In Z specification, what does a variable name with a ? represent?

A

An input

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

In Z specification, what does a schema name prefixed by the Greek letter Xi Ξ mean?

A

It means that the defined operation does not change the values of state variables.

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

In Z specification, what does a schema name prefixed by the Greek letter Delta Δ mean?

A

It means that the operation changes some or all of the state variables introduced in the schema.

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

T/F You can combine all schemas using the disjunction OR operator

A

True

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

T/F: Specification using sets allows ordering to be specified.

A

False

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

In Z specification, what are used for specifying ordered collections?

A

Sequences

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

What is a sequence?

A

A function mapping consecutive integers to associated values.

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

T/F: Little effort has been devoted to method and tool support for formal techniques.

A

True

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

T/F: Customers cannot understand formal methods.

A

False

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

What are some pros of formal specification?

A
  • Provides insight into understanding requirements and the software design
  • May be analyzed using mathematical methods
  • May be automatically processed (development and debugging tools)
  • May help in identifying appropriate test cases.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

T/F: Formal methods result in perfect software.

A

False

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

T/F: Formal Methods require a high level of mathematical skill.

A

False

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

T/F: Formal specs are not useful in defining standards where precision and unambiguity are essential.

A

False

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

What are the 4 stages of software design?

A
  • Problem Understanding
  • Identify one or more solutions
  • Describe solution abstractions (graphical, formal or other descriptive notations)
  • Repeat process for each identified abstraction until the design is expressed in primitive terms.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

This design technique starts at the system level and decomposes into progressively smaller components until we reach the level of individual objects.

A

Top-down design

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

T/F: in practice, large system designs are never strictly top-down.

A

True

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

Good system design is concerned with maintainability, which requires _______ and ________.

A

high cohesion; loose coupling

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

A measure of how strongly the elements within a component are related. The stronger the better.

A

cohesion

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

T/F: A component should implement many entities or functions.

A

False

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

Cohesion level: Parts of a component are simply bundled together

A

coincidental cohesion (weak)

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

Cohesion level: Components which perform similar functions are grouped

A

logical cohesion (weak)

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

Cohesion level: Components which are activated at the same time are grouped

A

Temporal cohesion (weak)

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

Cohesion level: The elements in a component make up a single control sequence

A

Procedural cohesion (weak)

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

Cohesion level: All elements of a component operate on the same input or produce the same output

A

Communicational cohesion (medium)

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

Cohesion level: The output for one part of a comp component is the input to another part

A

Sequential cohesion (medium)

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

Cohesion level: Each part of a component is necessary for the execution of a single function

A

Functional cohesion (strong)

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

Cohesion level: Each operation provides functionality which allows object attributes to be modified or inspected

A

Object cohesion (strong)

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

A measure of the strength of the interconnections between system components.

A

Coupling

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

T/F: Loose coupling means component changes are unlikely to affect other components.

A

True

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

T/F: Shared variables or exchange of control information lead to tight coupling.

A

True

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

Types of coupling: One module refers to or changes the internals of another module

A

Content coupling (tighter)

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

Types of coupling: Two modules share the same global data areas

A

Common coupling (medium)

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

Types of coupling: Data from one module is used to direct the order of instruction execution in another

A

Control coupling (medium)

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

Types of coupling: Two modules communicate via parameters passed between the two modules. The data is used in problem related processing, not for program control purposes.

A

Data coupling (looser)

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

T/F: Maintaining high cohesion and loose coupling at every level of the design is impossible.

A

False

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

T/F: Coupling and cohesion are fundamentally different forces.

A

True

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

T/F: Inheritance increases coupling since an object class is strongly coupled to its super-classes.

A

True

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

T/F: Inheritance strengthens cohesion, since functionality that “belongs together” is spread between super-classes and their sub-classes.

A

False

89
Q

T/F: Inheritance dramatically improves adaptability.

A

True

90
Q

_________ capture the essential elements of the best existing designs.

A

Patterns

91
Q

_________ of architectural and design experience is one of the most important factors in successfully building large software systems.

A

Reuse

92
Q

T/F: it is sometimes possible to identify families of patterns that fit together in harmonious ways.

A

True

93
Q

Many patterns provide guidance for how _______ should be assigned to objects.

A

responsibilities

94
Q

What two main types of responsibilities are there?

A

Doing and knowing

95
Q

What are the following?

  • Expert
  • Creator
  • High Cohesion
  • Low Coupling
  • Controller
  • Polymorphism
  • Pure fabrication
  • indirection
  • Don’t talk to strangers
A

Responsibility patterns

96
Q

This is the most used pattern for assignment of responsibility.

A

Expert

97
Q

This responsibility pattern leads to designs where software objects DO operations that are normally DONE TO the corresponding real world object.

A

Expert

98
Q

_________ Should normally delegate the work to other objects while coordinating the activity.

A

Controllers

99
Q

What are the three main parts of the architectural design process?

A
  • System structuring
  • Control modeling
  • Modular decomposition
100
Q

A model of the control relationships between the different parts of the system.

A

Control modeling

101
Q

T/F: A sub-system is a system in its own right whose operation is independent of the services provided by other sub-systems.

A

True

102
Q

A ________ is a system component that provides services to other components but would normally be considered as a separate system.

A

module

103
Q

How is architectural design normally expressed to show an overview of the system structure.

A

block diagram

104
Q

T/F: When large amounts of data must be shared, the shared repository model is most commonly used for reasons of efficiency.

A

True

105
Q

Which type of architecture pattern is described below:

  • shared data is held in a central database or repository and may be accessed by all sub-systems
  • Each sub-system maintains its own database and passes data explicitly to other sub-systems
A

Shared repository pattern

106
Q

A distributed system model which shows how data and processing is distributed across a rang of components.

A

Client-server pattern

107
Q

T/F: Architectural patterns may not be combined to form new solutions.

A

False

108
Q

Which architectural pattern is defined below?

Each layer depends on only the services of the layer immediately below it.

A

Layers pattern

109
Q

_______ consume and deliver data incrementally, in contrast to consuming all input before producing any output.

A

Filters

110
Q

Data is passed through ______ between adjacent filters.

A

pipes

111
Q

_______ components are the processing units of the pipeline.

A

Filter

112
Q
  • enriches data by computing and adding information
  • refines data by concentrating and extracting information
  • transforms data by delivering the data in some other representation
A

a filter

113
Q

What are the two types of filters?

A

active and passive

114
Q

In a single-process arrangement, _______ are typically implemented as queues.

A

pipes

115
Q

T/F: Pipes and Filters supports parallelism, since all filters are active at the same time, once the pipeline is full.

A

True

116
Q

One sub-system has overall responsibility for control and starts and stops other sub-systems.

A

Centralized control

117
Q

Each sub-system can respond to externally generated events from other sub-systems or the system’s environment.

A

Event-based control

118
Q

Which type of centralized control model is described below?

  • applicable to sequential systems
  • Top-down subroutine model where control starts at the top of a subroutine hierarchy and moves downward.
A

Call-return model

119
Q

Which type of centralized control model is described below?

  • Applicable to both sequential and concurrent systems.
  • One system component controls the stopping, starting and coordination of other system processes.
  • can be implemented in sequential systems as a case statement
A

Manager model

120
Q

What are the two principle event-driven models?

A

Broadcast models and interrupt-driven models

121
Q

Sub-systems register an interest in specific events. When these occur, control is transferred to the sub-system which can handle the event.

A

Broadcast model

122
Q

Architectural model used in real-time systems where fast response to an event is essential.

A

Interrupt-driven

123
Q

________ models are usually bottom-up models.

A

Generic

124
Q

________ models are usually top-down models.

A

Reference

125
Q

Any type of measurement which relates to a software system, process, or related documentation.

A

Software Metrics

126
Q

What are the properties of Metrics?

A
  • simple and computable
  • empirically and intuitively persuasive
  • consistent and objective
  • programming language independent
127
Q

T/F: Professional statisticians should be consulted to gather software metrics.

A

True

128
Q

What are two methods of estimating cost early in the development process?

A
  • COCOMO

- Functional points

129
Q

A statistical method of predicting values of one or more dependent variables from a collection of independent (predictor) variables.

A

Regression

130
Q

What does COCOMO stand for?

A

COnstructive COst MOdel

131
Q

What are the two main factors in the COCOMO 2 Model?

A
  • scale factors

- effort multipliers

132
Q

What is the primary parametric input to most cost and schedule estimating algorithms?

A

software size

133
Q

What 2 size estimates can COCOMO 2 use?

A
  • lines of code

- functional points

134
Q

What is Functional Point (FP) count?

A

a weighted count of 5 standard functions

135
Q

What two types of standard functions are included in Functional Point count?

A
  • data functions

- transactional functions

136
Q

What are the 5 standard functions in Functional Point Analysis?

A
  • internal logical files (ILF)
  • external interface files (ELF)
  • external inputs (EI)
  • external outputs (EO)
  • external inquiries (EQ)
137
Q

A user-identifiable group of logically related data or control information maintained within the boundary of the application.

A

Internal Logicical File (ILF)

138
Q

What is the primary intent of Internal Logical File (ILF)?

A

to hold data maintained through one or more elementary processes of the application being counted

139
Q

Represents the data that your application will use/reference, but is not maintained by your application.

A

External Interface Files (EIF)

140
Q

An elementary process that processes data or control information that comes from outside the application boundary.

A

External Input (EI)

141
Q

What is the primary intent of an External Input (EI)?

A

to maintain one or more ILFs and/or to alter the behavior of the system

142
Q

A measure of how strongly the elements within a module are related.

A

cohesion

143
Q

T/F: It is easy to measure cohesion.

A

False

144
Q

A measure of the degree of independence between modules.

A

Coupling

145
Q

When there is little interaction between two modules, the modules are described as ___________.

A

loosely coupled

146
Q

When there is a high degree of interaction, the modules are described as ______________.

A

tightly coupled

147
Q

Which coupling metric methodology measures “fan-in” and “fan-out” in a structured chart?

A

Structured Design

148
Q

High fan-in suggests _______ coupling because of module dependencies.

A

high

149
Q

High fan-out suggests ________ coupling because of control complexity.

A

high

150
Q

T/F: The fan-in, fan-out method in the Structured Design methodology can be practically applied.

A

False

151
Q

CK metrics are related to what type of design?

A

Object-Oriented

152
Q

In CK Metrics: a weighted sum of all the methods in a class.

A

Weighted Methods per Class (WMC)

153
Q

In CK Metrics: a count of the number of other classes to which a given class is coupled. A class is coupled to another if it sends messages to objects or invokes constructors of the other class.

A

Coupling Between Object classes (CBO)

154
Q

In CK Metrics: Length of the longest path from a given class to the root class of the inheritance hierarchy.

A

Depth of Inheritance Tree (DIT)

155
Q

In CK Metrics: The number of immediate subclasses.

A

Number of Children (NOC)

156
Q

In CK Metrics: The count of the maximum number of methods that can be potentially invoked in response to a single message received by an object of a particular class.

A

Response For a Class (RFC)

157
Q

In CK Metrics: a count of the number of method-pairs whose similarity is zero minus the count of method pairs whose similarity is not zero.

A

Lack of Cohesion of Methods (LCOM)

158
Q

T/F: CK metrics take into account encapsulation and polymorphism.

A

False

159
Q

In Implementation metrics: The size of the program source code.

A

Length

160
Q

In Implementation metrics: The complexity of program control.

A

Cyclomatic Complexity

161
Q

This metric is typically correlated with effort.

A

Lines of Code (LOC)

162
Q

In Implementation metrics: Based on determining how complicated the control flow of a program is.

A

Cyclomatic Complexity

163
Q

What is the Cyclomatic Complexity formula?

A

CC = Number(edges) - Number(nodes) + 1

164
Q

T/F: Cyclomatic complexity places the same weight on nested and non-nested loops.

A

True

165
Q

Metrics: A measure of how well system users think it provides the service they require.

A

Reliability metrics

166
Q

T/F: Software reliability can be defined objectively.

A

False

167
Q

Metrics: Corresponds to unexpected run-time behavior observed by the user of the software.

A

Failure

168
Q

Metrics: a statistic software characteristic which causes a failure to occur.

A

Fault

169
Q

Metrics: This is a measure of the likelihood that the system will fail when a service request is made.

A

Probability of Failure on Demand (POFOD)

170
Q

What is meant by:

POFOD = 0.001

A

1 out of 1000 services requested result in failure.

171
Q

When is POFOD relevant?

A

for safety-critical or non-stop systems

172
Q

Metrics: ROCOF stands for ________

A

Rates of Occurrence of Failures

173
Q

What is meant by:

ROCOF = 0.02

A

2 failures are likely in each 100 operational time units.

174
Q

Metrics: Measure of time between observed failures.

A

Mean Time Between Failures (MTBF)

175
Q

T/F: MTBF is the reciprocal of ROCOF if the system is not being changed during operation.

A

True

176
Q

Metrics: Measure of how likely the system is available for use. Takes repair/restart time into account.

A

Availability

177
Q

What is meant by:

Availability = 0.998

A

Software is available for 998 out of 1000 time units.

178
Q

When is availability relevant?

A

for continuously running systems e.g. telephone switching systems.

179
Q

T/F: Time units are the same for all systems.

A

False

180
Q

Metrics: What are the 3 main time metrics?

A
  • Raw execution time
  • Calendar time
  • Number of transactions
181
Q

What is a the Fog Index?

A

A simple measure of documentation readability based on the length of sentences and number of “complex” words (3 or more syllables long.)

182
Q

T/F: Since there are universal quality metrics, it is easy for organizations to develop them.

A

False

183
Q

T/F: Relationships between what we can measure and what we want to know are not well-defined.

A

True

184
Q

What are the key features of agile development?

A
  • Values individuals and interactions over processes and tools
  • Values working software over comprehensive documentation
  • Values customer collaboration over contract negotiation
  • Values responding to change over following a plan
185
Q

What are the 7 Agile methodologies?

A
  • Extreme Programming (XP)
  • Scrum
  • Adaptive Software Development
  • Crystal
  • Dynamic Systems Development Method
  • Feature-Driven Development
  • Pragmatic Programming
186
Q

T/F: XP assumes that under the right conditions the cost of change can be held constant.

A

True

187
Q

T/F: in XP each development team member is responsible for a specific portion of the development.

A

False

188
Q

T/F: in XP there is no distinction between developers and maintainers.

A

True

189
Q

In XP Practices: Quickly determining the scope of the next release by combining business priorities and technical estimates.

A

The Planning Game

190
Q

In XP Practices: Put a simple system into production quickly, then release new version on very short cycle (1 - 2 months.)

A

Small Releases

191
Q

In XP Practices: Guide all development with a simple shared story of how the whole system works.

A

Metaphor

192
Q

In XP Practices: The design is only as complex as necessary at all times to support the current development.

Extra complexity is removed whenever it is discovered.

A

Simple Design

193
Q

In XP Practices: Programmers write unit tests before writing implementation code. All unit tests must pass for development to continue.

A

Testing

194
Q

In XP Practices: Programmers restructure the system without changing its behavior to remove duplication, improve communication, simplify, or add flexibility.

A

Refactoring

195
Q

In XP Practices: All production code is written with two programmers at one machine.

A

Pair Programming

196
Q

In XP Practices: Anyone can change code anywhere in the system at any time.

A

Collective Ownership

197
Q

In XP Practices: Integrate and build the system many times a day, every time a task is completed. All unit tests must pass after every build, or the change is withdrawn.

A

Continuous Integration

198
Q

In XP Practices: Include a real, live user on the team, available full-time to answer questions.

A

On-site Customer

199
Q

In XP Practices: Standard must be adopted voluntarily by all team members.

A

Coding Standards

200
Q

T/F: XP is suitable for small and large projects.

A

False

201
Q

Breaking down a program into distinct parts that overlap in functionality as little as possible.

A

Separation of Concerns

202
Q

Examples include:

  • MVC architecture
  • CSS style sheet with HTML, etc.
A

Separation of Concerns

203
Q

Secondary requirements that are shared between program units.

A

Cross-cutting Concerns

204
Q

T/F: When one concern (e.g. logging or security) is spread over a number of components (e.g., classes and methods) there is a lack of cohesion.

A

True

205
Q

Separate stand-alone modules.

A

aspects

206
Q

What solves the problem of cross-cutting concerns not getting properly encapsulated into their own modules?

A

Aspect Oriented Programming (AOP)

207
Q

The additional code that you want to apply to your existing model. Ex.

a security module could include _______ that performs a security check before accessing a bank account.

A

Advice

208
Q

________ code is joined to specified points in the program called ______.

A

advice; join points

209
Q

The Join Point Model defines these 3 things.

A
  • join points
  • point-cuts
  • advice
210
Q

_______ specify where in the existing code the _______ can run. They should be stable across minor program changes.

A

join points; advice

211
Q

________ determine whether a _______ matches.

A

point cuts; join point

212
Q

_______ specifies the code to run at a ______. ______ can run before, after or around _________.

A

advice; join point; Advice; join point

213
Q

What is AspectJ?

A

an aspect-oriented programming (AOP) extension for the Java programming language.

214
Q

List the AspectJ Join points.

A
  • Method or constructor call or execution-
  • initialization of a class or object
  • field read and write access
  • Exception handlers, etc.
  • NOT: loops, super calls, throw clauses, blocks, etc.
215
Q

AspectJ: These match a particular kind of join point (e.g., method execution) and take as input a java-like signature.

A

Kinded PointCut Designators (PCD)

216
Q

AspectJ: These check runtime types and bind variables.

A

Dynamic PointCut Designators (PCD)

217
Q

AspectJ: These limit the scope of the join point (e.g., within(com.company)

A

Scope PointCut Designators (PCD)

218
Q

T/F: Security can be broken by using Aspect Oriented Programming (AOP) to inject additional code at the appropriate places.

A

True