43 research outputs found

    Requirements engineering aspects for sustainable eLearning systems

    Get PDF
    Sustainability in software engineering is about (1) continued functionality and maintainability in changing circumstances, and (2) functionality's effect on the surrounded environment, economic and people. Frequent changes of software requirements negatively affect sustainability of software systems. To reduce the number of requirements' changes and improve sustainability, sustainability requirements have to be considered from the beginning of the requirements engineering stage of software development. Sustainability in requirements engineering has five dimensions including individual, social, technical, economic and environmental dimensions. Most of the existing work analysed only one or two dimensions and ignore the interrelated effects among other dimensions. To address this issue, we selected eLearning systems because they provide comprehensive example to study. This thesis focuses on analysing sustainability requirements of eLearning systems with regard to the five sustainability dimensions. The following studies were performed: (1) identifying theoretically the sustainability requirements of eLearning systems, (2) investigating empirically the sustainability of eLearning systems, (3) constructing a methodology for the analysis and evaluation of sustainability requirements on eLearning systems, and (4) evaluating the constructed methodology. To the best of our knowledge, this is the first research conducted to investigate sustainability requirements of eLearning systems covering the five sustainability dimensions. Our findings highlighted that (1) technical, economic and environmental sustainability requirements are similar to other software domains, where individual and social sustainability requirements are specific for the domain of eLearning systems, (2) individual and social sustainability requirements need to be carefully considered and analysed together because of the strong correlation, and (3) culture and gender diversity play an important role for sustainability requirements. On this basis, we developed a framework for analysing sustainability requirements of software systems as well as a web-based tool SuSoftPro (the name stands from Software Sustainability Profiling) that allows requirements engineers to: investigate sustainability of software systems based on the systems' requirements, analyse the sustainability dimensions of software systems, measure the sustainability of each individual requirement, visualise analysis results to support decision making towards high-quality software, involve stakeholders to rate their requirements for one or more of the five sustainability dimensions, and manage requirement and stakeholder details easily. We evaluated the SuSoftPro framework through case studies, comparative evaluation and a quantitative questionnaire. Our framework successfully provides a comprehensive view of analysing sustainability requirements to improve the attention to sustainability and allow practitioners to develop sustainable software

    RML: Runtime Monitoring Language

    Get PDF
    Runtime verification is a relatively new software verification technique that aims to prove the correctness of a specific run of a program, rather than statically verify the code. The program is instrumented in order to collect all the relevant information, and the resulting trace of events is inspected by a monitor that verifies its compliance with respect to a specification of the expected properties of the system under scrutiny. Many languages exist that can be used to formally express the expected behavior of a system, with different design choices and degrees of expressivity. This thesis presents RML, a specification language designed for runtime verification, with the goal of being completely modular and independent from the instrumentation and the kind of system being monitored. RML is highly expressive, and allows one to express complex, parametric, non-context-free properties concisely. RML is compiled down to TC, a lower level calculus, which is fully formalized with a deterministic, rewriting-based semantics. In order to evaluate the approach, an open source implementation has been developed, and several examples with Node.js programs have been tested. Benchmarks show the ability of the monitors automatically generated from RML specifications to effectively and efficiently verify complex properties

    Requirements reuse and requirement patterns: a state of the practice survey

    Get PDF
    Context. Requirements engineering is a discipline with numerous challenges to overcome. One of these challenges is the implementation of requirements reuse approaches. Although several theoretical proposals exist, little is known about the practices that are currently adopted in industry. Objective. Our goal is to contribute to the investigation of the state of the practice in the reuse of requirements, eliciting current practices from practitioners, and their opinions whenever appropriate. Besides reuse in general, we focus on requirement patterns as a particular strategy to reuse. Method. We conducted an exploratory survey based on an online questionnaire. We received 71 responses from requirements engineers with industrial experience in the field, which were analyzed in order to derive observations. Results. Although we found that a high majority of respondents declared some level of reuse in their projects (in particular, non-functional requirements were identified as the most similar and recurrent among projects), it is true that only a minority of them declared such reuse as a regular practice. Larger IT organizations and IT organizations with well-established software processes and methods present higher levels of reuse. Ignorance of reuse techniques and processes is the main reason preventing wider adoption. From the different existing reuse techniques, the simplest ones based on textual copy and subsequent tailoring of former requirements are the most adopted techniques. However, participants who apply reuse more often tend to use more elaborate techniques. Opinions of respondents about the use of requirement patterns show that they can be expected to mitigate problems related to the quality of the resulting requirements, such as lack of uniformity, inconsistency, or ambiguity. The main reasons behind the lack of adoption of requirement patterns by practitioners (in spite of the increasing research approaches proposed in the community) are related to the lack of a well-defined reuse method and involvement of requirement engineers.Peer ReviewedPostprint (author's final draft

    Queensland University of Technology: Annual Report 2010

    Get PDF
    Our annual report provides an evaluation of our performance and achievements during the previous year, measured against our goals and strategic plans. It documents our performance in the three key areas of: teaching and learning research community service. The report includes a summary of financial performance and a copy of our audited accounts

    A Taxonomy for Requirements Engineering and Software Test Alignment

    Full text link
    Requirements Engineering and Software Testing are mature areas and have seen a lot of research. Nevertheless, their interactions have been sparsely explored beyond the concept of traceability. To fill this gap, we propose a definition of requirements engineering and software test (REST) alignment, a taxonomy that characterizes the methods linking the respective areas, and a process to assess alignment. The taxonomy can support researchers to identify new opportunities for investigation, as well as practitioners to compare alignment methods and evaluate alignment, or lack thereof. We constructed the REST taxonomy by analyzing alignment methods published in literature, iteratively validating the emerging dimensions. The resulting concept of an information dyad characterizes the exchange of information required for any alignment to take place. We demonstrate use of the taxonomy by applying it on five in-depth cases and illustrate angles of analysis on a set of thirteen alignment methods. In addition, we developed an assessment framework (REST-bench), applied it in an industrial assessment, and showed that it, with a low effort, can identify opportunities to improve REST alignment. Although we expect that the taxonomy can be further refined, we believe that the information dyad is a valid and useful construct to understand alignment

    Qualitative and semi-quantitative modelling and simulation of the software engineering processes

    Full text link
    Software process modelling has been identified as being a vehicle for understanding development processes, controlling development costs, duration, and achieving product quality. In recent years, software process simulation has been becoming one of the essential techniques for effectively investigating and managing software development processes. Till now, most researches focus on the quantitative aspects of process simulation and modelling. Nevertheless, purely quantitative process modelling requires a very detailed understanding and accurate measurement of the software process, which relies on reliable and precise historical data. When such data are lacking or the quality is dubious, quantitative models have to impose severe constraints that restrict the model's value. Unfortunately, these data are not readily available in most cases, especially in the organisations at low process maturity levels. In addition, software development is a highly complex, human-centred endeavour, which involves many uncertain factors in the course of development process. Facing the inherent uncertainty and contingency, though quantitative modelling employs statistic techniques, its conditional capability and underlying assumptions limit its performance on large scale problems. As the alternatives of quantitative approaches, qualitative modelling can cope with a lack of complete knowledge, and predicts qualitative process behaviours. Furthermore, semi-quantitative modelling offers the capability of handling process uncertainty with limited knowledge, and achieves tradeoff between quantitative and qualitative approaches. However, most previous researches omitted these approaches, and the associated methods and applications are far from developed. The main contribution of this research lies in the pioneering work on the models, methods, and applications of qualitative and semi-quantitative software process modelling and simulation, and their relations with the conventional, quantitative modelling approaches. This dissertation produces its novelty from twofold research. Firstly, it explores methods and techniques to qualitatively and semi-quantitatively model and simulate software processes at different levels, i.e. project, portion of development process, and product evolution. Secondly, Some exclusive applications of these modelling approaches are also developed for aspects of software engineering practice. Moreover, a proposed framework integrates these approaches with typical quantitative paradigms to guide the adoption of process simulation modelling in software organisations. As a comprehensive reflection of state-of-the-art of software process simulation modelling, a systematic review is reported in this dissertation as well

    An improved requirement change management model for agile software development

    Get PDF
    Business requirements for software development projects are volatile and continuously need improvement. Hence, popularity of Agile methodology increases as it welcomes requirement changes during the Agile Software Development (ASD). However, existing models merely focus on change of functional requirements that are not adequate to achieve software sustainability and support change requirement processes. Therefore, this study proposes an improved Agile Requirement Change Management (ARCM) Model which provides a better support of non-functional requirement changes in ASD for achieving software sustainability. This study was carried out in four phases. Phase one is a theoretical study that examined the important issues and practices of requirement change in ASD. Then, in phase two, an exploratory study was conducted to investigate current practices of requirement changes in ASD. The study involved 137 software practitioners from Pakistan. While in phase three, the findings from the previous phases were used to construct the ARCM model. The model was constructed by adapting Plan-Do-Check-Act (PDCA) method which consists of four 4 stages. Every stage provides well-defined aims, processes, activities, and practices. Finally, the model was evaluated by using expert review and case study approaches. There were six experts involved to verify the model and two case studies which involved two software companies from Pakistan were carried out to validate the applicability of the proposed model. The study proposes the ARCM model that consists of three main components: sustainability characteristics for handling non-functional requirements, sustainability analysis method for performing impact and risk analysis and assessment mechanism of ARCM using Goal Question Metrics (GQM) method. The evaluation result shown that the ARCM Model gained software practitioners’ satisfaction and able to be executed in a real environment. From the theoretical perspective, this study introduces the ARCM Model that contributed to the field of Agile Requirement Management, as well as the empirical findings that focused on the current issues, challenges and practices of RCM. Moreover, the ARCM model provides a solution for handling the nonfunctional requirements changes in ASD. Consequently, these findings are beneficial to Agile software practitioners and researchers to ensure the software sustainability are fulfilled hence empowers the companies to improve their value delivery

    A framework for active software engineering ontology

    Get PDF
    The passive structure of ontologies results in the ineffectiveness to access and manage the knowledge captured in them. This research has developed a framework for active Software Engineering Ontology based on a multi-agent system. It assists software development teams to effectively access, manage and share software engineering knowledge as well as project information to enable effective and efficient communication and coordination among teams. The framework has been evaluated through the prototype system as proof-of-concept experiments
    corecore