Information Technology Reference
In-Depth Information
These lead to a number of key focus areas in software intensive and systems
engineering:
- Models - the need to enumerate and classify modelling dimensions for ob-
taining precise models to support run-time reasoning and decision making
for achieving evolvable need compliance;
- Requirements - the need to define a new requirements language for han-
dling uncertainty to give flexible and self-adaptive systems the freedom to
do adaptation;
- Variability - over the last number of years there has been an explosion in
the number of devices that use software, ranging from the obvious ( mobile
phones, consumer electronics ) to the less obvious ( medical implants, vehi-
cles ). The processes and methodologies required to create, test and deploy
software for such vast numbers and purposes, and manage reusability need
to be developed.
- Engineering - the need to consider feedback control loops as first-class entities
during engineering of flexible and self-adaptive systems;
- Security - this must be an integral part of all software and systems in an
increasingly open and connected ecosystem.
- Assurances - the need to define novel verification and validation methods for
the provision of assurances that cover the flexibility and self-adaptation of
systems.
- Evolution and Self adaptability - Systems that can automatically detect and
adapt themselves to their environment and changes to their environment.
The belief is that machine learning is the key to this capability.
Recent software evolution studies rely on fine-grained information mined by
integrating several kinds of repositories, such as versioning systems, bug tracking
systems, or mailing lists. Nowadays, many other sources of information, ranging
from code search repositories, vulnerability databases, informal communications,
and legal documents are also being considered. This would possibly aid to capture
the rationale of some events occurring in a software project, and link them to
statistical relations observed.
The road towards shifting from solid empirical models towards principles of
software evolution will likely be long and di cult, therefore we should prepare
ourselves to traverse it and go as far as possible. To do this, we need to pay
attention to:
1. Combining quantitative studies with qualitative studies, surveys, and infor-
mal interviews,
2. Using appropriate statistical and machine learning techniques able to capture
the temporal relation among different events, introducing robustness and
adaptability and
3. Making extensive use of natural language processing and text mining to
automatically process the various sources of information available
Search WWH ::




Custom Search