Spelling suggestions: "subject:"8oftware anderstanding"" "subject:"8oftware _understanding""
1 |
Software JourneysFilip, Adrian 06 November 2014 (has links)
Getting familiar with the code is a challenging activity and therefore resource intensive. The larger the software code base, the larger the resource expenditure. We consider software development in the case of established software developed by mid to large mature teams. This thesis explores a new way of documenting code that could increase the productivity of software development. The method consists of creating small, dynamically-ordered sets of code locations called Landmarks. These sets called Journeys are significant for a feature. The landmarks contain documentation related to system behavior and qualitative system state information at the time when the software execution reaches the locations. This new type of documentation is very light and does not require extensive additional software systems for management. This information is stored, and shared in a seamless manner via the existing source control systems.
An experiment was performed to gauge the efficiency of this method versus the current development practice. The difference of productivity between developers not using this approach versus developers benefiting from this approach was captured. The results could be qualitatively interpreted as pointing towards an overall increase of productivity for the participant developers using the new approach.
|
2 |
Automatic Analysis of Blend Words / Analyse automatique de mots mélangésWarintarawej, Pattaraporn 04 April 2013 (has links)
Mélanger des parties de mots est une façon qui peut sembler étonnante pour produire de nouvelles formes linguistiques. Cela est devenu une manière très utilisée pour inventer des noms pour le quotidien, les noms de marque, les noms utilisés dans les codes informatiques des logiciels, par exemple avec alicament (aliment and médicament), aspivenin (aspirer and venin). Il existe plusieurs façon de mélanger des mots pour en former d'autres, ce qui rend difficile l'analyse des mots produits. Dans cette thèse, nous nous proposons une approche d'analyse automatique des évocations de mots produits à l'aide de mélanges, en considérant des méthodes de classification de type top-k. Nous comparons trois méthodes d'analyse des parties d'un mot : n-grammes, syllabes et cellules morpho-phonologiques. Nous proposons deux algorithmes d'extraction des syllables ainsi que des méthodes d'évaluation.L'algorithme Enqualitum est proposé pour identifier les mots étant évoqués par le mot analysé. Notre proposition a été utilisée en particulier dans le domaine de l'analyse automatique en génie logiciel pour lequel nous avons proposé l'algorithme Sword pour produire un découpage pertinent des noms apparaissant dans les programmes. Les expérimentations ont démontré l'intérêt de nos propositions. / Lexical blending is amazing in the sense of morphological productivity, involving the coinage of a new lexeme by fusing parts of at least two source words. Since new things need new words, blending has become a frequent productive word creation such as smog (smoke and fog), or alicament (aliment and médicament) (a French blend word), etc. The challenge is to design methods to discover how the first source word and the second source word are combined. The thesis aims at automatic analysis blend words in order to find the source words they evoke. The contributions of the thesis can divided into two main parts. First, the contribution to automatic blend word analysis, we develop top-k classification and its evaluation framework to predict concepts of blend words. We investigate three different features of words: character N-grams, syllables and morpho-phonological stems. Moreover, we propose a novel approach to automatically identify blend source words, named Enqualitum. The experiments are conducted on both synthetic French blend words and words from a French thesaurus. Second, the contribution to software engineering application, we apply the idea of learning character patterns of identifiers to predict concepts of source codes and also introduce a method to automate semantic context in source codes. The experiments are conducted on real identifier names from open source software packages. The results show the usefulness and the effectiveness of our proposed approaches.
|
3 |
Mining Software Repositories to Assist Developers and Support ManagersHassan, Ahmed January 2004 (has links)
This thesis explores mining the evolutionary history of a software system to support software developers and managers in their endeavors to build and maintain complex software systems.
We introduce the idea of evolutionary extractors which are specialized extractors that can recover the history of software projects from software repositories, such as source control systems. The challenges faced in building C-REX, an evolutionary extractor for the C programming language, are discussed. We examine the use of source control systems in industry and the quality of the recovered C-REX data through a survey of several software practitioners.
Using the data recovered by C-REX, we develop several approaches and techniques to assist developers and managers in their activities.
We propose <em>Source Sticky Notes</em> to assist developers in understanding legacy software systems by attaching historical information to the dependency graph. We present the <em>Development Replay</em> approach to estimate the benefits of adopting new software maintenance tools by reenacting the development history.
We propose the <em>Top Ten List</em> which assists managers in allocating testing resources to the subsystems that are most susceptible to have faults. To assist managers in improving the quality of their projects, we present a complexity metric which quantifies the complexity of the changes to the code instead of quantifying the complexity of the source code itself.
All presented approaches are validated empirically using data from several large open source systems.
The presented work highlights the benefits of transforming software repositories from static record keeping repositories to active repositories used by researchers to gain empirically based understanding of software development, and by software practitioners to predict, plan and understand various aspects of their project.
|
4 |
Mining Software Repositories to Assist Developers and Support ManagersHassan, Ahmed January 2004 (has links)
This thesis explores mining the evolutionary history of a software system to support software developers and managers in their endeavors to build and maintain complex software systems.
We introduce the idea of evolutionary extractors which are specialized extractors that can recover the history of software projects from software repositories, such as source control systems. The challenges faced in building C-REX, an evolutionary extractor for the C programming language, are discussed. We examine the use of source control systems in industry and the quality of the recovered C-REX data through a survey of several software practitioners.
Using the data recovered by C-REX, we develop several approaches and techniques to assist developers and managers in their activities.
We propose <em>Source Sticky Notes</em> to assist developers in understanding legacy software systems by attaching historical information to the dependency graph. We present the <em>Development Replay</em> approach to estimate the benefits of adopting new software maintenance tools by reenacting the development history.
We propose the <em>Top Ten List</em> which assists managers in allocating testing resources to the subsystems that are most susceptible to have faults. To assist managers in improving the quality of their projects, we present a complexity metric which quantifies the complexity of the changes to the code instead of quantifying the complexity of the source code itself.
All presented approaches are validated empirically using data from several large open source systems.
The presented work highlights the benefits of transforming software repositories from static record keeping repositories to active repositories used by researchers to gain empirically based understanding of software development, and by software practitioners to predict, plan and understand various aspects of their project.
|
Page generated in 0.0877 seconds