Questo sito utilizza cookie di terze parti per inviarti pubblicità in linea con le tue preferenze. Se vuoi saperne di più clicca QUI 
Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie. OK

Towards Software Components for Non Functional Aspects

Dealing with problems that the implementation of a complex system sets is a fundamental technique in the work of each designer. Each complex problem is decomposed into more simple subproblems, which solutions are then aggregated to form the complete solution. There are however some problems (called "aspects ") that are transversal to the whole system (eg synchronization of concurrent operations).

In this thesis:

- Different approaches to programming oriented aspects have been analyzed, highlighting the problems that hinder the possibility of treating them as real software components;

- A new language, called Malaj, has been proposed, whereas: (1) issues that must be separated are few, (2) identifying the precise aspects helps to create ad hoc constructs that separate the appearance in a disciplined manner.

- Some specific languages have been defined for the programming oriented to aspect of distributed applications: the coordination of functionalities performed in parallel, the relocation of sections of functionalities in different address spaces, the declaration and the possibility of handling exceptional situations.

- And has been shown that the approach allows us to clarify the relationship between constructs and aspects of typical object-oriented languages such as inheritance.

Mostra/Nascondi contenuto.
1 Introduction Solution: The act of separating the parts of any body, or the condition of undergoing a separation of parts. — Webster’s Revised Unabridged Dictionary (1913) Separation of concerns is a key engineering principle [18] applied in analysis, design, and implementation of systems. Designers want to think about one problem at a time and separation of concerns means decomposing a system into parts, each of which deals with, and encap- sulates a particular area of interest, called a concern. Software engineers learned how decomposition of a complex sys- tem into simpler sub-systems can make the problem tractable because the complete solution can be built out of sub-solutions, found relatively independently. In fact, most analysis and design notations and pro- gramming languages provide constructs for organising descriptions as hierarchical structures aggregating simpler modular units. Moreover, the development of every non trivial system necessar- ily involves many people, and it is crucial to entrust individuals with precise responsibilities, according their skills, knowledge, and expert- ise. In fact, multiple perspectives of the system must exist to cope with different development phases, different issues, different stake-holders. These different viewpoints [20] need an explicit representation in order to make possible concurrently carrying out and integrating them in co- herent analysis, design, implementation, testing and deployment arti- facts. Thus, smart techniques for expressing separate solutions to differ- ent concerns and composing them in the final system are needed at every stage of development. In particular, programming languages need proper idioms to help implementors in applying good “divide et impera” principles to their programs. Traditional programming lan- guages have supported the partitioning of software in modular units of functionality. Such parts are then assembled to get the desired func- tionality of the whole system. The history of programming languages 1

Tesi di Dottorato

Dipartimento: Dipartimento di Elettronica e Informazione

Autore: Mattia Monga Contatta »

Composta da 80 pagine.

 

Questa tesi ha raggiunto 344 click dal 20/03/2004.

Disponibile in PDF, la consultazione è esclusivamente in formato digitale.