Adaptive Object-Modeling Patterns, Tools and Applications
Total Page:16
File Type:pdf, Size:1020Kb
· Adaptive Object-Modeling Patterns, Tools and Applications December Scientific Supervision by Ademar Aguiar, Assistant Professor Department of Informatics Engineering In partial fulfillment of requirements for the degree of Doctor of Philosophy in Computer Science by the MAPi Joint Doctoral Programme Contact Information: Hugo Sereno Ferreira Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Informática Rua Dr. Roberto Frias, s/n - Porto Portugal Tel.: + Fax.: + Email: [email protected] URL: http://www.fe.up.pt/ hugosf is thesis was typeset on an Apple® MacBook® Pro running Mac OS® X . using the free LATEX typesetting system, originally developed by Leslie Lamport based on TEX created by Donald Knuth. e body text is set in Minion Pro, a late Renaissance-era type originally designed by Robert Slimbach. Other fonts include Sans and Typewriter from the Computer Modern family, and Courier, a monospaced font originally designed by Howard Kettler at IBM and later redrawn by Adrian Frutiger. Typographical decisions were based on the recommendations given in e Elements of Typographic Style by Robert Bringhurst (), and graphical guidelines were inspired in e Visual Display of Quantitative Information by Edward Tue (). is colophon has exactly one hundred and twenty-two () words, excluding all numbers and symbols. “Adaptive Object-Modeling: Patterns, Tools and Applications” ISBN 978-989-96899-0-9 Copyright © – by Hugo Sereno Ferreira. All rights are reserved. 9 789899 689909 is work was partially funded by and , .. as a doctoral scholarship, ref. ///. …to Helena is page was intentionally le mostly blank. Abstract e field of Soware Engineering () could be regarded as in crisis since the early days of its birth. Project overruns and failures have hitherto characterized the norm, blamed upon the unreason- able expectations set by the stakeholders and the constant change of the requirements. While some development processes struggle to systematically eradicate these barriers from soware development, other methodologies, specially those coined agile, promote a continuous embrace of change as a first-class property of this activity. Even so, it is a yet to be disputed contingency that there is no silver bullet; no single, unifying methodology capable of consistently improving the efficiency of soware development by even an order of magnitude. Nonetheless, the agglomeration of empirical evidence is now starting to suggest that change, more than a mere cause, may be a symptom of a deeper nature, directly related to inherent prop- erties of some of the domains soware tries to address — soware may need to be under constant change because any modeling of those domains is incomplete since the day it starts. erefore, if such solutions need to be constantly evolving and adapted to new realities, hence regarded as incomplete by design, shouldn’t they be actively designed for incompleteness? If agile methodologies shied the way teams and individuals plan development to embrace change, how should one deliberately design to cope with continuous change? Even if the answer to this question could be promptly given, the goal of pragmatically con- tributing to the body of knowledge in the field rises a problem of its own. As knowledge grows in a specific area, solutions are captured and documented by experts in books, research pa- pers, concrete implementations, webpages, etc. While one may intuitively think that this growth implies better design, it has been shown that the way (and the amount) this knowledge is cap- tured raises an important issue per-se. Design, as an intentional act of choice, is constantly over- whelmed by the sheer quantity of available information. In this dissertation, the author starts by presenting arguments pointing to how these incom- plete by design systems are a common issue in nowadays practice of soware engineering. During that overview, one must inevitably delve into the forces that lead architects, designers and devel- opers to recognize these kind of systems. e target thus become readers who have recognized (or are interested) in the set of systems that show a high degree of variability and incomplete- ness, and which goal is to reduce the overall effort — monetary cost, available time and resources, required skills, resulting complexity, etc. — of coping with continuous change made to the do- ii main model. Mainly, this dissertation aims to answer what form should this type of systems take, and which kind of tools and infrastructures should be available to support the development of such soware? e way this problem is here coped, with a permanent focus on the development of prescrip- tive contributions to the body of knowledge, is as follows. First, it is presented as a formal- ization of a unified conceptual pattern language, following the theories first laid by Alexander et al., for systems which domain model is target of continuous change during runtime. e un- derlying meta-architecture of these systems is known as Adaptive Object-models, and this pattern language aims to answers questions such as when do these type of systems occur, their advantages and disadvantages, their underlying requirements, the set of available techniques and solutions and their main benefits and liabilities. e author then proceeds to specify a reference architecture of an object-oriented frame- work capable of dealing with such systems. Questions here addressed include the type and form of needed infrastructures, what abstractions should be made and supported, the generic func- tionalities it should provide, its default behavior and points of extension. e author takes a further step in providing and detailing an industrial-level implementation of such framework, along with the specific design issues that arise only when pursuing such concrete artifacts. Finally, the author’s main thesis is validated by providing empirical evidence of the framework benefits through industrial use-case applications and controlled academic quasi- experiments. Two commercial soware systems built on top of that framework are used as case studies, reflecting their own specific context, their requirements, their particular problems, and the way the framework — and the underlying theories here built — were used to address them, the outcomes, and the lessons learned. Inherent threats to this type of validation are further dismissed by presenting the results of a (quasi-)experiment within a controlled academic en- vironment, where the results of studying groups of undergraduate students following different treatments are shown to be consistent with those earlier presented. Resumo A Engenharia de Soware (), enquanto área de profissionalização, debate-se numa profunda crise que remonta aos primeiros dias do seu nascimento, e se reflecte nos constantes atrasos e insucessos dos seus projectos, ao ponto dessas situações definirem a norma na área. No topo da “lista” das principais causas desta situação encontram-se as expectativas irrealistas dos inter- venientes e a mudança contínua dos requisitos. Em resposta, têm surgido alguns processos de desenvolvimento que defendem a erradicação sistemática destas barreiras do acto de criação de soware; mas outros, especialmente aqueles auto-denominadas ágeis, sublinham a necessidade de abraçar a mudança como uma propriedade essencial da própria actividade. Apesar de tudo, permanece por refutar a hipótese de não existir uma bala de prata, uma única metodologia unifi- cadora capaz de melhorar consistentemente a eficiência do desenvolvimento de soware, pelo menos, numa ordem de grandeza. A observação empírica começa, no entanto, a sugerir que a mudança, mais do que uma sim- ples causa, apresenta-se como um sintoma resultante da natureza das propriedades intrínsecas a alguns domínios modelados pelo soware — a respectiva necessidade de ser continuamente modificado existe porque qualquer tentativa de modelar de forma definitiva esses domínios está condenada a ser incompleta à partida. Mas se tais soluções são um alvo inevitável de evoluções e adaptações constantes a novas realidades — incompletas por natureza — não deveriam então ser activamente desenhadas para serem naturalmente incompletas? Se as metodologias ágeis modificam a forma como as equipas e os indivíduos planeiam e executam o processo de desenvolvimento para abraçar a mudança, como deveremos desenhar soware para deliberadamente suportar uma mudança contínua? Mesmo que uma resposta estivesse facilmente ao nosso alcance, o objectivo de contribuir pragmaticamente para o corpo de conhecimento na área da levanta um novo problema. Por norma, à medida que o conhecimento aumenta numa determinada área, as novas soluções são capturadas e documentadas por especialistas em livros, artigos de investigação, implementações, páginas de internet, etc. Embora pareça intuitivo que este aumento de conhecimento implique uma melhoria nas escolhas de desenho, tem sido demonstrado que a forma como este é capturado é problemática. O desenho, como um acto deliberado de escolha, é sistematicamente subjugado pela quantidade de informação disponível. Nesta dissertação começa-se por apresentar os argumentos que tornam os sistemas incom- iv pletos por natureza uma contingência da . Para isso, será importante perceber as forças que levam arquitectos, designers e programadores a identificarem este tipo de sistemas. O público alvo é assim os leitores que se identificam com estas forças, ou que estão interessados no es- tudo de sistemas caracterizados por um elevado grau de variabilidade