124 research outputs found

    A survey on software testability

    Full text link
    Context: Software testability is the degree to which a software system or a unit under test supports its own testing. To predict and improve software testability, a large number of techniques and metrics have been proposed by both practitioners and researchers in the last several decades. Reviewing and getting an overview of the entire state-of-the-art and state-of-the-practice in this area is often challenging for a practitioner or a new researcher. Objective: Our objective is to summarize the body of knowledge in this area and to benefit the readers (both practitioners and researchers) in preparing, measuring and improving software testability. Method: To address the above need, the authors conducted a survey in the form of a systematic literature mapping (classification) to find out what we as a community know about this topic. After compiling an initial pool of 303 papers, and applying a set of inclusion/exclusion criteria, our final pool included 208 papers. Results: The area of software testability has been comprehensively studied by researchers and practitioners. Approaches for measurement of testability and improvement of testability are the most-frequently addressed in the papers. The two most often mentioned factors affecting testability are observability and controllability. Common ways to improve testability are testability transformation, improving observability, adding assertions, and improving controllability. Conclusion: This paper serves for both researchers and practitioners as an "index" to the vast body of knowledge in the area of testability. The results could help practitioners measure and improve software testability in their projects

    State of Refactoring Adoption: Towards Better Understanding Developer Perception of Refactoring

    Get PDF
    Context: Refactoring is the art of improving the structural design of a software system without altering its external behavior. Today, refactoring has become a well-established and disciplined software engineering practice that has attracted a significant amount of research presuming that refactoring is primarily motivated by the need to improve system structures. However, recent studies have shown that developers may incorporate refactoring strategies in other development-related activities that go beyond improving the design especially with the emerging challenges in contemporary software engineering. Unfortunately, these studies are limited to developer interviews and a reduced set of projects. Objective: We aim at exploring how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring (SAR), which is an indication of the developer-related refactoring events in the commit messages. After that, we propose an approach to identify whether a commit describes developer-related refactoring events, to classify them according to the refactoring common quality improvement categories. To complement this goal, we aim to reveal insights into how reviewers develop a decision about accepting or rejecting a submitted refactoring request, what makes such review challenging, and how to the efficiency of refactoring code review. Method: Our empirically driven study follows a mixture of qualitative and quantitative methods. We text mine refactoring-related documentation, then we develop a refactoring taxonomy, and automatically classify a large set of commits containing refactoring activities, and identify, among the various quality models presented in the literature, the ones that are more in-line with the developer\u27s vision of quality optimization, when they explicitly mention that they are refactoring to improve them to obtain an enhanced understanding of the motivation behind refactoring. After that, we performed an industrial case study with professional developers at Xerox to study the motivations, documentation practices, challenges, verification, and implications of refactoring activities during code review. Result: We introduced SAR taxonomy on how developers document their refactoring strategies in commit messages and proposed a SAR model to automate the detection of refactoring. Our survey with code reviewers has revealed several difficulties related to understanding the refactoring intent and implications on the functional and non-functional aspects of the software. Conclusion: Our SAR taxonomy and model, can work in conjunction with refactoring detectors, to report any early inconsistency between refactoring types and their documentation and can serve as a solid background for various empirical investigations. In light of our findings of the industrial case study, we recommended a procedure to properly document refactoring activities, as part of our survey feedback

    Simulation modelling software approaches to manufacturing problems

    Get PDF
    Increased competition in many industries has resulted in a greater emphasis on developing and using advanced manufacturing systems to improve productivity and reduce costs. The complexity and dynamic behaviour of such systems, make simulation modelling one of the most popular methods to facilitate the design and assess operating strategies of these systems. The growing need for the use of simulation is reflected by a growth in the number of simulation languages and data-driven simulators in the software market. This thesis investigates which characteristics typical manufacturing simulators possess, and how the user requirements can be better fulfilled. For the purpose of software evaluation, a case study has been carried out on a real manufacturing system. Several simulation models of an automated system for electrostatic powder coating have been developed using different simulators. In addition to the evaluation of these simulators, a comprehensive evaluation framework has been developed to facilitate selection of simulation software for modelling manufacturing systems. Different hierarchies of evaluation criteria have been established for different software purposes. In particular, the criteria that have to be satisfied for users in education differ from those for users in industry. A survey has also been conducted involving a number of users of software for manufacturing simulation. The purpose of the survey was to investigate users' opinions about simulation software, and the features that they desire to be incorporated in simulation software. A methodology for simulation software selection is also derived. It consists of guidelines related to the actions to be taken and factors to be considered during the evaluation and selection of simulation software. On the basis of all the findings, proposals on how manufacturing simulators can be improved are made, both for use in education and in industry. These software improvements should result in a reduction in the amount of time and effort needed for simulation model development, and therefore make simulation more beneficial

    Novel Methods for Analyzing and Visualizing Phylogenetic Placements

    Get PDF
    Die DNS (englisch: DNA) bildet die vererbbare Grundlage allen bekannten Lebens auf dem Planeten. Entsprechend wichtig ist ihre "Entschlüsselung" für die Biologie im Allgemeinen, und für die Erforschung der evolutionären Zusammenhänge verschiedener biologischer Artern im Besonderen. In den letzten Jahrzehnten hat eine rasante technologische Entwicklung im Bereich der DNS-Sequenzierung stattgefunden, die auch auf absehbare Zeit noch nicht zum Stillstand kommen wird. Die biologische Forschung hat daher den Bedarf an computer-gestützten Methoden erkannt, sowohl in Bezug auf die Speicherung und Verarbeitung der immensen Datenmengen, die bei der Sequenzierung anfallen, als auch in Bezug auf deren Analyse und Visualisierung. Eine grundlegene Fragestellung ist dabei die nach dem Stammbaum des Lebens, der die evolutionäre Verwandtschaft der Arten beschreibt. Diese Wissenschaft wird Phylogenetik, und die resultierenden Strukturen phylogenetische Bäume genannt. Häufig basieren diese Bäume auf dem Vergleich von DNS-Sequenzen der Arten, mit der Idee, dass Arten mit ähnlicher DNS auch im Baum nah beieinander liegen. Die Berechnung eines solchen Baumes aus DNS-Daten kann als Optimierungsproblem formuliert werden, das durch die stetig wachsende Menge an Daten für die Informatik eine Herausforderung darstellt. Aktuell beschäftigt sich die Mikrobiologie zum Beispiel mit der Erkundung und Erforschung von Proben (Samples), die aus Meereswasser, dem Erdreich, dem menschlichen Körper, und ähnlichen Umgebungen gewonnen wurden: Welche mikrobischen Arten, Bakterien und andere Einzeller, bewohnen diese Umgebungen und Proben? Das zugehörige Forschungsfeld ist die Meta-Genetik. Einen verlässlichen Stammbaum für die aber-millionen an Sequenzen aus solchen Proben zu errechnen ist praktisch unmöglich. Eine Alternative bietet die phylogenetische Platzierung der Sequenzen auf einem gegebenen Referenz-Baum von bekannten Arten (so genanntes phylogenetisches Placement): Hierbei wird ein Stammbaum aus Referenz-Sequenzen bekannter Arten gewählt, der möglichst viel der in den Proben zu erwartenden Artenvielfalt abdeckt, und dann für jede Sequenz aus den Proben die nächste Verwandtschaft innerhalb des Baumes bestimmt. Dies resultiert in einer Zuordnung von Sequenzen auf die Positionen verwandter Arten im Referenz-Baum. Diese Zuordnung kann auch als Verteilung der Sequenzen auf dem Baum verstanden werden: In dieser Interpretation kann man beispielsweise erkennen, welche Arten (und deren Verwandtschaft) besonders häufig in den Proben vertreten sind. Diese Arbeit beschäftigt sich mit neuen Methoden zur Vor- und Nachbereitung, Analyse, und Visualisierung rund um den Kernbereich des phylogenetischen Placements von DNS-Sequenzen. Zunächst stellen wir eine Methode vor, die einen geeigneten Referenz-Baum für die Platzierung liefern kann. Die Methode heißt PhAT (Phylogenetic Automatic (Reference) Trees), und nutzt Datenbanken bekannter DNS-Sequenzen, um geeigenete Referenz-Sequenzen für den Baum zu bestimmen. Die durch PhAT produzierten Bäume sind beispielsweise dann interessant, wenn die in den Proben zu erwartende Artenvielfalt noch nicht bekannt ist: In diesem Fall kann ein breiter Baum, der viele der bekannten Arten abdeckt, helfen, neue, unbekannte Arten zu entdecken. Im gleichen Kapitel stellen wir außerdem zwei Behilfs-Methoden vor, um den Prozess und die Berechnungen der Placements von großen Datensätzen zu beschleunigen und zu ermöglichen. Zum einen stellen wir Multilevel-Placement vor, mit dem besonders große Referenz-Bäume in kleinere, geschachtelte Bäume aufgeteilt werden können, um so schnellere und detalliertere Platzierungen vornehmen können, als auf einem einzelnen großen Baum möglich wären. Zum anderen beschreiben wir eine Pipeline, die durch geschickte Lastverteilung und Vermeidung von Duplikaten den Prozess weiter beschleunigen kann. Dies eignet sich insbesondere für große Datensätze von zu platzierenden Sequenzen, und hat die Berechnungen erst ermöglicht, die wir zum testen der im weiteren vorgestellten Methoden benötigt haben. Im Anschluss stellen wir zwei Methoden vor, um die Placement-Ergebnisse verschiedener Proben miteinander zu vergleichen. Die Methoden, Edge Dispersion und Edge Correlation, visualisieren den Referenz-Baum derart, dass die in Bezug auf die Proben interessanten und relevanten Regionen des Baumes sichtbar werden. Edge Dispersion zeigt dabei Regionen, in denen sich die Häufigkeit der in den Proben vorhandenen mikrobischen Arten besonders stark zwischen den einzelnen Proben unterscheided. Dies kann als erste Erkundung von neuen Datensätzen dienen, und gibt Aufschluss über die Varianz der Häufigkeit bestimmter Arten. Edge Correlation hingegen bezieht zusätzlich Meta-Daten mit ein, die zu den Proben gesammelt wurden. Dadurch können beispielsweise Abhängigkeiten zwischen Häufigkeiten von Arten und Faktoren wie dem pH-Wert des Bodens oder dem Nitrat-Gehalt des Wassers, aus dem die Proben stammen, aufgezeigt werden. Es hat damit ähnlichkeiten zu einer bestehenden Methode names Edge PCA, die ebenfalls relevante Regionen des Baumen identifizieren kann, allerdings die vorhandenen Meta-Daten nur indirekt einbeziehen kann. Eine weitere Fragestellung ist die Gruppierung (Clustering) von Proben anhand von Gemeinsamkeiten, wie beispielweise einer ähnlichen Verteilungen der Sequenzen auf dem Referenz-Baum. Anhand geeigneter Distanz-Maße wie der Kantorovich-Rubinstein-Distanz (KR-Distanz) können ähnlichkeiten zwischen Proben quantifiziert werden, und somit ein Clustering erstellt werden. Für große Datensätze mit hunderten und tausenden von einzlnen Proben stoßen bestehende Methoden für diesen Einsatzzweck, wie zum Beispiel das so genannte Squash Clustering, an ihre Grenzen. Wir haben daher die kk-means-Methode derart erweitert, dass sie für Placement-Daten genutzt werden kann. Dazu präsentieren wir zwei Methoden, Phylogenetic kk-means und Imbalance kk-means, die verschiedene Distanzmaße zwischen Proben (KR-Distanz, und ein weiteres geeignetes Maß) nutzen, um Bäume mit ähnlichen Verteilungen von platzierten Sequenzen zu gruppieren. Sie betrachten jede Probe als einen Datenpunkt, und nutzen die zugrunde liegende Struktur des Referenz-Baumes für die Berechnungen. Mit diesen Methoden können auch Datensätze mit zehntausenden Proben verarbeitet werden, und Clusterings und ähnlichkeiten von Proben erkannt und visualisiert werden. Wir haben außerdem ein Konzept namens Balances für Placement-Daten adaptiert, welches ursprünglich für so genannte OTU-Sequenzen (Operational Taxonomic Units) entwickelt wurde. Balances erlauben eine Beschreibung des Referenz-Baumes und der darauf platzierten Sequenzen, die ganze Gruppen von Referenz-Arten zusammenfasst, statt jede Art einzeln in die Berechnungen einfließen zu lassen. Diese Beschreibung der Daten bietet verschiedene Vorteile für die darauf basierenden Analysen, wie zum Beispiel eine Robustheit gegenüber der exakten Wahl der Referenz-Sequenzen, und einer anschaulichen Beschreibung und Visualisierung der Ergebnisse. Insbesondere aus mathematischer Sicht sind Balances für die Analyse interessant, da sie problematische Artefakte aufgrund der kompositionellen Natur meta-genetischer Daten beheben. Im Zuge dieser Arbeit dienen Balances hauptsächlich als Zwischenschritt zur Daten-Repräsentation. Eine Anwendung von Balances ist die so genannte Phylofactorization. Diese recht neue Methode teilt einen gegebenen Baum derart in Sub-Bäume ein, dass jeder Sub-Baum eine Gruppe von Arten darstellt, die in Bezug auf gegebene Meta-Daten pro Probe relevant sind. Dadurch können beispielsweise Gruppen identifiziert werden, deren evolutionäre Merkmale sich in Abhängigkeit von Meta-Daten wie pH-Wert angepasst haben im Vergleich zu anderen Gruppen. Dies ist ähnlich zur oben genannten Edge Correlation, aber kann zum einen durch geschickte mathematische Ansätze (insbesondere der Nutzung von Generalized Linear Models) mehrere Meta-Daten gleichzeitig einbeziehen, und zum anderen auch verschachtelte Gruppen finden. Die zugrunde liegenden Ideen dieser Methoden bieten einen großen Spielraum sowohl für Analysen von Daten, als auch für Weiterentwicklungen und Ergänzungen für verwandte Fragestellungen. Wir haben diese Methode für Placement-Daten adaptiert und erweitert, und stellen diese Variante, genannt Placement-Factorization, vor. Im Zuge dieser Adaption haben wir außerdem verschiedene ergänzende Berechnungen und Visalisierungen entwickelt, die auch für die ursprüngliche Phylofactorization nützlich sind. Alle genannten neuen Methoden wurden ausführlich getestet in Bezug auf ihre Eignung zur Erforschung von mikrobiologischen Zusammenhängen. Wir haben dazu verschiedene bekannte Datzensätze von DNS-Sequenzen aus Wasser- und Bodenproben, sowie Proben des menschlichen Mikrobioms, verwendet und diese auf geeigneten Referenz-Bäumen platziert. Anhand dieser Daten haben wir zum einen die Plausibilität der durch unsere Analysen erzielten Ergebnisse geprüft, als auch Vergleiche der Ergebnisse mit ähnlichen, etablierten Methoden vorgenommen. Sämtliche Analysen, Visualisierungen, und Vergleiche werden in den jeweils entsprechenden Kapiteln vorgestellt, und die Ergebnisse dargestellt. Alle Tests zeigen, dass unsere Methoden auf den getesteten Datensätzen zu Resultaten führen, die konsistent mit anderen Analysen sind, und geeignet sind, um neue biologische Erkenntnisse zu gewinnen. Sämtliche hier vorgestellten Methoden sind in unserer Software-Bibliothek genesis implementiert, die wir im Zuge dieser Arbeit entwickelt haben. Die Bibliothek ist in modernem C++11 geschrieben, hat einen modularen und funktions-orientierten Aufbau, ist auf Speichernutzung und Rechengeschwindigkeit optimiert, und nutzt vorhandene Multi-Prozessor-Umgebungen. Sie eignet sich daher sowohl für schnelle Tests von Prototypen, als auch zur Entwicklung von Analyse-Software für Endanwender. Wir haben genesis bereits erfolgreich in vielen unserer Projekte eingesetzt. Insbesondere bieten wir sämtliche hier präsentierten Methoden über unser Software-Tool gappa an, das intern auf genesis basiert. Das Tool stellt einen einfachen Kommandozeilen-Zugriff auf die vorhandenen Analysemethoden bereit, und bietet ausreichend Optionen für die Analysen der meisten End-Anwender. Im abschließenden Kapitel wagen wir einen Ausblick in weitere Forschungsmöglichkeiten im Bereich der Methoden-Entwicklung für meta-genetische Fragestellungen im Allgemeinen, und der placement-basierten Methoden im Speziellen. Wir benennen verschiedene Herausforderungen in Bezug auf die Nutzbarkeit solcher Methoden für Anwender und ihrer Skalierbarkeit für immer größer werdende Datensätze. Außerdem schlagen wir verschiedene weitergehende Ansätze vor, die zum Beispiel auf neuronalen Netzwerken und Deep Learning basieren könnten. Mit aktuellen Datensätzen wären solche Methoden nicht robust trainierbar; durch das in Zukuft zu erwartenden Wachstum an Daten kann dies allerdings bald in den Bereich des Möglichen kommen. Schließlich identifizierenden wir einige tiefer gehende Forschungsfragen aus der Biologie und Medizin, bei deren Beantwortung unsere Methoden in Zukunft helfen können

    Management. A continuing bibliography with indexes

    Get PDF
    This bibliography cites 604 reports, articles, and other documents introduced into the NASA scientific and technical information system in 1979 covering the management of research and development, contracts, production, logistics, personnel, safety, reliability and quality control. Program, project, and systems management; management policy, philosophy, tools, and techniques; decision making processes for managers; technology assessment; management of urban problems; and information for managers on Federal resources, expenditures, financing, and budgeting are also covered. Abstracts are provided as well as subject, personal author, and corporate source indexes

    Software test and evaluation study phase I and II : survey and analysis

    Get PDF
    Issued as Final report, Project no. G-36-661 (continues G-36-636; includes A-2568

    Proceedings of the Fifteenth Annual Software Engineering Workshop

    Get PDF
    The Software Engineering Laboratory (SEL) is an organization sponsored by GSFC and created for the purpose of investigating the effectiveness of software engineering technologies when applied to the development of applications software. The goals of the SEL are: (1) to understand the software development process in the GSFC environment; (2) to measure the effect of various methodologies, tools, and models on this process; and (3) to identify and then to apply successful development practices. Fifteen papers were presented at the Fifteenth Annual Software Engineering Workshop in five sessions: (1) SEL at age fifteen; (2) process improvement; (3) measurement; (4) reuse; and (5) process assessment. The sessions were followed by two panel discussions: (1) experiences in implementing an effective measurement program; and (2) software engineering in the 1980's. A summary of the presentations and panel discussions is given

    AN EMERGING THEORY ON THE INTERACTION BETWEEN REQUIREMENTS ENGINEERING AND SYSTEMS ARCHITECTING BASED ON A SUITE OF EXPLORATORY EMPIRICAL STUDIES

    Get PDF
    Requirements Engineering and Systems Architecting are often considered the most important phases of the software development lifecycle. Because of their close proximity in the software development lifecycle, there is a high degree of interaction between these two processes. While such interaction has been recognized and researched in terms of new technology (particularly methods and tools), there is a distinct lack of empirical understanding regarding the scientific properties of this interaction. Furthermore, in Requirements Engineering and Systems Architecting, not only technical but human aspects are considered critical for the success of these processes due to these processes lying at the front-end of the development cycle and therefore being more aligned with real-world issues. Thus, the scientific properties of the interactions between Requirements Engineering and Systems Architecting can be broken down into these two key aspects. For instance, the following example research questions relate to such scientific properties: What is the impact of an existing system’s architecture on requirements decision-making? What kinds of requirements-oriented problems are encountered during architecting? What is the impact of an existing systems architecture on new requirements being elicited? What is the impact of requirements engineering knowledge on systems architecting? There is little in the literature addressing such questions. This thesis explores such issues through a suite of six exploratory empirical studies that were conducted over the last five years. Based on the observations from these studies, an emerging theory is proposed that describes the impact of human and process factors in the interaction between Requirements Engineering and Systems Architecting. The impact of this emerging body of knowledge is deemed to be on the following: technology development for Requirements Engineering and Software Architecting (methods, tools, processes, etc.); hiring and training personnel for Requirements Engineering and Systems Architecture processes in industry; Requirements Engineering and Systems Architecture project planning; curriculum improvement in academia; and future empirical research in Requirements Engineering and Systems Architecting

    Impact of Information Technology on innovation in determining firm performance.

    Get PDF
    Masters Degree. University of KwaZulu-Natal, Durban.The aim of this study was to investigate if IT Capability played a moderating role on the relationship between Innovation Capability and the Firm Performance. The study used resource-based theory to test if IT was a competitive resource, by examining the role it played between the constructs of innovation capability and firm performance. A cross-sectional study was conducted amongst two hundred and ninety two (292) employees at the Hillside Aluminium Smelter in Richards Bay, South Africa. The results showed a strong, positive and statistically significant relationship between innovation and firm performance (r-value of 0.616, p-value <0.01, and R2 value of 0.375). The results also support the model in showing a moderate and statistically significant relationship between IT Capability and Innovation Capability (r-value of 0.563, p-value <0.01, and R2 value of 0.32). The conceptual model tested the moderation role of IT Capability between Innovation Capability and Firm Performance. These results showed a favorable result for the moderator variable (p-value <0.01), however the Innovation Capability as the independent variable showed an unfavorable results (p-value=0.579 > 0.05), albeit with a good R2 value of 0.45. Consequently, a multiple regression analysis was conducted using IT Capability and Innovation Capability as independent variables. This model proved to be statistically significant with both p-values of <0.01 and a R2 value of 0.4573. This result fitted well with the research analysis. For practice, the drive for innovation as a key determinant of future firm competitive advantage must factor in the technological capability, specifically information technology. Through the careful selection of IT resources and skills, IT capabilities the are valuable, rare, imperfectly imitable, and non-substitutable can be achieved, resulting in IT as a strategic resource
    corecore