3 research outputs found

    Personalized Web Services Interface Design Using Interactive Computational Search

    Full text link
    Most of successful Web services evolve through a process of continuous change due to several reasons such as improving the quality, fixing bugs and adding new features. However, this evolution process may weaken the design of the Web service’s interface by including a large number of non-cohesive operations and make it unnecessarily complex for users to find relevant operations to be used by their services-based systems. In this thesis, we propose a remodularization recommendation approach that dynamically adapts and interactively suggests a possible modularization of the Web services interface design to users/developers and takes their feedback into consideration. Our approach uses an interactive multi-criteria decision making algorithm, based on interactive NSGA-II, to find a set of good design interface modularization solutions that find a trade-off between improving several interface design quality metrics (e.g. coupling, cohesion, number of portTypes and number of antipatterns), maximizing the reuse of user-interface interaction history patterns identified from previous releases and satisfying the interaction constraints learnt from the user feedback during the execution of the algorithm while minimizing the deviation from the initial design. We evaluated our approach on a set of 22 real-world Web services, provided by Amazon and Yahoo. Statistical analysis of our experiments shows that our dynamic interactive Web services interface modularization approach performed significantly better than the state-of-the-art modularization techniques.Master of Science (MS)Software Engineering, College of Engineering & Computer ScienceUniversity of Michigan-Dearbornhttps://deepblue.lib.umich.edu/bitstream/2027.42/140766/1/Thesis Report__Fun Jirigesi.pdfDescription of Thesis Report__Fun Jirigesi.pdf : Master's Thesi

    Interactive Refactoring of Web Service Interfaces

    Full text link
    https://deepblue.lib.umich.edu/bitstream/2027.42/140399/1/Transaction FInal Rev 3.pd

    A User-aware Intelligent Refactoring for Discrete and Continuous Software Integration

    Full text link
    Successful software products evolve through a process of continual change. However, this process may weaken the design of the software and make it unnecessarily complex, leading to significantly reduced productivity and increased fault-proneness. Refactoring improves the software design while preserving overall functionality and behavior, and is an important technique in managing the growing complexity of software systems. Most of the existing work on software refactoring uses either an entirely manual or a fully automated approach. Manual refactoring is time-consuming, error-prone and unsuitable for large-scale, radical refactoring. Furthermore, fully automated refactoring yields a static list of refactorings which, when applied, leads to a new and often hard to comprehend design. In addition, it is challenging to merge these refactorings with other changes performed in parallel by developers. In this thesis, we propose a refactoring recommendation approach that dynamically adapts and interactively suggests refactorings to developers and takes their feedback into consideration. Our approach uses Non-dominated Sorting Genetic Algorithm (NSGAII) to find a set of good refactoring solutions that improve software quality while minimizing the deviation from the initial design. These refactoring solutions are then analyzed to extract interesting common features between them such as the frequently occurring refactorings in the best non-dominated solutions. We combined our interactive approach and unsupervised learning to reduce the developer’s interaction effort when refactoring a system. The unsupervised learning algorithm clusters the different trade-off solutions, called the Pareto front, to guide the developers in selecting their region of interests and reduce the number of refactoring options to explore. To reduce the interaction effort, we propose an approach to convert multi-objective search into a mono-objective one after interacting with the developer to identify a good refactoring solution based on their preferences. Since developers may want to focus on specific code locations, the ”Decision Space” is also important. Therefore, our interactive approach enables developers to pinpoint their preference simultaneously in the objective (quality metrics) and decision (code location) spaces. Due to an urgent need for refactoring tools that can support continuous integration and some recent development processes such as DevOps that are based on rapid releases, we propose, for the first time, an intelligent software refactoring bot, called RefBot. Our bot continuously monitors the software repository and find the best sequence of refactorings to fix the quality issues in Continous Integration/Continous Development (CI/CD) environments as a set of pull-requests generated after mining previous code changes to understand the profile of developers. We quantitatively and qualitatively evaluated the performance and effectiveness of our proposed approaches via a set of studies conducted with experienced developers who used our tools on both open source and industry projects.Ph.D.College of Engineering & Computer ScienceUniversity of Michigan-Dearbornhttps://deepblue.lib.umich.edu/bitstream/2027.42/154775/1/Vahid Alizadeh Final Dissertation.pdfDescription of Vahid Alizadeh Final Dissertation.pdf : Dissertatio
    corecore