210,604 research outputs found

    Software Engineering Using design RATionale

    Get PDF
    For a number of years, members of the Artificial Intelligence (AI) in Design community have studied Design Rationale (DR), the reasons behind decisions made while designing. DR is invaluable as an aid for revising, maintaining, documenting, evaluating, and learning the design. The presence of DR would be especially valuable for software maintenance. The rationale would provide insight into why the system is the way it is by giving the reasons behind the design decisions, could help to indicate where changes might be needed during maintenance if design goals change, and help the maintainer avoid repeating earlier mistakes by explicitly documenting alternatives that were tried earlier that did not work. Unfortunately, while everyone agrees that design rationale is useful, it is still not used enough in practice. Possible reasons for this are that the uses proposed for rationale are not compelling enough to justify the effort involved in its capture and that there are few systems available to support rationale use and capture. We have addressed this problem by developing and evaluating a system called SEURAT (Software Engineering Using RATionale) which integrates with a software development environment and goes beyond mere presentation of rationale by inferencing over it to check for completeness and consistency in the reasoning used while a software system is being developed and maintained. We feel that the SEURAT system will be invaluable during development and maintenance of software systems. During development, SEURAT will help the developers ensure that the systems they build are complete and consistent. During maintenance, SEURAT will provide insight into the reasons behind the choices made by the developers during design and implementation. The benefits of DR are clear but only with appropriate tool support, such as that provided by SEURAT, can DR live up to its full potential as an aid for revising, maintaining, and documenting the software design and implementation

    Evaluating the Weekly-Assessed Tutorial Sheet approach to assessment: background, pedagogy and impact

    Get PDF
    This paper presents the results of using student-unique, weekly-assessed tasks to overcome a low examination performance in a first-year engineering module. In this instance, the weekly assessment tasks were created by off-the-shelf and bespoke software to form an integrated computer-assisted assessment (CAA) programme. This programme set, delivered, collected, marked and provided prompt feedback on the students’ work. The CAA was a set of student-unique Weekly-Assessed Tutorial Sheets (WATS). The rationale for the modified assessment strategy is presented together with the examination performance figures before and after the introduction of WATS.Peer reviewe

    The effects of change decomposition on code review -- a controlled experiment

    Get PDF
    Background: Code review is a cognitively demanding and time-consuming process. Previous qualitative studies hinted at how decomposing change sets into multiple yet internally coherent ones would improve the reviewing process. So far, literature provided no quantitative analysis of this hypothesis. Aims: (1) Quantitatively measure the effects of change decomposition on the outcome of code review (in terms of number of found defects, wrongly reported issues, suggested improvements, time, and understanding); (2) Qualitatively analyze how subjects approach the review and navigate the code, building knowledge and addressing existing issues, in large vs. decomposed changes. Method: Controlled experiment using the pull-based development model involving 28 software developers among professionals and graduate students. Results: Change decomposition leads to fewer wrongly reported issues, influences how subjects approach and conduct the review activity (by increasing context-seeking), yet impacts neither understanding the change rationale nor the number of found defects. Conclusions: Change decomposition reduces the noise for subsequent data analyses but also significantly supports the tasks of the developers in charge of reviewing the changes. As such, commits belonging to different concepts should be separated, adopting this as a best practice in software engineering

    Development of Deformation Monitoring System of an Engineering Structure using Reflectorless Total Station

    Get PDF
    The rationale ofFinal Year Project (FYP) is to develop student's ability in the process oflearning and applying knowledge in the area ofinterest with minimum guidance and supervision. This FYP entitled 'Development ofDeformation Monitoring System ofan Engineering Structure using Reflectorless Total Station' is basically preparing appropriate system from hardware and software aspect for deformation of engineering structure with the aid of reflectorless total station. Deformation of engineering structure is measured to ensure that the structure is exhibiting safe deformation behaviour. The engineering structure selected to assess the workability of the system was the UTP Academic Complex Canopy. The deformation data collected will be processed and analysed by developed computer system. The results will demonstrate if movement occurred on selected structure and give warning when the movement is critical. At the end if the project is realistic and reasonable, the developed system can be used for monitoring deformation work of other engineering structures

    Rationale Management Challenges in Requirements Engineering

    Get PDF
    Rationale and rationale management have been playing an increasingly prominent role in software system development mainly due to the knowledge demand during system evaluation, maintenance, and evolution, especially for large and complex systems. The rationale management for requirements engineering, as a commencing and critical phase in software development life cycle, is still under-exploited. In this paper, we first survey briefly the state-of-the-art on rationale employment and applications in requirements engineering. Secondly, we identify the challenges in integrating rationale management in requirements engineering activities in order to promote further investigations and define a research agenda on rationale management in requirements engineering.

    Rationale in Development Chat Messages: An Exploratory Study

    Full text link
    Chat messages of development teams play an increasingly significant role in software development, having replaced emails in some cases. Chat messages contain information about discussed issues, considered alternatives and argumentation leading to the decisions made during software development. These elements, defined as rationale, are invaluable during software evolution for documenting and reusing development knowledge. Rationale is also essential for coping with changes and for effective maintenance of the software system. However, exploiting the rationale hidden in the chat messages is challenging due to the high volume of unstructured messages covering a wide range of topics. This work presents the results of an exploratory study examining the frequency of rationale in chat messages, the completeness of the available rationale and the potential of automatic techniques for rationale extraction. For this purpose, we apply content analysis and machine learning techniques on more than 8,700 chat messages from three software development projects. Our results show that chat messages are a rich source of rationale and that machine learning is a promising technique for detecting rationale and identifying different rationale elements.Comment: 11 pages, 6 figures. The 14th International Conference on Mining Software Repositories (MSR'17

    An Exploratory Study on the Characteristics of Logging Practices in Mobile Apps: A Case Study on F-Droid

    Get PDF
    Logging is a common practice in software engineering. Prior research has investigated the characteristics of logging practices in system software (e.g., web servers or databases) as well as desktop applications. However, despite the popularity of mobile apps, little is known about their logging practices. In this thesis, we sought to study logging practices in mobile apps. In particular, we conduct a case study on 1,444 open source Android apps in the F-Droid repository. Through a quantitative study, we find that although mobile app logging is less pervasive than server and desktop applications, logging is leveraged in almost all studied apps. However, we find that there exist considerable differences between the logging practices of mobile apps and the logging practices in server and desktop applications observed by prior studies. In order to further understand such differences, we conduct a firehouse email interview and a qualitative annotation on the rationale of using logs in mobile app development. By comparing the logging level of each logging statement with developers' rationale of using the logs, we find that all too often (35.4%), the chosen logging level and the rationale are inconsistent. Such inconsistency may prevent the useful runtime information to be recorded or may generate unnecessary logs that may cause performance overhead. Finally, to understand the magnitude of such performance overhead, we conduct a performance evaluation between generating all the logs and not generating any logs in eight mobile apps. In general, we observe a statistically significant performance overhead based on various performance metrics (response time, CPU and battery consumption). In addition, we find that if the performance overhead of logging is significantly observed in an app, disabling the unnecessary logs indeed provides a statistically significant performance improvement. Our results show the need for a systematic guidance and automated tool support to assist in mobile logging practices

    The development of Knowledge-Shelf to support the generation of a set-based design of Surface Jet Pump

    Get PDF
    Set-based Concurrent Engineering (SBCE) is advocated in order to provide an environment where design space is explored thoroughly leading to enhanced innovation. This is achieved by considering an alternative set of solutions after gaining knowledge to narrow down the solutions until the optimal solution is reached. Knowledge provision is essential in SBCE application. Hence there is a need for a tool that provides appropriate knowledge environment to enable SBCE and supports it in taking right decisions. At the same time there is a need to capture the rationale of the alternative design decisions taken during the process of narrowing down the set of the design in the SBCE environment. These decision rationales constitute important knowledge to be re-used in developing new products. In this research the tool designed to address this research rationale is called Knowledge-Shelf (K-Shelf). This paper and its outcome serve the groundwork for the development of K-Shelf software that captures knowledge and in generating the first design set in SBCE environment based on previous knowledge documented. This paper is a collaborative work from a case study of Surface Jet Pump (SJP) between the LeanPPD research group in Cranfield University and Caltec Ltd, a company that provides engineering solutions to the oil and gas industry. The K-Shelf was developed using rapid web application development tool - Oracle APE

    A Survey on Documenting and Using Design Rationale when Developing Domain-specific Modeling Languages

    Get PDF
    This document reports on the results of a survey which is part of a long-term research project conducted at the Institute for Information Systems and New Media at the Vienna University of Economics and Business (WU Vienna) and which targeted experts on domain-pecific modeling languages (DSMLs). We define a DSML as being a specialized modeling language tailored primarily for graphical modeling tasks in a particular application domain, supporting the model-driven development (MDD) of software systems for this domain. As a special kind of domain-specific languages (DSLs), DSMLs provide end users with at least one graphical or diagrammatic concrete syntax; in contrast to textual or form/table-based DSLs, for instance. We asked DSML experts identified via dedicated scientific venues (e.g. authors of published articles, program committee members of conferences, associate editors of journals) to take part in the survey. Venues included premier outlets for researchers and practitioners in the field of MDD and DSMLs, such as, the ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MoDELS) or the International Journal on Software and Systems Modeling (SoSyM). With this survey, we collected expert opinions on different aspects of documenting and using design rationale when developing DSMLs. In the context of DSML development, design rationale is the reasoning and justification of decisions made when designing, creating, and using the core artifacts of a DSML (e.g. abstract and concrete syntax, behavior specification, metamodeling infrastructure, MDD tool chain). (authors' abstract)Series: Technical Reports / Institute for Information Systems and New Medi
    corecore