196,036 research outputs found
Verifying temporal specifications of Java programs
Many Java programs encode temporal behaviors in their source code, typically mixing three features provided by the Java language: (1) pausing the execution for a limited amount of time, (2) waiting for an event that has to occur before a deadline expires, and (3) comparing timestamps. In this work, we show how to exploit modern SMT solvers together with static analysis in order to produce a network of timed automata approximating the temporal behavior of a set of Java threads. We also prove that the presented abstraction preserves the truth of MTL and ATCTL formulae, two well-known logics for expressing timed specifications. As far as we know, this is the first feasible approach enabling the user to automatically model check timed specifications of Java software directly from the source code
Goal-driven behavior in S-CLAIM
Describes the multi-agent system in development in LIP6, Paris together with research done towards goal-driven behavior and it's implementation in the project.Software TechnologyElectrical Engineering, Mathematics and Computer Scienc
Investigating the usefulness of stack traces in bug triaging
In software engineering, resources such as time, money and developers, are limited. Often when bugs are found in the software developed, bug triaging is used to prioritise bug reports and allocate resources to it. When the number of bugs is considerable, this will require a vast amount of time and effort. The goal of this research is to investigate the usefulness of stack traces in bug reports for the assessment of bug report properties, using existing metrics of bug reports and files, being severity, priority and time-to-fix. In order to investigate the usefulness of stack traces, a research framework and methodology are developed. Overall, we can conclude that stack traces can be used to link software artifacts. Also, stack traces can be a valuable input for prediction models, for example using metrics of related bugs and source files.Software EngineeringSoftware TechnologyElectrical Engineering, Mathematics and Computer Scienc
Native cross-platform mobile application development using voind
The fragmentation of mobile devices nowadays makes it hard for (third party) mobile application developers to develop applications that are suitable for all mobile platforms on the market. A current startup, named Obymobi (Order By Mobile), introduces a new platform for ordering drinks and/or food in the hospitality business using a mobile application. The Obymobi mobile application is targeted at all mobile platforms, so that every mobile user is able to use the application. However, developing a mobile application which can be executed at all current mobile platforms implies several portability issues. This thesis is the result of research which focuses on how to deal with the heterogeneity in mobile devices while developing mobile applications. As current crossplatform mobile application development solutions from industry do not offer flexibility as they tend to have a static character in terms of supported platforms and features, a new cross-platform development framework prototype is presented in this thesis. Using this framework named Voind, mobile applications can be defined in an abstracted model in order to use this model for the generation of multiple versions for different mobile platforms.Software EngineeringComputer ScienceElectrical Engineering, Mathematics and Computer Scienc
ArchWiki: Using Web 2.0 for Architecture Knowledge Management
Software architecture plays an important part in program comprehension, which is one of the most time consuming tasks in software development. If software developers don’t properly share their architectural knowledge with team members, the team will act based on an incomplete or even possibly incorrect view on the code base, and this can lead to architectural degradation. Recently there has been a surge of collaboration, communication and sharing with the advent of Web 2.0 applications. In this thesis we have investigated how Web 2.0 can be used to support software architecture management. In particular in the area of architecture documentation, architecture retrieval, and collaboration. We created an approach which applies Web 2.0 concepts such as traceability, integration, usability, navigability, and user experience, to software architecture management. This approach is supported by a prototype tool called ArchWiki, which has features such as traceability between different artifacts (e.g. source code, architectural diagrams, architectural documentation), context-sensitive views, hyperlinks, notifications, tags, and bookmarks. We performed an initial evaluation study to assess ArchWiki. In this study we found that Web 2.0 has the potential to support software architecture knowledge management.Software EngineeringSoftware TechnologyElectrical Engineering, Mathematics and Computer Scienc
Re-engineering Web Applications from MSO to SSO
Nowadays a lot of small companies maintain multiple websites that require the user to sign up for ordering products or extended interaction. The users have to create an account for each website the company owns, creating duplicate information for the company and forcing the customer to remember multiple accounts. Where big companies can solve the problem with commercial solutions, small companies do not have the funding. MediaMij, a small publisher, has to deal with exactly this situation. In this project we investigate options to find a solution for MediaMij. We research ways of re-engineering the current web applications to enable a single central customer database with Single Sign On capabilities. The research renders an approach for the situation which will be verified by conducting 2 case studies on 2 of the current websites of MediaMij. With the verified approach we were able to form a set of guidelines describing how to approach projects that are alike.Software EngineeringSoftware TechnologyElectrical Engineering, Mathematics and Computer Scienc
Anti-Pattern Scanner: An Approach to Detect Anti-Patterns and Design Violations
In this Master's Thesis Project, two Code Smells, four Anti-Patterns and four types of Design Principle violations have been examined. We developed a detection program called the Anti-Pattern Scanner. This scanner has been used in an empirical evaluation where five open-source Java projects have been examined and scanned for these `pattern' problems. The results are that the examined problems generally do occur in software systems. The problems are estimated to be inconvenient to software development, depending on the strength of their presence. Based on the Anti-Pattern Scanner and the results from this evaluation, suggestions for follow-up studies are offered.Computer ScienceComputer ScienceElectrical Engineering, Mathematics and Computer Scienc
Visualize local neighborhood for supporting debugging
Developing software is complex, debugging even more. In this thesis an approach is presented to reduce the debugger’s burden by introducing visual support for debugging. This is accomplished by using multiple supporting debugging concepts which are implemented in the tool: the Visual Debugger. The Visual Debugger supports debugging by visualizing the local neighborhood at runtime when debugging with a specialized hierarchical graph. The visualization provides the user easy access to an overview and details of the dependencies surrounding the executing method. The concept of visualizing local neighborhood to support debugging is tested in a pre-post test user experiment in which participants solve debug tasks with the Visual Debugger and answer questions about their debug habits. The questions involve how participants experience the tool and how they use a debugger. The results show that the capability of the Visual Debugger to support debugging by visualizing the local neighborhood is useful but more optimization and research is required to relate this result to improved program understanding.Computer ScienceSoftware EngineeringElectrical Engineering, Mathematics and Computer Scienc
Investigation of the impact of cohesion on the change-proneness of Java interfaces
A lack of cohesion is often associated with bad software quality, and could lead to more changes and bugs in software. In this thesis the impact of cohesion on the change-proneness of Java interfaces is investigated. Showing the existence of a relation between these concepts can lead to better change prediction models that can support software developers in defect prediction and prevention tasks. An empirical study is performed on several open source projects to test three hypotheses. The first hypothesis investigates whether cohesion metrics correlate with the number of fine-grained source code changes. The results of the correlation analysis show a correlation between two cohesion metrics and the number of changes in Java interfaces. The confounding effect of class size is a possible explanation for the correlation between the cohesion metrics and the number of fine-grained changes. This idea is investigated through the second hypothesis, which studies the correlation between the cohesion metrics and interface size metrics. The hypothesis is accepted for the same two metrics. The third hypothesis of this thesis tries to answer whether cohesion metrics can improve change prediction models based on size. By performing three different experiments with multiple classification algorithms, we have found no evidence that supports the final hypothesis. Concluding, cohesion metrics can be used to predict changes in source code. However, they are not better predictors than size metrics, and we have found no evidence to support the idea that they can improve change prediction models based on size.Software EngineeringElectrical Engineering, Mathematics and Computer Scienc
Managing Software Design Erosion with Design Conformance Checking
Software design erosion is a well known process; however, once it becomes noticeable it may already have progressed so far that repairing it is difficult and costly. Design conformance assessment techniques can help developers to detect – and mitigate – the effects of design erosion, before they cause problems to the long-term maintainability of software systems. Existing techniques have already been proven successful in controlled cases, but are not yet ready for widespread adoption in production environments. This thesis studies the requirements and effects in the context of a real-world production environment and serves as a step towards making design conformance assessment techniques an economically viable investment for businesses. The contributions of this thesis are: an evaluation of the maturity of existing techniques, an inventarisation of requirements that arise from business environments with respect to design conformance assessment, and the implementation of the SharpDCA prototype tool that was evaluated in an ongoing development project.Software EngineeringElectrical Engineering, Mathematics and Computer Scienc
- …
