7 research outputs found

    Coordinating distributed software development projects with integrated process modelling and enactment environments

    Get PDF
    Coordinating distributed software development projects becomes more difficult, as software becomes more complex, team sizes and organisational overheads increase, and software components are sourced from disparate places. We describe the development of a range of software tools to support coordination of such projects. Techniques we use include asynchronous and semi-synchronous editing, software process modelling and enactment, developer-specified coordination agents, and componentbased tool integration

    Coordinating Distributed Software Development Projects with Integrated Process Modelling and Enactment Environments

    No full text
    Coordinating distributed software development projectsbecomes more difficult, as software becomes more complex, team sizes and organisational overheads increase,and software components are sourced from disparate places. We describe the development of a range of softwaretools to support coordination of such projects. Techniques we use include asynchronous and semi -synchronousediting, software process modelling and enactment, developer-specified coordination agents, and component-based tool integration

    Coordinating distributed software development projects with integrated process modelling and enactment environments

    No full text

    Software Development Process Modeling. Developers Perspective to Contemporary Modeling Techniques

    Get PDF
    Formal software development processes and well-defined development methodologies are nowadays seen as the definite way to produce high-quality software within time-limits and budgets. The variety of such high-level methodologies is huge ranging from rigorous process frameworks like CMMI and RUP to more lightweight agile methodologies. The need for managing this variety and the fact that practically every software development organization has its own unique set of development processes and methods have created a profession of software process engineers. Different kinds of informal and formal software process modeling languages are essential tools for process engineers. These are used to define processes in a way which allows easy management of processes, for example process dissemination, process tailoring and process enactment. The process modeling languages are usually used as a tool for process engineering where the main focus is on the processes themselves. This dissertation has a different emphasis. The dissertation analyses modern software development process modeling from the software developers’ point of view. The goal of the dissertation is to investigate whether the software process modeling and the software process models aid software developers in their day-to-day work and what are the main mechanisms for this. The focus of the work is on the Software Process Engineering Metamodel (SPEM) framework which is currently one of the most influential process modeling notations in software engineering. The research theme is elaborated through six scientific articles which represent the dissertation research done with process modeling during an approximately five year period. The research follows the classical engineering research discipline where the current situation is analyzed, a potentially better solution is developed and finally its implications are analyzed. The research applies a variety of different research techniques ranging from literature surveys to qualitative studies done amongst software practitioners. The key finding of the dissertation is that software process modeling notations and techniques are usually developed in process engineering terms. As a consequence the connection between the process models and actual development work is loose. In addition, the modeling standards like SPEM are partially incomplete when it comes to pragmatic process modeling needs, like light-weight modeling and combining pre-defined process components. This leads to a situation, where the full potential of process modeling techniques for aiding the daily development activities can not be achieved. Despite these difficulties the dissertation shows that it is possible to use modeling standards like SPEM to aid software developers in their work. The dissertation presents a light-weight modeling technique, which software development teams can use to quickly analyze their work practices in a more objective manner. The dissertation also shows how process modeling can be used to more easily compare different software development situations and to analyze their differences in a systematic way. Models also help to share this knowledge with others. A qualitative study done amongst Finnish software practitioners verifies the conclusions of other studies in the dissertation. Although processes and development methodologies are seen as an essential part of software development, the process modeling techniques are rarely used during the daily development work. However, the potential of these techniques intrigues the practitioners. As a conclusion the dissertation shows that process modeling techniques, most commonly used as tools for process engineers, can also be used as tools for organizing the daily software development work. This work presents theoretical solutions for bringing the process modeling closer to the ground-level software development activities. These theories are proven feasible by presenting several case studies where the modeling techniques are used e.g. to find differences in the work methods of the members of a software team and to share the process knowledge to a wider audience.Siirretty Doriast

    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

    Distributed agile patterns : an approach to facilitate agile adoption in offshore software development

    Get PDF
    Over a decade, companies have been using agile methods for the development of software. However with the increasing trends of offshore software development, companies are becoming more interested in using agile methods for such projects. While offshore development has several dynamic benefits such as cost reduction, flexibility, proximity to market, concentration on core processes and easy access to talent, they have introduced new challenges, such as trust, socio-cultural, communication and coordination, and knowledge transfer issues. These challenges not only affect the development process but also affect the applicability of agile practices in offshore development. As a consequence, companies have been modifying and adapting agile practices to overcome these challenges. However there has been little effort put to collect and document the common practices that have been used repeatedly to solve recurring problems in offshore development. Using the systematic literature review approach and applying customised search criteria based on the research questions, we identified and reviewed over 200 cases from literature. As part of this research we also conducted semi-structured interviews, in which we involved practicing professionals who were working with distributed teams. As a result, we identified and documented a number of solutions to address the common agile issues in software development, which we classified as distributed agile patterns. This research presents the challenges caused by offshore development, how they affect the applicability of agile practices in offshoring. We have then developed a catalogue containing the identified fifteen distributed agile patterns and have classified them into four categories. We have used a case study to explain how these patterns can be applied in offshore software development. To verify and validate our catalogue, we conducted a reflection workshop, in which we invited professionals to review and comment on the patterns. The participants engaged in reviewing the patterns and gave constructive feedback, which helped in improving the catalogue. Based on their feedback, the distributed agile patterns catalogue was finalised. The catalogue can help practitioners make a more informed decision while choosing agile for their offshore projects
    corecore