1 research outputs found
Specification and refinement of software connectors
Tese de doutoramento em Informática (área de conhecimento de Fundamentos da Computação)Modern computer based systems are essentially based on the cooperation of
distributed, heterogeneous component organized into open software architectures
that, moreover, can survive in loosely-coupled environments and be easily adapted
to changing application requirements. Such is the case, for example, of applications
designed to take advantage of the increased computational power provided
by massively parallel systems or of the whole business of Internet-based software
development.
In order to develop such systems in a systematic way, the focus in development
method has switched, along the last decade, from functional to structural issues:
both data and processes are encapsulated into software units which are connected
into large systems resorting, to a number of techniques intended to support reusability
and modifiability.
Actually, the complexity and ubiquity achieved by software in present times
makes it imperative, more than ever, the availability of both technologies and sound
methods to drive its development. Programming ‘in–the–large’, component–based
programming and software architecture become popular expressions which embody
this sort of concerns and correspond to driving forces in current software engineering.
In such a context this thesis aims at introducing formal models for software connectors
as well as the corresponding notions of equivalence and refinement upon
which calculation principles for reasoning and transforming connector-based software
architectures can be developed. This research adopts an exogenous coordination
point of view in order to deal with components’ temporal and spatial decoupling
and, therefore, to provide support for looser levels of inter-component dependency.
The thesis also characterises a notion of behavioural interface for components and services. Interfaces and connectors are put together to form configurations, an
abstraction for representing software architectures.
A prototype implementation of a subset of the proposed models is provided, in
the form of a HASKELL library, as a proof of concept. Furthermore, the thesis reports
on a case study in which exogenous coordination is applied to the specification of
interactive systems.Um número crescente de sistemas computacionais é baseado na cooperação de
componentes interdependentes e heterogêneas, organizadas em arquiteturas abertas
capazes de sobreviverem em ambientes altamente distribuÃdos e facilmente adaptáveis
a alterações nos requisitos das aplicações que os suportam. Tal é o caso, por
exemplo, de aplicações que exploram o poder computacional de sistemas massivamente
paralelos ou de sistemas desenvolvidos sobre a Internet.
Para desenvolver este tipo de sistemas de forma sistemática, o foco nos métodos
de desenvolvimento alterou-se, ao longo da última década, dos aspectos funcionais
para os aspectos estruturais dos sistemas: ambos, estruturas de dados e processos
são encapsulados em unidades computacionais que são conectadas em grandes sistemas
utilizando-se de diversas técnicas que se pretendem capazes de suportar a
reutilização e a adaptabilidade do software.
Na realidade, a complexidade e ubiqüidade atingidas pelo software nos dias
correntes tornam imperativo, mais do que nunca, a disponibilidade de tecnologias
e sólidos métodos para conduzir este processo de desenvolvimento. Programação
’em-grande-escala’, programação baseada em componentes e arquiteturas de software
são expressões populares que englobam esta preocupação e correspondem aos
esforços direcionados pela engenharia de software.
Em tal contexto, esta tese tem por objetivo introduzir modelos formais para
conectores de software bem como as correspondentes noções de equivalência e refinamento
que suportem cálculos para raciocinar e transformar arquiteturas de software
baseada em conectores. Esta pesquisa adota um ponto de vista de coordenação
exógena para lidar com a separação espacial e temporal das componentes e suportar
nÃveis elevados de independência entre componentes.
A tese caracteriza, ainda, uma noção de interface comportamental para componentes e serviços. Interfaces e conectores agregam-se para formar configurações,
uma abstração introduzida para representar arquiteturas de software.
A implementação, em protótipo, de parte dos modelos propostos, sob a forma
de uma biblioteca em HASKELL, é fornecida como prova de conceito. Finalmente, a
tese percorre um estudo de caso em que coordenação exôgena é utilizada na especificação
de sistemas interactivos.Fundação para a Ciência e a Tecnologia (FCT), SFRH/BD/11083/200