Adaptation (Computer Science)
Encyclopedia
The term “adaptation” in computer science
refers to a process, in which an interactive system
(adaptive system
) adapts its behaviour to individual users based on information
acquired about its user(s) and its environment.
passes through a potentially long software engineering
cycle and before delivery, requirement engineers
, designers
and software developers realize the components of the system. However, it is impossible to anticipate the requirements of all users, and a single best or optimal system configuration is impossible. The active involvement of users and clear understanding of user and task
requirements is a challenge in the development
of computer-based interactive systems for two reasons:
With their norm
for "Human-centred design processes for interactive systems" the International Organization for Standardization
gives guidance on user-centered design
activities throughout the life cycle of computer-based interactive systems . One of the core tasks of user-centred design is to negotiate and facilitate the communication
across the well-known user-developer gap
while acknowledging the different forms of expression and different requirements on each side. However, despite the implementation of a human-centred design process, some types of modern applications require instant adaptation due to their exposure to increasing situational dynamics.
For this reason, developers implement techniques of adaptation into the system in order to react to changing conditions as fast as possible. The example application scenario clearly shows an important distinction concerning such adaptation techniques: the differentiation between manually and automatically performed adaptation processes. Accordingly, the term adaptation decomposes into the two terms adaptivity and adaptability. Adaptivity indicates a system that adapts automatically to its users according to changing conditions, i.e. an adaptive system
. Adaptability refers to users that can substantially customise the system through tailoring activities by themselves, i.e. an adaptable system. Adaptive and adaptable systems are complementary to each other . Both methods increase the match between user needs and system behaviour once the development of the system has been finished. Thus, the system is kept flexible during usage.
for such an adaptation process. They can be clustered into three main categories: inter-individual, intra-individual and environmental differences.
, colour schemes, modality
of interaction, menu
options or security
properties, and numberless other personal preferences are popular sources of adaptation and can be reused in different applications. Other sources are the user’s interests and disinterests, psychological personality characteristics like emotions, self-confidence
, motivation
, or beliefs, which are difficult to assess automatically.
and further development of a single user, as well as the task over time. A static system falls short of changing user requirements as the user’s activities and goals evolve. In an extreme case users are over-strained by the system in the beginning and perceive the same system as cumbersome and restricted as the user’s expertise
increases. In the same manner, the need for a higher flexibility
of computer systems is pushed by the changing of the tasks to be accomplished with such a system.
of computing devices, applications and people, which leads to highly dynamic computing environments. Unlike desktop applications
, which rely on a carefully configured and largely static set of resources, ubiquitous computing
applications are subject to changes in available resources such as network connectivity and input/output devices. Moreover, they are frequently required to cooperate spontaneously and opportunistically with previously unknown software services in order to accomplish tasks on behalf of users. Thus, the environment surrounding an application and its user is a major source to justify adaptation operations.
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
refers to a process, in which an interactive system
Interactivity
In the fields of information science, communication, and industrial design, there is debate over the meaning of interactivity. In the "contingency view" of interactivity, there are three levels:...
(adaptive system
Adaptive system
The term adaptation arises mainly in the biological scope as a trial to study the relationship between the characteristics of living beings and their environments...
) adapts its behaviour to individual users based on information
Information
Information in its most restricted technical sense is a message or collection of messages that consists of an ordered sequence of symbols, or it is the meaning that can be interpreted from such a message or collection of messages. Information can be recorded or transmitted. It can be recorded as...
acquired about its user(s) and its environment.
The need for adaptation
A software systemSoftware system
A software system is a system based on software forming part of a computer system . The term "software system" is often used as a synonym of computer program or software; is related to the application of systems theory approaches in software engineering context and are used to study large and...
passes through a potentially long software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
cycle and before delivery, requirement engineers
Requirements analysis
Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...
, designers
Systems design
Systems design is the process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. One could see it as the application of systems theory to product development...
and software developers realize the components of the system. However, it is impossible to anticipate the requirements of all users, and a single best or optimal system configuration is impossible. The active involvement of users and clear understanding of user and task
Task (computers)
A task is an execution path through address space. In other words, a set of program instructions that are loaded in memory. The address registers have been loaded with the initial address of the program. At the next clock cycle, the CPU will start execution, in accord with the program. The sense is...
requirements is a challenge in the development
Software development
Software development is the development of a software product...
of computer-based interactive systems for two reasons:
- the potential user groups are not known a priori, but need to be identified according to future scenariosScenario (computing)In computing, a scenario is a narrative describing foreseeable interactions of types of users and the system. Scenarios include information about goals, expectations, motivations, actions and reactions...
; these groups need to be revised as the visions evolve because there may be various groups of potentially affected users. - the visions of the aspired project are far-sighted and not close to users’ current experiences; therefore, users may not be confident and precise about their needs concerning this future system.
With their norm
Norm
-In academia:A designated standard of average performance of people of a given age, background, etc.*Norm , a set of statements used to regulate artificial intelligence software...
for "Human-centred design processes for interactive systems" the International Organization for Standardization
International Organization for Standardization
The International Organization for Standardization , widely known as ISO, is an international standard-setting body composed of representatives from various national standards organizations. Founded on February 23, 1947, the organization promulgates worldwide proprietary, industrial and commercial...
gives guidance on user-centered design
User-centered design
In broad terms, user-centered design or pervasive usability is a design philosophy and a process in which the needs, wants, and limitations of end users of a product are given extensive attention at each stage of the design process...
activities throughout the life cycle of computer-based interactive systems . One of the core tasks of user-centred design is to negotiate and facilitate the communication
Communication
Communication is the activity of conveying meaningful information. Communication requires a sender, a message, and an intended recipient, although the receiver need not be present or aware of the sender's intent to communicate at the time of communication; thus communication can occur across vast...
across the well-known user-developer gap
Participatory culture
Participatory culture is a neologism in reference of, but opposite to a Consumer culture — in other words a culture in which private persons do not act as consumers only, but also as contributors or producers . The term is most often applied to the production or creation of some type of published...
while acknowledging the different forms of expression and different requirements on each side. However, despite the implementation of a human-centred design process, some types of modern applications require instant adaptation due to their exposure to increasing situational dynamics.
Adaptivity and adaptability
Even if the user-centred design process implemented in a project guarantees a certain degree of user acceptance and yields a richer understanding of the context of use, the completed product’s ability to adapt to changing conditions still plays a central role for a broad acceptance. The operational environment will change, the tasks will be distinct, the end-users will be heterogeneous, and their competences and expectations will evolve. Here again it is impossible for developers to anticipate all possible requirements modifications. Thus, the dynamics of changing conditions shifts the customisation process of the system’s characteristics from the development phase to its usage and operation phase because the time needed for a professional development is too short or the new features are too costly.For this reason, developers implement techniques of adaptation into the system in order to react to changing conditions as fast as possible. The example application scenario clearly shows an important distinction concerning such adaptation techniques: the differentiation between manually and automatically performed adaptation processes. Accordingly, the term adaptation decomposes into the two terms adaptivity and adaptability. Adaptivity indicates a system that adapts automatically to its users according to changing conditions, i.e. an adaptive system
Adaptive system
The term adaptation arises mainly in the biological scope as a trial to study the relationship between the characteristics of living beings and their environments...
. Adaptability refers to users that can substantially customise the system through tailoring activities by themselves, i.e. an adaptable system. Adaptive and adaptable systems are complementary to each other . Both methods increase the match between user needs and system behaviour once the development of the system has been finished. Thus, the system is kept flexible during usage.
Catalysts for adaptation
Changing conditions trigger the execution of an adaptation. Many characteristics might be taken into account as catalystsCatalysis
Catalysis is the change in rate of a chemical reaction due to the participation of a substance called a catalyst. Unlike other reagents that participate in the chemical reaction, a catalyst is not consumed by the reaction itself. A catalyst may participate in multiple chemical transformations....
for such an adaptation process. They can be clustered into three main categories: inter-individual, intra-individual and environmental differences.
Inter-individual differences
Inter-Individual Differences address varieties among several users along manifold dimensions. Physiological characteristics like disabilities are of major concern for application designers if they want to have their system accepted by a large community. The consideration of user preferences like languageLanguage
Language may refer either to the specifically human capacity for acquiring and using complex systems of communication, or to a specific instance of such a system of complex communication...
, colour schemes, modality
Modality
-Humanities:* In law: the basis of legal argumentation in United States constitutional law* In theology: Modality : the organization and structure of the church, as distinct from sodality or parachurch organizations...
of interaction, menu
Menu (computing)
In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...
options or security
Computer security
Computer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...
properties, and numberless other personal preferences are popular sources of adaptation and can be reused in different applications. Other sources are the user’s interests and disinterests, psychological personality characteristics like emotions, self-confidence
Confidence
Confidence is generally described as a state of being certain either that a hypothesis or prediction is correct or that a chosen course of action is the best or most effective. Self-confidence is having confidence in oneself. Arrogance or hubris in this comparison, is having unmerited...
, motivation
Motivation
Motivation is the driving force by which humans achieve their goals. Motivation is said to be intrinsic or extrinsic. The term is generally used for humans but it can also be used to describe the causes for animal behavior as well. This article refers to human motivation...
, or beliefs, which are difficult to assess automatically.
Intra-individual differences
Intra-individual differences consider the evolutionEvolution (term)
The English noun evolution refers to any kind of gradual change.It is used in biology, of biological evolution, in economics, historical linguistics, and many other technical fields where systems develop or change gradually over time, e.g...
and further development of a single user, as well as the task over time. A static system falls short of changing user requirements as the user’s activities and goals evolve. In an extreme case users are over-strained by the system in the beginning and perceive the same system as cumbersome and restricted as the user’s expertise
Domain knowledge
Domain knowledge is that valid knowledge used to refer to an area of human endeavour, an autonomous computer activity, or other specialized discipline.Specialists and experts use and develop their own domain knowledge...
increases. In the same manner, the need for a higher flexibility
Flexibility (engineering)
Flexibility is used as an attribute of various types of systems. In the field of engineering systems design, it refers to designs that can adapt when external changes occur. Flexibility has been defined differently in many fields of engineering, architecture, biology, economics, etc...
of computer systems is pushed by the changing of the tasks to be accomplished with such a system.
Environmental differences
Environmental Differences basically result from the mobilityMobile computing
Mobile computing is a form of human–computer interaction by which a computer is expected to be transported during normal usage. Mobile computing has three aspects: mobile communication, mobile hardware, and mobile software...
of computing devices, applications and people, which leads to highly dynamic computing environments. Unlike desktop applications
Desktop computer
A desktop computer is a personal computer in a form intended for regular use at a single location, as opposed to a mobile laptop or portable computer. Early desktop computers are designed to lay flat on the desk, while modern towers stand upright...
, which rely on a carefully configured and largely static set of resources, ubiquitous computing
Ubiquitous computing
Ubiquitous computing is a post-desktop model of human-computer interaction in which information processing has been thoroughly integrated into everyday objects and activities. In the course of ordinary activities, someone "using" ubiquitous computing engages many computational devices and systems...
applications are subject to changes in available resources such as network connectivity and input/output devices. Moreover, they are frequently required to cooperate spontaneously and opportunistically with previously unknown software services in order to accomplish tasks on behalf of users. Thus, the environment surrounding an application and its user is a major source to justify adaptation operations.