2,582 research outputs found

    Quality Assurance of Software Models - A Structured Quality Assurance Process Supported by a Flexible Tool Environment in the Eclipse Modeling Project

    Get PDF
    The paradigm of model-based software development (MBSD) has become more and more popular since it promises an increase in the efficiency and quality of software development. In this paradigm, software models play an increasingly important role and software quality and quality assurance consequently leads back to the quality and quality assurance of the involved models. The fundamental aim of this thesis is the definition of a structured syntax-oriented process for quality assurance of software models that can be adapted to project-specific and domain-specific needs. It is structured into two sub-processes: a process for the specification of project-specific model quality assurance techniques, and a process for applying them on concrete software models within a MBSD project. The approach concentrates on quality aspects to be checked on the abstract model syntax and is based on quality assurance techniques model metrics, smells, and refactorings well-known from literature. So far, these techniques are mostly considered in isolation only and therefore the proposed process integrates them in order to perform model quality assurance more systematically. Three example cases performing the process serve as proof-of-concept implementations and show its applicability, its flexibility, and hence its usefulness. Related to several issues concerning model quality assurance minor contributions of this thesis are (1) the definition of a quality model for model quality that consists of high-level quality attributes and low-level characteristics, (2) overviews on metrics, smells, and refactorings for UML class models including structured descriptions of each technique, and (3) an approach for composite model refactoring that concentrates on the specification of refactoring composition. Since manually reviewing models is time consuming and error prone, several tasks of the proposed process should consequently be automated. As a further main contribution, this thesis presents a flexible tool environment for model quality assurance which is based on the Eclipse Modeling Framework (EMF), a common open source technology in model-based software development. The tool set is part of the Eclipse Modeling Project (EMP) and belongs to the Eclipse incubation project EMF Refactor which is available under the Eclipse public license (EPL). The EMF Refactor framework supports both the model designer and the model reviewer by obtaining metrics reports, by checking for potential model deficiencies (called model smells) and by systematically restructuring models using refactorings. The functionality of EMF Refactor is integrated into standard tree-based EMF instance editors, graphical GMF-based editors as used by Papyrus UML, and textual editors provided by Xtext. Several experiments and studies show the suitability of the tools for supporting the techniques of the structured syntax-oriented model quality assurance process

    Software Evolution for Industrial Automation Systems. Literature Overview

    Get PDF

    Structured software development with the IPIDDDT method - A lean method for small agile organizations

    Get PDF
    A software development process is a predetermined sequence of steps to create a piece of software. A software development process is used, so that an implementing organization could gain significant benefits. The benefits for software development companies, that can be attributed to software process improvement efforts, are improved predictability in the development effort and improved quality software products. The implementation, maintenance, and management of a software process as well as the software process improvement efforts are expensive. Especially the implementation phase is expensive with a best case scenario of a slow return on investment. Software processes are rare in very small software development companies because of the cost of implementation and an improbable return on investment. This study presents a new method to enable benefits that are usually related to software process improvement to small companies with a low cost. The study presents reasons for the development of the method, a description of the method, and an implementation process for the method, as well as a theoretical case study of a method implementation. The study's focus is on describing the method. The theoretical use case is used to illustrate the theory of the method and the implementation process of the method. The study ends with a few conclusions on the method and on the method's implementation process. The main conclusion is that the method requires further study as well as implementation experiments to asses the value of the method.Siirretty Doriast

    Embedding Requirements within the Model Driven Architecture

    Get PDF
    The Model Driven Architecture (MDA) brings benefits to software development, among them the potential for connecting software models with the business domain. This paper focuses on the upstream or Computation Independent Model (CIM) phase of the MDA. Our contention is that, whilst there are many models and notations available within the CIM Phase, those that are currently popular and supported by the Object Management Group (OMG), may not be the most useful notations for business analysts nor sufficient to fully support software requirements and specification. Therefore, with specific emphasis on the value of the Business Process Modelling Notation (BPMN) for business analysts, this paper provides an example of a typical CIM approach before describing an approach which incorporates specific requirements techniques. A framework extension to the MDA is then introduced; which embeds requirements and specification within the CIM, thus further enhancing the utility of MDA by providing a more complete method for business analysis

    Evolution of ecosystems for Language-Driven Engineering

    Get PDF
    Language-Driven Engineering (LDE) is a means to model-driven software development by creating Integrated Modeling Environments (IMEs) with Domain/Purpose-Specific Languages (PSLs), each tailored towards a specific aspect of the respective system to be modeled, thereby taking the specific needs of developers and other stakeholders into account. Combined with the powerful potential of full code generation, these IMEs can generate complete executable software applications from descriptive models. As these products themselves may again be IMEs, this approach leads to LDE Ecosystems of modeling environments with meta-level dependencies. This thesis describes new challenges emerging from changes that affect single components, multiple parts or even the whole LDE ecosystem. From a top-down perspective, this thesis discusses the necessary support by language definition technology to ensure that corresponding IMEs can be validated, generated and tested on demand. From a bottom-up perspective, the formulation of change requests, their upwards propagation and generalization is presented. Finally, the imposed cross-project knowledge sharing and transfer is motivated, fostering interdisciplinary teamwork and cooperation. Based on multifaceted contributions to full-blown projects on different meta-levels of an exemplary LDE ecosystem, this thesis presents specific challenges in creating and continuously evolving LDE ecosystems and deduces a concept of PUTD effects to systematically address various dynamics and appropriate actions to manage both product-level requests that propagate upwards in the meta-level hierarchy as well as the downward propagation of changes to ensure product quality and adequate migration of modeled artifacts along the dependency paths. Finally, the effect of language-driven modeling on the increasingly blurred line between building and using software applications is illustrated to emphasize that the distinction between programming and modeling becomes a mere matter of perspective

    Context-aware Process Management for the Software Engineering Domain

    Get PDF
    Historically, software development projects are challenged with problems concerning budgets, deadlines and the quality of the produced software. Such problems have various causes like the high number of unplanned activities and the operational dynamics present in this domain. Most activities are knowledge-intensive and require collaboration of various actors. Additionally, the produced software is intangible and therefore difficult to measure. Thus, software producers are often insufficiently aware of the state of their source code, while suitable software quality measures are often applied too late in the project lifecycle, if at all. Software development processes are used by the majority of software companies to ensure the quality and reproducibility of their development endeavors. Typically, these processes are abstractly defined utilizing process models. However, they still need to be interpreted by individuals and be manually executed, resulting in governance and compliance issues. The environment is sufficiently dynamic that unforeseen situations can occur due to various events, leading to potential aberrations and process governance issues. Furthermore, as process models are implemented manually without automation support, they impose additional work for the executing humans. Their advantages often remain hidden as aligning the planned process with reality is cumbersome. In response to these problems, this thesis contributes the Context-aware Process Management (CPM) framework. The latter enables holistic and automated support for software engineering projects and their processes. In particular, it provides concepts for extending process management technology to support software engineering process models in their entirety. Furthermore, CPM contributes an approach to integrate the enactment of the process models better with the real-world process by introducing a set of contextual extensions. Various events occurring in the course of the projects can be utilized to improve process support and activities outside the realm of the process models can be covered. That way, the continuously growing divide between the plan and reality that often occurs in software engineering projects can be avoided. Finally, the CPM framework comprises facilities to better connect the software engineering process with other important aspects and areas of software engineering projects. This includes automated process-oriented support for software quality management or software engineering knowledge management. The CPM framework has been validated by a prototypical implementation, various sophisticated scenarios, and its practical application at two software companies

    Service-Oriented Architecture (SOA), Agile Development Methods and Quality Assurance (QA) : a case study

    Get PDF
    Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.Este trabalho propõe um framework batízado de NatVI e apresenta um estudo de caso que lidam com a interface entre Service-Oriented Architecture (SOA). Agile Development e Quality Assurance (QA). O framework NatVI busca apresentar uma solução para todo o ciclo de desenvolvimento de software. neste caso com foco em aplicações baseadas em serviços. NatVI foi resultado de uma revisão da literatura onde os 'trade off' conhecidos entre SOA e Métodos Ágeis foram identificados e as soluções possíveis avaliadas e incorporadas ao produto final Também foram consideradas as melhores práticas baseadas tanto nos princípios de SOA quando nos princípios ágeis. Muito importante neste cenário foi não perder QA de vista. uma necessidade intrínseca aos projetos de software. Tudo isso para responder ao aumento no dinamismo dos ambientes de negócios que está aumentando a cada dia devido ao próprio dinamismo do avanço tecnológico. As organizações são chamadas a entregar valores com rapidez e confiança neste ambiente onde as possibilidades de soluções evoluem quase que diariamente. E os governos não são diferentes, obrigados a prestar mais e melhores serviços aos cidadãos e às empresas. O governo brasileiro não é uma exceção. As formas tradicionais de pensar o processo de engenharia de software vêm apresentando algumas dificuldades para lidar com este novo cenário. principalmente porque não são adequadas para lidar com constantes mudanças nos requisitos e entregas rápidas, conceitos que SOA e Métodos de Desenvolvimento Ágeis prometem ser capazes de responder. O estudo de caso foi realizado em uma pequena unidade do governo federal brasileiro. Um órgão responsável pela supervisão de um campo de interesse institucional para o país. O framework NatVI proposto foi aplicado em um ambiente onde SOA já estava em uso, apesar de ínslpiente. O estudo de caso avaliou a evolução da qualidade de software por meio do acompanhamento de métricas de erro no código fonte Avaliou a evolução do entendimento sobre os métodos ágeis bem como o engajamento no processo por parte da equipe de desenvolvimento. Avaliou ainda a satisfação dos clientes com o novo processo de desenvolvimento. Durante o estudo de caso. aproveitou-se um treinamento em desenvolvimento ágil que foi ministrado pela instituição à equipe e TI e alguns clientes Algumas limitações foram identificadas. Por exemplo, o tamanho da equipe de TI envolvida e a quantidade de clientes que participaram foi considerada pequena para uma inferência estatística Uma avaliação subjetiva teve que ser feita para melhorar o entendimento dos números. Desta forma, entrevistas semiestruturada foram feitas. Os resultados encontrados indicam que o caminho é promissor. mas indica também que muitos estudos ainda necessitam ser feitos, o que não é ruim, pois abre um campo vasto para pesquisas, ainda mais considerando outros ingredientes que foram identificados durante este trabalho. que podem muito bem fazer parte de estudos futuros. como containers e DevOps, por exemplo.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES).This work proposes a framework named NatVI and presents a case study that deals with the interface between the Service-Oríented Architecture (SOA) with Agile Development Methods and Qualíty Assurance (QA). The NatVI framework seeks to present a solution for the entire software development cycle, in this case focusing on service-based applications. The framework was the result of a literature review where the known trade-offs between SOA and Agile Methods were identified and the possible solutions evaluated and incorporated unto the final product. Best practices based on both the SOA principles and agile principles were also considered. It was very important in this scenario not to cose QA of view, an intrinsic need for software projects. All this to respond to the increase in the dynamism of business environments that ís increasing every day due to the very dynamism of technological advancement. Organizations are called to deliver values quickly and confidently in this environment where solutíons possibilities evolve almost daily. And governments are no different. obliged to provide more and better services to citizens and busínesses. The Brazilian government is no exception. The traditional ways of thinking the software engineering process have presented some difficulties in dealing with this new scenario. mainly because they are not adequate to deal with constant changes in requirements and fast deliveries. concepts that SOA and Agite Development Methods promise to be able to respond. The case study was carríed out in a small unit of the Brazilian federal government. A unit that is responsible for supervisíng a field of institutional interest to the country. The proposed NatVI framework was applied in an environment where SOA was already in use, though ít was insipid The case study evaluated the evolution of software quality through the monitoring of errar metrics in the source cede. It evaluated the evolution of the understandíng of the agíle methods as well as the engagement in the process by the development team. It also evaluated customer satisfaction with the new development process. During the case study, an agile development training was used that was given by the institution to the team and IT and some clíents. Some limitations have been identified. For example, the size of the IT staff involved and the number of customers who partícipated was considered small for an inference statistics. A subjective assessment had to be made to improve the understanding of numbers. In this way. semi- structured interviews were made. The results indicate that the way ís promising, but it also índicates that many studíes still need to be done. which ís not bad, lince it opens up a vast fleld for research. even more considering other concepts that were identlfied during this work, which can greatly well be part of future studies. such as containers and DevOps, for example
    corecore