Final Exam Flash Cards

(218 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
What does 1..* represent on a domain model?
One or more
26
What does 1..10 represent on a domain model?
One to ten
27
What does 3, 5, 10..* represent on a domain model?
three, five, or at least 10
28
Relate concepts with _______, not _______.
associations; attributes
29
What are the 2 types of domain model inheritance?
Bottom-up | Top-down
30
What is a useful method for diagramming entities and associations?
UML Class Diagrams
31
________ are more important than ______ and should receive more attention.
Entities; associations
32
What are some problems with Natural Language?
- Lack of Clarity - Requirements confusion - Amalgamation - several different requirements may be expressed as a single requirement
33
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.
Natural Language
34
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.
Standard format
35
What are the different methods of requirements specification?
- Structured natural language - Requirements specification language - Graphical notations - Formal specifications
36
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.
use case
37
What do Use Case Diagrams show?
Actors and use cases (scenarios), and the relationships among them.
38
________ represent the users of a system (human or otherwise.)
Actors
39
What are the 4 types of relationships that actors and use cases can have in a diagram?
- Association - Generalization - Extend - Include
40
This type of diagram shows objects by their "lifelines" and the sequence of stimuli that they exchange.
UML Sequence Diagrams
41
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)
Petri Nets
42
When a transition fires, _______ are placed at the target of each output arc.
tokens
43
What is a formal specification type that defines a model of a system using well-understood mathematical entities?
Z Specification
44
An effective low-level structuring facility
schemas
45
What does a schema in Z specification include?
- a name identifying the schema - a signature introducing entities and their types - a predicate part defining invariants over these entities
46
T/F: Schemas can be included in other schemas and may act as type definitions
True
47
T/F: Names are not local to schemas.
False
48
In Z specification, what does a variable name with a (quotation mark) (N') represent?
The value of the state of N after an operation.
49
In Z specification, what does a schema name with a dash indicate?
It introduces the dashed values of all names defined in the schema.
50
In Z specification, what does a variable name decorated with a ! represent?
Output
51
In Z specification, what does a variable name with a ? represent?
An input
52
In Z specification, what does a schema name prefixed by the Greek letter Xi Ξ mean?
It means that the defined operation does not change the values of state variables.
53
In Z specification, what does a schema name prefixed by the Greek letter Delta Δ mean?
It means that the operation changes some or all of the state variables introduced in the schema.
54
T/F You can combine all schemas using the disjunction OR operator
True
55
T/F: Specification using sets allows ordering to be specified.
False
56
In Z specification, what are used for specifying ordered collections?
Sequences
57
What is a sequence?
A function mapping consecutive integers to associated values.
58
T/F: Little effort has been devoted to method and tool support for formal techniques.
True
59
T/F: Customers cannot understand formal methods.
False
60
What are some pros of formal specification?
- 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.
61
T/F: Formal methods result in perfect software.
False
62
T/F: Formal Methods require a high level of mathematical skill.
False
63
T/F: Formal specs are not useful in defining standards where precision and unambiguity are essential.
False
64
What are the 4 stages of software design?
- 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.
65
This design technique starts at the system level and decomposes into progressively smaller components until we reach the level of individual objects.
Top-down design
66
T/F: in practice, large system designs are never strictly top-down.
True
67
Good system design is concerned with maintainability, which requires _______ and ________.
high cohesion; loose coupling
68
A measure of how strongly the elements within a component are related. The stronger the better.
cohesion
69
T/F: A component should implement many entities or functions.
False
70
Cohesion level: Parts of a component are simply bundled together
coincidental cohesion (weak)
71
Cohesion level: Components which perform similar functions are grouped
logical cohesion (weak)
72
Cohesion level: Components which are activated at the same time are grouped
Temporal cohesion (weak)
73
Cohesion level: The elements in a component make up a single control sequence
Procedural cohesion (weak)
74
Cohesion level: All elements of a component operate on the same input or produce the same output
Communicational cohesion (medium)
75
Cohesion level: The output for one part of a comp component is the input to another part
Sequential cohesion (medium)
76
Cohesion level: Each part of a component is necessary for the execution of a single function
Functional cohesion (strong)
77
Cohesion level: Each operation provides functionality which allows object attributes to be modified or inspected
Object cohesion (strong)
78
A measure of the strength of the interconnections between system components.
Coupling
79
T/F: Loose coupling means component changes are unlikely to affect other components.
True
80
T/F: Shared variables or exchange of control information lead to tight coupling.
True
81
Types of coupling: One module refers to or changes the internals of another module
Content coupling (tighter)
82
Types of coupling: Two modules share the same global data areas
Common coupling (medium)
83
Types of coupling: Data from one module is used to direct the order of instruction execution in another
Control coupling (medium)
84
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.
Data coupling (looser)
85
T/F: Maintaining high cohesion and loose coupling at every level of the design is impossible.
False
86
T/F: Coupling and cohesion are fundamentally different forces.
True
87
T/F: Inheritance increases coupling since an object class is strongly coupled to its super-classes.
True
88
T/F: Inheritance strengthens cohesion, since functionality that "belongs together" is spread between super-classes and their sub-classes.
False
89
T/F: Inheritance dramatically improves adaptability.
True
90
_________ capture the essential elements of the best existing designs.
Patterns
91
_________ of architectural and design experience is one of the most important factors in successfully building large software systems.
Reuse
92
T/F: it is sometimes possible to identify families of patterns that fit together in harmonious ways.
True
93
Many patterns provide guidance for how _______ should be assigned to objects.
responsibilities
94
What two main types of responsibilities are there?
Doing and knowing
95
What are the following? - Expert - Creator - High Cohesion - Low Coupling - Controller - Polymorphism - Pure fabrication - indirection - Don't talk to strangers
Responsibility patterns
96
This is the most used pattern for assignment of responsibility.
Expert
97
This responsibility pattern leads to designs where software objects DO operations that are normally DONE TO the corresponding real world object.
Expert
98
_________ Should normally delegate the work to other objects while coordinating the activity.
Controllers
99
What are the three main parts of the architectural design process?
- System structuring - Control modeling - Modular decomposition
100
A model of the control relationships between the different parts of the system.
Control modeling
101
T/F: A sub-system is a system in its own right whose operation is independent of the services provided by other sub-systems.
True
102
A ________ is a system component that provides services to other components but would normally be considered as a separate system.
module
103
How is architectural design normally expressed to show an overview of the system structure.
block diagram
104
T/F: When large amounts of data must be shared, the shared repository model is most commonly used for reasons of efficiency.
True
105
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
Shared repository pattern
106
A distributed system model which shows how data and processing is distributed across a rang of components.
Client-server pattern
107
T/F: Architectural patterns may not be combined to form new solutions.
False
108
Which architectural pattern is defined below? Each layer depends on only the services of the layer immediately below it.
Layers pattern
109
_______ consume and deliver data incrementally, in contrast to consuming all input before producing any output.
Filters
110
Data is passed through ______ between adjacent filters.
pipes
111
_______ components are the processing units of the pipeline.
Filter
112
- 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 filter
113
What are the two types of filters?
active and passive
114
In a single-process arrangement, _______ are typically implemented as queues.
pipes
115
T/F: Pipes and Filters supports parallelism, since all filters are active at the same time, once the pipeline is full.
True
116
One sub-system has overall responsibility for control and starts and stops other sub-systems.
Centralized control
117
Each sub-system can respond to externally generated events from other sub-systems or the system's environment.
Event-based control
118
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.
Call-return model
119
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
Manager model
120
What are the two principle event-driven models?
Broadcast models and interrupt-driven models
121
Sub-systems register an interest in specific events. When these occur, control is transferred to the sub-system which can handle the event.
Broadcast model
122
Architectural model used in real-time systems where fast response to an event is essential.
Interrupt-driven
123
________ models are usually bottom-up models.
Generic
124
________ models are usually top-down models.
Reference
125
Any type of measurement which relates to a software system, process, or related documentation.
Software Metrics
126
What are the properties of Metrics?
- simple and computable - empirically and intuitively persuasive - consistent and objective - programming language independent
127
T/F: Professional statisticians should be consulted to gather software metrics.
True
128
What are two methods of estimating cost early in the development process?
- COCOMO | - Functional points
129
A statistical method of predicting values of one or more dependent variables from a collection of independent (predictor) variables.
Regression
130
What does COCOMO stand for?
COnstructive COst MOdel
131
What are the two main factors in the COCOMO 2 Model?
- scale factors | - effort multipliers
132
What is the primary parametric input to most cost and schedule estimating algorithms?
software size
133
What 2 size estimates can COCOMO 2 use?
- lines of code | - functional points
134
What is Functional Point (FP) count?
a weighted count of 5 standard functions
135
What two types of standard functions are included in Functional Point count?
- data functions | - transactional functions
136
What are the 5 standard functions in Functional Point Analysis?
- internal logical files (ILF) - external interface files (ELF) - external inputs (EI) - external outputs (EO) - external inquiries (EQ)
137
A user-identifiable group of logically related data or control information maintained within the boundary of the application.
Internal Logicical File (ILF)
138
What is the primary intent of Internal Logical File (ILF)?
to hold data maintained through one or more elementary processes of the application being counted
139
Represents the data that your application will use/reference, but is not maintained by your application.
External Interface Files (EIF)
140
An elementary process that processes data or control information that comes from outside the application boundary.
External Input (EI)
141
What is the primary intent of an External Input (EI)?
to maintain one or more ILFs and/or to alter the behavior of the system
142
A measure of how strongly the elements within a module are related.
cohesion
143
T/F: It is easy to measure cohesion.
False
144
A measure of the degree of independence between modules.
Coupling
145
When there is little interaction between two modules, the modules are described as ___________.
loosely coupled
146
When there is a high degree of interaction, the modules are described as ______________.
tightly coupled
147
Which coupling metric methodology measures "fan-in" and "fan-out" in a structured chart?
Structured Design
148
High fan-in suggests _______ coupling because of module dependencies.
high
149
High fan-out suggests ________ coupling because of control complexity.
high
150
T/F: The fan-in, fan-out method in the Structured Design methodology can be practically applied.
False
151
CK metrics are related to what type of design?
Object-Oriented
152
In CK Metrics: a weighted sum of all the methods in a class.
Weighted Methods per Class (WMC)
153
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.
Coupling Between Object classes (CBO)
154
In CK Metrics: Length of the longest path from a given class to the root class of the inheritance hierarchy.
Depth of Inheritance Tree (DIT)
155
In CK Metrics: The number of immediate subclasses.
Number of Children (NOC)
156
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.
Response For a Class (RFC)
157
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.
Lack of Cohesion of Methods (LCOM)
158
T/F: CK metrics take into account encapsulation and polymorphism.
False
159
In Implementation metrics: The size of the program source code.
Length
160
In Implementation metrics: The complexity of program control.
Cyclomatic Complexity
161
This metric is typically correlated with effort.
Lines of Code (LOC)
162
In Implementation metrics: Based on determining how complicated the control flow of a program is.
Cyclomatic Complexity
163
What is the Cyclomatic Complexity formula?
CC = Number(edges) - Number(nodes) + 1
164
T/F: Cyclomatic complexity places the same weight on nested and non-nested loops.
True
165
Metrics: A measure of how well system users think it provides the service they require.
Reliability metrics
166
T/F: Software reliability can be defined objectively.
False
167
Metrics: Corresponds to unexpected run-time behavior observed by the user of the software.
Failure
168
Metrics: a statistic software characteristic which causes a failure to occur.
Fault
169
Metrics: This is a measure of the likelihood that the system will fail when a service request is made.
Probability of Failure on Demand (POFOD)
170
What is meant by: POFOD = 0.001
1 out of 1000 services requested result in failure.
171
When is POFOD relevant?
for safety-critical or non-stop systems
172
Metrics: ROCOF stands for ________
Rates of Occurrence of Failures
173
What is meant by: ROCOF = 0.02
2 failures are likely in each 100 operational time units.
174
Metrics: Measure of time between observed failures.
Mean Time Between Failures (MTBF)
175
T/F: MTBF is the reciprocal of ROCOF if the system is not being changed during operation.
True
176
Metrics: Measure of how likely the system is available for use. Takes repair/restart time into account.
Availability
177
What is meant by: Availability = 0.998
Software is available for 998 out of 1000 time units.
178
When is availability relevant?
for continuously running systems e.g. telephone switching systems.
179
T/F: Time units are the same for all systems.
False
180
Metrics: What are the 3 main time metrics?
- Raw execution time - Calendar time - Number of transactions
181
What is a the Fog Index?
A simple measure of documentation readability based on the length of sentences and number of "complex" words (3 or more syllables long.)
182
T/F: Since there are universal quality metrics, it is easy for organizations to develop them.
False
183
T/F: Relationships between what we can measure and what we want to know are not well-defined.
True
184
What are the key features of agile development?
- 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
What are the 7 Agile methodologies?
- Extreme Programming (XP) - Scrum - Adaptive Software Development - Crystal - Dynamic Systems Development Method - Feature-Driven Development - Pragmatic Programming
186
T/F: XP assumes that under the right conditions the cost of change can be held constant.
True
187
T/F: in XP each development team member is responsible for a specific portion of the development.
False
188
T/F: in XP there is no distinction between developers and maintainers.
True
189
In XP Practices: Quickly determining the scope of the next release by combining business priorities and technical estimates.
The Planning Game
190
In XP Practices: Put a simple system into production quickly, then release new version on very short cycle (1 - 2 months.)
Small Releases
191
In XP Practices: Guide all development with a simple shared story of how the whole system works.
Metaphor
192
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.
Simple Design
193
In XP Practices: Programmers write unit tests before writing implementation code. All unit tests must pass for development to continue.
Testing
194
In XP Practices: Programmers restructure the system without changing its behavior to remove duplication, improve communication, simplify, or add flexibility.
Refactoring
195
In XP Practices: All production code is written with two programmers at one machine.
Pair Programming
196
In XP Practices: Anyone can change code anywhere in the system at any time.
Collective Ownership
197
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.
Continuous Integration
198
In XP Practices: Include a real, live user on the team, available full-time to answer questions.
On-site Customer
199
In XP Practices: Standard must be adopted voluntarily by all team members.
Coding Standards
200
T/F: XP is suitable for small and large projects.
False
201
Breaking down a program into distinct parts that overlap in functionality as little as possible.
Separation of Concerns
202
Examples include: - MVC architecture - CSS style sheet with HTML, etc.
Separation of Concerns
203
Secondary requirements that are shared between program units.
Cross-cutting Concerns
204
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.
True
205
Separate stand-alone modules.
aspects
206
What solves the problem of cross-cutting concerns not getting properly encapsulated into their own modules?
Aspect Oriented Programming (AOP)
207
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.
Advice
208
________ code is joined to specified points in the program called ______.
advice; join points
209
The Join Point Model defines these 3 things.
- join points - point-cuts - advice
210
_______ specify where in the existing code the _______ can run. They should be stable across minor program changes.
join points; advice
211
________ determine whether a _______ matches.
point cuts; join point
212
_______ specifies the code to run at a ______. ______ can run before, after or around _________.
advice; join point; Advice; join point
213
What is AspectJ?
an aspect-oriented programming (AOP) extension for the Java programming language.
214
List the AspectJ Join points.
- 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
AspectJ: These match a particular kind of join point (e.g., method execution) and take as input a java-like signature.
Kinded PointCut Designators (PCD)
216
AspectJ: These check runtime types and bind variables.
Dynamic PointCut Designators (PCD)
217
AspectJ: These limit the scope of the join point (e.g., within(com.company)
Scope PointCut Designators (PCD)
218
T/F: Security can be broken by using Aspect Oriented Programming (AOP) to inject additional code at the appropriate places.
True