• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 82
  • 18
  • 4
  • 3
  • 2
  • 2
  • 1
  • 1
  • 1
  • Tagged with
  • 137
  • 137
  • 60
  • 49
  • 29
  • 21
  • 19
  • 18
  • 15
  • 15
  • 15
  • 14
  • 13
  • 11
  • 11
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
51

Exploring the Software Quality Maze: Detecting Scattered and Tangled Crosscutting Quality Concerns in Source Code in Support of Maintenance Tasks

Krasniqi, Rrezarta 05 1900 (has links)
Software quality attributes, such as reliability, security, and usability, are often well-defined and understood at the requirement level. They lay the ground foundation necessary to achieve high-quality, robust, user-friendly, and trustworthy software systems. However, when addressing these attributes at the code level, two significant challenges emerge. First, they tend to scatter across the codebase due to improper encapsulation of object-oriented classes, hampering the visibility of quality-related components across the codebase. Second, they become tangled within a single module due to intricate interdependencies with functional aspects of the code. Addressing quality concerns in the presence of scattered and tangled code can lead to unforeseen issues. For example, software developers may inadvertently introduce new and latent bugs or incorrectly implement code components deviating from the original system-wide requirements. To tackle these pressing issues, this dissertation proposes a series of state-of-the-art solutions integrating ML-based techniques and NLP-based techniques, including static program analysis techniques, to automatically and effectively detect and repair quality concerns present at the code level, even when scattered across the codebase. Additionally, we introduce program structural analysis and change impact analysis, complemented by other unsupervised ML-based techniques, to disentangle quality-related changes from functional ones, to gain a holistic understanding of a particular maintenance task. From a practical stance, our techniques can be integrated for quality risk assessment purposes and incorporated into safety-critical continuous integration systems to monitor the evolving nature of quality concerns. Furthermore, they can enhance bidirectional traceability across evolving software artifacts, such as bug reports, commit messages, and source code, and facilitate bug triaging systems for prioritizing the resolution of highly impacted quality-related bugs.
52

Dokumentera med eXtreme Programming : Går det?

Backeman, Jens, Carlson, Erik January 2010 (has links)
<p>Att sätta sig in i system kan vara krångligt utan rätt sorts dokumentation. Vi har undersökt vilken dokumentation som kan vara lämplig att lämna över till nya utvecklare, som ska arbeta vidare med systemet i software maintenance fasen.</p><p>Det har gjorts genom att vi har gjort en litteraturstudie om dokumentation samt undersökt vad för dokumentationsartefakter som används när man ska sätta sig in i datorsystem. Vi använde eXtreme Programming för att utveckla ett system som vi försökte dokumentera samtidigt som vi utvecklade det.</p><p>eXtreme Programming förordar muntlig kommunikation, vilket är svårt att lämna över till nya utvecklare. Vi upptäckte under vår utveckling att det var svårt att föra in dokumentation sam-tidigt som utvecklandet pågick,  därför använde vi bara enhetstester och  strukturerade kod-kommentarer under utvecklingsiterationerna.</p><p>Vi undersökte hur dokumentationen som skapats fungerade genom att göra en undersökning bestående av strukturerade intervjuer där de fick komma med kommentarer om hur dokumen-tationen hjälpte förståelsen för systemet.</p><p>Vi lämnar ifrån oss en vidareutveckling  av eXtreme Programming  som innefattar en doku-mentationsiteration  innan överlämnandet  samt en studie om vad för dokumentation som är värdefull att ha vid systemöverlämningar.</p> / <p>Understanding systems can be a tough task without the right sort of documentation. We have examined the documentation artifacts which may be appropriate to hand over to new develop-ers, who will continue working with the system during the software maintenance phase.</p><p>By doing a literature review on documentation and examined what documentation artifacts is used when you want to  understand a computer system. We used the eXtreme Programming system development methodology to develop a system that we tried to document as we devel-oped it.</p><p>eXtreme Programming favors oral communication, but that is hard to hand over to new devel-opers. We discovered during our development that it was difficult to introduce documentation while the development process was going on so we only used structured code comments and unit testing during the development iterations</p><p>We examined how the documentation that was created worked by doing a survey consisting of structured interviews where the respondents made comments about if and how the documen-tation improved their understanding of the system.</p><p>We pass on an evolved eXtreme Programming system development methodology, which in-cludes a standalone documentation iteration before the handover, and a study of what kind of documentation that is valuable to have when transferring systems to new developers.</p>
53

Programinės įrangos ir informacinių sistemų priežiūra didelėje organizacijoje / Software and information systems maintenance in organization

Baužaitė, Dalia 16 August 2007 (has links)
Programinės įrangos (PĮ) ir Informacinių sistemų (IS) priežiūros etapas yra paskutinioji sistemos gyvavimo ciklo dalis. Priežiūros sąvoka apima visas veiklas, vykdomas po produkto įdiegimo organizacijoje, o tai sudaro apie 70 % programų gyvavimo ciklo išlaidų. Nuolat kintanti aplinka įtakoja ir sistemos kaitą. Todėl būtina nuolatinė PĮ ir IS priežiūra. Kuriami įvairūs PĮ ir IS priežiūros metodai ir technikos, kurie yra plačiai analizuojami užsienio mokslinėje literatūroje ir taikomi praktiškai. Tačiau Lietuvoje dar tik pradėjo vystytis priežiūros teikimo paslaugos ir keistis požiūris į šį procesą. Nors užsienio mokslinėje literatūroje atkreipiamas dėmesys ir į Geografinių informacinių sistemų (GIS) priežiūros procesus, tačiau tai vis dar mažai išanalizuota sritis. Todėl, šiame darbe pasirinkta kryptinė tyrimo šaka GIS priežiūra ir duomenų valdymas. Darbo tikslas išanalizuoti visus siūlomus priežiūros proceso metodus ir technikas, skirtumus ir panašumus. Siekiama nustatyti, ar teoriniai metodai plačiai taikomi praktikoje. Empiriniam tyrimui atlikti naudotas anketinės apklausos metodas. Siekiama nustatyti vartotojų požiūrį į PĮ ir IS priežiūros kokybę. Apklausos rezultatai išsamiai analizuojami, pateikiamos išvados bei pasiūlymai tolimesnės PĮ ir IS priežiūros strategijai. / Software and information system (IS) maintenance is a rest phase of system life cycle. Maintenance involves about 70 % of all life cycle resources. Software and IS are changing with business environment together. Therefore, there are a lot of methods and techniques for maintenance process analyzing in research theory and applying in practice. However, those practices are starting in Lithuania software maintenance and attending only few groups of IT specialist There are many GIS maintenance researches in publications, but also it is wide range of aspect not including in theory. Therefore, many GIS maintenance processes are analyzing in this paper. The goal of this paper is to analyze all known software maintenance methods and techniques and to define are their used in practice. Research object of this paper is municipality of Klaipeda. This is an organization, with uses usual software and specialized GIS. There were used inquiry questionnaires in this goal research. Finally, by given implications there were proposed software and IS maintenance strategy in municipality of Klaipeda. Like an instance of this strategy, there were given an project of reengineered GIS subsystem.
54

Requirements specification using concrete scenarios

Au, Oliver T. S. January 2009 (has links)
The precision of formal specifications allows us to prove program correctness. Even if formal methods are not used throughout the software project, formalisation improves our understanding of the problem. Formal specifications are amenable to automated analysis and consistency checking. However using them is challenging. Customers do not understand formal notations. Specifiers have difficulty tackling large problems. Once systems are built, formal specifications quickly become outdated during software maintenance. A method of developing formal specifications using concrete scenarios is proposed to tackle the disadvantages just mentioned. A concrete scenario describes system behaviour with successive steps. The pre- and post-states of scenario steps are expressed with actual data rather than variables. Concrete scenarios are expressed in a natural language or formal notation. They increase customer involvement in the creation of formal specifications. Scenarios may be ranked by priorities allowing specifiers to focus on a small part of the system. Formal specifications are constructed incrementally. New requirements are also captured in concrete scenarios which guide the modification of formal specifications. On one hand, concrete scenarios assist the creation and maintenance of formal specifications. On the other hand, they facilitate program correctness proofs without using conventional formal specifications. This is achieved by adding implementation details to customer scenarios. The resulting developer scenarios, encapsulating decisions of data structures and algorithms, are generalised to operation schemas. With the implementation details, the schemas written in formal notations are programs rather than specifications.
55

Effektiwiteit van die herwinningsprogrammatuur van leeskompakskyfdatabassise

18 March 2015 (has links)
M.A. / CD-ROM products provide access to information by means of different modes of interaction, often on the same database. Although command language is still widely recognized as the interaction mode which retrieves the most relevant references, it is regarded as difficult to use because of its complex structure. More user friendly modes, for example, menu and direct manipulation are viewed as being more accessible to the up-and-coming end-user. The purpose of this study was to determine by means of an empirical study whether the retrieval effectiveness between two modes of interaction on the same database differed significantly. A literature survey pointed out the unique characteristics of existing modes. It was also established that the traditional measures of retrieval effectiveness through relevance and precision could not be applied in this research. A method was devised in which the results of the two modes were compared. The empirical study was done on the command and form fill-in modes of Wilson Business Abstracts. Total results retrieved through each mode were compared, as well as the ease of entering the search by means of appropriate search facilities for each mode. The results of the research revealed that the presence of unique search facilities in a mode results in better retrieval effectiveness. Searches in both modes also require specific ways of input for optimum quality retrieval and thus has implications for intensive training in search methods.
56

Software Engineering Using design RATionale

Burge, Janet E 02 May 2005 (has links)
For a number of years, members of the Artificial Intelligence (AI) in Design community have studied Design Rationale (DR), the reasons behind decisions made while designing. DR is invaluable as an aid for revising, maintaining, documenting, evaluating, and learning the design. The presence of DR would be especially valuable for software maintenance. The rationale would provide insight into why the system is the way it is by giving the reasons behind the design decisions, could help to indicate where changes might be needed during maintenance if design goals change, and help the maintainer avoid repeating earlier mistakes by explicitly documenting alternatives that were tried earlier that did not work. Unfortunately, while everyone agrees that design rationale is useful, it is still not used enough in practice. Possible reasons for this are that the uses proposed for rationale are not compelling enough to justify the effort involved in its capture and that there are few systems available to support rationale use and capture. We have addressed this problem by developing and evaluating a system called SEURAT (Software Engineering Using RATionale) which integrates with a software development environment and goes beyond mere presentation of rationale by inferencing over it to check for completeness and consistency in the reasoning used while a software system is being developed and maintained. We feel that the SEURAT system will be invaluable during development and maintenance of software systems. During development, SEURAT will help the developers ensure that the systems they build are complete and consistent. During maintenance, SEURAT will provide insight into the reasons behind the choices made by the developers during design and implementation. The benefits of DR are clear but only with appropriate tool support, such as that provided by SEURAT, can DR live up to its full potential as an aid for revising, maintaining, and documenting the software design and implementation.
57

Swarm debugging : the collective debugging intelligence of the crowd / Depuração em enxame : a inteligência coletiva na depuração pela multidão

Petrillo, Fábio dos Santos January 2016 (has links)
As formigas são criaturas fascinantes que, além dos avanços na biologia também inspiraram pesquisas sobre teoria da informação. Em particular, o estudo resultou na criação da Teoria da Forragem de Informação, que descreve como os agentes de buscam informações em seu ambiente. Esta teoria também explica fenômenos recentes e bem-sucedidos, como crowd sourcing. Crowdsourcing tem sido aplicado a muitas atividades em engenharia de software, incluindo desenvolvimento, tradução e testes, mas uma atividade parece resistir: depuração. No entanto, os desenvolvedores sabem que a depuração pode exigir dedicação, esforço, longas horas de trabalho, por vezes, para mudar uma linha de código único. Nós introduzimos o conceito de Depuração em Enxame, para trazer crowd sourcing para a atividade de depuração. Através de crowd sourcing, pretendemos ajudar os desenvolvedores, capitalizando a sua dedicação, esforço e longas horas de trabalho para facilitar atividades de depuração. Mostramos que a depuração enxame requer uma abordagem específica para recolher informações relevantes, e descrevemos sua infra-estrutura. Mostramos também que a depuração em enxame pode reduzir o esforço desenvolvedores. Concluímos com as vantagens e limitações atuais de depuração enxame, e sugerir caminhos para superar estas limitações e ainda mais a adoção de crowd sourcing para atividades de depuração. / Ants are fascinating creatures that beyond the advances in biology have also inspired research on information theory. In particular, their study resulted in the creation of the Information Foraging Theory, which describes how agents forages for information in their environment. This theory also explains recent and fruitful phenomena, such as crowdsourcing. Many activities in software engineering have applied crowdsourcing, including development, translation, and testing, but one action seems to resist: debugging. Developers know that debugging can require dedication, effort, long hours of work, sometimes for changing one line of code only. We introduce the concept of Swarm Debugging, to bring crowdsourcing to the activity of debugging. Through crowdsourcing, we aim at helping developers by capitalizing on their dedication, effort, and long hours of work to ease debugging activities of their peers or theirs, on other bugs. We show that swarm debugging requires a particular approach to collect relevant information, and we describe the Swarm Debugging Infrastructure. We also show that swarm debugging minimizes developers effort. We conclude with the advantages and current limitations of swarm debugging and suggest directions to overcome these limitations and further the adoption of crowdsourcing for debugging activities.
58

Supporting Software Evolution in Agent Systems

Dam, Khanh Hoa, s3007289@student.rmit.edu.au January 2009 (has links)
Software maintenance and evolution is arguably a lengthy and expensive phase in the life cycle of a software system. A critical issue at this phase is change propagation: given a set of primary changes that have been made to software, what additional secondary changes are needed to maintain consistency between software artefacts? Although many approaches have been proposed, automated change propagation is still a significant technical challenge in software maintenance and evolution. Our objective is to provide tool support for assisting designers in propagating changes during the process of maintaining and evolving models. We propose a novel, agent-oriented, approach that works by repairing violations of desired consistency rules in a design model. Such consistency constraints are specified using the Object Constraint Language (OCL) and the Unified Modelling Language (UML) metamodel, which form the key inputs to our change propagation framework. The underlying change propagation mechanism of our framework is based on the well-known Belief-Desire-Intention (BDI) agent architecture. Our approach represents change options for repairing inconsistencies using event-triggered plans, as is done in BDI agent platforms. This naturally reflects the cascading nature of change propagation, where each change (primary or secondary) can require further changes to be made. We also propose a new method for generating repair plans from OCL consistency constraints. Furthermore, a given inconsistency will typically have a number of repair plans that could be used to restore consistency, and we propose a mechanism for semi-automatically selecting between alternative repair plans. This mechanism, which is based on a notion of cost, takes into account cascades (where fixing the violation of a constraint breaks another constraint), and synergies between constraints (where fixing the violation of a constraint also fixes another violated constraint). Finally, we report on an evaluation of the approach, covering both effectiveness and efficiency.
59

Rejuvenating C++ Programs through Demacrofictation

Aditya Kumar, - 14 March 2013 (has links)
As we migrate software to new versions of programming languages, we would like to improve the style of its design and implementation by replacing brittle idioms and abstractions with the more robust features of the language and its libraries. This process is called source code rejuvenation. In this context, we are interested in replacing C preprocessor macros in C++ programs with C++11 declarations. The kinds of problems engendered by the C preprocessor are many and well known. Because the C preprocessor operates on the token stream independently from the host language’s syntax, its extensive use can lead to hard-to-debug semantic errors. In C++11, the use of generalized constant expressions, type deduction, perfect forwarding, lambda expressions, and alias templates eliminate the need for many previous preprocessor-based idioms and solutions. Additionally, these features can be used to replace macros from legacy code providing better type safety and reducing software-maintenance efforts. In order to remove the macros, we have established a correspondence between different kinds of macros and the C++11 declarations to which they could be trans- formed. We have also developed a set of tools to automate the task of demacrofying C++ programs. One of the tools suggest a one-to-one mapping between a macro and its corresponding C++11 declaration. Other tools assist in carrying out iterative application of refactorings into a software build and generating rejuvenated programs. We have applied the tools to seven C++ libraries to assess the extent to which these libraries might be improved by demacrofication. Results indicate that between 52% and 98% of potentially refactorable macros could be transformed into C++11 declarations.
60

Policy-Driven Framework for Static Identification and Verification of Component Dependencies

Livogiannis, Anastasios 02 June 2011 (has links)
Software maintenance is considered to be among the most difficult, lengthy and costly parts of a software application's life-cycle. Regardless of the nature of the software application and the software engineering efforts to reduce component coupling to minimum, dependencies between software components in applications will always exist and initiate software maintenance operations as they tend to threaten the "health" of the software system during the evolution of particular components. The situation is more serious with modern technologies and development paradigms, such as Service Oriented Architecture Systems and Cloud Computing that introduce larger software systems that consist of a substantial number of components which demonstrate numerous types of dependencies with each other. This work proposes a reference architecture and a corresponding software framework that can be used to model the dependencies between components in software systems and can support the verification of a set of policies that are derived from system dependencies and are relative to the software maintenance operations being applied. Dependency modelling is performed using configuration information from the system, as well as information harvested from component interface descriptions. The proposed approach has been applied to a medium scale SOA system, namely the SCA Travel Sample from Apache Software Foundation, and has been evaluated for performance in a configuration specification related to a simulated SOA system consisting to up to a thousand web services offered in a few hundred components.

Page generated in 0.051 seconds