Abstract:
Separation of concerns is considered to be one of the key elements in the
design of complex systems where software plays a major role. Separation of
concerns means that a large and complicated system is divided into smaller
units so that different concerns are separated. Examples of such units include
classes, components and processes.
It has been recognized that there is no way to divide a system so that total
separation of concerns would be satisfied. That is, there are always concerns
that cut across the structure imposed by the division. In particular, concerns
emerging from the requirements, such as features visible to the users, are
usually scattered around the units and tangled with other features inside the
units. It has been speculated that scattering and tangling cause problems
concerning traceability, comprehensibility, evolvability, low reuse, high
impacts of changes and reduced concurrency in development.
Recently, a number of new programming languages have been introduced to
alleviate the above problems. In this talk I will introduced a concept called
aspect-oriented specification architecture, which enables capturing
cross-cutting concerns already in the design phase. This talk describes joint
work with the DisCo team at Tampere University of Technology.