41 |
[en] CONTEXT-SENSITIVE EXCEPTION HANDLING / [pt] TRATAMENTO DE EXCEÇÕES SENSÍVEL AO CONTEXTOKARLA NAZARE FERREIRA DAMASCENO 23 October 2006 (has links)
[pt] Tratamento de erros em aplicações móveis sensíveis ao
contexto não é uma
tarefa trivial devido às características peculiares destes
sistemas, como
mobilidade, comunicação assíncrona e aumento de
imprevisibilidade.
Mecanismos convencionais de tratamento de exceções não
podem ser utilizados
por vários motivos. Primeiro, a propagação de erros deve
considerar as mudanças
contextuais que ocorrem constantemente nestes sistemas.
Segundo, as atividades
de recuperação de erros e a estratégia de tratamento de
exceções também precisam
freqüentemente ser selecionadas de acordo com as
informações de contexto.
Terceiro, a própria caracterização de uma exceção pode
depender do contexto dos
dispositivos envolvidos. Embora vários middlewares
orientados a contexto
ofereçam suporte ao desenvolvimento de aplicações móveis,
estes sistemas
raramente fornecem suporte adequado ao tratamento de
exceções. Este trabalho
realiza uma análise das soluções existentes para
tratamento de exceções,
considerando os requisitos de sensibilidade ao contexto.
Além disso, são
propostos um modelo para tratamento de exceções sensível
ao contexto e um
mecanismo implementado a partir de MoCA (Mobile
Collaboration Architecture).
MoCA é um middleware publish-subscribe que oferece suporte
ao
desenvolvimento de aplicações móveis colaborativas através
da incorporação de
serviços de contexto. Finalmente, este trabalho avalia o
mecanismo de exceções
proposto através de sua utilização em alguns protótipos de
aplicações
colaborativas desenvolvidas a partir de MoCA. Através do
mecanismo, foram
implementadas diferentes estratégias de tratamento de
exceções que consideram
as informações de contexto das aplicações. / [en] Context-sensitive exception handling on mobile systems is
not a trivial task
due to their intrinsic characteristics: mobility,
asynchrony and increased
unpredictability. Conventional mechanisms of exception
handling can not be used
for many reasons. First, error propagation needs
considering the contextual
changes that often occur in these systems. Second, error
recovery and exception
handling strategies also frequently need to be selected
according to contextual
information. Third, the characterization of an exception
may depend on the
contextual situation of involved devices. Even though
there are now several
context-oriented middleware systems that provide support
for the development of
mobile applications, they rarely provide explicit and
adequate features for contextsensitive
exception handling. This work presents an analysis of
existing exception
handling mechanisms, which to some extent consider the
context-awareness
requirements. Besides, it proposes a general model for
context-sensitive exception
handling and a supporting mechanism implemented using the
MoCA (Mobile
Collaboration Architecture) infrastructure. MoCA is a
publish-subscribe
middleware supporting the development of collaborative
mobile applications by
incorporating explicit services to empower software agents
with contextsensitiveness.
Finally, this paper reports our experience in implementing
contextaware
exception handling strategies in some prototype
collaborative applications
built with the MoCA system.
|
42 |
Teste estrutural de tratamento de exceções em programas OA: representação, critérios e avaliação / Structural test of exception handling on AO programs: representation, criteria and evaluationCarvalho, Luciano Augusto Fernandes 06 June 2013 (has links)
O mecanismo de tratamento de exceções disponível em linguagens orientadas a objetos está sendo cada vez mais utilizado e representa cerca de 8% das linhas de código em programas escritos com linguagens de terceira geração, de acordo com algumas pesquisas. No entanto, este mecanismo está entre os menos compreendido pelos desenvolvedores e menos testado. A dificuldade de testar exceções aumenta na fase de teste de integração, porque exceções lançadas em um determinado nível e não tratadas podem subir na hierarquia de chamada. O uso de aspectos também pode introduzir novos tipos de defeitos, como por exemplo um adendo pode inserir lançamentos de exceções no programa sem que exista algum tratamento previsto para elas. Este trabalho apresenta uma proposta para testes de integração estrutural de fluxos de exceções de programas Java e AspectJ. Isto é feito propondo-se alterações na representação do fluxo de exceção no grafo de fluxo de controle integrado e propondo-se novos critérios baseados no fluxo de exceção. Além disso, essas propostas foram implementadas e geraram uma extensão da ferramenta chamada Ja-BUTi/AJ. Para avaliar a proposta deste trabalho, um estudo de caso e um experimento formal foram conduzidos. O estudo de caso teve como objetivo validar a extensão da JaBUTi/AJ desenvolvida e fazer uma avaliação inicial do custo de aplicação dos critérios propostos. O experimento formal realizou uma comparação entre as ferramentas JaBUTi/AJ e VITTAE no contexto do teste do fluxo de exceções. Ambos os estudos são apresentados e discutidos nesta dissertação / Exception handling mechanisms available in object-oriented languages have become increasingly used and account for about 8% of the lines of code in modern programs according to some empirical researches. Yet, this mechanism is among the least understood by programmers and the less tested. The difficulty of testing exceptions increases in the phase of integration testing (e.g. inter-class testing) because exceptions raised on a certain level and not handled can flow through the call hierarchy. Using aspects also cause other types of errors, e.g. an advice can insert exceptions not foreseen by the base program. This paper presents a proposal for structural integration testing of exception flows of Java and AspectJ programs. This is done by proposing changes to the classic control ow graph and by proposing new criteria based on the exception ow. Moreover, these proposals have been implemented in a tool named JaBUTi/AJ. To evaluate the proposal of this work, a case study and a formal experiment have been conducted. The case study had the objective of validating the JaBUTi/AJ extension developed and making a preliminary assessment of the cost to use the tool. The formal experiment made a comparison between the tools JaBUTi/AJ and VITTAE in the context of exception flow test. Both studies are presented and discussed in this dissertation
|
43 |
Caracterizando os fluxos excepcionais em linhas de produto de software: um estudo explorat?rioMelo, Hugo Faria 26 July 2012 (has links)
Made available in DSpace on 2014-12-17T15:48:02Z (GMT). No. of bitstreams: 1
HugoFM_DISSERT.pdf: 1847783 bytes, checksum: 58d9312a629dabdd3fe4b15c8dc44101 (MD5)
Previous issue date: 2012-07-26 / The Exception Handling (EH) is a widely used mechanism for building robust
systems. In Software Product Line (SPL) context it is not different. As EH
mechanisms are embedded in most of mainstream programming languages (like
Java, C# and C++), we can find exception signalers and handlers spread over
code assets associated to common and variable SPL features. When exception
signalers and handlers are added to an SPL in an unplanned way, one of the
possible consequences is the generation of faulty family instances (i.e., instances
on which common or variable features signal exceptions that are mistakenly
caught inside the system). In this context, some questions arise: How exceptions
flow between the optional and alternative features an LPS? Aiming at providing
answers to these questions, this master thesis conducted an exploratory study,
based on code inspection and static analysis code, whose goal was to categorize
the main ways which exceptions flow in LPSs. To support the study, we developed
an static analysis tool called PLEA (Product Line Exception Analyzer) that
calculates the exceptional flows of LPSs, and categorize these flows according to
the features associated with handlers and signalers. Preliminary results showed
that some types of exceptional flows have more potential to yield failures in
exceptional behavior of SLPs / O mecanismo de tratamento de exce??es ? amplamente utilizado para a
constru??o de sistemas robustos. No contexto de Linhas de Produto de
Software (LPSs) n?o ? diferente. Uma vez que mecanismos de tratamento de
exce??es est?o embutidos nas principais linguagens de programa??o da
atualidade (como Java, C# e C++), podemos encontrar sinalizadores e tratadores
de exce??es espalhados entre os artefatos de c?digo associados a caracter?sticas
(do ingl?s: features) opcionais e obrigat?rias de uma LPS. Quando tratadores ou
sinalizadores de exce??es s?o adicionados a uma LPS de forma n?o planejada,
uma das poss?veis conseq??ncias ? a gera??o de produtos falhos (i.e., produtos
em que exce??es lan?adas por features vari?veis ou obrigat?rias s?o
erroneamente tratadas). Neste contexto, surge a pergunta: Quais as
consequ?ncias de se usar o mecanismo de tratamento de exce??es em LPSs?
Com o objetivo de responder a esta pergunta, este trabalho conduz um estudo
explorat?rio, baseado em inspe??o de c?digo e an?lise est?tica de c?digo, cujo
objetivo foi caracterizar as principais formas em que exce??es fluem em LPSs.
Para apoiar a realiza??o deste estudo desenvolvemos a PLEA (Product Line
Exception Analyzer), uma ferramenta baseada em analise est?tica de c?digo que
calcula os fluxos excepcionais de uma LPS e os classifica de acordo com as
features associadas aos seus tratadores e sinalizadores. Resultados preliminares
mostraram que alguns tipos de fluxos excepcionais tem mais potencial para
originarem falhas no comportamento excepcional das LPSs
|
44 |
Uma abordagem para a verifica??o do comportamento excepcional a partir de regras de designe e testesSales Junior, Ricardo Jos? 01 February 2013 (has links)
Made available in DSpace on 2014-12-17T15:48:06Z (GMT). No. of bitstreams: 1
RicardoJSJ_DISSERT.pdf: 4102063 bytes, checksum: 92b62a467283fb011a1258e8b80ca7b4 (MD5)
Previous issue date: 2013-02-01 / Checking the conformity between implementation and design rules in a system is an
important activity to try to ensure that no degradation occurs between architectural
patterns defined for the system and what is actually implemented in the source code.
Especially in the case of systems which require a high level of reliability is important to
define specific design rules for exceptional behavior. Such rules describe how
exceptions should flow through the system by defining what elements are responsible
for catching exceptions thrown by other system elements. However, current
approaches to automatically check design rules do not provide suitable mechanisms
to define and verify design rules related to the exception handling policy of
applications. This paper proposes a practical approach to preserve the exceptional
behavior of an application or family of applications, based on the definition and runtime
automatic checking of design rules for exception handling of systems developed in
Java or AspectJ. To support this approach was developed, in the context of this work,
a tool called VITTAE (Verification and Information Tool to Analyze Exceptions) that
extends the JUnit framework and allows automating test activities to exceptional
design rules. We conducted a case study with the primary objective of evaluating the
effectiveness of the proposed approach on a software product line. Besides this, an
experiment was conducted that aimed to realize a comparative analysis between the
proposed approach and an approach based on a tool called JUnitE, which also
proposes to test the exception handling code using JUnit tests. The results showed
how the exception handling design rules evolve along different versions of a system
and that VITTAE can aid in the detection of defects in exception handling code / Verificar a conformidade entre a implementa??o de um sistema e suas regras de
design ? uma atividade importante para tentar garantir que n?o ocorra a degrada??o
entre os padr?es arquiteturais definidos para o sistema e o que realmente est?
implementado no c?digo-fonte. Especialmente no caso de sistemas dos quais se
exige um alto n?vel de confiabilidade ? importante definir regras de design (design
rules) espec?ficas para o comportamento excepcional. Tais regras descrevem como
as exce??es devem fluir atrav?s do sistema, definindo quais s?o os elementos
respons?veis por capturar as exce??es lan?adas por outros elementos do sistema.
Entretanto, as abordagens atuais para verificar automaticamente regras de design
n?o proveem mecanismos adequados para definir e verificar regras de design
espec?ficas para a pol?tica de tratamento de exce??es das aplica??es. Este trabalho
prop?e uma abordagem pr?tica para preservar o comportamento excepcional de uma
aplica??o ou fam?lia de aplica??es, baseada na defini??o e verifica??o autom?tica em
tempo de execu??o de regras de design de tratamento de exce??o para sistemas
desenvolvidos em Java ou AspectJ. Para apoiar esta abordagem foi desenvolvida, no
contexto deste trabalho, uma ferramenta chamada VITTAE (Verification and
Information Tool to Analyze Exceptions) que estende o framework JUnit e permite
automatizar atividades do teste de regras de design excepcionais. Foi realizado um
estudo de caso preliminar com o objetivo de avaliar a efic?cia da abordagem proposta
sobre uma linha de produto de software. Al?m deste, foi realizado um experimento
cujo objetivo foi realizar uma an?lise comparativa entre a abordagem proposta e uma
abordagem baseada na ferramenta JUnitE, que tamb?m prop?e testar o c?digo de
tratamento de exce??es utilizando testes JUnit. Os resultados mostraram que as
regras de design excepcionais evoluem ao longo de diferentes vers?es de um sistema
e que a VITTAE pode auxiliar na detec??o de defeitos no c?digo de tratamento de
exce??o
|
45 |
Um mecanismo de tratamento de excessões sensível ao contexo para sistemas ubíquos orientados a tarefas / A mechanism for exception handling sensitive to surrounding context for ubiquitous systems oriented tasksQueiroz Filho, Carlos Alberto Batista de January 2012 (has links)
QUEIROZ FILHO, Carlos Alberto Batista de. Um mecanismo de tratamento de excessões sensível ao contexo para sistemas ubíquos orientados a tarefas. 2012. 95 f. : Dissertação (mestrado) - Universidade Federal do Ceará, Centro de Ciências, Departamento de Computação, Fortaleza-CE, 2012. / Submitted by guaracy araujo (guaraa3355@gmail.com) on 2016-06-08T16:21:00Z
No. of bitstreams: 1
2012_dis_cabqueirozfilho.pdf: 1970524 bytes, checksum: 4c0037e9a7ae7b752cee99522d45b0b2 (MD5) / Approved for entry into archive by guaracy araujo (guaraa3355@gmail.com) on 2016-06-08T16:24:48Z (GMT) No. of bitstreams: 1
2012_dis_cabqueirozfilho.pdf: 1970524 bytes, checksum: 4c0037e9a7ae7b752cee99522d45b0b2 (MD5) / Made available in DSpace on 2016-06-08T16:24:48Z (GMT). No. of bitstreams: 1
2012_dis_cabqueirozfilho.pdf: 1970524 bytes, checksum: 4c0037e9a7ae7b752cee99522d45b0b2 (MD5)
Previous issue date: 2012 / The main purpose of ubiquitous computing is to provide information and features needed to help people in their daily tasks, proactively and transparently, at any time and anywhere. The development of ubiquitous systems involves a set of challenging requirements, including: context awareness, which allows systems to adapt their behavior to respond appropriately in the face of environmental changes, and dependability, which is related to the ability of systems provide a service which offer strong indications that are reliable. Regarding the attributes of dependability, neglecting them can bring grievances from small to severe risks to the physical integrity of the users. Exception handling is a major fault tolerance techniques used in software development to achieve greater levels of dependability. This technique, even though it is widely used in traditional software development, it is still not widely used in the development of ubiquitous systems. This is due to challenging requirements and characteristics of this type of system, among which we highlight the sensitivity to the context and distribution, which can make the necessary possibilities of handling exceptions in a system as a whole is greater than the sum of possibilities for exception handling of the parts that compose it. Therefore, this dissertation aims to propose a mechanism for exception handling context-sensitive ubiquitous systems for task-oriented. The proposed mechanism is available through a framework called foreheads, which allows the reuse mechanism. By using this framework, system functionality can be implemented on an abstraction task, which responds appropriately to changes in context, detecting and treating exceptional situations. To validate the proposed mechanism was implemented a prototype system of parking control ubiquitous as a proof of concept, which focuses on demonstration of how the tasks are implemented that make up this system and how they are defined exceptions contextual and their handlers. / O principal propósito da Computação Ubíqua é o fornecimento de informações e funcionalidades necessárias para ajudar as pessoas em suas tarefas cotidianas, de maneira proativa e transparente, a qualquer instante e em qualquer lugar. O desenvolvimento de sistemas ubíquos envolve um conjunto de requisitos desafiadores, dentre eles: sensibilidade ao contexto, que permite que os sistemas adaptem o seu comportamento para responder de forma apropriada diante de mudanças do ambiente; e dependabilidade, que está relacionado à capacidade dos sistemas de prestarem um serviço os quais ofereçam fortes indícios de que são confiáveis. Em relação aos atributos de dependabilidade, negligenciá-los pode trazer desde pequenas insatisfações até graves riscos à integridade física dos usuários. O tratamento de exceções é uma das principais técnicas de tolerância a faltas empregadas no desenvolvimento de software para atingir maiores níveis de dependabilidade. Essa técnica, apesar de já ser amplamente utilizada no desenvolvimento de software tradicional, ainda é pouco empregada no desenvolvimento de sistemas ubíquos. Isso ocorre em virtude das características e requisitos desafiadores desse tipo de sistema, dentre os quais se destacam a sensibilidade ao contexto e a distribuição, a qual pode fazer com que as possibilidades necessárias de tratamento de exceções de um sistema como um todo seja maior do que a soma das possibilidades de tratamento de exceções das partes que o compõe. Portanto, essa dissertação tem como objetivo propor um mecanismo de tratamento de exceções sensível ao contexto para sistemas ubíquos orientados a tarefas. O mecanismo proposto é disponibilizado através de um framework, denominado FRonTES, que permite a reutilização do mecanismo. Através da utilização desse framework, funcionalidades do sistema podem ser implementadas sob uma abstração de tarefa, que responde de maneira adequada a mudanças de contexto, detectando e tratando situações excepcionais. Para a validação do mecanismo proposto foi implementado um protótipo de sistema de controle de estacionamento ubíquo como uma prova de conceito, que foca na demonstração de como são implementadas as tarefas que compõem esse sistema e como são definidas as exceções contextuais e seus tratadores.
|
46 |
Exception handling in object-oriented analysis and designVan Rensburg, Annelise Janse 01 January 2002 (has links)
This dissertation investigates current trends concerning exceptions. Exceptions influence the reliability of software systems. In order to develop software systems that are most robust, thus delivering higher availability at a lower development and operating cost, the occurence of exceptions needs to be reduced and the effects of the exceptions controlled. In order to do this, issues such as detection, identification, classification, propagation, handling, language implementation, software testing and reporting of exceptions must be attended to. Although some of these areas are well researched there are remaining problems. The quest is to establish if a unified exception-handling framework is possible and viable, which can address the issues and problems throughout the software development life cycle, and if so, the requirements for such a framework. / Computing / M.Sc. (Information Systems)
|
47 |
Um mecanismo de tratamento de excessÃes sensÃvel ao contexo para sistemas ubÃquos orientados a tarefas / A mechanism for exception handling sensitive to surrounding context for ubiquitous systems oriented tasksCarlos Alberto Batista de Queiroz Filho 30 November 2012 (has links)
CoordenaÃÃo de AperfeiÃoamento de Pessoal de NÃvel Superior / O principal propÃsito da ComputaÃÃo UbÃqua à o fornecimento de informaÃÃes e funcionalidades necessÃrias para ajudar as pessoas em suas tarefas cotidianas, de maneira proativa e transparente, a qualquer instante e em qualquer lugar. O desenvolvimento de sistemas ubÃquos envolve um conjunto de requisitos desafiadores, dentre eles: sensibilidade ao contexto, que permite que os sistemas adaptem o seu comportamento para responder de forma apropriada diante de mudanÃas do ambiente; e dependabilidade, que està relacionado à capacidade dos sistemas de prestarem um serviÃo os quais ofereÃam fortes indÃcios de que sÃo confiÃveis. Em relaÃÃo aos atributos de dependabilidade, negligenciÃ-los pode trazer desde pequenas insatisfaÃÃes atà graves riscos à integridade fÃsica dos usuÃrios. O tratamento de exceÃÃes à uma das principais tÃcnicas de tolerÃncia a faltas empregadas no desenvolvimento de software para atingir maiores nÃveis de dependabilidade. Essa tÃcnica, apesar de jà ser amplamente utilizada no desenvolvimento de software tradicional, ainda à pouco empregada no desenvolvimento de sistemas ubÃquos. Isso ocorre em virtude das caracterÃsticas e requisitos desafiadores desse tipo de sistema, dentre os quais se destacam a sensibilidade ao contexto e a distribuiÃÃo, a qual pode fazer com que as possibilidades necessÃrias de tratamento de exceÃÃes de um sistema como um todo seja maior do que a soma das possibilidades de tratamento de exceÃÃes das partes que o compÃe. Portanto, essa dissertaÃÃo tem como objetivo propor um mecanismo de tratamento de exceÃÃes sensÃvel ao contexto para sistemas ubÃquos orientados a tarefas. O mecanismo proposto à disponibilizado atravÃs de um framework, denominado FRonTES, que permite a reutilizaÃÃo do mecanismo. AtravÃs da utilizaÃÃo desse framework, funcionalidades do sistema podem ser implementadas sob uma abstraÃÃo de tarefa, que responde de maneira adequada a mudanÃas de contexto, detectando e tratando situaÃÃes excepcionais. Para a validaÃÃo do mecanismo proposto foi implementado um protÃtipo de sistema de controle de estacionamento ubÃquo como uma prova de conceito, que foca na demonstraÃÃo de como sÃo implementadas as tarefas que compÃem esse sistema e como sÃo definidas as exceÃÃes contextuais e seus tratadores. / The main purpose of ubiquitous computing is to provide information and features needed to help people in their daily tasks, proactively and transparently, at any time and anywhere. The development of ubiquitous systems involves a set of challenging requirements, including: context awareness, which allows systems to adapt their behavior to respond appropriately in the face of environmental changes, and dependability, which is related to the ability of systems provide a service which offer strong indications that are reliable. Regarding the attributes of dependability, neglecting them can bring grievances from small to severe risks to the physical integrity of the users. Exception handling is a major fault tolerance techniques used in software development to achieve greater levels of dependability. This technique, even though it is widely used in traditional software development, it is still not widely used in the development of ubiquitous systems. This is due to challenging requirements and characteristics of this type of system, among which we highlight the sensitivity to the context and distribution, which can make the necessary possibilities of handling exceptions in a system as a whole is greater than the sum of possibilities for exception handling of the parts that compose it. Therefore, this dissertation aims to propose a mechanism for exception handling context-sensitive ubiquitous systems for task-oriented. The proposed mechanism is available through a framework called foreheads, which allows the reuse mechanism. By using this framework, system functionality can be implemented on an abstraction task, which responds appropriately to changes in context, detecting and treating exceptional situations. To validate the proposed mechanism was implemented a prototype system of parking control ubiquitous as a proof of concept, which focuses on demonstration of how the tasks are implemented that make up this system and how they are defined exceptions contextual and their handlers.
|
48 |
Uma abordagem arquitetural para o desenvolvimento rigoroso de sistemas confiáveis baseados em componentes / A rigorous architectural approach to development component-based software systemsBrito, Patrick Henrique da Silva 16 August 2018 (has links)
Orientador: Cecília Mary Fischer Rubira / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-16T14:38:24Z (GMT). No. of bitstreams: 1
Brito_PatrickHenriquedaSilva_D.pdf: 1885619 bytes, checksum: 138c286c6050613085421c02716b1425 (MD5)
Previous issue date: 2009 / Resumo: A incorporação de tolerância a falhas em sistemas de software normalmente acarreta em um aumento da complexidade, o que consequentemente torna a sua análise mais difícil. Além disso, o uso de mecanismos de tratamento de exceções de uma maneira não-sistemática pode acarretar na adição de novas falhas ao sistema. Esta tese apresenta uma abordagem rigorosa e centrada na arquitetura para o desenvolvimento de sistemas de software tolerantes a falhas. Dependendo do modelo de falhas e da disponibilidade de recursos, abstrações arquiteturais diferentes podem ser utilizadas para representar explicitamente questões relacionadas a tolerância a falhas, tais como detecção e tratamento de erros e tratamento de falhas. Essas abstrações arquiteturais e os seus respectivos detalhamentos internos podem ser instanciados em componentes e conectores concretos durante o projeto de arquiteturas de software tolerantes a falhas. De forma complementar, a solução proposta também define atividades que combinam o uso e métodos formais e casos de teste baseados em modelos para sistematizar a verificação e validação do comportamento do sistema relativo à programação e tratamento de erros e tratamento de falhas no nível arquitetural. A verificação e validação de software ocorrem em duas fases complementares do processo de desenvolvimento do software, ambas baseadas em cenários arquiteturais que descrevem a programação e tratamento de erros envolvendo elementos arquiteturais (componentes e conectores). Primeiramente, utilizando a ferramenta de verificação de modelos ProB, que combina o uso de teoria de conjuntos matemáticos (B-Method) com álgebra de processos (CSP), a arquitetura de software é verificada formalmente com o intuito de antecipar a identificação de falhas relacionadas ao projeto do sistema. Segundo, casos de teste são gerados a partir da arquitetura de software utilizando uma abordagem baseada em modelos. O objetivo dos casos de teste gerados é verificar a consistência entre os modelos arquiteturais já verificados formalmente e a implementação do sistema. Finalmente, para auxiliar as atividades de verificação, a solução proposta também contempla a definição de regras de transformação automática de diagramas UML para especificação formal em B-Method e CSP. A diferença semântica existe entre a especificação semi-formal da UML e a especificação formal em B-Method e CSP é compensada utilizando-se estereótipos e "tags" nos modelos UML. A aplicabilidade prática da solução proposta foi avaliada no contexto de três estudos de caso: (i) uma aplicação com requisitos críticos de tempo real e confiabilidade; (ii) uma aplicação bancária real com requisitos críticos de confiabilidade e disponibilidades; e (iii) uma aplicação para dispositivos móveis / Abstract: The incorporation of fault tolerance into systems normally increases their complexity, which consequently makes their analysis more difficult. Moreover, the use of exception handling mechanisms to develop robust software systems in a non-systematic manner can be a source of many design faults. This thesis presents a rigorous and architecture-centric development approach for developing fault-tolerant software systems. Depending on the fault model and the resources available, different architectural abstractions can be employed for representing issues that are related to fault tolerance, such as error detection, and error and fault handling. These architectural abstractions and their internal views can be instantiated into concrete components and connectors for designing fault-tolerant software architectures. In a complementary way, the proposed rigorous solution also defines activities which use formal methods and model-based test cases do systematize the verification and validation of the system's behaviour related to error propagation and handling at the architecture level. The verification and validation occur in two complementary phases of the software development, both of them based on architectural scenarios describing error propagation and handling involving architectural elements (components and connectors). First, using the ProB model checker, which combines the use of set-theory (B-Method) and process algebra (CSP), the software architecture is formally verified in order to anticipate the identification of faults related to the system's model. Second, model-based test cases are generated in order to assess the consistency between the verified software architecture and the implementation of the software system. Finally, the proposed solution also defines rules for model transformation from UML diagrams to formal specification in B-Method and CSP. To overcome the gap between the semi-formal specification of UML and the formal models, the UML diagrams are complemented with predefined stereotypes and tags. The feasibility of our approach was evaluated in the context of three case studies: (i) a critical real-time application; (ii) a real banking system; and (iii) a mobile application / Doutorado / Engenharia de Software / Doutor em Ciência da Computação
|
49 |
Método Ágil aplicado ao desenvolvimento de software confiável baseado em componentes / Reliable component-based software development with Agile MethodBraz, Alan, 1980- 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-23T09:09:24Z (GMT). No. of bitstreams: 1
Braz_Alan_M.pdf: 1903353 bytes, checksum: 9bff9aefdcc11d6d8fe46490302d6291 (MD5)
Previous issue date: 2013 / Resumo: Os Métodos Ágeis, ou Desenvolvimento Ágil de Software (DAS), tem se popularizado, na última década, por meio de métodos como Extreme Programming (XP) e Scrum e isso fez com que fossem aplicadas no desenvolvimento de sistemas computacionais de diversos tamanhos, complexidades técnica e de domínio, e de rigor quanto à confiabilidade. Esse fato evidencia a necessidade de processos de desenvolvimento de software que sejam mais rigorosos e que possuam uma quantidade adequada de modelagem e documentação, em especial no que concerne ao projeto arquitetural, com o objetivo de garantir maior qualidade no seu resultado final. A confiabilidade pode ser alcançada adicionando elementos de tratamento de exceções às fases iniciais do processo de desenvolvimento e à reutilização de componentes. O tratamento de exceções tem sido uma técnica muito utilizada na verificação e na depuração de erros em sistemas de software. O MDCE+ é um método que auxilia a modelagem do comportamento excepcional de sistemas baseados em componentes que, por ser centrado na arquitetura, melhora a definição e a análise do fluxo de exceções entre os componentes do sistema. Este trabalho propõe uma solução para guiar o desenvolvimento de sistemas confiáveis baseados em componentes por meio da adição de práticas do MDCE+ ao Scrum, resultando no método Scrum+CE (Scrum com Comportamento Excepcional). Esse processo passa a expor os requisitos excepcionais em nível das Estórias de Usuário, adiciona testes de aceitação mais detalhados, obriga a criação do artefato de Arquitetura Inicial e adiciona um novo papel de Dono da Arquitetura. Como forma de avaliar esse método proposto, foi realizado um experimento controlado com três equipes, que desenvolveram um sistema com requisitos de confiabilidade, utilizando Scrum e Scrum+CE. Foram coletadas métricas para comparar a eficiência do novo processo e o resultado obtido, com a utilização do Scrum+CE, foi à produção de software com melhor qualidade, porém com menor número de funcionalidades / Abstract: Agile Software Development (ASD) has been on mainstream through methodologies such as Extreme Programming (XP) and Scrum in the last decade enabling them to be applied in the development of computer systems of various size, technical and domain complexity and degress of reliability. This fact highlights the need for software development processes that are accurate and have an adequate amount of modeling and documentation, especially regarding the architectural design, aiming to increase the quality of the end result. The reliability can be achieved by adding elements of exception handling at early stages of development and through components reuse. Exception handling has been a widely used technique in detecting and fixing errors in software systems. The MDCE+ is a method that assists exceptional behavior modeling at components based systems, which is architecture-centric what improves the definition and flow analysis of exceptions between system components. This paper proposes a solution to guide the development of reliable systems based on components by adding MDCE+ practices to Scrum, resulting in the Scrum+CE method (Scrum with Exceptional Behavior). This process exposes the exceptional requirements, at the User Stories level, documents acceptance tests with more details, requires the creation of a high-level architecture artifact and adds a new role of Architecture Owner. In order to evaluate this proposed method, a controlled experiment was conducted with three teams, who developed a system with reliability requirements using Scrum and Scrum+CE. We collected metrics to compare the efficiency of the new process and the result was the production of software with better quality but with less features using Scrum+CE / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
|
50 |
Variabilidade em tratamento de exceções em linha de produtos de software / Variability of exception handling software product lineIizuka, Bruno de Abreu, 1985- 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-22T01:16:52Z (GMT). No. of bitstreams: 1
Iizuka_BrunodeAbreu_M.pdf: 5618330 bytes, checksum: 684e091ec25c7c909bfbdfeae38b8487 (MD5)
Previous issue date: 2012 / Resumo: Atualmente, muitos esforços vêm sendo feitos para se obter um maior grau de reutilização durante o desenvolvimento de sistemas. Linha de Produtos de Software (LPS) é uma abordagem que promove a reutilização de software. A Arquitetura de Linha de Produtos (ALP) provê uma perspectiva global das variabilidades da linha, ao passo que engloba os conceitos tradicionais de uma arquitetura de software. Devido às variabilidades de software de uma ALP, a evolução arquitetural é ainda mais complexa, do que quando comparado com evolução de arquiteturas de software convencionais. Tratamento de exceções é uma técnica bastante conhecida para a detecção e tratamento de erros em sistemas de software. Porém, apesar da sua popularidade, o seu projeto e a sua implementação são constituídos de tarefas muito complexas que não recebem uma atenção adequada dos processos de desenvolvimento existentes. Separação de interesses é um dos objetivos do tratamento de exceções para separar o comportamento normal e excepcional do sistema de software. No contexto de uma LPS, a separação de interesses é importante para o design das variabilidades de software relacionadas às estratégias do comportamento normal e do comportamento excepcional, como a escolha de diferentes tratadores de exceções por diferentes características. O objetivo principal deste trabalho é apresentar um método para especificar e implementar a variabilidade de tratamentos de exceções em LPS baseadas em componentes. O método MVTE (Método de Variabilidade de Tratamento de Exceções) é uma combinação de métodos já conhecidos na literatura (PLUS e UML Components) e os modelos COSMOS* e COSMOS*-VP. Para validar o método MVTE foram utilizados dois estudos empíricos, e para medir a sua qualidade foram utilizadas as métricas de impacto de mudanças, acoplamento entre módulos e difusão de interesses / Abstract: Nowadays, many efforts are being made to achieve a higher degree of reuse during the development of systems. Software Product Lines (SPL) is an approach to improve software reuse. A PLA provides a global view of the variability's of a SPL, while it embodies the concepts and advantages of the traditional software architecture. Due to its variability's, a PLA is harder to evolve than a conventional software architecture. Exception handling is a well known technique to detect and treat errors in software systems. However, despite its popularity, its design and implementation are constituted of very complex tasks that do not receive the adequate attention from the existing development processes. Separation of concerns is one of the overarching goals of exception handling in order to keep separate normal and exceptional behavior of a software system. In the context of a software product line (SPL); this separation of concerns is also important for designing software variability's related to normal and exceptional behavior, such as the choice of different handlers depending on the set of selected features. The main goal of this work is to present a method to specify and implement the variability of exception handling in SPL components-based. The method MVTE (Variability of Exception Handler Method) is a combination of methods known in the literature (PLUS and UML Components) and models COSMOS* and COSMOS*-VP. To validate the method MVTE, it was studied two empirical studies, and to measure their quality it was used the metrics impact change, coupling between modules and diffusion over concerns / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
|
Page generated in 0.093 seconds