quiz 2 Flashcards
chapter 4 & 5
what is the definition of requirements and what function does it serve
range from a high level abstract statement of a service constraint to a detailed mathematical function
may be the bases for a contract bid of contract itself
what is the difference between a contract bid and a contract
if a company wishes to get a contract for a large software project, it must define its needs in a sufficiently abstract way that a solution is not pre-defined so that it is open to interpretation and multiple ways of achievement are provided
once a contract has been awarded the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do
what are the two types of requirements and who is the reader of each
User requirements:
- simple summarized statements in natural language
- simple diagrams of the services/constraints of the system
(Client manager/system end user/ client engineers/ contract managers/system architects)
System requirements
- a structured document setting out detailed descriptions of the system’s functions and operational constraints (-client managers)
what are functional and non functional requirements
Functional requirements
- statement of services the system should provide
- how the system should react to particular inputs
- how the system should behave in particular situations
non-functional requirements
- constraints on the services or functions offered by the system (reliability, response time, storage, io device constraints, data representations etc)
what are the properties (5) that functional requirements must contain
- Correctness: they should correctly describe the intended requirements
-Completeness: they should include descriptions of all facilities required - minimality: they should avoid overlapping redundancies
- consistency: they should be no conflicts or contradictions in the descriptions of the system facilities
- unambiguity: they should be precisely stated without ambiguities
what are the types of non functional requirements
Product requirements: must behave in a particular way (execution speed, reliability etc.)
Organisational requirements: consequence of organisational policies and procedures like process standards and implementation requirements
external requirements: arise from factors which are external to the system and its development process
what is requirements cross checking
comparing requirements in pairs to identify potential conflicts. it helps prevent generating conflicting requirements
how can we make formulating a non functional requirement easier
by stating:
- a goal: a general intention of the user
- a verification statement: using some measure that can be objectively tested (like training time for users)
what are the 6 non functional metrics for specifying requirements
Speed:
- processed txns/seconds
- screen refresh time
- user event response time
size:
- MBs
- # of ROM chips
Ease of use:
- training time
Dependability:
- mean time to failure
- rate of failure occurrence
probability of unavailability
Robustness:
- Time to restart after failure
- percentage of events causing failure
- probability of data corruption on failure
Portability:
- percentage of target dependent systems
- number of target systems
what is a requiements specification document, what should and shouldn’t it include?
is the official statement of what is required of the system developers
should include:
- a definition of user requirements
- a specification of the system requirements
should not include:
- how the software is should be done (only what should be done)
describe the requirements document in the context of XP and agile methods
in agile methods, it is considered a waste of time since the document is always outdated
in XP, they use incremental requirements and express them using stories
sate the users of a requirements document from the client and provider side
Client side:
- system customers:
. specify the requirements
. read/verify them to check that they meet their needs
. change/update requirements if necessary
- Managers:
. to plan bids for the system
. to plan the system development process - system development engineers
. to understand the nature and context of the system to be developed
. to develop the system accordingly - system test engineers:
. to develop validation tests for the system - system maintenance engineers:
. to understand the system and the relationships between its parts
. to update and extend the system based on emerging requirements
what is the structure of a requirements document
preface
introduction
glossary
user req. definition
system architecture
system req. specification
system models
system evolution
appendices
index
what are the different ways a requirements document can be written in
natural language
structured natural language
tabular specification
design description languages graphical notations
mathematical specification
what are the benefits and problems of natural language sentence
benefits:
- simple and straightforward approach
- easily accessible by non-expert readers
problems:
- lack of clarity
- requirements confusion (functional and non-functional tend to be mixed up)
describe the NLS
- requirements are written using numbered sentences in natural language
- formulate in terms of goal-verification when possible
- use shall (mandatory) and should (desirable)
- avoid computer jargon
- include rationale and explanation of why it is necessary
describe the structured specifications
form based template:
. definition of the function or entity
. description of inputs and where they come from
. description of outputs and where they go to
. other information needed for the computation
. description of the actio to be taken
. pre and post conditions
side effects
what are the benefits and problems of structured specifications
benefits:
. faster and easier to produce
. faster access by expert readers
problems:
. freedom of requirements writer is limited
. this works well for some types of requirements but sometimes is too rigid for writing business requirements
describe the tabular specification
used to supplement natural language (structured and unstructured)
useful when defining a number of possible alternative courses of action
describe the design description languages
using programming like language but with more abstract features
what are the benefits and problems with design description language
benefits:
. higher levels of expressiveness
could be used as a building block for design and implementation later
problems:
. quite cumbersome for system engineers defining requirements
. cumbersome for non-expert clients in accessing the requirements
describe the graphical notations
graphical models, supplemented by text annotations are usually used to define the functional requirements for the system
what are the benefits and problems of graphical notaions
benefits:
higher level of expressiveness
easier to produce and access
problems:
could require expert knowledge to be designed and accessed later
describe the mathematical specifications
notations based on mathematical concepts: such as finite state machines (L, S, s0, lambda, F) where:
- L is the input alphabet
- S is a finite, non-empty set of states
- s0 is an initial state, an element of S
- lambda is the state-transition function (SxL -> S)
- F is the set of final states, a possibly empty subset of S
what are the benefits and problems of mathematical specifications
benefits:
expressive
unambiguous
easily transforms into code
more scientific presentation
problems:
require expert knowledge to be designed and accessed
what are the generic activities common to all processes
requirements elicitation
requirements analysis
requirements validation
requirements management
what is requirements elicitation and analysis
- requirements discovery
- involves technical staff finding out about functional and nonfunctional requirements
involve stakeholders
what are the difficulties in the elicitation and analysis (6)
stakeholders don’t know what they really want
stakeholders express requirements in their own terms
different stakeholders may have conflicting requirements
organisational and political factors may influence the system requriements
the requirements change during the analysis process
new stakeholders may emerge and the business environment may change
what are the stages of elicitation and analysis process
- requirements discovery
- classification and organization
- prioritization and negotiation
- requirements specification (documented and input into the next round of the spiral)
what are the types of interviews
closed interview (based on predetermined set of questions)
open interview (where various issues are explored with stakeholders)
what are interviews good and not good for
good for getting an overall understanding of what stakeholders do and how they might interact with the system
not good for understanding the domain requirements
what are 6 advice for interviewers
be open minded
avoid preconceived ideas
listen to stakeholders
prompt the interviewee to get discussion going
user a requirements proposal
working together on a prototype system
what should scenarios include
a description of the starting situation
a description of the normal flow of events
a description of what can go wrong
information about other concurrent activities
a description of the state when the scenario finishes
what is ethnography
a social scientist spends a considerable time observing and analysing how people actually work
what are the benifits and problems with ethnography
benefits:
- effective in identifying business requirements
- combining ethnography with prototyping
problems
- not always appropriate for identifying organizational and domain requirements
- it studies existing practices which may have some historical basis
what is focused ethnography
short term field visits with intensive data collection & analysis
what are requirements validation techniques
requirement reviews
comprehensibility
traceability
adaptability
prototyping
test case generation
what is system modeling
process of developing abstract models of a system with each model presenting a different view or perspective of that system
what are the different perspectives a system can be viewed in
external perspective: where you model the context or environment of the system
interaction perspective: where you model the interactions between a system and its environment, or between the components of a system
structura perspective: where you model the organization of a system or the structure of the data that is processed by the system
behavioral perspective: where you model the dynamic behavior of the system
how is the unified modeling language adopted nowadays
activity diagrams: which show the activities involved in a process or in data processing
user case diagrams: which show the interactions between a system and its environment
sequence diagrams: which show interactions between actors and the system and between system components
class diagrams: which show the object classes in the system and the associations between these classes
state diagrams: which show how the system reacts to internal and external events
what are the context models used for
used to illustrate the operational context of a system. it uses system boundaries which establish what is outside the system and what is inside it
what is a process model and how is it better than the context model
context models simply show other systems in the environment while process models reveal how the system being developed is used in broader business processes (how it interacts with the environment)
what are interaction models
interactions in a system can occur at different levels;
User interaction : how users interact with the system
system-to-system interaction: highlights communication problems that may arise
component interactions: understand if a proposed system structure is likely to deliver the required system performance and dependability
what is a use case and an actor and an association in the context of use case modeling
use case: a single unit of meaningful work
actor:a person, organization or an external system that interacts with this system
association: between actors and use cases whenever an actor is involved with an interaction described by a use cas
what are structural models
they display the organization of a system in terms of the components that make up that system and their relationships and they may be:
static models: which show the structure of the system design
dynamic models: show the organization of the system when it is executing
what are the 5 most common relationships in structural models
dependency: a uses b
association: a related to b
aggregation: a part of b
composition: a made of b
inheritence: a is a b
what is a weak relationship
exists when one class relies on another in some way
what is a c4 model
provides a means to efficiently communicate their software architecture at different levels of detail. is an abstraction first approach to diagramming and has the following levels:
level 1: a system context diagram provides a starting point showing how the software sytem in scope fits into the world around it
level 2: container diagrams zooms into the software system in scope, showing high level technical building blocks (not docker container)
level 3: a component diagram zooms into an individual container showing the components inside it
level 4: a code diagram can be used to zoom into an individual component showing how that component is implmented=
what is a deployment diagram
allows to illustrate how software systems and containers in the static model are mapped to infrastructure. it represents a physical infra., virtualized infra, containerized infra, execution environment etc.
what are data driven models
they show teh sequence of actions involved in processing input dat and generating an associated output
what are event driven models and how are they best described
shows how the system responds to events and are best described using state machines
what are the pros and cons of model driven engineering (MDE)
pros:
- allows systems to be considered at higher levels of abstraction
- generating code automatically
cons:
- models for abstraction are not necessarily right for implementation
- savings from generating code may be outweighed by teh cost of revising and fine tuning the generated code
what are the types of models in (MDE)
Computation Independent Model (CIM) : model the important domain
abstractions used in a system
* Platform independent model (PIM): model the operation of the system without
reference to its implementation, describing the static system structure and how it
responds to external and internal events
* Platform specific models (PSM): These are transformations of the platform-
independent model with a separate PSM for each application platform. In principle,
there may be layers of PSM, with each layer adding some platform-specific detail