1 |
Uma arquitetura de controle para robos cooperativosManrich, Christian 28 July 2018 (has links)
Orientadores: Marcel Bergerman, Heloisa Vieira da Rocha / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-28T09:31:37Z (GMT). No. of bitstreams: 1
Manrich_Christian_M.pdf: 11155158 bytes, checksum: c31a22c9d6c2881986cb8662de9ebf3b (MD5)
Previous issue date: 2001 / Resumo: Sistemas multi-robóticos tendem a tomar-se cada vez mais presentes no cotidiano das pessoas, seja na forma de robôs independentes que, para conviverem em um mesmo ambiente, devem se organizar como um sistema único, seja devido à eficiência e confiabilidade que robôs cooperativos possuem. As vantagens que sistemas multi-robóticos podem oferecer são atingidas através de uma programação relativamente complexa. Arquiteturas de controle para robôs são ferramentas que auxiliam a programação destes sistemas. Esta dissertação tem como objetivo a implantação de uma arquitetura de controle para robôs cooperativos. Adotou-se como metodologia a definição dos requisitos desejados para a arquitetura, o estudo das arquiteturas existentes na literatura, a adoção daquela que mais se adequa aos requisitos deste projeto, e sua extensão de forma a atender a todos os requisitos propostos. A validação experimental da arquitetura consiste na implementação de um sistema multi-robótico envolvendo dois robôs móveis para a realização de uma tarefa cooperativa. Nesta tarefa, um dos robôs é o líder e deve guiar o segundo até a posição destino. O segundo robô não é capaz de navegar sozinho e deve seguir o líder. A principal contribuição deste projeto é a implantação de uma arquitetura para o desenvolvimento de sistemas multi-robóticos em projetos realizados pela comunidade de robótica no país. / Abstract: Systems composed of several robots tend to become ever more present in people's lives. Such systems may come in the form of independent robots, which must be organized as a collective in order to coexist in the same environment, or of efficient and dependable cooperative robots. The advantages that multi-robot systems offer are reached through a relatively complex programming. Robot control architectures are tools that ease one's job of programming these systems. In this thesis our objective is to build a control architecture for cooperating robots. The methodology consists of defining the requisites of the architecture, surveying the literature for the existing ones, selecting the one that is most suitable with respect to the requisites, and extending it to make it attend all of them. The architecture is validated experimentally on a multi-robot system composed of two mobile robots working on a cooperative task. In this task, one of the robots is the leader and must guide the other one to their destination. The second robot lacks the capability to navigate on its own and must follow the leader. The main contribution of this work is the development of a control architecture for multi-robot systems for the Brazilian robotics community. / Mestrado / Mestre em Ciência da Computação
|
2 |
Projeto e implementação de uma arquitetura reflexiva para a linguagem XchartStehling, Renato de Oliveira 11 August 2018 (has links)
Orientador: Hans Kurt Edmund Liesembergo / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-11T23:41:56Z (GMT). No. of bitstreams: 1
Stehling_RenatodeOliveira_M.pdf: 2979549 bytes, checksum: 22873141d924f1a60ebb9e29aea93209 (MD5)
Previous issue date: 1999 / Resumo: Xchart é uma linguagem visual, orientada a eventos e projetada para especificar controles de diálogo que não podem ser adequadamente descritos com as atuais propostas baseadas em DTEs (Diagramas de Transição de Estados). A arquitetura reflexiva proposta é uma extensão que não visa adaptar Xchart a nenhum novo contexto. O objetivo é controlar a complexidade do código descrito nessa linguagem, promovendo a separação de domínios e permitindo a intervenção na especificação de forma transparente. Nossa proposta procurou preservar ao máximo as características da linguagem Xchart. As novas estruturas são tratadas exclusivamente em tempo de compilação. O sistema de execução de Xchart (SE) não precisou ser alterado porque o código executável é o mesmo da abordagem convencional. Em tempo de execução, não há overhead relacionado ao mecanismo de reflexão adotado. / Abstract: Xchart is a visual and event -oriented language designed to specify dialogue controls that cannot be adequately described by proposals based on STDs (State Transition Diagrams). The proposed reflective architecture does not intend to adapt Xchart to any new context The main purpose is to control the complexity of the code described in this language by means of promoting domain separation and allowing an interference with specifications in an transparent way. Our proposal tried to preserve the features of Xchart language as much as possible. The new structures are handled in compilation time. There was no need to adapt the Xchart execution system (ES) because the executable code is the same as the one of the conventional approach. At execution time, there is no overhead related with the adopted reflection mechanism. / Mestrado / Mestre em Ciência da Computação
|
3 |
Um processo de desenvolvimento baseado em componentes adaptado ao Model Drive ArchitectureSousa, Milton Cesar Fraga de 19 April 2004 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-04T00:07:41Z (GMT). No. of bitstreams: 1
Sousa_MiltonCesarFragade_M.pdf: 4802675 bytes, checksum: b02f4d9a23bb7729b800714bf17a67aa (MD5)
Previous issue date: 2004 / Resumo: o desenvolvimento de software baseado em componentes tem sido amplamente utilizado na construção de sistemas de grande porte. Nestes sistemas, intrinsecamente complexos, a adoção de um processo de desenvolvimento sistemático é muito importante. Outros fatores relevantes que podem ser considerados são: (I) a arquitetura de software, principal responsável pelo atendimento de requisitos não-funcionais, como tolerância a falhas e distribuição, (2) a evolução do sistema em face das mudanças tecnológicas, ponto central da abordagem Model Driven Architecture (MDA) proposta pelo consórcio Object Management Group (OMO) e (3) a distância semântica entre as abstrações da descrição arquitetural e as construções disponíveis nas plataformas alvo. Este trabalho apresenta um processo de desenvolvimento de software baseado em componentes adaptado para (I) incorporar a abordagem MDA, (2) tratar explicitamente os requisitos não-funcionais através da arquitetura de software, e (3) reduzir a distância semântica entre as abstrações da descrição arquitetural através da utilização de modelos de estruturação de componentes independentes de plataformas como, por exemplo, J2EE e .NET. A praticabilidade do processo adaptado baseado na abordagem MDA foi evidenciada no estudo de caso de um Sistema de Contingências Tributárias. Este estudo permitiu (1) demonstrar a utilização do processo proposto, (2) introduzir os conceitos da abordagem MDA, (3) tratar os requisitos não-funcionais através do refinamento da arquitetura de software, e (4) criar mapeamentos para as plataformas J2EE e .NET / Abstract: Component-based software development has been widely used in the construction of large scale systems. In these systems, which are intrinsical1y complex, the adoption of a systematic development process is very important. Other relevant factors that should be considered in order to achieve a successful development of complex component-based system are: (I) its software architecture, main responsible for fulfi11ing the non-functional requirements, e.g. fault tolerance and distribution, (2) the system's evolution in face of technological changes, the central point of Model Driven Architecture (MDA) approach proposed by Object Management Group (OMG) consortium and (3) the semantic distance between the abstraction of the architectural description and the available constructions in the target platforms. This work presents a component-based software development process adapted (1) to incorporate the MDA approach, (2) to address explicitly the non-functional requirements by means of the software architecture, and (3) to reduce the semantic distance between the abstraction's architectural description through the use of platform independent (e.g. J2EE and .NET) component structuring models. The feasibility of the modified process based on the MDA approach was evidenced in the case study of a Tax Contingencies System. This study al1owed us (I) to demonstrate the use of the proposed process, (2) to introduce the concepts of MDA approach, (3) to address the non functional requirements through the refinement of the software architecture, and (4) to create mappings to the J2EE and .NET platforms / Mestrado / Engenharia de Computação / Mestre em Computação
|
4 |
Estudo e especificação de um supervisor de controle para um robo industrialFayan, Benedito Luiz 16 December 1992 (has links)
Orientador: João Mauricio Rosario / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Mecanica / Made available in DSpace on 2018-07-18T05:39:26Z (GMT). No. of bitstreams: 1
Fayan_BeneditoLuiz_M.pdf: 2762918 bytes, checksum: 3de428aa0a642592b21393daaa3962c4 (MD5)
Previous issue date: 1992 / Resumo: O objetivo principal deste trabalho é a especificação de um supervisor de controle para um robô industrial. Primeiramente são introduzidos conceitos de robôs manipuladores e apresentados as diversas formas de modelagem. Dentre os vários modelos, ênfase especial é dada à modelagem cinemática inversa, visto ser essencial para uma das aplicações fundamentais que o supervisor de controle especificado deve possuir, que é controlar a posição do efetuador do robô no espaço cartesiano. Diversos algoritmos para a modelagem cinemática inversa foram desenvolvidos, sendo detalhadas as suas características e então sendo feitas as comparações para a escolha do algoritmo que melhor se adequa à função de controle no espaço no espaço cartesiano. As arquiteturas de hardware e de software propostas para o supervisor são abordadas, sendo feita a descrição funcional das diferentes unidades processadoras que compõem o sistema e a descrição das interfaces dos vários módulos de software especificados / Abstract: Not informed. / Mestrado / Mestre em Engenharia Mecânica
|
5 |
Uma arquitetura baseada em CORBA para workflow de larga escalaSilva Filho, Roberto Silveira 21 August 2000 (has links)
Orientador: Jacques Wainer / Dissertação (mestrado) - Universidade Estadual de Campinas. Instituto de Computação / Made available in DSpace on 2018-07-27T07:04:47Z (GMT). No. of bitstreams: 1
SilvaFilho_RobertoSilveira_M.pdf: 6864220 bytes, checksum: 27efcf24b2e7353ff521285485a26b37 (MD5)
Previous issue date: 2000 / Resumo: Sistemas de Gerenciamento de Workflow (SGWFs) tradicionais possuem uma limitação intrÚ1 seca de escalabilidade, o servidor central, que representa um gargalo de desempenho e um único ponto de falhas em sistemas onde um grande número de casos simultâneos precisa ser executado. Com base nesta deficiência dos SGWFs tradicionais, é proposto o projeto e a especificação de uma arquitetura distribuída, utilizando as funcionalidades do ambiente aberto de distribuição CORBA, de forma a suportar, em primeiro lugar, os requisitos de escalabilidade, disponibilidade e confiabilidade dos SGWFs de larga escala. Esta arquitetura utiliza a idéia de casos (instâncias de processos) móveis que migram pelos nós do sistema, seguindo o plano do processo, conforme as atividades do workflow são realizadas. A arquitetura é estendida de maneira a satisfazer outros requisitos de SGWFs de larga escala como segurança, recuperação de falhas, interoperabilidade, segurança e outros. Questões relacionadas ao mapeamento desta arquitetura para CORBA e sua implementação são discutidas, juntamente com suas limitações, vantagens e decisões de projeto. Foi realizada a análise dos custos de migração, configuração e criação dos agentes móveis da arquitetura. Testes de desempenho, envolvendo configurações totalmente centralizadas e distribuídas foram definidos e realizados. Nestes testes, configurações distribuídas tiveram maior desempenho que as centralizadas para instâncias envolvendo a execução simultânea de mais de 5 casos concorrentes / Abstract: Standard client-server workflow management systems have an intrinsic scalability limitation, the centralized server, which represents a bottleneck for large-scale applications. This server also is a single-failure point that may disable the whole system. In this work, it is proposed a fully distributed architecture for workflow management systems. It is based on the idea that the case (an instance of the process) migrates from host to host, following a process definition, while the case corresponding activities are executed. This basic architecture is improved so that other requirements for Workflow Management Systems, such as fault tolerance, monitoring, interoperability, security and others, are also contemplated. A CORBA-based implementation of such architecture is discussed, with its limitations, advantages and project decisions described. The mobile agent migration, creation and configuration costs were computed. Performance tests, ranging from full centralization to distribution, were defined and performed. In these tests, the distributed configuration performed better than the centralized configuration for instances with more than 5 concurrent cases / Mestrado / Mestre em Ciência da Computação
|
6 |
CosmosLoader : uma ferramenta de apoio ao gerenciamento de configuração baseado no modelo Cosmos* / CosmosLoader : a support framework for configuration management based on the Cosmos* modelGayard, Leonel Aguilar, 1983- 23 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-23T21:56:13Z (GMT). No. of bitstreams: 1
Gayard_LeonelAguilar_M.pdf: 1532057 bytes, checksum: 8324b0d9bd3eebedc13daca6f31c7c6b (MD5)
Previous issue date: 2013 / Resumo: Nos últimos anos, o desenvolvimento baseado em componentes (DBC) e a arquitetura de software emergiram como disciplinas complementares para promover o reuso no desenvolvimento de software. O desenvolvimento baseado em componentes promove o desenvolvimento de componentes reutilizáveis e a formação de novos sistemas de software a partir da integração de componentes existentes. A arquitetura de um sistema de software descreve o sistema em termos de seus componentes arquiteturais, das propriedades destes e das conexões entre eles. Modelos de componentes possibilitam concretizar elementos de DBC como componentes e conectores a partir de conceitos tradicionais de desenvolvimento de software, como por exemplo, orientação a objetos e arquivos, de modo que um conjunto de classes e arquivos complementares podem formar um componente se seguirem as regras do modelo. A adequação a um modelo de componentes oferece benefícios para o sistema de software: por exemplo, o modelo de componentes EJB possibilita que um componente seja implantado em um contêiner e se beneficie do gerenciamento de segurança e transparência de localização oferecidos pelo contêiner; o modelo Cosmos estabelece regras para a criação de componentes baseados em conceitos de linguagens orientadas a objetos, como classes, interfaces e pacotes. Assim, a integração de componentes para a composição de um sistema de software de acordo com uma arquitetura e um modelo de componentes se torna uma atividade importante no desenvolvimento de um novo sistema de software. Uma configuração concreta é um conjunto de determinadas versões de componentes de software conectados de acordo com uma arquitetura. No entanto, observa-se que, se modelos facilitam a criação de componentes de software, ainda é necessário um esforço de desenvolvimento para integrar componentes e formar novos sistemas. O uso de ambientes de desenvolvimento orientados a arquitetura e DBC, e também de ferramentas de automatização, reduzem o esforço necessário para a integração de componentes. O ambiente Bellatrix é um ambiente de desenvolvimento integrado que permite a especificação de elementos arquiteturais e a modelagem de arquiteturas de software. No entanto, ainda existe um hiato entre a arquitetura de um sistema modelada no ambiente Bellatrix e a configuração do sistema a partir de componentes concretos. Esta dissertação apresenta a ferramenta CosmosLoader, que auxilia o gerenciamento de configurações de componentes baseados no modelo Cosmos. A solução proposta se baseia na extensão do ambiente Bellatrix e no modelo de componentes Cosmos* ("Cosmos estrela"), que estende o modelo Cosmos com o conceito de composição hierárquica de componentes. Por fim, são descritos estudos de caso realizados com essas ferramentas / Abstract: In the last years, Component-Based Development (CBD) and Software Architecture emerged as complementary disciplines that promote reuse in software development. Component-Based Development promotes the development of reusable software components and the creation of new software systems by integrating existing software components. The architecture of a software system describes such system in terms of its architectural components, their properties and the connections between them. Component models materialize concepts from CBD such as components and connectors from traditional concepts of software development, such as object orientation and files, so that a set of classes and complementary files form a component if they follow the component model's rules. The adequacy to a component model brings benefits to a software system: for instance, the EJB component model allows a component to be deployed to a container and benefit from the security management and location transparency provided by the container; the Cosmos component model allows the creation of components using only concepts from object-oriented languages, such as classes, interfaces and packages. Therefore, the integration of components to compose a new software system according to an architecture and a component model becomes an important activity in the development of a new software system. A concrete configuration is the set of specific versions of software components connected according to an architecture. However, it can be observed that while models ease the creation of software components, a development effort is still necessary to integrate components and form new systems. The use of development environments oriented towards architecture and CBD, and also of automations tools, reduce the effort needed to integrate components. The Bellatrix development environment is an integrated development environment that allows the specification of architectural elements and modeling of software architectures. However, there still is a gap between the architecture of a system modeled in Bellatrix and the configuration of a system from concrete software components. This dissertation presents the CosmosLoader tool, which assists in managing the configuration of components based on the Cosmos model. The proposed solution is based on an extension to the Bellatrix development environment and on the Cosmos* component model ("Cosmos star"), which extends the Cosmos component model with hierarchical composition of components. Finally, case studies using these tools are described / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
|
7 |
Tecnicas de estruturação de software no desenvolvimento de sistemas-de-sistemas confiaveisSilva, Ricardo de Mendonça 03 August 2018 (has links)
Orientador : Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-03T19:49:59Z (GMT). No. of bitstreams: 1
Silva_RicardodeMendonca_M.pdf: 768343 bytes, checksum: 05119a6c2b6052ce1e0b55ed9c3919c6 (MD5)
Previous issue date: 2003 / Mestrado
|
8 |
Uma abordagem arquitetural com tratamento de exceções para sistemas de software baseados em componentesPagano, Vinícius Asta 14 August 2004 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado profissional) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-04T00:07:27Z (GMT). No. of bitstreams: 1
Pagano_ViniciusAsta_M.pdf: 6761909 bytes, checksum: 684aea3316ddd5dc962dfe7151461d42 (MD5)
Previous issue date: 2004 / Resumo: A especificação da arquitetura de software é fundamental para a construção de um sistema de software que atenda a requisitos de confiabilidade e que seja baseado em componentes de software reutilizáveis. Componentes reutilizáveis podem ser implementados sem o conhecimento de um sistema onde serão reutilizados. A arquitetura de software deste sistema deve fornecer o contexto de utilização de componentes de modo que eles possam ser devidamente identificados e integrados a este sistema, atendendo aos requisitos de confiabilidade. Para isto, a arquitetura deve ser bem organizada e apresentar tanto a especificação normal quanto a especificação excepcional de seus componentes, além dos conectores que interligam esses componentes. Este trabalho propõe uma solução centrada na arquitetura baseada em um método para a especificação de componentes da arquitetura de um sistema e de seu comportamento excepcional (MECE). O método MECE promove a definição de uma arquitetura com a especificação normal e excepcional de seus componentes e a identificação de conectores. Através da especificação excepcional identifica-se quais exceções cada componente deve lançar em suas interfaces providas, e quais exceções associadas as suas interfaces requeridas o componente deve tratar. Mesmo com uma arquitetura bem especificada pode ser que não se encontre um componente reutilizável que atenda à sua especificação excepcional, sendo necessário um trabalho de adaptação no momento da integração deste componente na arquitetura definida. A solução apresentada neste trabalho propõe o uso de estratégias de estruturação arquitetural para tratamento de exceções, que auxiliam este trabalho de adaptação e a integração de componentes a um sistema. A solução proposta foi implementada num estudo de caso de um sistema real, onde inicialmente foi especificado e implementado o comportamento normal do sistema e depois o seu comportamento excepcional, usando o método MECE e as estratégias de estruturação arquitetural para tratamento de exceções / Abstract: The software architecture specification is the base for a component-based software construction that must be compliant with dependability requirements. A component-based software is constructed with reusable components. Reusable components can be implemented without knowing the context of the systems where these components would be reused. The software architecture of a system must provide the reuse context in order to allow the identification of reusable components and the integration of these components to this system. The software architecture must be well organized and present the normal and exceptional specification of its components and the connectors that must be used to connect these components.
This work proposes one architecture solution based on a method for normal and exceptional specification of system components (MECE). The method MECE provides the definition of architecture with the normal and exceptional specification of its components and the definition of the connectors. The component exceptional specification identifies the exceptions that must be thrown by a component in its provided interfaces, and the exceptions that must be caught in its required interfaces. Even with a well-specified architecture, maybe it is not possible to identify a reusable component that is totally compliant with the exceptional specification, which requires adaptation activities to integrate this reusable component to the defined architecture. The solution presented in this work proposes the use of architectural strategies for exception handling that guides the adaptation activities and the components integration to a system. The proposed solution was implemented in a study case of a real system, where firstly the normal behavior of the system was implemented, and secondly the exceptional behavior was implemented, applying the method MECE and the architectural strategies for exception handling / Mestrado / Mestre em Ciência da Computação
|
9 |
Discussão de um modelo conceitual para Enterprise Application Integration - EAIFernandez, Fernando Henrique 03 October 2004 (has links)
Orientador: Ricardo Dahab / Dissertação (mestrado profissional) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-04T01:40:11Z (GMT). No. of bitstreams: 1
Fernandez_FernandoHenrique_M.pdf: 1112470 bytes, checksum: 23fa075b8b0d66dcce7a100d9bfa2a70 (MD5)
Previous issue date: 2004 / Resumo: A integração de aplicações é um item dentro do universo da tecnologia da informação com demanda em forte crescimento. A descentralização do processamento das aplicações, a transposição dos limites físicos das corporações sustentada pelo avanço tecnológico, bem como as constantes mudanças do ponto de vista dos negócios estimulam esse crescimento. A discussão de um Modelo Conceitual para EAI (Enterprise Application Integration) explorada nesse trabalho tem por objetivo o estudo do problema da integração de aplicações, a partir do
levantamento e esclarecimento dos seus requisitos e é concluída com a proposição conceitual de uma solução. Fazem parte do estudo os tipos de integrações conforme a camada onde estão os dados a serem integrados, são discutidos os métodos e a abrangência a serem considerados para
realização do levantamento do projeto de integração, as várias estratégias e dispositivos utilizados para integração propriamente dita e finalmente é proposto um modelo conceitual que visa atender ao conjunto de requisitos de integração discutidos / Abstract: There has been a strong increase of the need for integration within the universe of Information Technology, spurred mainly by the decentralization of application processing, the transposition of physical limits of enterprises and the constant changes on business models. This work discusses and proposes a conceptual model for EAI ¿ Enterprise Application Integration, having as starting point the study and clarification of its requirements, and concluding with the proposal of a conceptual solution. As part of this study different requirements are considered such as the types of layer-dependent data integration, the methods and scope of the integration project, and the several strategies and devices to be utilized in the integration itself. The resulting conceptual model aims at satisfying these requirements / Mestrado / Engenharia de Computação / Mestre em Computação
|
10 |
Evolução e recuperação de arquiteturas de software baseadas em componentes / Component based software architecture recovery and evolutionEsteve, Andre Petris, 1989- 24 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-24T12:39:49Z (GMT). No. of bitstreams: 1
Esteve_AndrePetris_M.pdf: 5633446 bytes, checksum: 5874ca0a9d4e25e35c24df8d99a5a724 (MD5)
Previous issue date: 2013 / Resumo: Os sistemas de software precisam evoluir para atender as necessidades das pessoas. Isso é natural, já que as pessoas, as sociedades mudam, novas necessidades surgem, conceitos alteram-se e o software deve adequar-se às mudanças. Ao passo que alterações são feitas em sistemas de softwares, eles começam a envelhecer. O envelhecimento de software é o termo dado a redução da vida útil de um software devido à natureza da complexidade de seus processos de criação, manutenção e entendimento. Conforme um software é modificado, ele tende a se tornar mais complexo. Assim, ao precisar atender a novos requisitos seu código torna-se mais complexo, tornando-se menos expressivo, isto é, menos legível e mais complicado de ser compreendido, ou simplesmente por ser tão imenso e intricado, com centenas de componentes e funcionalidades, entendê-lo torna-se uma tarefa desafiadora. A arquitetura de software é um conceito fundamental no desenvolvimento e evolução de software. E juntamente com o sistema de software, a arquitetura também sofre os efeitos do envelhecimento de software, conhecidos como ersoão e desvio arquiteturais. É de extrema importância o gerenciamento da evolução da arquitetura de sofware, uma vez que ela representa a visão geral do sistema e é fundamentalmente responsável por requisitos de qualidade, como segurança e performance. Eventualmente, manter e evoluir um sistema de software torna-se mais custoso que reescrevê-lo por completo. Atingido esse estado, o software original é abandonado e sua vida útil chega ao fim. Ele é substituído por uma nova implementação, mais moderna, que atende aos novos requisitos, mas que, eventualmente, também envelhecerá, e também será substituída por uma nova implementação. Este trabalho propõe uma solução, composta por método e apoio ferramental, de gerenciamento da evolução de um sistema de software, especialmente, de sua arquitetura, que é peça fundamental na longevidade do sistema. O método proposto nesta solução objetiva identificar precocemente problemas de envelhecimento de software relacionados à arquitetura do sistema, permitindo ao arquiteto de software atuar sobre eles, de forma a mitigar ou eliminar seus impactos sobre a arquitetura do sistema, consequentemente, prolongando a vida útil do mesmo / Abstract: Software systems must evolve so to fit people¿s needs. That is a natural process, in which people and societies change, new necessities arise and existing concepts are replaced by modern ones, thus forcing the software to fit into the new picture, adapting itself to the changes. As software systems are modified, they age. Software ageing is the term given to the diminishing of a software¿s life spawn due to the inherently complexity of its creation, maintenance and understanding processes. As it evolves, the system tends to grow more intricate, its source code tends to become less expressive as it needs to be adapted to new requirements, run with a better performance or simply it has become so immense and complex that understanding it is, by itself, a challenging task. Eventually, maintaining and supporting a software system will turn out to be even more expensive than rewriting it from scratch. From that point onwards, the original piece of software is abandoned, having its life spawn reached an end. The aged software is replaced by a new and modern implementation, one that fulfils the just placed requirements. However this brand new software piece will share the same fate as its predecessors, it will age and will eventually be replaced. This work proposes a solution, composed by method and computer-aided tools, for managing software architecture evolution, which is a fundamental piece in the system¿s longevity. The solution¿s method aims to identify software architecture ageing problems ahead of time, so their impact can be adequately mitigated or even completely avoided, thus extending the software¿s life spawn. So to allow the practical use of the method, as part of the proposed solution, a tool was implemented to automate most of the method¿s activities. Through automation, the tool is capable of reducing the human error associated to the processes execution, thus yielding high efficiency. By analyzing case studies, it is possible to verify that, when applied, the solution is capable to guide the software architect to uncover software ageing problems on the system under investigation. Through the computational aid offered by the solution, the architect is able to act upon the newly discovered issues, with undemanding time and effort, thus resolving or mitigating the problems that arise with software ageing / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
|
Page generated in 0.08 seconds