| 1 |
|
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.
|
[PDF]
[Abstract]
|
| 2 |
|
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.
|
[PDF]
[Abstract]
|
| 3 |
|
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.
|
[PDF]
[Abstract]
|
| 4 |
|
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.
|
[PDF]
[Abstract]
|
| 5 |
|
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.
|
[PDF]
[Abstract]
|
| 6 |
|
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.
|
[PDF]
[Abstract]
|
| 7 |
|
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.
|
[PDF]
[Abstract]
|
| 8 |
|
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.
|
[PDF]
[Abstract]
|
| 9 |
|
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.
|
[PDF]
[Abstract]
|
| 10 |
|
Datagraphics creation for the modern web
This document contains the findings of a feasibility study of an application enabling infographic designers to convert vector drawings into interactive, data-driven web applications, a.k.a. datagraphics.
|
[PDF]
[Abstract]
|
| 11 |
|
The Impact of Antipatterns on the Change-Proneness of Java Systems
We replicated a part of the recent study on the impact of design defects on the change-proneness of software applications and extended it by performing an analysis based on fine-grained source code changes (SCCs) performed on Java classes during the evolution of the systems. Using SCCs extracted from the version control systems of 16 Java open- source projects, we investigate: (1) the change-proneness of Java classes participating in antipatterns, (2) change-proneness of Java classes affected by specific types of an- tipatterns, and (3) the likelihood that certain types of change are performed in classes affected by certain antipatterns.
|
[PDF]
[Abstract]
|
| 12 |
|
Copy-Paste Detection in Spreadsheets
When a company is in need of a reporting tool, the most commonly made decision is to choose for Excel. In fact, over 90% of the world’s companies base their decisions on a report made using Excel. This shows that the number of spreadsheet designers, of end-user programmers, is large. It has been estimated to be 5 times as large as the number of software programmers in the traditional sense. This is one of the reasons spreadsheets are error-prone, possibly leading to erroneous decisions. One of the causes of problems within spreadsheets is the prevalence of copy-pasting. In this thesis we have studied this problem and we present an algorithm to detect data clones within spreadsheets: formulas whose values are copied in a different location. Aside from this algorithm, which we based on existing algorithms for code clone detection in software engineering, we present a classification scheme for the found data clones. We evaluated both the algorithm and the classification using the EUSES corpus, resulting in the conclusion that data clones in spreadsheet are as common as code clones in source code. We also show that we are able to detect these data clones with precision rates similar to those achieved by state-of-the-art code clone detection algorithm.
|
[PDF]
[Abstract]
|
| 13 |
|
Design of a coaching support system for evaluating sport tactics
Coaches are using video analysis to evaluate the performance of a team in field hockey. Events with the ball are tagged and saved in a match annotation file, which is used to lookup video fragments. The match annotation enables a coach to lookup and to evaluate single moments of the match but doesn't provide a coach insight in the tactic. Tactic doesn't relate to single event but to a sequence of events. Currently it is not possible to evaluate the tactic.
Because the match annotation contains information about the events, which includes the time and the location it is spatial-temporal dataset. To lookup a tactical pattern a coach it is required to express a tactical pattern on the spatial-temporal dataset. To enable a coach to incorporate his view of the game the flexibility is important.
In this thesis work a system is designed which enables a coach to evaluate tactic by enabling him to express a tactical pattern and by visualizing the results. A prototype of the system is implemented to evaluate the design of the system. Coaches active at the top national and international level provided input for the system and participated in the evaluation of the prototype.
The designed system provides a useful method to evaluate tactics by a coach. The system enables the expression of a tactical pattern by a coach in a flexible manner. This thesis presents the requirements for a system to analyze tactics. It also presents an approach to model and express a tactical pattern using a domain specific language. To create a tactical pattern a visual query interface is presented. The visual interface also offers the possibility to interpret the result of a query.
|
[PDF]
[Abstract]
|