2,145 research outputs found

    Change decision support:extraction and analysis of late architecture changes using change characterization and software metrics

    Get PDF
    Software maintenance is one of the most crucial aspects of software development. Software engineering researchers must develop practical solutions to handle the challenges presented in maintaining mature software systems. Research that addresses practical means of mitigating the risks involved when changing software, reducing the complexity of mature software systems, and eliminating the introduction of preventable bugs is paramount to today’s software engineering discipline. Giving software developers the information that they need to make quality decisions about changes that will negatively affect their software systems is a key aspect to mitigating those risks. This dissertation presents work performed to assist developers to collect and process data that plays a role in change decision-making during the maintenance phase. To address these problems, developers need a way to better understand the effects of a change prior to making the change. This research addresses the problems associated with increasing architectural complexity caused by software change using a twoold approach. The first approach is to characterize software changes to assess their architectural impact prior to their implementation. The second approach is to identify a set of architecture metrics that correlate to system quality and maintainability and to use these metrics to determine the level of difficulty involved in making a change. The two approaches have been combined and the results presented provide developers with a beneficial analysis framework that offers insight into the change process

    A Research-Based Curriculum for Teaching the Photoelectric Effect

    Get PDF
    Physics faculty consider the photoelectric effect important, but many erroneously believe it is easy for students to understand. We have developed curriculum on this topic including an interactive computer simulation, interactive lectures with peer instruction, and conceptual and mathematical homework problems. Our curriculum addresses established student difficulties and is designed to achieve two learning goals, for students to be able to (1) correctly predict the results of photoelectric effect experiments, and (2) describe how these results lead to the photon model of light. We designed two exam questions to test these learning goals. Our instruction leads to better student mastery of the first goal than either traditional instruction or previous reformed instruction, with approximately 85% of students correctly predicting the results of changes to the experimental conditions. On the question designed to test the second goal, most students are able to correctly state both the observations made in the photoelectric effect experiment and the inferences that can be made from these observations, but are less successful in drawing a clear logical connection between the observations and inferences. This is likely a symptom of a more general lack of the reasoning skills to logically draw inferences from observations.Comment: submitted to American Journal of Physic

    Northbrook College, Sussex: report from the Inspectorate (FEFC inspection report; 103/96 and 38/00)

    Get PDF
    The Further Education Funding Council has a legal duty to make sure further education in England is properly assessed. The FEFC’s inspectorate inspects and reports on each college of further education according to a four-year cycle. This record comprises the reports for periods 1995-96 and 1999-2000

    Supporting the Maintenance of Identifier Names: A Holistic Approach to High-Quality Automated Identifier Naming

    Get PDF
    A considerable part of the source code is identifier names-- unique lexical tokens that provide information about entities, and entity interactions, within the code. Identifier names provide human-readable descriptions of classes, functions, variables, etc. Poor or ambiguous identifier names (i.e., names that do not correctly describe the code behavior they are associated with) will lead developers to spend more time working towards understanding the code\u27s behavior. Bad naming can also have detrimental effects on tools that rely on natural language clues; degrading the quality of their output and making them unreliable. Additionally, misinterpretations of the code, caused by poor names, can result in the injection of quality issues into the system under maintenance. Thus, improved identifier naming increases developer effectiveness, higher-quality software, and higher-quality software analysis tools. In this dissertation, I establish several novel concepts that help measure and improve the quality of identifiers. The output of this dissertation work is a set of identifier name appraisal and quality tools that integrate into the developer workflow. Through a sequence of empirical studies, I have formulated a series of heuristics and linguistic patterns to evaluate the quality of identifier names in the code and provide naming structure recommendations. I envision and working towards supporting developers in integrating my contributions, discussed in this dissertation, into their development workflow to significantly improve the process of crafting and maintaining high-quality identifier names in the source code

    How to provide automated feedback helping students with negative semantic transfer when learning a second programming language

    Get PDF
    Earlier studies have shown that when students see matching syntax across programming languages, they believe the semantics will match. Typically this is true, but occasionally the syntax between two languages is similar while the semantics are different. Given that the syntax in Java is correct, the code will compile with no warnings, and the cause of the error can take a longer time to find and be harder to correct. This thesis collects six semantic errors in Java with no preexisting error message that might be problematic for a student when transferring from Python to Java. We aim to find out if the errors are a problem for the students and uncover that current environments lack feedback we believe is beneficial for novice Java students. We develop a tool, Uncoil, to detect the errors and provide an error message to fill this gap. Seven novice students in Java with previous Python knowledge tried to solve the errors and evaluated Uncoil in a mixed method study. Our results indicate that novice Java students need help with some of the errors earlier in the semester but do not transfer the semantics from Python to Java later in the semester. At the time of the study, few students needed Uncoil to solve the errors, but especially the weaker students found it helpful.Masteroppgave i Programutvikling samarbeid med HVLPROG399MAMN-PRO

    Using Agile Practice for Student Software Projects

    Get PDF
    Agile methodology as a relatively new approach to software engineering is becoming more popular in both industry and academia. Learning agile software development methodologies will unquestionably increase the capabilities and competences of our students as entry-level software engineers. However, how agile methods and techniques should be taught at the undergraduate level in additional to traditional approaches is still being debated. This study was conducted on a studentprogramming project, with sample size of 23 students from the Informatics Engineering course. The Scrum methodology was adopted and 28 user stories and 4 sprints were created. The results indicate a significant impact on students’ skill improvement and let them to have the first contact with real projects and clients. Besides that, the students agree that the adoption of the Scrum methodology helped them to improve the participation and collaboration. However, some issues were also detected in terms of communication and tasks planning. Therefore, we proposed some polities that could help and boost the software development process inside a classroom
    • …
    corecore