33 research outputs found
Towards architecture-level middleware-enabled exception handling of component-based systems
Exception handling is a practical and important way to improve the availability and reliability of a component-based system. The classical code-level exception handling approach is usually applied to the inside of a component, while some exceptions can only or properly be handled outside of the components. In this paper, we propose a middleware-enabled approach for exception handling at architecture level. Developers specify what exceptions should be handled and how to handle them with the support of middleware in an exception handling model, which is complementary to software architecture of the target system. This model will be interpreted at runtime by a middleware-enabled exception handling framework, which is responsible for catching and handling the specified exceptions mainly based on the common mechanisms provided by the middleware. The approach is demonstrated in JEE application servers and benchmarks. ? 2011 ACM.EI
Quality Assurance of Software Applications Using the In Vivo Testing Approach
Software products released into the field typically have some number of residual defects that either were not detected or could not have been detected during testing. This may be the result of flaws in the test cases themselves, incorrect assumptions made during the creation of test cases, or the infeasibility of testing the sheer number of possible configurations for a complex system; these defects may also be due to application states that were not considered during lab testing, or corrupted states that could arise due to a security violation. One approach to this problem is to continue to test these applications even after deployment, in hopes of finding any remaining flaws. In this paper, we present a testing methodology we call in vivo testing, in which tests are continuously executed in the deployment environment. We also describe a type of test we call in vivo tests that are specifically designed for use with such an approach: these tests execute within the current state of the program (rather than by creating a clean slate) without affecting or altering that state from the perspective of the end-user. We discuss the approach and the prototype testing framework for Java applications called Invite. We also provide the results of case studies that demonstrate Invite's effectiveness and efficiency
Towards pattern-based reliability certification of services
On Service-Oriented Architectures (SOAs), the mechanism for run-time discovery and selection of services may conflict with the need to make sure that business process instances satisfy their reliability requirements. In this paper we describe a certification scheme based on machine-readable reliability certificates that will enable run-time negotiation. Service reliability is afforded by means of reliability patterns. Our certificates describe the reliability mechanism implemented by a service and the reliability pattern used to implement such a mechanism. Digital signature is used to associate the reliability claim contained in each certificate with the party (service supplier or accredited third-party) taking responsibility for it
Modeling Context and Dynamic Adaptations with Feature Models
International audienceSelf-adaptive and dynamic systems adapt their behavior according to the context of execution. The contextual information exhibits multiple variability factors which induce many possible configurations of the software system at runtime. The challenge is to specify the adaptation rules that can link the dynamic variability of the context with the possible variants of the system. Our work investigates the systematic use of feature models for modeling the context and the software variants, together with their inter relations, as a way to configure the adaptive system with respect to a particular context. A case study in the domain of video surveillance systems is used to illustrate the approach
Verifying total correctness of graph programs
GP 2 is an experimental nondeterministic programming language based on graph transformation rules, allowing for visual programming and the solving of graph problems at a high-level of abstraction. In previous work we demonstrated how to verify graph programs using a Hoare-style proof calculus, but only partial correctness was considered. In this paper, we add new proof rules and termination functions, which allow for proofs to additionally guarantee that program executions always terminate (weak total correctness), or that programs always terminate and do so without failure (total correctness). We show that the new proof rules are sound with respect to the operational semantics of GP 2, complete for termination, and demonstrate their use on some example programs
Metamorphic Runtime Checking of Non-Testable Programs
Challenges arise in assuring the quality of applications that do not have test oracles, i.e., for which it is impossible to know what the correct output should be for arbitrary input. Metamorphic testing has been shown to be a simple yet effective technique in addressing the quality assurance of these "non-testable programs". In metamorphic testing, if test input x produces output f(x), specified "metamorphic properties" are used to create a transformation function t, which can be applied to the input to produce t(x); this transformation then allows the output f(t(x)) to be predicted based on the already-known value of f(x). If the output is not as expected, then a defect must exist. Previously we investigated the effectiveness of testing based on metamorphic properties of the entire application. Here, we improve upon that work by presenting a new technique called Metamorphic Runtime Checking, a testing approach that automatically conducts metamorphic testing of individual functions during the program's execution. We also describe an implementation framework called Columbus, and discuss the results of empirical studies that demonstrate that checking the metamorphic properties of individual functions increases the effectiveness of the approach in detecting defects, with minimal performance impact
A Protocol for Systematic Literature Review on Methods to handle Multiple Concerns in Architecture-Based Self-Adaptive Systems
Determina la percepción que tiene el adulto mayor respecto a la muerte en el Asilo de Ancianos Hermanas de la Caridad de San José, Junio- Agosto 2015. Material y Métodos: Se realizó un estudio de enfoque cuantitativo, tipo descriptivo, prospectivo, y de corte transversal. La población fue 65 adultos mayores y la muestra quedo constituida por 52 adultos mayores considerando los criterios de exclusión. El instrumento es el cuestionario denominado “Cuestionario para evaluar la Percepción del Adulto Mayor respecto a la muerte” elaborada por Bullon Zegarra, Catherina Virginia, y que tiene una confiabilidad de 0,7 alfa de cronbach en el año 2012, Lima. El procesamiento de los datos se realizó con el programa estadístico SPSS para la presentación e interpretación de los resultados y la prueba de chi cuadrado para comparar grupos. Resultados: La percepción del adulto mayor respecto a la muerte es medianamente desfavorable en un 57,7 %, mientras que el 36,5 % tiene una percepción medianamente favorable y solo el 5,8% tienen una percepción desfavorable Junio – Agosto 2015. Conclusiones: El mayor porcentaje de adultos mayores tiene una percepción medianamente desfavorable respecto a la muerte. Según la percepción del adulto mayor respecto a la muerte encontramos que no existen diferencias significativas según edad y sexo. Según la percepción del adulto mayor respecto a la muerte encontramos que si existe diferencia significativa según estado civil, pero no existe diferencia significativa según grado de instrucción. Según la percepción del adulto mayor respecto a la muerte encontramos que si existen diferencias significativas según frecuencia y tipo de visitas.En la tesis no se menciona el nombre del asesor
Recommended from our members
Using Metamorphic Testing at Runtime to Detect Defects in Applications without Test Oracles
First, we will present an approach called Automated Metamorphic System Testing. This will involve automating system-level metamorphic testing by treating the application as a black box and checking that the metamorphic properties of the entire application hold after execution. This will allow for metamorphic testing to be conducted in the production environment without affecting the user, and will not require the tester to have access to the source code. The tests do not require an oracle upon their creation; rather, the metamorphic properties act as built-in test oracles. We will also introduce an implementation framework called Amsterdam. Second, we will present a new type of testing called Metamorphic Runtime Checking. This involves the execution of metamorphic tests from within the application, i.e., the application launches its own tests, within its current context. The tests execute within the application's current state, and in particular check a function's metamorphic properties. We will also present a system called Columbus that supports the execution of the Metamorphic Runtime Checking from within the context of the running application. Like Amsterdam, it will conduct the tests with acceptable performance overhead, and will ensure that the execution of the tests does not affect the state of the original application process from the users' perspective; however, the implementation of Columbus will be more challenging in that it will require more sophisticated mechanisms for conducting the tests without pre-empting the rest of the application, and for comparing the results which may conceivably be in different processes or environments. Third, we will describe a set of metamorphic testing guidelines that can be followed to assist in the formulation and specification of metamorphic properties that can be used with the above approaches. These will categorize the different types of properties exhibited by many applications in the domain of machine learning and data mining in particular (as a result of the types of applications we will investigate), but we will demonstrate that they are also generalizable to other domains as well. This set of guidelines will also correlate to the different types of defects that we expect the approaches will be able to find
A Protocol for Systematic Literature Review on Methods to handle Multiple Concerns in Architecture-Based Self-Adaptive Systems
In this study we aim to identify, and summarize current methods handling multiple concerns in self-adaptive systems. Thus, we conduct a systematic literature review, which is a well-defined method to identify and evaluate studies in a specific domain regarding a particular set of research questions (Kitchenham & Charters, 2007). By performing a systematic literature review, we obtain a fair and unbiased evaluation of selected topic using a rigorous and reliable method