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
T/F: Inheritance strengthens cohesion, since functionality that “belongs together” is spread between super-classes and their sub-classes.
False
T/F: Inheritance dramatically improves adaptability.
True
_________ capture the essential elements of the best existing designs.
Patterns
_________ of architectural and design experience is one of the most important factors in successfully building large software systems.
Reuse
T/F: it is sometimes possible to identify families of patterns that fit together in harmonious ways.
True
Many patterns provide guidance for how _______ should be assigned to objects.
responsibilities
What two main types of responsibilities are there?
Doing and knowing
What are the following?
- Expert
- Creator
- High Cohesion
- Low Coupling
- Controller
- Polymorphism
- Pure fabrication
- indirection
- Don’t talk to strangers
Responsibility patterns
This is the most used pattern for assignment of responsibility.
Expert
This responsibility pattern leads to designs where software objects DO operations that are normally DONE TO the corresponding real world object.
Expert
_________ Should normally delegate the work to other objects while coordinating the activity.
Controllers
What are the three main parts of the architectural design process?
- System structuring
- Control modeling
- Modular decomposition
A model of the control relationships between the different parts of the system.
Control modeling
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
A ________ is a system component that provides services to other components but would normally be considered as a separate system.
module
How is architectural design normally expressed to show an overview of the system structure.
block diagram
T/F: When large amounts of data must be shared, the shared repository model is most commonly used for reasons of efficiency.
True
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
A distributed system model which shows how data and processing is distributed across a rang of components.
Client-server pattern
T/F: Architectural patterns may not be combined to form new solutions.
False
Which architectural pattern is defined below?
Each layer depends on only the services of the layer immediately below it.
Layers pattern
_______ consume and deliver data incrementally, in contrast to consuming all input before producing any output.
Filters
Data is passed through ______ between adjacent filters.
pipes
_______ components are the processing units of the pipeline.
Filter
- 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
What are the two types of filters?
active and passive
In a single-process arrangement, _______ are typically implemented as queues.
pipes
T/F: Pipes and Filters supports parallelism, since all filters are active at the same time, once the pipeline is full.
True
One sub-system has overall responsibility for control and starts and stops other sub-systems.
Centralized control
Each sub-system can respond to externally generated events from other sub-systems or the system’s environment.
Event-based control
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
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
What are the two principle event-driven models?
Broadcast models and interrupt-driven models
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
Architectural model used in real-time systems where fast response to an event is essential.
Interrupt-driven
________ models are usually bottom-up models.
Generic
________ models are usually top-down models.
Reference
Any type of measurement which relates to a software system, process, or related documentation.
Software Metrics
What are the properties of Metrics?
- simple and computable
- empirically and intuitively persuasive
- consistent and objective
- programming language independent
T/F: Professional statisticians should be consulted to gather software metrics.
True
What are two methods of estimating cost early in the development process?
- COCOMO
- Functional points
A statistical method of predicting values of one or more dependent variables from a collection of independent (predictor) variables.
Regression
What does COCOMO stand for?
COnstructive COst MOdel
What are the two main factors in the COCOMO 2 Model?
- scale factors
- effort multipliers
What is the primary parametric input to most cost and schedule estimating algorithms?
software size
What 2 size estimates can COCOMO 2 use?
- lines of code
- functional points
What is Functional Point (FP) count?
a weighted count of 5 standard functions
What two types of standard functions are included in Functional Point count?
- data functions
- transactional functions
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)
A user-identifiable group of logically related data or control information maintained within the boundary of the application.
Internal Logicical File (ILF)
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
Represents the data that your application will use/reference, but is not maintained by your application.
External Interface Files (EIF)
An elementary process that processes data or control information that comes from outside the application boundary.
External Input (EI)
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
A measure of how strongly the elements within a module are related.
cohesion
T/F: It is easy to measure cohesion.
False
A measure of the degree of independence between modules.
Coupling
When there is little interaction between two modules, the modules are described as ___________.
loosely coupled
When there is a high degree of interaction, the modules are described as ______________.
tightly coupled
Which coupling metric methodology measures “fan-in” and “fan-out” in a structured chart?
Structured Design
High fan-in suggests _______ coupling because of module dependencies.
high
High fan-out suggests ________ coupling because of control complexity.
high
T/F: The fan-in, fan-out method in the Structured Design methodology can be practically applied.
False
CK metrics are related to what type of design?
Object-Oriented
In CK Metrics: a weighted sum of all the methods in a class.
Weighted Methods per Class (WMC)
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)
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)
In CK Metrics: The number of immediate subclasses.
Number of Children (NOC)
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)
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)
T/F: CK metrics take into account encapsulation and polymorphism.
False
In Implementation metrics: The size of the program source code.
Length
In Implementation metrics: The complexity of program control.
Cyclomatic Complexity
This metric is typically correlated with effort.
Lines of Code (LOC)
In Implementation metrics: Based on determining how complicated the control flow of a program is.
Cyclomatic Complexity
What is the Cyclomatic Complexity formula?
CC = Number(edges) - Number(nodes) + 1
T/F: Cyclomatic complexity places the same weight on nested and non-nested loops.
True
Metrics: A measure of how well system users think it provides the service they require.
Reliability metrics
T/F: Software reliability can be defined objectively.
False
Metrics: Corresponds to unexpected run-time behavior observed by the user of the software.
Failure
Metrics: a statistic software characteristic which causes a failure to occur.
Fault
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)
What is meant by:
POFOD = 0.001
1 out of 1000 services requested result in failure.
When is POFOD relevant?
for safety-critical or non-stop systems
Metrics: ROCOF stands for ________
Rates of Occurrence of Failures
What is meant by:
ROCOF = 0.02
2 failures are likely in each 100 operational time units.
Metrics: Measure of time between observed failures.
Mean Time Between Failures (MTBF)
T/F: MTBF is the reciprocal of ROCOF if the system is not being changed during operation.
True
Metrics: Measure of how likely the system is available for use. Takes repair/restart time into account.
Availability
What is meant by:
Availability = 0.998
Software is available for 998 out of 1000 time units.
When is availability relevant?
for continuously running systems e.g. telephone switching systems.
T/F: Time units are the same for all systems.
False
Metrics: What are the 3 main time metrics?
- Raw execution time
- Calendar time
- Number of transactions
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.)
T/F: Since there are universal quality metrics, it is easy for organizations to develop them.
False
T/F: Relationships between what we can measure and what we want to know are not well-defined.
True
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
What are the 7 Agile methodologies?
- Extreme Programming (XP)
- Scrum
- Adaptive Software Development
- Crystal
- Dynamic Systems Development Method
- Feature-Driven Development
- Pragmatic Programming
T/F: XP assumes that under the right conditions the cost of change can be held constant.
True
T/F: in XP each development team member is responsible for a specific portion of the development.
False
T/F: in XP there is no distinction between developers and maintainers.
True
In XP Practices: Quickly determining the scope of the next release by combining business priorities and technical estimates.
The Planning Game
In XP Practices: Put a simple system into production quickly, then release new version on very short cycle (1 - 2 months.)
Small Releases
In XP Practices: Guide all development with a simple shared story of how the whole system works.
Metaphor
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
In XP Practices: Programmers write unit tests before writing implementation code. All unit tests must pass for development to continue.
Testing
In XP Practices: Programmers restructure the system without changing its behavior to remove duplication, improve communication, simplify, or add flexibility.
Refactoring
In XP Practices: All production code is written with two programmers at one machine.
Pair Programming
In XP Practices: Anyone can change code anywhere in the system at any time.
Collective Ownership
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
In XP Practices: Include a real, live user on the team, available full-time to answer questions.
On-site Customer
In XP Practices: Standard must be adopted voluntarily by all team members.
Coding Standards
T/F: XP is suitable for small and large projects.
False
Breaking down a program into distinct parts that overlap in functionality as little as possible.
Separation of Concerns
Examples include:
- MVC architecture
- CSS style sheet with HTML, etc.
Separation of Concerns
Secondary requirements that are shared between program units.
Cross-cutting Concerns
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
Separate stand-alone modules.
aspects
What solves the problem of cross-cutting concerns not getting properly encapsulated into their own modules?
Aspect Oriented Programming (AOP)
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
________ code is joined to specified points in the program called ______.
advice; join points
The Join Point Model defines these 3 things.
- join points
- point-cuts
- advice
_______ specify where in the existing code the _______ can run. They should be stable across minor program changes.
join points; advice
________ determine whether a _______ matches.
point cuts; join point
_______ specifies the code to run at a ______. ______ can run before, after or around _________.
advice; join point; Advice; join point
What is AspectJ?
an aspect-oriented programming (AOP) extension for the Java programming language.
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.
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)
AspectJ: These check runtime types and bind variables.
Dynamic PointCut Designators (PCD)
AspectJ: These limit the scope of the join point (e.g., within(com.company)
Scope PointCut Designators (PCD)
T/F: Security can be broken by using Aspect Oriented Programming (AOP) to inject additional code at the appropriate places.
True