Block 3 Glossary Flashcards
These cards are a copy of the glossary provided by TM354. Except where definitions are 'see x', these cards have been omitted.
Acceptance Testing
The formal testing of an entire system, conducted by a customer, to determine whether it satisfies its acceptance criteria and thus whether the customer should accept the system.
Adapeter
A design pattern that addresses the problem of a class having an interface different from the one the client expects.
Adapter Pattern
A design pattern used when a client expects to make calls to a particular interface different from the one that is implemented.
Analysis Pattern
A high-level pattern describing a solution at a conceptual analysis level problem.
Analytical Completeness
A measure of completeness where only the functional requirements are considered.
Applet
A small Java program that is downloaded from a server and executes in a container consisting of a Java plug-in installed in the client’s browser.
Architectural Pattern
Codifies recurrent software architectures by describing the key elements of the architecture and how they fit together. It also describes the qualities of systems that are assembled following the pattern.
Arcitectural View
A model of the architecture, that captures the concerns of a group of stakeholders of the system.
Architecture Specilaisation
The process of specialising an architecture by selecting specific components etc.
Architecture Specification
The specification of the architecture of a system. It is also the third step in the product line process, where reference architectures are produced.
Assertion (Handling) Mechanism
A programming construct which, at run-time, allows an assertion to be executed, and alerts the user to an assertion violation. Also referred to as an assertion mechanism.
Assertion Statement
A statement of what must be true at a particular point in the execution of a method.
Assume
A condition that a component needs, to operate correctly.
Asynchronous
(communication) When the sender can continue without waiting for an answer from another component.
Basis-Path Testing
A white box testing technique based on the cyclomatic-complexity metric which ensures that all statements in a method are tested at least once.
Blackboard
A variant of a data-centred architectural style in which the store is active and informs users of changes, so that communication may be initiated from either end.
Black Box Testing
Used to test that each aspect of the customer’s requirements is handled correctly by an implementation. Black box testing ‘sees’ a system through its specification – the specification defines what the system should do and, through black box testing, we make sure it does it.
Boundary Testing
A type of black box testing that focuses on producing test data at the boundaries between partitions of the input data space (also know as fence testing).
Note that the input data space is simply the set of all values that an input can take, and a partition, also known as a subdomain, is simply a set of input values that require essentially the same processing.
Bursty Event
An event coming in sudden and unpredictable clusters overlaying normally low background activity.
Callee
Component that receives a procedure call in a call-return architecture.
Call-Return Style
An architectural style in which one component (the caller) makes a procedure call to another component (often known as the callee) and waits for the call to return.
Case Analysis
When carrying boundary testing, case analysis is the process used to partition test data into subdomains, i.e. sets of input values that require similar processing.
Case analysis aids the identification of boundaries between subdomains. At these boundaries, the kind of processing required changes.
Class Invariant
A constraint that must be true at all times, other than during when one of its methods is executing. A statement about the values of the attributes of a class that must hold for all instances of that class.
Client-Server
An architectural style in which one component (the server) waits for requests from clients, processes each one as it as received, and returns a response to the client.
Cloud Computing
A model in which software runs on remote facilities provided by a third-party supplier.
Completeness
The degree to which full implementation of the required functionality has been achieved.
CBD
Component-Based Development
An approach to the development of software by assembling reusable self-contained software components.
Component Collection
The fourth step in the product line process where the repository of candidate componentsaccompanying the architecture is gathered together.
Component Selection and Specialisation
The process of selecting appropriate components for a system and specialising them to the application domain. (See also domain.)
Concern
Some aspect of the system that is of crucial importance from the point of view of one or more groups of stakeholders.
Connector
An element of an architecture that establishes the communication between components.
Consistency
The property of two descriptions agreeing with each other, that is, not making statements that cannot be simultaneously true.
Container
An object (or component) that exists to encompass other objects and provide operations to access or iterate over its contents. In Java EE, a special run time environment that provides components with supporting services (for example, life-cycle management, security, deployment, and run-time services).
Context Dependency
A service required by a module in order for it to work.
Controller
In the MVC, the controller is the component that handles all user inputs which affect the model.
CBO
Coupling Between Objects Metric
For a given class, CBO is defined as the number of relationships the class has with other classes. The more relationships a class has, and so the higher the value of this metric, the more difficult it is to understand the use of the given class.
Cyclomatic-Compexity Metric
A measure of the complexity of a method by counting the number of independent paths through a method body.
Data-Centred
Architectural style where there is a data provider which is a centralised store of persistent data.
Data-Centred Style
An architectural style in which there is a centralised data provider, together with a number of clients who are data consumers. If the provider simply responds to client requests it is called a database. A variant in which the data store informs clients when a change occurs is known as a blackboard.
Data-Flow Style
An architectural style in which each component (called a filter) accepts a stream of data, processes it, and passes the result on to the next filter. A filter has no knowledge of other filters upstream or downstream but simply operates on the data it is given.
Data Loss
The amount of data lost because the system fails to record it.
Defensive Programming
A design philosophy that says preconditions should always be checked. Each operation is responsible for making sure that it is safe to proceed. The checking is placed very close to the code that depends on it.
Dependency Injection
A Java EE container service that creates and manages an EJB object ‘injecting’ the necessary references into the client.
Deployment Model
A UML model describing how the components of a system are to be mapped onto different machines and how they will communicate.
DIT
Depth-of-Inheritance-Tree
For a given class, this is defined as its number of ancestors. Because of inheritance, a method in the given class can be defined in any of its ancestors. DIT is, therefore, a measure of the number of classes essential to the understanding of the methods of the given class. The deeper a class is in an inheritance tree, and so the higher the value of this metric, the more difficult the class may be to understand.
DbC
Design by Contract
The process of developing software based on the notion of contracts between objects, which are expressed as assertions.
Design Pattern
A middle-level pattern describing a solution at a software design level.
Developmental Testing
One of the four major types of software testing which checks that developmental activities have been carried out correctly, and ideally is performed by development staff and checked by quality assurance (QA) staff.
EJB Container
A run-time environment where EJB components are deployed.
Enterprise Architectures
Software systems designed to meet the business needs of large organisations.
Error Guessing
An informal but successful black box testing technique in which the wildest test data that can be thought of is presented to the program unit.
Executable Assertion
An assertion that has been coded and can be executed at run-time.
Executable Documentation
Executable documentation is documentation tht allows code to be automatically checked against documention at run time. It should have no effect on program logic, and should be able to be switched on or off globally - so as not to impact performance. Not all aspects of documentation can be checked in this way, but Design by Contract and Test Driven Development are two different systematic approaches to executable documentaion.
XP
Extreme Programming
An agile software development method.
Factory
A specialised object for creating and initialising objects needed by clients.
Factory Method
A variant of the Factory pattern particularly useful in the definition of frameworks in which application-specific factories and products can be defined based on the interfaces defined in the framework.
Factory Pattern
A pattern to define a specialised object for the creation and initialisation of other objects.
Filter
Element in a pipe and filter architecture that takes some data and processes it to produce a result.
Fixture
The state in place and the data to be used on a test case.
Flexibility
The property of a software system that indicates how easily the system can be modified.
Foreign Key
In a database table, a column that holds a key from a different table.
Framework
A collection of classes that together provide behaviour common to a variety of applications. The programmer creates a new application by extending and, perhaps, overriding the behaviour of the classes contained in the framework.
Also, the part of an architecture that can be reused.
Guarantee
A condition that a component promises to other components.
Heuristic Evaluation
User interface code should always be user tested. However, heuristic testing allows preliminary testing of interaction designs without users. Heuristic evaluation involves analysing interaction designs against recognised checklists for good practice (‘heuristics’).
HTTP
Hyper Text Transer Protocol
A protocol for communication of data in the Web.
Idiom
A pattern that applies within a programming language.
Ilities
Quality attributes, for instance security, reliability, availability, usability etc.