Block 1 Glossary Flashcards
These cards are a copy of the glossary provided by TM354. Except where definitions are 'see x', these cards have been omitted.
Abstraction
The process of describing the essential features of a problem and ignoring other details. It permits you to concentrate on a problem at some level of generalisation, without regard to irrelevant detail. It also permits you to work with concepts, terms and models that are familiar in the problem environment (or domain).
Activity
In UML, an activity is an ongoing non-atomic execution (contrast with action) within a state machineor within an activity diagram; in a given context, activities result in one or more actions.
In a software development process, it is a unit of work comprising one or more tasks that someone may be asked to perform.
Activity Diagram
A representation of a workflow through activity states or action states and in which most or all of the transitions are triggered by completion of an activity in the source states; an activity diagram can be used to represent the workflows within the business domain.
Actor
A representation of users of a software system in a particular role, when interacting with use cases. An actor can also represent the role of an external system that interacts with a software system.
Aglie
Agile UP
A version of UP where the initial disciplines (business/domain model, requirements, analysis and design) are collapsed into a single ‘model’ discipline and where iterations are short (weeks rather than months) and frequent; product is delivered incrementally if at all possible; design and implementation do not wait until all the requirements are found.
Ambiguity
Open to several interpretations.
Analysis
The term analysis is often used as a generic term for the activities that precede design, the process of eliciting the requirements of a system from the user (requirements elicitation), and then generating the requirements specification document that identifies (among other things) what the software should do (its functional requirements) and the environment in which it must work. In this module we use the term analysis to refer specifically to a set of activities that follow an initial requirementsphase: modelling how the structure and behaviour of the system will meet its specification from a user’s perspective. (See also requirements, design, implementation and testing).
Analysis Model
An initial representation of the structure of a software solution by a class diagram; it represents analysis classes, their associations and constraints.
Association
Business Event
Business Process
Definition of what gets done in the business: by whom, in what order, needing what and with what consequences.
Business Rule
A constraint on how the business is run; that is, a constraint on the business processes.
Caller
Component that makes a procedure call in a call-return architecture.
Circular Dependency
A series of two or more dependencies between different things (typically modules within a software system) that form a closed loop. If module A depends on module B which depends on module C, then a circular dependency arises if module C depends on module A.
Client
In software development, the term refers to the person (or company) who commissions and pays for a piece of software to be developed or to be purchased as a package (in this context the term client is synonymous with the term customer).
In programming, the term often refers to the method/class/object that uses the methods of another class/object (the supplier or server).
In network programming, the term refers to a program/process running on one computer that can obtain services from a server program running (usually) on another computer.
Cohesion
A way of describing how closely the activities within a single module are related to each other. A cohesive module should, ideally, do just one thing. In software development, high cohesion is preferred to low cohesion as it results in a more flexible software system because each module performs clearly defined operations/tasks.
Commitment
A move of the planning game that decides what to do next.
Communication Diagram
A UML interaction diagram that focuses on the structural aspect (instances and links) of an interaction. In previous versions of UML a communication diagram was known as a collaboration diagram.
Complexity
A complex system consists of a number of parts with a large number of relationships between them. A complex program is one that is difficult to understand.
Component
In general, this refers to an identifiable part of a system. For its use in connection with software systems, see software component.
CASE
Computer-aided Software Engineering
The use of specialised application programs (tools) that provide some form of automated support during the development of a software system for the benefit of its eventual implementation. Consequently, it includes one or more methods, as well as their accompanying techniques and notations, used for activities such as analysis and design.
Concept(ual) Model
The structural model that represents the static part of the domain: the concepts and their relationships.
Configuration
All the modules (components) which together make up an executable software system. It is also a term for the collection of configuration items.
Configuration Item
The configuration items are the items produced during the development and maintenance of software, which are stored, retrieved, changed, stored again, and so on. These include: use case diagrams and other UML diagrams; individual Java programs or classes, or the compiled versions of these; architectures and patterns; test plans and test cases.
Configuration Management
The task of managing configuration items, which involves identifying the components of a continuously evolving system (the configuration) at discrete points in time, for the purposes of controlling changes to the configuration, and maintaining integrity and traceability throughout the system’s lifetime.
Conformance Testing
Testing that the software product conforms to its requirements.
Construction
In UP, phase when the final product is implemented.
Context Dependency
A service required by a module in order for it to work.
Contract
A legal document describing the obligations of two parties entering into an agreement; important contract issues include confidentiality and intellectual property rights. In a software project, a contract exists between the customer (client) and developer (supplier) for the provision of a software product. Also, a way of describing what each task, activity or operation commits to achieve by stating the pre- and postconditions. (See also Design by Contract.)
Coupling
A measure of interconnection among modules in a software system. In software development, low coupling is preferred to high coupling as it results in a more flexible software system. (See also encapsulation.)
Culural Requirement
A non-functional requirement relating to the people involved in the product’s development and operation.
Decision Nodes
In an activity diagram a node that is used to indicate alternative transitions that can be made when leaving an activity; it is represented by a diamond shape. A decision node has a single incoming transition; the guards on outgoing transitions are mutually exclusive.
Decomposition
Splitting a problem into smaller and smaller parts or chunks until each one can be comprehended or dealt with by an individual. In software we identify a number of different activities or tasks that an individual or a group of individuals might perform.
(See also partition.)
Deliverable
An output, such as a design document or source code, of some software development activity whose production gives evidence of the completion of the activity.
Denial of Use of Service
Loss of Access
Attack consisting of the denial of service to authorised users.
Deployment
Configuring code to give a runnable system.
Deployment View
The identification of all the nodes that comprise a distributed software system, the components that are stored on each node and the objects that are stored there.
Derivation
A version of a configuration item based on other configuration items, which might have to be changed if the original item changes.
Design
The process of determining how to build an artefact that meets a set of objectives that are normally identified during analysis. It is one of the four basic technical activities within a software development process (see also analysis, implementation and testing).
DbC
Design by Contract
The process of developing software based on the notion of contracts between objects, which are expressed as assertions.
Design Model
A representation of the structure of a software solution by a class diagram; it represents classes, their associations and constraints and their responsibilities in terms of operations.
Development Process
A set of rules that define how a software development project should be carried out. It incorporates a life cycle and involves a number of methods and procedures.
UML Diagram
In UML, a diagram is a graphical presentation of a collection of model elements.
Disclosure
Attack of private information or the unauthorised release of information.
Discoverable
The property of a service in a service oriented architecture that allows the architecture to identify services on behalf of a consumer. (See also service and service-oriented architecture.)
Domain
An area or field of knowledge characterised by a set of concepts and terminology that is understood by practioners in that area.
Domain Analysis
A form of requirements elicitation in which existing systems in the domain are examined and domainexperts are consulted.
Domain Modelling
Modelling what already exists.
Dynamic Model
Describes the behaviour of a software system over time.
DSDM
Dynamic Systems Development Method
An agile software development method.
Elaboration
In UP, phase most analysis and design occur.
Element
In UML, an element is an atomic constituent of a model.
Encapsulation
Hiding from the clients of a class the details of how the class is implemented. In other words, it is the process of hiding (making private) all the methods and data fields of a class used in the implementation of the public methods (or interface) of the class.
Engineering
A systematic approach to efficiently developing products which are fit for purpose, based on a body of knowledge.
Enterprise Beans
Another name for EJB components. They are server-side components, that is to say, they are distributed entities that provide remote services to clients distributed throughout the network.
EJB
Enterprise JavaBeans
A component technology, based on the Java programming language. It defines a standard that allows organisations to build their own components or acquire components from third-party vendors.
Exploration
A move of the planning game that finds out new things that can be done.
Extension
A form of inheritance in which the child class adds functionality to the parent class but does not change any inherited behaviour.
Extension Points
A place in the main success scenario of a use case where the condition that triggers a subsidiary use case is tested.
Fit Criteria
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.
Fork
In activity diagrams, a fork node splits control into multiple parallel flows.
Functional (or Logical) View
In a software architecture it describes the system’s main functional elements, their responsibilities, interfaces and primary interactions. A functional view is the cornerstone of most architectural descriptions.
Functional Requirement
a specified action that a system has to perform
Further Analysis
The adding of additional detail to a system specification. In particular, system operations and model constraints.
Glossary
A list of terms or words relating to a particular domain or text, along with an explanation of each term.
Guard
A condition that must be satisfied in order to enable an associated transition to fire within a state machine or activity diagram.
Guillements
Angled brackets (« …») used in UML to show a stereotype. They have other more general uses.
Heroic Programming
A form of software development where a single person attempts to have in mind everything concerning a given problem and its eventual solution.
Human Factors
The discipline that deals with the relationship between people and technology.
Implementation
The process of building a coherent set of instructions for a computer, that will cause it to exhibit a behaviour specified by the artefacts which are normally devised during design. It is one of the four basic technical activities within a software development process (see also analysis, design and testing).
Inception
In UP, phase when the initial planning of development occurs.
Inclusion
A relationship between two or more use cases, when there is an overlapping area of functionality – that is, a common task – that can be factored out as a distinct use case. The new use case can then be used by each of the original use cases, so avoiding duplication.
Increment
The difference between two releases of a (software) deliverable at the end of successive iterations.
Incremental Development
This development approach partitions the system into a number of independent or reasonably independent ‘chunks’. The process begins by developing one chunk – the core – and adding successive increments to it over time. A significant point about this method is that the core is a functioning item of software that meets some of the requirements. As each increment is added, the resulting software is still functional.
Initial Problem Statement
An initial statement of a problem from which development proceeds. In order to draw up detailed requirements it will usually be necessary to clarify and expand on the information in the initial problem statement during requirements elicitation. (See also requirements elicitation.)
Integration
An activity in which individual software modules or components are combined into an executable whole.
Integrity
in general, the property that data has not been subject to unauthorised change. In particular, a software quality factor affecting product operation requirements which determines the extent to which access to data by unauthorised persons can be controlled, that is, how well the data is secured.
Interatction Diagram
A UML diagram that shows the sequencing of messages in an interaction. (See also sequence diagram and communication diagram.)
Interface
In general, this refers to the operations (methods), including their syntax and semantics, that a software system/subsystem/module provides to the clients of the system. In the object-oriented approach, the public operations associated with an object are referred to as its interface, or its interface operations. In Java, an interface is a construct similar to a class, which provides a specification (in the form of method headings but no implementation) of the methods for which classes implementing the interface must provide implementations.