Unit 1 Flashcards
Describe the essential characteristics of a good software system
A good software system is one that meets its users’ needs. We can characterise a good software system as useful, usable, reliable, flexible, available and affordable.
What is a fit criteria, give an example
A quantification or a measurement of a requirement expressed in a way that allows you to assess whether or not the final product satisfies, or fits, that requirement.
e.g. Must load something in x seconds
What is a usability requirement, list examples
A non-functional requirement about the product’s ease of use or other usability considerations.
e.g. existing staff find it easy to use
What is a performance requirement, give examples
A non-functional requirement about how fast, how safe, how accurate, how available and how reliable the product must be.
e.g. The system shall be capable of responding to requests within 0.2 second.
List some response measures
Latency, throughput, jitter, miss rate, data loss
Describe latency
The time taken to process a stimulus e.g. how long does a search engine take to respond to a query
Describe throughput
The number of events dealt with in a given time
Describe jitter
The amount of variation in latency
Describe miss rate
The proportion of events that are not responded to
Describe data loss
How much data is lost because the system fails to record it.
What is the difference between a provided interface and a required interface?
A provided interface describes the operations a component provides to
other components. A required interface describes the operations a
component requires from other components.
When is agile development recommended?
Requirements are constantly changing – agile deals with well with change
Developers and users can communicate regularly – agile demands close involvement of developers and users
The team is small, so that everyone can take part in a single stand-up
meeting.
When is agile development not recommended?
Heavily regulated environment – agile is not amenable to heavy regulated documentation
Predictability is more important than flexibility – agile values flexibility rather than predictability
Large software development with distributed teams – difficulty to scale has been a constant criticism of agile; distributed teams put a heavy burden on communication which so central to agile
Requirements are well defined and unlikely to change
Customer is distant –agile demands close involvement of customer
What is black box testing?
Used to test each aspect of the customer’s requirements is handled correctly by an implementation. It see’s a system through it specification
What is white box testing?
Used to check that the details of the implementation are correct. It ignores the big picture of the requirements and instead looks to detailed designs to check that the system does what it is supposed to do correctly, ideally representatively testing all paths. Must also check the outputs are correct.