4 research outputs found

    Architectural specification and optimal deployment of distributed systems

    No full text
    The tasks of architecting, deploying and managing a distributed system are related, but they are generally performed independently. Architectural design is essential for complex distributed applications, and it substantially impacts the deployment of the complete system. Architectural specifications define the key aspects of the system, including distributability, scalability and extensibility, and target platforms and networks. Such specifications constrain, and in some cases determine, the possible system deployment patterns in a distributed environment. It is important to understand the impact of architecture on system deployment and architectural specifications should provide some means for quantifying the efficiency of possible deployments. Towards this end, we have developed an integrated graphical and textual specification framework, called I5 , that organizes the information about a system at multiple levels of abstraction. The specifications address the interface, implementation, integration, instantiation and installation aspects of a system, including both software and hardware features. We extended the framework with parameters used to automate the derivations of optimized system deployment with respect to different parameters; the optimization of the deployment is done using a binary integer programming model.

    What Makes Agile Software Development Agile

    Get PDF
    Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders\u27 collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile In this article, we investigate the question: what makes a software development method agile We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15%). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research
    corecore