3,089 research outputs found

    Tools to support practical teaching of software engineering

    Get PDF
    Tese de mestrado integrado. Engenharia Informática e Computação. Faculdade de Engenharia. Universidade do Porto, Budapest University of Technology and Economics. 201

    How Software Developers Mitigate their Errors when Developing Code

    Get PDF
    Code remains largely hand-made by humans and, as such, writing code is prone to error. Many previous studies have focused on the technical reasons for these errors and provided developers with increasingly sophisticated tools. Few studies have looked in detail at why code errors have been made from a human perspective. We use Human Error Theory to frame our exploratory study and use semi-structured interviews to uncover a preliminary understanding of the errors developers make while coding. We look particularly at the skill-based errors reported by 27 professional software developers. We found that the complexity of the development environment is one of the most frequently reported reasons for errors. Maintaining concentration and focus on a particular task also underpins many developer errors. We found that developers struggle with effective mitigation strategies for their errors, reporting strategies largely based on improving their own willpower to concentrate better on coding tasks. We discuss how using Reason's Swiss Cheese model may help reduce errors during software development. This model ensures that layers of tool, process and management mitigation are in place to prevent developer errors from causing system failures

    VDM over PSP: A Pilot Course for VDM Beginners to Confirm its Suitability for Their Development

    Get PDF
    COMPSAC 2003, Dallas, Texas, November 03 - November 06. 2003Although formal methods seem to be useful, these is no clear way for beginners to know whether the methods are suit for them and for their problem domain, before using the methods in practice. We propose a method to confirm the suitability of a formal method. The method is realized as a pilot course based on the PSP. A course mentioned in this paper is designed for a typical formal method, VDM. Our course also helps beginners of VDM to learn VDM gradually and naturally. During the course, they can confirm its suitability as follows; First, they practice several exercises for software development, while techniques of VDM are introduced gradually. Second, process data and product data of software development are recorded in each exercise. Third, by evaluating these data by several metrics, they can confirm the suitability of VDM for their work.ArticleProceedings, 27th Annual International Computer Software and Applications Conference. 327-334 (2003)conference pape

    Ventures into Capturing Effort in Programming

    Get PDF
    The quest for teaching a method of data collection in programming experiences was marked with successes and failures. We believe that software development curricula must provide students with knowledge and experience related to the practice of data collection, which will measure the effort put into a software project. By recording their past effort in software projects, students can more accurately estimate the amount of effort and time required to complete a future software project. Students can also learn the amount of effort required to develop “correct” software and begin to estimate the amount of time required, per software phase, to fix errors. This paper recounts the educational challenges that were found in the quest to teach a method of gathering data called Personal Software Process (PSP) in the Computer Science curriculum at Southern Polytechnic State University (SPSU). After faculty training, a plan was devised for incorporation of PSP into the curriculum in stages. These stages began with a Pilot experience in the fall of 2000, a total incorporation in the first programming course in the spring of 2001, and incorporation into the second programming course in the fall of 2001. A method for assessment of this new ingredient was outlined. This paper shows the progressive venture into this quest and explains the findings and conclusion that were made regarding the data collecting method called PSP in our curriculum. Finally, future plans of incorporating alternative methods and the future of PSP elements into the curriculum with the assessment plans are discussed

    Applied Software Process Improvement

    Get PDF

    Towards a self-evolving software defect detection process

    Get PDF
    Software defect detection research typically focuses on individual inspection and testing techniques. However, to be effective in applying defect detection techniques, it is important to recognize when to use inspection techniques and when to use testing techniques. In addition, it is important to know when to deliver a product and use maintenance activities, such as trouble shooting and bug fixing, to address the remaining defects in the software.To be more effective detecting software defects, not only should defect detection techniques be studied and compared, but the entire software defect detection process should be studied to give us a better idea of how it can be conducted, controlled, evaluated and improved.This thesis presents a self-evolving software defect detection process (SEDD) that provides a systematic approach to software defect detection and guides us as to when inspection, testing or maintenance activities are best performed. The approach is self-evolving in that it is continuously improved by assessing the outcome of the defect detection techniques in comparison with historical data.A software architecture and prototype implementation of the approach is also presented along with a case study that was conducted to validate the approach. Initial results of using the self-evolving defect detection approach are promising

    Investigating Effective Inspection of Object-Oriented Code

    Get PDF
    Since the development of software inspection over twenty-five years ago it has become established as an effective means of detecting defects. Inspections were originally developed at a time when the procedural paradigm was dominant but, with the Object- Oriented (OO) paradigm growing in influence and use, there now exists a lack of guidance on how to apply inspections to OO systems. Object-oriented and procedural languages differ not only in their syntax but also in a number of more profound ways - the encapsulation of data and associated functionality, the common use of inheritance, and the concepts of polymorphism and dynamic binding. These factors influence the way that modules (classes) are created in OO systems, which in turn influences the way that OO systems are structured and execute. Failure to take this into account may hinder the application of inspections to OO code. This thesis shows that the way in which the objectoriented paradigm distributes related functionality can have a serious impact on code inspection and, to address this problem, it develops and empirically evaluates three code reading techniques
    corecore