Spelling suggestions: "subject:"software core""
1 |
Exploiting abstract syntax trees to locate software defectsShippey, Thomas Joshua January 2015 (has links)
Context. Software defect prediction aims to reduce the large costs involved with faults in a software system. A wide range of traditional software metrics have been evaluated as potential defect indicators. These traditional metrics are derived from the source code or from the software development process. Studies have shown that no metric clearly out performs another and identifying defect-prone code using traditional metrics has reached a performance ceiling. Less traditional metrics have been studied, with these metrics being derived from the natural language of the source code. These newer, less traditional and finer grained metrics have shown promise within defect prediction. Aims. The aim of this dissertation is to study the relationship between short Java constructs and the faultiness of source code. To study this relationship this dissertation introduces the concept of a Java sequence and Java code snippet. Sequences are created by using the Java abstract syntax tree. The ordering of the nodes within the abstract syntax tree creates the sequences, while small sub sequences of this sequence are the code snippets. The dissertation tries to find a relationship between the code snippets and faulty and non-faulty code. This dissertation also looks at the evolution of the code snippets as a system matures, to discover whether code snippets significantly associated with faulty code change over time. Methods. To achieve the aims of the dissertation, two main techniques have been developed; finding defective code and extracting Java sequences and code snippets. Finding defective code has been split into two areas - finding the defect fix and defect insertion points. To find the defect fix points an implementation of the bug-linking algorithm has been developed, called S + e . Two algorithms were developed to extract the sequences and the code snippets. The code snippets are analysed using the binomial test to find which ones are significantly associated with faulty and non-faulty code. These techniques have been performed on five different Java datasets; ArgoUML, AspectJ and three releases of Eclipse.JDT.core Results. There are significant associations between some code snippets and faulty code. Frequently occurring fault-prone code snippets include those associated with identifiers, method calls and variables. There are some code snippets significantly associated with faults that are always in faulty code. There are 201 code snippets that are snippets significantly associated with faults across all five of the systems. The technique is unable to find any significant associations between code snippets and non-faulty code. The relationship between code snippets and faults seems to change as the system evolves with more snippets becoming fault-prone as Eclipse.JDT.core evolved over the three releases analysed. Conclusions. This dissertation has introduced the concept of code snippets into software engineering and defect prediction. The use of code snippets offers a promising approach to identifying potentially defective code. Unlike previous approaches, code snippets are based on a comprehensive analysis of low level code features and potentially allow the full set of code defects to be identified. Initial research into the relationship between code snippets and faults has shown that some code constructs or features are significantly related to software faults. The significant associations between code snippets and faults has provided additional empirical evidence to some already researched bad constructs within defect prediction. The code snippets have shown that some constructs significantly associated with faults are located in all five systems, and although this set is small finding any defect indicators that transfer successfully from one system to another is rare.
|
2 |
Enhancing Software Refactoring in the Sri Lankan Software Development Industry through Machine Learning Techniques:Challenges, and Intentions.Muthuhetti Gamage, Shalika Udeshini January 2024 (has links)
Software refactoring is a crucial approach in both development and maintenance to improve the efficiency, maintainability, and structure of software systems. However, a number of challenges remain in the way of the effective implementation of software refactoring techniques within Sri Lanka's software development industry. This thesis investigates the challenger in software refactoring process in Sri Lanka software development companies and examine the intentions of developers, software test automation engineer and project managers on the usage on the machine learning techniques for software refactoring and the study uses the Unified Theory of Acceptance and usage of Technology 2 (UTAUT2) extended model. The study demonstrates that professional in software development Industry have positive intentions toward the usage of machine learning techniques, motivated by benefits they perceive, such as increased productivity, maintenance, and improved code quality. This study advances our understanding of software refactoring and theadoption of new ML technologies and offers insightful information to researchers, practitioners, and decision- makers in the Sri Lankan IT sector and beyond.
|
3 |
An Evaluation Of The Reinspection Decision Policies For Software Code InspectionsNalbant, Serkan 01 January 2005 (has links) (PDF)
This study evaluates a number of software reinspection decision policies for software code inspections with the aim of revealing their effects regarding cost, schedule and quality related objectives of a software project. Software inspection is an effective defect removal technique for software projects.
After the initial inspection, a reinspection may be performed for decreasing the number of remaining defects further. Although, various reinspection decision methods are proposed in the literature, no study provides information on the results
of employing different methods. In order to obtain insight about this unaddressed issue, this study compares the reinspection decision policies by finding out and
analyzing their performance with respect to designated measures and preference profiles for cost, schedule, and quality perspectives in the context of a typical Software Capability Maturity Model Level 3 software organization. For this purpose, a Monte Carlo simulation model, which represents the process comprising initial code inspection, reinspection, testing and field use activities, is employed in the
study together with the experiment designed in order to consider different circumstances under which the mentioned process operates. The study recommends concluding the reinspection decision by comparing inspection effectiveness measure for major defects with respect to a moderately high
threshold value (i.e. 75%). The study also reveals that applying default decisions of &lsquo / Never Reinspect&rsquo / and &lsquo / Always Reinspect&rsquo / do not exhibit the most appropriate outcomes regarding cost, schedule, and quality. Additionally, the study presents suggestions for further improving the cost, schedule, and quality of the software based on the analysis of the experiment factors.
|
4 |
Implementação de uma metodologia de desenvolvimento de software embarcado baseado em modelos de computação e sua aplicação em um medidor de energia como prototipo alvoTorres, Weslley Medeiros January 2015 (has links)
Orientador: Prof. Dr. Carlos Eduardo Capovilla / Dissertação (mestrado) - Universidade Federal do ABC, Programa de Pós-Graduação em Engenharia Elétrica, 2015. / O desenvolvimento de software embarcado se tornou um gargalo para a introdu-
¸c¿ao de produtos complexos no mercado, como os sistemas de automa¸c¿ao, ve'ýculo,
aeronaves e plantas industriais de controle, pois, dever'a interagir com processos f'ýsicos
garantindo suporte 'a opera¸c¿ao em tempo real e de forma concorrente, ainda
mantendo os custos reduzidos. Com isso, o n'ývel de integra¸c¿ao conseguido com sistemas
embarcados 'e ainda maior, e aumentando a complexidade do desenvolvimento
do software. Portanto, uma metodologia efetiva deve ser estabelecida em todos os
est'agios, envolvendo ferramentas de software que suportem a gera¸c¿ao autom'atica ou
semi-autom'atica de c'odigo, al'em da possibilidade de reuso de c'odigo.
O desenvolvimento baseado em modelos tem sido empregado com sucesso na
implementa¸c¿ao de sistemas de software de uso geral e com isso reduzindo o n'umero
de erros e reduzindo os ciclos e custos, surgindo como uma solu¸c¿ao para os problemas
de desenvolvimento de software embarcado dentro da academia e ind'ustria. Devido
a utilizar um ambiente de desenvolvimento unificado, pode ser utilizado como uma
ferramenta de comunica¸c¿ao e desenvolvimento atrav'es das diferentes disciplinas de
engenharia.
O objetivo principal da metodologia 'e a mudan¸ca de paradigma de desenvolvimento
de software de forma manual a partir de especifica¸c¿oes informais para a
captura de requisitos funcionais e n¿ao funcionais do software embarcado a partir
de modelos matem'aticos do sistema. Claramente, um modelo matem'atico oferece
um modo comum para a integra¸c¿ao sistem'atica e coerente dos diferentes esfor¸cos na
especifica¸c¿ao do sistema, projeto, s'ýntese (gera¸c¿ao de c'odigo), an'alise (valida¸c¿ao),
execu¸c¿ao e manuten¸c¿ao(evolu¸c¿ao do projeto).
Esse trabalho emprega a metodologia de desenvolvimento baseada em modelos
de computa¸c¿ao para o desenvolvimento de um medidor de energia, composto por
um microcontrolador e hardware espec'ýfico para a medi¸c¿ao de consumo de energia
el'etrica. Ao final ser¿ao disponibilizados os dados de testes comparativos entre o
medidor de precis¿ao de energia el'etrica WT3000 da Yokogawa e o prot'otipo desenvolvido,
para a valida¸c¿ao da metodologia no prot'otipo desenvolvido. / Embedded software design has become the bottleneck in the market introduction
of complex products such as automation systems, automobiles, airplanes, and industrial
control plants, it must interact with physical processes guaranteeing support for
hard real-time operation and concurrency, also, with tight cost. Furthermore, the
level of integration with embedded system is even bigger, increasing software development
complexity. Due to the increasing complexity and shrinking time-to-market,
an effective methodology must at all stages involve automatic and semi-automatic
support by software tools and favor code re-use.
Model-based desing has been successfully used for development of general-purpose
software systems and it is known to reduce development errors, shorten development
cycles and thereby decrease overall development costs, emerging as a solution to embedded
software design issues as witnessed by both accademic and industrial efforts,
also uses a common environment for design and communication throughout the different
engineering disciplines.
The core principle of this methodology is to move away from manual coding
from informal specifications by capturing embedded software functional and nonfunctional
requirements from abstract mathematical models. Clearly, a mathematical
model offers a common ground for a systematic and coherent integration of
diverse efforts in system specification, design, synthesis (code generation), analysis
(validation), execution (runtime support), and maintenance (design evolution).
The present work investigates the application of software model based development
for an energy meter, which is composed by a microcontroller and some specific
hardware peripherals to measure electricity usage. At the end it will be conducted
comparative tests between the energy power meter WT3000 from Yokogawa and the
developed energy meter, to validate the used methodology into developed energy
meter.
|
5 |
A Model for Evaluating the Effectiveness of an Undergraduate Curriculum in Teaching Software Code QualityBanik, Paromita January 2020 (has links)
Developers build an entire software by writing quality code, the failure of which can risk organizational reputation, financial wellbeing, and even the lives and security of people. The ability to develop high quality code is therefore a key learning goal of foundational undergraduate computing programmes. However, how effective these undergraduate computing curriculums are in teaching software code quality is a matter of concern as this leads to raising the knowledge of future software developers. Right now, there is a lack of models to evaluate this effectiveness of undergraduate curriculum in providing the knowledge of software code quality to students.In this thesis, we suggest a model for evaluating the effectiveness of undergraduate curriculum in teaching software code quality, which we call ScQUc (Software Code Quality in Undergraduate Curriculum). Our goal is to raise the knowledge and awareness of teaching software code quality in education and make the undergraduate computing curriculum more software code quality centric.Due to the fact that there is a lack of models for evaluating the effectiveness of undergraduate curriculum in teaching software code quality, we had no closely related work to base our research on. We had to rely on other works related to code quality in programming courses that were indirectly connected to our research field. Hence, we dare infer that the ScQUc model was created from scratch.The research method used was qualitative and followed the frame of design science. Data collection was conducted via literature study and via interviews with two experts in the field. The interviewees were selected with the convenience sampling method enhanced with a predefined selection criterion. Data evaluation, on the other hand, was conducted using an evaluation model. The evaluation model included the following evaluation criteria: (1) interviewee credibility, (2) correctness, (3) flexibility, (4) usefulness and (5) experience. One round of interview was conducted with each of the interviewees which resulted in the improvement of the ScQUc model.The ScQUc model consists of a checklist of code quality characteristics and a sequence of activities to be conducted in order to evaluate the effectiveness of an undergraduate curriculum in teaching software code quality. The results of the evaluation of the ScQUc model inferred that the ScQUc model was correct and useful for the academia. Hence, we believe that the ScQUc model is a valid solution for evaluating the effectiveness of undergraduate curriculum in teaching software code quality. Still, however, the ScQUc model needs further evaluation and extension in form of specifications aiding deeper understanding of code quality, how to teach code quality, and to what extent to teach code quality. / Utvecklare bygger hela programvaran genom att skriva kvalitetskod, vars fel kan riskera organisatoriskt rykte, ekonomiskt välbefinnande och till och med människors liv och säkerhet. Förmågan att utveckla kod av hög kvalitet är därför ett viktigt inlärningsmål för grundläggande grundutbildningsprogram. Hur effektiva dessa läroplaner för grundutbildning är för att undervisa programkodkvalitet är emellertid en oro eftersom det leder till att kunskapen hos framtida programutvecklare ökar. Just nu saknas modeller för att utvärdera denna effektivitet i grundutbildningen för att ge studenterna kunskap om mjukvarukodkvalitet.I den här avhandlingen föreslår vi en modell för att utvärdera effektiviteten för grundutbildningen i undervisning av programkodkvalitet, som vi kallar ScQUc (Software Code Quality in Undergraduate Curriculum). Vårt mål är att öka kunskapen och medvetenheten om att undervisa programvarukodkvalitet i utbildningen och göra grundutbildningsberäkningen mer programvarukodkvalitet centrerad.På grund av bristen på modeller för att utvärdera effektiviteten i grundutbildningen i undervisning av programvarukodkvalitet, hade vi inget nära besläktat arbete att basera vår forskning på. Vi var tvungna att lita på andra verk relaterade till kodkvalitet i programmeringskurser som indirekt var kopplade till vårt forskningsområde. Därför drar vi slutsatsen att ScQUc-modellen skapades från grunden.Den använda metoden var kvalitativ och följde ramverket för designvetenskap. Datainsamlingen genomfördes genom litteraturstudie och genom intervjuer med två experter på området. Intervjuerna valdes med hjälp av metoden för provtagning av bekvämlighet förbättrad med ett fördefinierat urvalskriterium. Datautvärdering genomfördes å andra sidan med hjälp av en utvärderingsmodell. Utvärderingsmodellen inkluderade följande utvärderingskriterier: (1) intervjuarens trovärdighet, (2) korrekthet, (3) flexibilitet, (4) användbarhet och (5) erfarenhet. En intervjuomgång genomfördes med var och en av de intervjuade som resulterade i förbättringen av ScQUc-modellen.ScQUc-modellen består av en checklista med egenskaper för kodkvalitet och en sekvens av aktiviteter som ska genomföras för att utvärdera effektiviteten hos en grundutbildningsprogram i undervisning av programkodkvalitet. Resultaten av utvärderingen av ScQUc-modellen drar slutsatsen att ScQUc-modellen var korrekt och användbar för akademin. Därför tror vi att ScQUc-modellen är en giltig lösning för att utvärdera effektiviteten för grundutbildningen i undervisning av programvarukodkvalitet. Men ändå behöver ScQUc-modellen ytterligare utvärdering och utvidgning i form av specifikationer som hjälper djupare förståelse för kodkvalitet, hur man undervisar i kodkvalitet och i vilken utsträckning man ska lära ut kodkvalitet.
|
6 |
Investigating Metrics that are Good Predictors of Human Oracle Costs An ExperimentKartheek arun sai ram, chilla, Kavya, Chelluboina January 2017 (has links)
Context. Human oracle cost, the cost associated in estimating the correctness of the output for the given test inputs is manually evaluated by humans and this cost is significant and is a concern in the software test data generation field. This study has been designed in the context to assess metrics that might predict human oracle cost. Objectives. The major objective of this study is to address the human oracle cost, for this the study identifies the metrics that are good predictors of human oracle cost and can further help to solve the oracle problem. In this process, the identified suitable metrics from the literature are applied on the test input, to see if they can help in predicting the correctness of the output for the given test input. Methods. Initially a literature review was conducted to find some of the metrics that are relevant to the test data. Besides finding the aforementioned metrics, our literature review also tries to find out some possible code metrics that can be ap- plied on test data. Before conducting the actual experiment two pilot experiments were conducted. To accomplish our research objectives an experiment is conducted in the BTH university with master students as sample population. Further group interviews were conducted to check if the participants perceive any new metrics that might impact the correctness of the output. The data obtained from the experiment and the interviews is analyzed using linear regression model in SPSS suite. Further to analyze the accuracy vs metric data, linear discriminant model using SPSS pro- gram suite was used. Results.Our literature review resulted in 4 metrics that are suitable to our study. As our test input is HTML we took HTML depth, size, compression size, number of tags as our metrics. Also, from the group interviews another 4 metrics are drawn namely number of lines of code and number of <div>, anchor <a> and paragraph <p> tags as each individual metric. The linear regression model which analyses time vs metric data, shows significant results, but with multicollinearity effecting the result, there was no variance among the considered metrics. So, the results of our study are proposed by adjusting the multicollinearity. Besides, the above analysis, linear discriminant model which analyses accuracy vs metric data was conducted to predict the metrics that influences accuracy. The results of our study show that metrics positively correlate with time and accuracy. Conclusions. From the time vs metric data, when multicollinearity is adjusted by applying step-wise regression reduction technique, the program size, compression size and <div> tag are influencing the time taken by sample population. From accuracy vs metrics data number of <div> tags and number of lines of code are influencing the accuracy of the sample population.
|
7 |
Rozšíření nástroje pro podporu agilního vývoje softwaru / Upgrade of Agile Development Support ToolTrávník, Petr January 2014 (has links)
The goal of the diploma thesis "Upgrade of agile development support tool" is to study agile methodologies and its use in practice. Thesis is focused on the Scrum framework used by The Corporate Technology department of Siemens, s.r.o. in Brno. Furthermore the thesis analyzes and compares the most used software support tools for agile methodologies which also gives an inspiration for the upgrade of support tool used by the department of Siemens. Thesis identifies possible upgrades based on an analysis with the goal to make agile development even more effective. Results were consulted with the representative of the Siemens company and then modules for Code review and Retrospective were chosen to implement. Implementation consists even of some minor upgrades of the tool. Goals of all implemented upgrades were to save time, optimize administrative work and make development even more effective. Benefits and further upgrades are consulted at the end of the thesis.
|
8 |
Průzkum vlastnictví kódu ve velké organizaci / Code Ownership Research in Large OrganizationŠimonek, Jan January 2015 (has links)
This master's thesis is about code ownership in software projects and creating a tool that would improve cooperation by identifying code owners. The theoretical foundation for code ownership starts from Extreme Programming, explaining models of code ownership and the impact of code ownership on cooperation among teams and team members. The concept is demonstrated on a concrete software firm, where a potential for improvement is identified. The potential is exploited by a software tool, which is designed in the this thesis. The tool is capable of identifying code owners and experts for specific areas in the code based on data gathered from a version control system. The resulting information is made easily accessible. The tool is used to conduct a code ownership research in several projects, which allows me to confirm accuracy of the results. Usability and benefits of the tool is discussed in the final chapter.
|
Page generated in 0.0513 seconds