31 research outputs found

    definitions, concepts, approaches, requirements, characteristics and evaluation models

    Get PDF
    FAPESP (processes 2012/24487-3 and 2012/04549-4) and Brazil-Europe Erasmus Mundus project (process BM13DM0002) partially funded this researchAmong research opportunities in software engineering for cloud computing model, interoperability stands out. We found that the dynamic nature of cloud technologies and the battle for market domination make cloud applications locked-id, i.e, proprietary, non-portable and non-interoperable. In general context of cloud computing, interoperability goes beyond communication between systems like in other fields, it goes in direction of more dynamic, heterogeneous, complex and composed applications that take advantage of best features from different providers and services simultaneously. Interoperability in cloud constitutes a great challenge that must be overcome for that, in the future, software be more dynamic and improved.publishersversionpublishe

    Test case quality: an empirical study on belief and evidence

    Full text link
    Software testing is a mandatory activity in any serious software development process, as bugs are a reality in software development. This raises the question of quality: good tests are effective in finding bugs, but until a test case actually finds a bug, its effectiveness remains unknown. Therefore, determining what constitutes a good or bad test is necessary. This is not a simple task, and there are a number of studies that identify different characteristics of a good test case. A previous study evaluated 29 hypotheses regarding what constitutes a good test case, but the findings are based on developers' beliefs, which are subjective and biased. In this paper we investigate eight of these hypotheses, through an extensive empirical study based on open software repositories. Despite our best efforts, we were unable to find evidence that supports these beliefs. This indicates that, although these hypotheses represent good software engineering advice, they do not necessarily mean that they are enough to provide the desired outcome of good testing code.Comment: 12 pages, 1 figure, 3 table

    Extensão da ferramenta MVCASE com serviços remotos de armazenamento e busca de artefatos de software.

    No full text
    Software reuse aims to increase productivity and to decrease time-to-market, through work optimization and avoiding effort duplication. In this context, two areas arise: Software Components and Computer-Aided Software Engineering (CASE). The Component-Based Development approach aims to offer ways to build more reusable software. The use of CASE seeks to reduce effort, by delegating part of the tasks to be performed by the computer, and to improve quality, by helping the Software Engineer to perform some tasks. Combining the ideas of software components and CASE, this dissertation presents an extension of MVCASE tool, an academic tool developed in UFSCar - Federal University of São Carlos, with remote services for storage and search for software artifacts, aiming to improve productivity and to reduce time and costs in software development.Universidade Federal de Sao CarlosA reutilização de software busca promover aumento na produtividade e redução de prazo de entrega de produtos de software, através da otimização do trabalho, evitando-se a duplicação desnecessária de esforço. Nesse contexto, duas áreas se destacam: componentes de software e engenharia de software assistida por computador (CASE). A abordagem de desenvolvimento baseado em componentes busca oferecer maneiras para se construir software mais reutilizável . O uso de CASE busca reduzir o esforço, delegando parte do trabalho para ser realizado pelo computador, e aumentar a qualidade, auxiliando o Engenheiro de Software nas tarefas de desenvolvimento. Combinando as idéias de componentes de software e CASE, esta dissertação apresenta uma extensão da ferramenta MVCASE, uma ferramenta acadêmica desenvolvida na UFSCar - Universidade Federal de São Carlos, com serviços remotos de armazenamento e busca de artefatos de software, buscando melhorar a produtividade e reduzir tempo e custos no desenvolvimento de software

    An investigation on the impact of MDE on software reuse

    No full text
    Abstract-Software reuse and model-driven engineering (MDE) are two distinct approaches that attempt to improve quality and productivity in software projects. Much is said about how MDE can increase software reuse by reducing the amount of hand-written code, but few studies consider the fact that in MDE other artifacts -models, tools, transformations and code generators -come into play and need to be considered. How much more reuse can we achieve with MDE? How reusable are these MDE-specific assets? Motivated by these questions, this paper presents the observations made in three exploratory studies. In each study, the same software was developed with and without MDE, and a comparison based on reuse metrics was made. The results indicate that MDE can increase and/or improve software reuse in different ways, but with some associated costs, such as increased software complexity and decreased maintainability. In the context of our observations, complex technical domains have more to gain from the automation achieved with MDE, while business domains seem to be more suitable for simpler featurebased configuration. We conclude the paper pointing out more studies that could be performed to gain additional knowledge regarding MDE and reuse

    Distributed Component-Based Software Development: An Incremental Approach

    No full text
    In spite of recent and constant researches in the Component-Based Development (CBD) area, there is still lack of patterns, approaches and methodologies that effectively support the development “for reuse ” as much as “with reuse”. Considering the accelerated growth of the Internet over the last decade, where distribution has become an essential non-functional requirement of most applications, the problem becomes bigger. This paper proposes an Incremental Approach that integrates the concepts of Component-Based Software Engineering (CBSE), frameworks, patterns, and distribution. This approach is divided into two stages: the development “for reuse”, and the development “with reuse”. A CASE tool is the main mechanism to apply this process model, supporting inclusively, the code generation of components and applications. An experimental study evaluates the viability of the use of an approach for the distributed component-based software development and the impact of applying it to a software development project

    MVCASE Tool – Working with Design Patterns

    No full text
    Working with design patterns can be considerably improved when using tools that help in pattern creation and application. However, there are several issues involved. For instance, a tool must offer mechanisms to help the Software Engineer to find the right patterns to a particular solution, or to identify and recognize patterns after they were applied. This paper presents the main requirements for these tools, and presents an extension of MVCASE tool to help Software Engineers to create and reuse design patterns in a high abstraction level during the software development process. The tool uses a distributed repository to store the patterns, and uses a code generator to automate most of the implementation process. 1

    The Draco Approach Revisited: Model-Driven Software Reuse

    No full text
    Abstract. Many software reuse approaches were proposed, most of them based on domain analysis, first investigated in 1980 by Neighbors and the Draco approach. He also investigated many concepts that are being currently revisited in model-driven development (MDD). Although conceptually valid, Draco had some problems, mainly in terms of practical applicability. This paper shows how these can now be solved using current state-of-the-art and practice MDD technologies, toward a model-driven software reuse approach. 1

    Orbitally Shaken Single-Use Bioreactors

    No full text
    In cloud computing, lock-in refers to the difficulty of porting an application from one platform to another. An example of such difficulty can be witnessed when porting an application from Platform-as-a-Service Google App Engine to Microsoft Azure. Differences in their implementations are substantial, yielding non-portable applications. Standardization could address this problem, but existing initiatives are still to be accepted. This paper addresses lock-in by proposing a model-driven engineering design approach that decouples platform specific code from the application logic. The resulting platform-independent models, as well as corresponding model transformations, can be reused to generate distinct platform-specific implementations, hence reducing the programming effort spent coding repetitive tasks. Such transformations can be made available for reuse on a repository for cloud providers. We have implemented transformations to handle persistence for Google App Engine and Azure, and discuss how model-driven engineering can reconcile the differences between features of the persistence models of GAE and Azure.FAPESP (processes 2012/24487-3 and 2012/04549-4)Coordination of Superior Level Staff Improvement - CAPESBrazil-Europe Erasmus Mundus project (process BM13DM0002
    corecore