Final Exam Flash Cards
Name the 4 main steps in the Requirements Engineering Process
- Feasibility Study
- Requirements Elicitation
- Requirements Definition
- Requirements Specification
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?
Feasibility Study
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
Requirements Elicitation
Customer-oriented and written using natural language and easy to understand diagrams.
Requirements definitions
Software-designer oriented and more precise description of functionality and constraints.
Requirements Specifications
- 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.
Requirements Document Attributes
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?
Requirements Validation
- 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.
Requirements Review (formal)
Gathering requirements from stakeholders is defined as _______.
Elicitation
The following list the steps of which process?
- Domain Understanding
- Requirements Collection
- Classification
- Conflict Resolution
- Prioritization
- Requirements Validation
- Requirements Definition
Requirements Elicitation Process
End-users, managers, engineers who develop or maintain related systems, domain experts, union representatives, etc.
Stakeholders
What are some challenges that we can face while working with stakeholders?
- 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
What are the components of Elicitation Methodologies?
- Process Model
- Domain modeling notations
- Rules applied to domain models
- Design guidelines
- Report templates
Technique whereby a sociologist spends considerable time observing in the working environment. Does not involve people explaining what they do.
Ethnography
What is the problem with Ethnographic Analysis?
Studying existing work supported by imperfect systems may lead to erroneous conclusions concerning requirements.
What type of modeling is about discovering and documenting what already exists in the real world?
Domain Modeling
If we think of something in the real world as text or a number, it is probably an _______, otherwise it is an ________.
attribute; entity
_________ should imply an enduring relationship which needs to be remembered.
Association
- Focus on enduring relationships rather than transient events
- Entities are more important than associations
Associations
“Part-of” associations
Aggregations and Composition
_________ is a strong form of ________ where parts may belong to only one whole, and whose existence depends on the whole.
Composition; aggregation
How is a composition represented on a domain model?
A line with a filled in diamond coming from the larger hierarchy.
How is aggregation represented on a domain model?
A line with an unfilled diamond coming from the secondary hierarchy entity.
What does * represent on a domain model?
Zero or more
What does 1..* represent on a domain model?
One or more
What does 1..10 represent on a domain model?
One to ten
What does 3, 5, 10..* represent on a domain model?
three, five, or at least 10
Relate concepts with _______, not _______.
associations; attributes
What are the 2 types of domain model inheritance?
Bottom-up
Top-down
What is a useful method for diagramming entities and associations?
UML Class Diagrams
________ are more important than ______ and should receive more attention.
Entities; associations
What are some problems with Natural Language?
- Lack of Clarity
- Requirements confusion
- Amalgamation - several different requirements may be expressed as a single requirement
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
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
What are the different methods of requirements specification?
- Structured natural language
- Requirements specification language
- Graphical notations
- Formal specifications
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
What do Use Case Diagrams show?
Actors and use cases (scenarios), and the relationships among them.
________ represent the users of a system (human or otherwise.)
Actors
What are the 4 types of relationships that actors and use cases can have in a diagram?
- Association
- Generalization
- Extend
- Include
This type of diagram shows objects by their “lifelines” and the sequence of stimuli that they exchange.
UML Sequence Diagrams
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
When a transition fires, _______ are placed at the target of each output arc.
tokens
What is a formal specification type that defines a model of a system using well-understood mathematical entities?
Z Specification
An effective low-level structuring facility
schemas
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
T/F: Schemas can be included in other schemas and may act as type definitions
True
T/F: Names are not local to schemas.
False
In Z specification, what does a variable name with a (quotation mark) (N’) represent?
The value of the state of N after an operation.
In Z specification, what does a schema name with a dash indicate?
It introduces the dashed values of all names defined in the schema.
In Z specification, what does a variable name decorated with a ! represent?
Output
In Z specification, what does a variable name with a ? represent?
An input
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.
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.
T/F You can combine all schemas using the disjunction OR operator
True
T/F: Specification using sets allows ordering to be specified.
False
In Z specification, what are used for specifying ordered collections?
Sequences
What is a sequence?
A function mapping consecutive integers to associated values.
T/F: Little effort has been devoted to method and tool support for formal techniques.
True
T/F: Customers cannot understand formal methods.
False
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.
T/F: Formal methods result in perfect software.
False
T/F: Formal Methods require a high level of mathematical skill.
False
T/F: Formal specs are not useful in defining standards where precision and unambiguity are essential.
False
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.
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
T/F: in practice, large system designs are never strictly top-down.
True
Good system design is concerned with maintainability, which requires _______ and ________.
high cohesion; loose coupling
A measure of how strongly the elements within a component are related. The stronger the better.
cohesion
T/F: A component should implement many entities or functions.
False
Cohesion level: Parts of a component are simply bundled together
coincidental cohesion (weak)
Cohesion level: Components which perform similar functions are grouped
logical cohesion (weak)
Cohesion level: Components which are activated at the same time are grouped
Temporal cohesion (weak)
Cohesion level: The elements in a component make up a single control sequence
Procedural cohesion (weak)
Cohesion level: All elements of a component operate on the same input or produce the same output
Communicational cohesion (medium)
Cohesion level: The output for one part of a comp component is the input to another part
Sequential cohesion (medium)
Cohesion level: Each part of a component is necessary for the execution of a single function
Functional cohesion (strong)
Cohesion level: Each operation provides functionality which allows object attributes to be modified or inspected
Object cohesion (strong)
A measure of the strength of the interconnections between system components.
Coupling
T/F: Loose coupling means component changes are unlikely to affect other components.
True
T/F: Shared variables or exchange of control information lead to tight coupling.
True
Types of coupling: One module refers to or changes the internals of another module
Content coupling (tighter)
Types of coupling: Two modules share the same global data areas
Common coupling (medium)
Types of coupling: Data from one module is used to direct the order of instruction execution in another
Control coupling (medium)
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)
T/F: Maintaining high cohesion and loose coupling at every level of the design is impossible.
False
T/F: Coupling and cohesion are fundamentally different forces.
True
T/F: Inheritance increases coupling since an object class is strongly coupled to its super-classes.
True