8 research outputs found
Refactorings to evolve object-oriented systems with aspect-oriented concepts
Tese de doutoramento em InformĆ”tica.Software engineering tools should support complete separation of concerns, by enabling the deployment of each different concern in its own unit of modularity. Unfortunately, current tools and languages ā including those supporting the object-oriented programming paradigm ā fail to provide a complete and effective support for the separation of all concerns. Undesirable phenomena such as code scattering and code tangling ensue.
Aspect-Oriented Programming is a new programming paradigm capable of modularising crosscutting concerns. Aspect-oriented programming complements existing programming paradigms, including object-oriented programming, with constructs that provide a fuller separation of concerns.
Refactoring is a technique to restructure program source code in order to improve its underlying design and style while preserving the externally observable behaviour. āCode smellsā help to detect inadequate structures and designs, which are then gradually removed through refactoring processes.
There is a prospect of aspect-oriented programming becoming a mainstream technology in the near future. This begs the question of how to deal with a large base of object-oriented legacy code when aspect-orientation becomes standard practice. AspectJ's backward compatibility with Java opens the way for refactoring existing Java applications to leverage the concepts and mechanisms of aspects. This requires a prior idea of good style for aspect-oriented source code, something yet to be developed and matured.
This thesis contributes to the definition of a new style appropriate to aspect orientation. To this effect, this thesis documents a collection of novel refactorings enabling the extraction of crosscutting concerns from object-oriented legacy source code and the subsequent restructuring of the aspects thus obtained. In addition, this thesis presents a review of traditional object-oriented code smells so they can be used as indicators of latent aspects in object-oriented source code. Finally, this thesis proposes several novel aspect-oriented code smells. We validate the refactorings through an illustrative refactoring process.Idealmente, as ferramentas de engenharia de programas suportariam uma estrita separaĆ§Ć£o de facetas, possibilitando a colocaĆ§Ć£o de cada faceta na sua prĆ³pria unidade modular. Infelizmente, as actuais ferramentas e linguagens ā incluindo as que suportam o paradigma da orientaĆ§Ć£o ao objecto ā nĆ£o conseguem obter uma completa e efectiva separaĆ§Ć£o de todas as facetas. DaĆ resultam fenĆ³menos indesejĆ”veis tais como a dispersĆ£o e emaranhado de texto fonte.
A programaĆ§Ć£o orientada ao aspecto Ć© um novo paradigma da programaĆ§Ć£o capaz de modularizar facetas transversais. A orientaĆ§Ć£o ao aspecto complementa os paradigmas existentes, incluindo a orientaĆ§Ć£o ao objecto, com mecanismos que providenciam uma separaĆ§Ć£o de facetas mais completa.
A refabricaĆ§Ć£o de programas Ć© uma tĆ©cnica para reestruturar o texto fonte de um programa no sentido de melhorar a concepĆ§Ć£o e estilo subjacentes, mantendo o seu comportamento externamente observĆ”vel. āMaus cheirosā no texto fonte ajudam a detectar estruturas e concepƧƵes inadequadas, que sĆ£o entĆ£o gradualmente removidos atravĆ©s de processos de refabricaĆ§Ć£o.
Existe a perspectiva da orientaĆ§Ć£o ao aspecto ter uma aceitaĆ§Ć£o generalizada no futuro prĆ³ximo. Coloca-se a questĆ£o de como lidar com uma grande base instalada de texto fonte orientado ao objecto legado quando tal acontecer. A compatibilidade retroactiva de AspectJ em relaĆ§Ć£o a Java possibilita a refabricaĆ§Ć£o das aplicaƧƵes Java existentes de modo a tomarem partido dos conceitos e mecanismos dos aspectos. PorĆ©m, isto tem como pressuposto uma ideia clara de bom estilo para o texto fonte orientado ao aspecto, algo que actualmente nĆ£o existe duma maneira desenvolvida e matura.
Esta tese contribui para a caracterizaĆ§Ć£o de um novo estilo, apropriado Ć orientaĆ§Ć£o ao aspecto. Para esse efeito, esta tese documenta uma colecĆ§Ć£o de refabricaƧƵes originais atravĆ©s das quais facetas transversais existentes em texto legado orientado ao objecto sĆ£o extraĆdas para aspectos, e a posterior reestruturaĆ§Ć£o dos aspectos assim obtidos pode ser realizada. Esta tese apresenta tambĆ©m uma reapreciaĆ§Ć£o dos maus cheiros orientados ao objecto tradicionais no sentido de poderem ser usados na detecĆ§Ć£o de aspectos latentes no texto fonte orientado ao objecto. Por fim, esta tese propƵe diversos maus cheiros originais, orientados ao aspecto. As refabricaƧƵes sĆ£o validadas por meio de um processo de refabricaĆ§Ć£o ilustrativo.Programa de Desenvolvimento Educativo para Portugal III (PRODEP III) - (Medida 5 - AcĆ§Ć£o 5.3 - Eixo 3 - FormaĆ§Ć£o AvanƧada de Docentes do Ensino Superior).Portable Parallel Computing based on Virtual Machines (PPC-VM) - (PO-SI/CHS/47158/2002).FundaĆ§Ć£o Luso Americana para o Desenvolvimento (FLAD)
Architectural stability of self-adaptive software systems
This thesis studies the notion of stability in software engineering with the aim of understanding its dimensions, facets and aspects, as well as characterising it. The thesis further investigates the aspect of behavioural stability at the architectural level, as a property concerned with the architecture's capability in maintaining the achievement of expected quality of service and accommodating runtime changes, in order to delay the architecture drifting and phasing-out as a consequence of the continuous unsuccessful provision of quality requirements. The research aims to provide a systematic and methodological support for analysing, modelling, designing and evaluating architectural stability. The novelty of this research is the consideration of stability during runtime operation, by focusing on the stable provision of quality of service without violations. As the runtime dimension is associated with adaptations, the research investigates stability in the context of self-adaptive software architectures, where runtime stability is challenged by the quality of adaptation, which in turn affects the quality of service. The research evaluation focuses on the effectiveness, scale and accuracy in handling runtime dynamics, using the self-adaptive cloud architectures
Disciplining Interdisciplinarity: Integration and Implementation Sciences for Researching Complex Real-World Problems
This book provides collaborative research teams with a systematic approach for addressing complex real-world problems like widespread poverty, globa
Jeeves : a blocks-based approach to end-user development of experience sampling apps
Professional programmers are signiļ¬cantly outnumbered by end-users of software,
and cannot possibly predict the diverse and dynamic needs of user groups in advance.
This thesis is concerned with the provision of an end-user development (EUD)
approach, allowing end-users to independently create and modify their own software.
EUD activities are particularly applicable to the work practices of psychology researchers
and clinicians, who are increasingly dependent on software for assessment
of participants and patients, but must also depend on developers to realise their
requirements. This thesis targets these professionals, with an EUD solution to
creating assessment software.
The Experience Sampling Method (ESM) is one such means of assessment that
takes place in participantsā everyday lives. Through regular completion of subjective
self-reports, participants provide rich detail of their ongoing physical and emotional
well-being. However, lack of engagement with such studies remains a prevalent
issue. This thesis investigates features for maximising engagement with experience
sampling smartphone apps.
Such apps are becoming accepted as standard practice for remote assessment, but
researchers are stiļ¬ed by the complexity and cost of implementation. Moreover,
existing EUD tools are insufļ¬cient for development of ESM apps that include
engaging features. This thesis presents the development of Jeeves, an EUD tool with
a blocks-based programming paradigm that empowers non-programmers to rapidly
develop tailored, context-sensitive ESM apps.
The adoption of Jeeves is contingent on a number of factors, including its ease-of-use,
real-world utility, and organisational conditions. Failure to incorporate the necessary
functionality pertaining to these factors into Jeeves will lead to abandonment. This
thesis is concerned with establishing the usability, utility, and external factors
necessary for adoption of Jeeves. Further, Jeeves is evaluated with respect to these
factors through a series of rigorous studies from a range of application domains."This work was supported by a University of St Andrews 600th Anniversary PhD
Scholarship (School of Computer Science)." -- Fundin
Factors Influencing Customer Satisfaction towards E-shopping in Malaysia
Online shopping or e-shopping has changed the world of business and quite a few people have
decided to work with these features. What their primary concerns precisely and the responses from
the globalisation are the competency of incorporation while doing their businesses. E-shopping has
also increased substantially in Malaysia in recent years. The rapid increase in the e-commerce
industry in Malaysia has created the demand to emphasize on how to increase customer satisfaction
while operating in the e-retailing environment. It is very important that customers are satisfied with
the website, or else, they would not return. Therefore, a crucial fact to look into is that companies
must ensure that their customers are satisfied with their purchases that are really essential from the ecommerceās
point of view. With is in mind, this study aimed at investigating customer satisfaction
towards e-shopping in Malaysia. A total of 400 questionnaires were distributed among students
randomly selected from various public and private universities located within Klang valley area.
Total 369 questionnaires were returned, out of which 341 questionnaires were found usable for
further analysis. Finally, SEM was employed to test the hypotheses. This study found that customer
satisfaction towards e-shopping in Malaysia is to a great extent influenced by ease of use, trust,
design of the website, online security and e-service quality. Finally, recommendations and future
study direction is provided.
Keywords: E-shopping, Customer satisfaction, Trust, Online security, E-service quality, Malaysia
On the application of neural networks to symbol systems.
While for many years two alternative approaches to building intelligent systems, symbolic
AI and neural networks, have each demonstrated specific advantages and also revealed
specific weaknesses, in recent years a number of researchers have sought methods of combining
the two into a unified methodology which embodies the benefits of each while attenuating the
disadvantages.
This work sets out to identify the key ideas from each discipline and combine them
into an architecture which would be practically scalable for very large network applications.
The architecture is based on a relational database structure and forms the environment for an
investigation into the necessary properties of a symbol encoding which will permit the singlepresentation
learning of patterns and associations, the development of categories and features
leading to robust generalisation and the seamless integration of a range of memory persistencies
from short to long term.
It is argued that if, as proposed by many proponents of symbolic AI, the symbol encoding
must be causally related to its syntactic meaning, then it must also be mutable as the network
learns and grows, adapting to the growing complexity of the relationships in which it is
instantiated. Furthermore, it is argued that in order to create an efficient and coherent memory
structure, the symbolic encoding itself must have an underlying structure which is not accessible
symbolically; this structure would provide the framework permitting structurally sensitive processes
to act upon symbols without explicit reference to their content. Such a structure must dictate
how new symbols are created during normal operation.
The network implementation proposed is based on K-from-N codes, which are shown
to possess a number of desirable qualities and are well matched to the requirements of the symbol
encoding. Several networks are developed and analysed to exploit these codes, based around
a recurrent version of the non-holographic associati ve memory of Willshaw, et al. The simplest
network is shown to have properties similar to those of a Hopfield network, but the storage capacity
is shown to be greater, though at a cost of lower signal to noise ratio.
Subsequent network additions break each K-from-N pattern into L subsets, each using
D-from-N coding, creating cyclic patterns of period L. This step increases the capacity still further
but at a cost of lower signal to noise ratio. The use of the network in associating pairs of
input patterns with any given output pattern, an architectural requirement, is verified.
The use of complex synaptic junctions is investigated as a means to increase storage
capacity, to address the stability-plasticity dilemma and to implement the hierarchical aspects
of the symbol encoding defined in the architecture. A wide range of options is developed which
allow a number of key global parameters to be traded-off. One scheme is analysed and simulated.
A final section examines some of the elements that need to be added to our current understanding
of neural network-based reasoning systems to make general purpose intelligent systems
possible. It is argued that the sections of this work represent pieces of the whole in this
regard and that their integration will provide a sound basis for making such systems a reality