Spelling suggestions: "subject:"5oftware reengineering"" "subject:"5oftware eengineering""
21 |
Recuperação de modelos de classes orientados a aspectos a partir de sistemas orientados a objetos usando refatorações de modelos.Parreira Júnior, Paulo Afonso 27 May 2011 (has links)
Made available in DSpace on 2016-06-02T19:05:51Z (GMT). No. of bitstreams: 1
3771.pdf: 2012363 bytes, checksum: beac2e75d3e67d4b8d96a9b1c3ce98ef (MD5)
Previous issue date: 2011-05-27 / Universidade Federal de Sao Carlos / Aspect-Oriented Programming allows encapsulating the so-called "Crosscutting Concerns (CCC) - software requirements whose implementation is tangled and scattered throughout the functional modules - into new abstractions, such as Aspects, Pointcuts, Advices and Inter-type Declarations. The reengineering of an OO software to an AO is not an easy task due to the existence of different abstractions in these technologies. We develop a set of nine refactorings of annotated OO class models to AO class models. In the context of this work, "annotated class models" are UML class diagrams whose elements (classes, interfaces, attributes and methods) are annotated with stereotypes representing the existing CCC in the application source code. The set of refactorings developed is divided into: i) generic refactorings; and ii) specific refactorings. Three generic refactorings and six specific refactorings to the persistence (which is divided into management and connections, transaction and synchronization) and logging concerns and to the Singleton and Observer design patterns were created. The generic refactorings are responsible for transforming an annotated OO model with indications of CCC into a partial AO model. This model is called partial because it is usually not fully modularized, i.e., there are remaining software elements stereotyped with indications of particular concerns. These refactorings are applicable to any kind of CCC; this is possible, because what is taken into consideration is the scenario in which these concerns appear in the class model. The specific refactorings are responsible for transforming partial AO models into final ones, whose CCC have been fully modularized in aspects. For that, each refactoring has a set of specific steps for modularization of a particular kind of concern. An Eclipse plug-in, called MoBRe was developed to assist the software engineer in the tasks of refactoring application. As a major contribution, the refactorings proposed in this paper allow obtaining well designed AO models. This is so because: i) they provide a step-by-step guide to the modularization of certain CCC and can avoid that software engineers choose inappropriate strategies for modularization of these CCC; and ii) they were prepared based on good design practices recommended by the scientific community. Thus, besides, the models the use of refactorings can lead to generation of better-quality code, for example, free of bad smells. A case study was conducted to assess the applicability of the proposed refactorings in order to compare an AO model generated by them with an AO model obtained from the literature. / Orientação a Aspectos (OA) permite encapsular Interesses Transversais (ITs) - requisitos de software cuja implementação encontra-se entrelaçada e espalhada pelos módulos funcionais - em novas abstrações, tais como, Aspectos, Conjuntos de Junção, Adendos e Declarações Inter-tipo. A reengenharia de um software OO para um OA não é uma atividade trivial em consequência da existência de abstrações diferentes entre as tecnologias envolvidas. Neste trabalho é proposto um conjunto de refatorações que pode ser aplicado sobre modelos de classes OO anotados com indícios de ITs para obtenção de modelos de classes OA. Modelos de classes anotados são diagramas de classes da UML cujos elementos (classes, interfaces, atributos e métodos) são anotados com estereótipos referentes aos ITs existentes no software. O conjunto de refatorações desenvolvido é subdivido em: i) refatorações genéricas; e ii) refatorações específicas. As refatorações genéricas são responsáveis por transformar um modelo OO anotado com indícios de ITs em um modelo OA parcial - modelo cujos ITs existentes não são completamente modularizados. Essas refatorações são aplicáveis a qualquer tipo de IT existente no software, considerando o cenário que esses interesses apresentam no modelo de classes. As refatorações específicas são responsáveis por transformar modelos de classes OA parciais em modelos de classes OA finais - modelos nos quais os ITs foram completamente modularizados em aspectos. Para que isso aconteça, cada refatoração possui um conjunto de passos específicos para modularização de um determinado tipo de interesse. Três refatorações genéricas e seis refatorações específicas foram elaboradas para os interesses de persistência (subdividido em: gerenciamento de conexões, de transações e sincronização), de logging e para os padrões de projeto Singleton e Observer. Um plug-in Eclipse, denominado MoBRe, foi desenvolvido para auxiliar o Engenheiro de Software na tarefa de aplicação das refatorações. Como principal contribuição, a utilização das refatorações propostas neste trabalho pode permitir a obtenção de modelos OA que representam bons projetos arquiteturais, pois: i) fornecem um guia para modularização de determinados ITs, podendo evitar que Engenheiros de Software escolham estratégias inadequadas para modularização; e ii) foram elaboradas com base em boas práticas de projeto OA preconizadas pela comunidade científica. Assim, além dos modelos a utilização das refatorações pode levar à geração de códigos de melhor qualidade, por exemplo, livre da presença de bad smells. Um estudo de caso foi conduzido para verificar a aplicabilidade das refatorações propostas e os modelos OA resultantes foram equivalentes aos modelos obtidos na literatura.
|
22 |
Uma abordagem de linhas de produtos de software para apoiar e-Science / A software product lines approach to support e-ScienceFoschiani, Fernanda Yara dos Santos, 1983- 22 August 2018 (has links)
Orientador: Cecília Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-22T06:21:21Z (GMT). No. of bitstreams: 1
Foschiani_FernandaYaradosSantos_M.pdf: 49651686 bytes, checksum: 9c6b109c2f901376bfd10d30c1ea12c3 (MD5)
Previous issue date: 2013 / Resumo: Com o aumento da demanda por software no mercado, a fim de reduzir custos e esforço em desenvolvimento e reduzir o tempo de entrega de software, diversas técnicas vêm sendo utilizadas e entre elas estão as Linhas de Produtos de Software (LPS). Por outro lado, os recursos computacionais vêm sendo muito utilizados não são na indústria, mas também em ambientes de pesquisa, facilitando o compartilhamento de dados e serviços computacionais. Este contexto, em que a computação torna-se parte integrante e fundamental para o sucesso na realização de pesquisas científicas, é chamado de e-Science. A diversidade de programas, simuladores e dados computacionais envolvidos em experimentos levam a necessidade de ambientes que forneçam facilidades para o uso e combinação das tecnologias, como por exemplo, ambientes de workflows científicos. A solução proposta nesta dissertação é uma infraestrutura para a execução de workflows científicos, que permite a pesquisadores criarem seus fluxos de trabalho de maneira personalizada, podendo utilizar componentes disponibilizados pela equipe de desenvolvimento, assim como componentes criados por eles mesmos, independentemente da linguagem de programação utilizada. A base para esta infraestrutura é uma linha de produtos baseada em componentes, desenvolvida a partir de sistemas legados. O método proposto para o desenvolvimento da linha de produtos é apoiado pelo arcabouço da Reengenharia Orientada a Características, separado em quatro fases. A primeira fase, Engenharia Reversa do Sistema Legado, extrai informações do código legado a fim de entender o domínio da aplicação e coletar as características que deverão existir na linha de produtos. A segunda fase do método, Análise da LPS, refina o modelo de características obtido na fase anterior e, utilizando técnicas de modelagem do método PLUS, desenvolve artefatos de software baseados em casos de uso. A fase de Projeto da LPS, terceira fase, aplica o método FArM para obter um mapeamento do modelo de características para modelos de arquitetura de linha de produtos baseada em componentes e especifica as interfaces dos componentes, gerando assim a arquitetura final. A quarta e ultima fase trata do desenvolvimento da linha de produtos. Para o desenvolvimento dos componentes foi utilizado o padrão COSMOS* de componentização, e código legado. Foram realizados três estudos de caso: os dois primeiros para avaliar se a solução proxi posta é capaz de substituir o sistema legado e também avaliar o reuso de componentes, e o terceiro estudo para avaliar a capacidade de customização da linha de produtos, a partir da adição de um novo componente desenvolvido em MatLab. Os três estudos apresentaram resultados positivos, indicando que a solução proposta nesta dissertação facilita a modificação da linha de produtos, além de permitir aos pesquisadores a customização de fluxos de trabalho, auxiliando assim o processo de pesquisa científica / Abstract: With the increasing demand for software in order to reduce development costs and effort, and to reduce the time-to-market, several techniques are being used, including the Software Product Line (SPL). Computational resources are commonly used in the research field, in order to facilitate data and computational services sharing. The context in which computing becomes a fundamental for the success of scientific research is called e-Science. The systems diversity, simulators and computational data involved in experiments leads to the necessity of environments that provide facilities for technology use and matching, for example the scientific workflow environment. The proposed solution in this thesis is a scientific workflow environment that allows the researchers to create their own personalized workflows, using components provided by the development team as well as components developed by themselves, regardless of the language being used. The basis for this workflow environment is a component based software product line, developed from legacy systems. The proposed method for the software product line development is supported by the Feature-oriented Reengineering framework, which is divided into four steps. The first one, SPL Reverse Engineering, extracts information about the legacy system in order to understand the application domain and collect the features that need to exist in the product line. The second step, SPL Analysis, refines the feature model obtained in the previous step and, using PLUS modeling techniques, develops software assets based on use cases. The SPL Project step, which is the third approach step, applies the FArM method to obtain a mapping of the feature model to architectural components, and specifies the components' interface, creating the final architecture. The last step is the product line development. For the components development we used the COSMOS* model and legacy code. We performed three case studies: two of them to evaluate if the product line is capable of replacing the legacy system and enhance components reuse, and the third one to evaluate the workflow customization capability, by the addition of a component developed in MatLab. All the case studies had a positive result, showing that the proposed solution of this ix thesis facilitates the product line architectures evolution and allows the researchers to customize their workflows, aiding the research process / Mestrado / Ciência da Computação / Mestra em Ciência da Computação
|
23 |
Abordagem RPN para a recuperação de processos de negócio baseada na análise estática do código fonteRabelo, Luiz Alexandre Pacini 02 September 2015 (has links)
Submitted by Izabel Franco (izabel-franco@ufscar.br) on 2016-10-03T18:14:47Z
No. of bitstreams: 1
DissLAPR.pdf: 4492395 bytes, checksum: 3cbeb71e7d3159ff9f8b260e4486c81d (MD5) / Approved for entry into archive by Marina Freitas (marinapf@ufscar.br) on 2016-10-20T19:18:44Z (GMT) No. of bitstreams: 1
DissLAPR.pdf: 4492395 bytes, checksum: 3cbeb71e7d3159ff9f8b260e4486c81d (MD5) / Approved for entry into archive by Marina Freitas (marinapf@ufscar.br) on 2016-10-20T19:18:51Z (GMT) No. of bitstreams: 1
DissLAPR.pdf: 4492395 bytes, checksum: 3cbeb71e7d3159ff9f8b260e4486c81d (MD5) / Made available in DSpace on 2016-10-20T19:18:57Z (GMT). No. of bitstreams: 1
DissLAPR.pdf: 4492395 bytes, checksum: 3cbeb71e7d3159ff9f8b260e4486c81d (MD5)
Previous issue date: 2015-09-02 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) / Over time, Business Processes have become a key asset for organizations since it allows
managing what happens within their environments. It is possible to automate some activities
of business processes resorting to the use of Information Systems and accordingly
decrease the execution time and increase the production. However, Information systems
often suffer maintenance over time and become obsolete in their technologies and a reengineering
process becomes necessary. In this case, the Business Knowledge, located more
accurately the reality in information system source code, should be mantained. Thereof, in
this work, we propose an Approach to support the Business Process Recovery from Source
Code. The approach, entitled RPN, uses a static analysis technique of source code because
it allows to analyze the source code without the need to modify and run the information
system source code. Furthermore, the approach uses the Knowledge Discovery Metamodel
(KDM) standard with a set of Heuristic rules to identify relevant code elements to the business
layer. As result, Business Process Models are generated according to Business Process
Model and Notation (BPMN) standard specification. This models, together with other software
artifacts, provide more subsidies to the Software Reengineering process. To evaluate
the proposed approach, a case study was performed in Academic Domain to measure the
effectiveness of the approach compared to the other approaches and the manual process.
The results exceeded expectations and prove that the approach is effective. / Ao longo do tempo, processos de negócio se tornaram um artefato chave para organizações,
visto que esses processos permitem gerenciar o que acontece dentro de seus ambientes.
É possível automatizar algumas atividades de processos de negócio recorrendo ao uso de
sistemas de informação e, dessa forma, diminuir o tempo de execução dessas atividades e
aumentar a produção. Entretanto, ao longo do tempo, sistemas de informação sofrem diversas
manutenções e tornam-se obsoletos em suas tecnologias e um processo de reengenharia
torna-se necessário. Nesse caso, o conhecimento do negócio, localizado mais precisamente
à realidade no código fonte do sistema de informação, deve ser mantido. Por este motivo,
este trabalho propõe uma abordagem para apoiar a recuperação de processos de negócio a
partir do código fonte. A abordagem, nomeada RPN, recorre à técnica de análise estática
do código fonte, uma vez que essa técnica permite analisar o código fonte de um sistema
sem a necessidade de modificá-lo e executá-lo. Além disso, a abordagem utiliza o padrão
Knowledge Discovery Metamodel (KDM) com um conjunto de regras de heurísticas para
recuperar elementos de código relevantes à camada de negócio. Como resultado, são gerados
modelos de processos de negócio de acordo com a especificação padrão Business
Process Model and Notation (BPMN). Esses modelos, em conjunto com outros artefatos de
software, fornecem maiores subsídios para o processo de reengenharia de software. Para
avaliar a abordagem proposta, foi realizado um estudo de caso no domínio acadêmico para
mensurar a eficácia da abordagem comparado às outras abordagens e ao processo manual.
Os resultados obtidos foram satisfatórios e a abordagem RPN mostrou-se muito eficaz e
eficiente para executar seu propósito.
|
24 |
[pt] REENGENHARIA DE SISTEMAS AUTOADAPTATIVOS GUIADA PELO REQUISITO NÃO FUNCIONAL DE CONSCIÊNCIA DE SOFTWARE / [en] SELF-ADAPTIVE SYSTEMS REENGINEERING DRIVEN BY THE SOFTWARE AWARENESS NON-FUNCTIONAL REQUIREMENTANA MARIA DA MOTA MOURA 11 December 2020 (has links)
[pt] Nos últimos anos, foi desenvolvido um número significativo de sistemas autoadaptativos (i.e.: sistemas capazes de saber o que está acontecendo sobre si mesmo e que, consequentemente, implementam parcialmente a qualidade de consciência). A literatura tem pesquisado extensivamente o uso da engenharia de requisitos orientada a metas e o uso da arquitetura de referência MAPE (Monitor-Analyze-Plan-Execute) para o desenvolvimento de sistemas autoadaptativos. Entretanto, construir tais sistemas com base em estratégias de referência não é trivial, podendo resultar em problemas estruturais que impactam negativamente alguns atributos de qualidade do produto final (e.g.: reusabilidade, modularidade, modificabilidade e entendibilidade). Neste contexto, estratégias de reengenharia para a reorganização de tais sistemas são pouco exploradas, limitando-se a recuperar e a reestruturar a lógica da adaptação em modelos de baixo nível. Esta prática mantém a dificuldade do tratamento da qualidade de consciência como um requisito não funcional (RNF) de primeira classe, impactando diretamente na seleção da arquite-tura e implementação do sistema. Nossa pesquisa visa mitigar esse problema atra-vés de uma estratégia de reengenharia de sistemas autoadaptativos, centrada no RNF de consciência de software, com vistas a auxiliar na remoção de alguns problemas recorrentes na implementação do MAPE conforme a literatura. A estratégia de reengenharia está organizada em quatro subprocessos: (A) recuperar a intencio-nalidade do sistema com ênfase em suas metas de consciência, gerando um modelo de metas AS-IS; (B) especificar o modelo de metas TO-BE reutilizando um conjunto de SRconstructs para operacionalizar o RNF de consciência de software conforme o padrão MAPE; (C) redesenhar o sistema revisando as operacionalizações de consciência e selecionando as tecnologias para implementar o MAPE, e; (D) finalmente, reimplementar o sistema conforme nova estrutura, adicionando metainformações de código para manter a rastreabilidade para o mecanismo de autoadaptação visando facilitar novas evoluções. O escopo da nossa pesquisa são sistemas autoadaptativos orientados a objetos (OO), utilizando o framework i como linguagem para os modelos orientados a metas. Nossos resultados de avaliações em sistemas auto-adaptativos OO desenvolvidos em Java para dispositivos móveis com Android demonstram que a estratégia auxilia no realinhamento do sistema com as boas práticas recomendadas pela literatura facilitando futuras evoluções. / [en] In recent years, a significant number of self-adaptive systems (i.e.: systems capable of knowing what is happening about themselves, and consequently partially implementing the quality of awareness) have been developed. The literature has extensively researched the use of goal oriented requirements engineering and the use of the MAPE (Monitor-Analyze-Plan-Execute) reference architecture for the development of self-adaptive systems. However, building such systems based on reference strategies is not trivial, it can result in structural problems that negatively impact some quality attributes of the final product (e.g.: reusability, modularity, modifiability and understandability). In this context, reengineering strategies for the reorganization of such systems are poor explored, and they are limited to recovering and restructuring the logic of adaptation in low-level models. This approach keeps the difficulty of treating the awareness quality as a first-class non-functional re-quirement (NFR) directly affecting architecture selection and implementation of the system. Our research aims to mitigate this problem through a strategy of reengi-neering self-adaptive systems, centered on software awareness as an NFR. This strategy will assist in the removal of some recurring problems in the implementation of MAPE according to the literature. The reengineering strategy is organized into four sub-processes: (A) recover the intentionality of the system with an emphasis on its awareness goals, generating an AS-IS goal model; (B) specify the TO-BE goal model by reusing a set of SRconstructs to operationalize the software awareness NFR according to the MAPE standard; (C) redesign the system by reviewing the operationalizations of awareness and selecting the technologies to implement the MAPE, and; (D) finally, reimplement the system according to a new structure, add-ing code metadata to maintain traceability for the self-adaptation mechanism in or-der to facilitate new evolutions. The scope of our research is object-oriented (OO) self-adaptive systems using the i framework as a language for goal-oriented models. Our results of evaluations, for OO self-adaptive systems developed in Java for mobile devices with Android, show that the strategy helps in realigning the system with the best practices recommended by the, facilitating future developments.
|
Page generated in 0.0897 seconds