Software Evolution
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Refactoring of Acceptance Tests in Visual Studio
Refactoring of Acceptance Tests in Visual Studio Denis Elbert Diplomarbeit Studiengang Informatik (Technik) Fakultät für Informatik Hochschule Mannheim Autor: Denis Elbert Matrikelnummer: 510243 Zeitraum: 16.11.2009 – 16.03.2010 Erstgutachterin: Prof. Dr. Astrid Schmücker-Schend Zweitgutachterin Prof. Dr. Miriam Föller-Nord Praktischer Teil angefertigt bei: Prof. Dr. Frank Maurer Agile Software Engineering Group University of Calgary Department of Computer Science 2500 University Dr NW Calgary, Alberta T2N 1N4 Canada Refactoring of Acceptance Tests in Visual Studio STATUTORY DECLARATION (GERMAN) Ich versichere, dass ich die vorliegende Arbeit selbstständig und ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt habe. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten und nicht veröffentlichten Schriften entnommen wurden, sind als solche kenntlich gemacht. Die Arbeit hat in dieser oder ähnlicher Form keiner anderen Prüfungsbehörde vorgelegen. Mannheim, 16.03.2010 ________________________ Unterschrift I Refactoring of Acceptance Tests in Visual Studio ABSTRACT Executable Acceptance Test Driven Development (EATDD) is an extension of Test Driven Development (TDD). TDD requires that unit tests are written before any code. EATDD pushes this TDD paradigm to the customer level by using Acceptance Tests to specify the requirements and features of a system. The Acceptance Tests are mapped to a Fixture that permits the automated execution of the tests. With ongoing development the requirements of the system can change. Thus, the Acceptance Tests must be adjusted in order to reflect the new requirements. Since the tests and the corresponding Fixtures must remain consistent, the manual modification of these tests is time consuming and error-prone. Hence comes the need for Acceptance Test refactoring. -
Development and Certification of Mixed-Criticality Embedded
Development and Certification of Mixed-criticality Embedded Systems based on Probabilistic Timing Analysis Irune Agirre Troncoso Computer Architecture Department Universitat Polit`ecnicade Catalunya A thesis submitted for the degree of PhD in Computer Architecture May 2018 Development and Certification of Mixed-criticality Embedded Systems based on Probabilistic Timing Analysis Irune Agirre Troncoso May 2018 Universitat Polit`ecnicade Catalunya Computer Architecture Department Thesis submitted for the degree of Doctor of Philosophy in Computer Architecture Advisor: Francisco J. Cazorla, Barcelona Supercomputing Center and IIIA-CSIC Co-advisor: Mikel Azkarate-askatsua, IK4-Ikerlan Technology Research Center The work reported in this Thesis has been conducted in collaboration between the Univer- sitat Polit`ecnicade Catalunya, the Dependable Embedded Systems department of IK4-Ikerlan Technology Research Center and the Computer Architecture and Operating Systems (CAOS) group of the Barcelona Supercomputing Center (BSC). i ii Abstract An increasing variety of emerging systems relentlessly replace or aug- ment the functionality of mechanical subsystems with embedded elec- tronics. For quantity, complexity, and use, the safety of such subsys- tems, often subject to regulation, is an increasingly important matter. Those systems are subject to safety certification to demonstrate sys- tem's safety by rigorous development processes and hardware/software constraints. The massive augment in embedded processors' complexity renders the arduous certification task significantly harder to achieve. The focus of this thesis is to address the certification challenges in multicore architectures: despite their potential to integrate several ap- plications on a single platform, their inherent complexity imperils their timing predictability and certification. For the former, Measurement- Based Probabilistic Timing Analysis (MBPTA) has recently emerged as an alternative to deal with hardware/software complexity. -
Why Did We Choose Freebsd?
Why Did We Choose FreeBSD? Index Why FreeBSD in General? Why FreeBSD Rather than Linux? Why FreeBSD Rather than Windows? Why Did we Choose FreeBSD in General? We are using FreeBSD version 6.1. Here are some more specific features which make it appropriate for use in an ISP environment: Very stable, especially under load as shown by long-term use in large service providers. FreeBSD is a community-supported project which you can be confident is not going to 'go commercial' or start charging any license fees. A single source tree which contains both the kernel and all the rest of the code needed to build a complete base system. Contrast with Linux that has one kernel but hundreds of distributions to choose from, and which may come and go over time. Scalability features as standard: e.g. pwd.db (indexed password database), which give you much better performance and scales well for very large sites. Superior TCP/IP stack that responds well to extremely heavy load. Multiple firewall packages built in to the base system (IPF, IPFW, PF). High-end debugging and tracing tools, including the recently announced port of the Sun Dynamic Tracing tool, DTrace, to FreeBSD. Ability to gather fine-grained statistics on system performance using many included utilities like systat, gstat, iostat, di, swapinfo, disklabel, etc. Items such as software RAID are supported using multiple utilities (ata, ccd. vinum, geom). RAID-1 using GEOM Mirror (see gmirror) supports identical disk sets, or identical disk slieces. Take a look at the most stable web sites according to NetCraft (http://news.netcraft.com/archives/2006/06/06/six_hosting_companies_most_reliable_hoster_in_may.html). -
BSD UNIX Toolbox 1000+ Commands for Freebsd, Openbsd
76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iii BSD UNIX® TOOLBOX 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD®Power Users Christopher Negus François Caen 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page ii 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page i BSD UNIX® TOOLBOX 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page ii 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iii BSD UNIX® TOOLBOX 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD®Power Users Christopher Negus François Caen 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iv BSD UNIX® Toolbox: 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD® Power Users Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2008 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-37603-4 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 Library of Congress Cataloging-in-Publication Data is available from the publisher. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permis- sion should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions. -
Absolute BSD—The Ultimate Guide to Freebsd Table of Contents Absolute BSD—The Ultimate Guide to Freebsd
Absolute BSD—The Ultimate Guide to FreeBSD Table of Contents Absolute BSD—The Ultimate Guide to FreeBSD............................................................................1 Dedication..........................................................................................................................................3 Foreword............................................................................................................................................4 Introduction........................................................................................................................................5 What Is FreeBSD?...................................................................................................................5 How Did FreeBSD Get Here?..................................................................................................5 The BSD License: BSD Goes Public.......................................................................................6 The Birth of Modern FreeBSD.................................................................................................6 FreeBSD Development............................................................................................................7 Committers.........................................................................................................................7 Contributors........................................................................................................................8 Users..................................................................................................................................8 -
Jedit: Isabelle/Jedit
jEdit ∀ = Isabelle α λ β → Isabelle/jEdit Makarius Wenzel 5 December 2013 Abstract Isabelle/jEdit is a fully-featured Prover IDE, based on Isabelle/Scala and the jEdit text editor. This document provides an overview of general principles and its main IDE functionality. i Isabelle's user interface is no advance over LCF's, which is widely condemned as \user-unfriendly": hard to use, bewildering to begin- ners. Hence the interest in proof editors, where a proof can be con- structed and modified rule-by-rule using windows, mouse, and menus. But Edinburgh LCF was invented because real proofs require millions of inferences. Sophisticated tools | rules, tactics and tacticals, the language ML, the logics themselves | are hard to learn, yet they are essential. We may demand a mouse, but we need better education and training. Lawrence C. Paulson, \Isabelle: The Next 700 Theorem Provers" Acknowledgements Research and implementation of concepts around PIDE and Isabelle/jEdit has started around 2008 and was kindly supported by: • TU M¨unchen http://www.in.tum.de • BMBF http://www.bmbf.de • Universit´eParis-Sud http://www.u-psud.fr • Digiteo http://www.digiteo.fr • ANR http://www.agence-nationale-recherche.fr Contents 1 Introduction1 1.1 Concepts and terminology....................1 1.2 The Isabelle/jEdit Prover IDE..................2 1.2.1 Documentation......................3 1.2.2 Plugins...........................4 1.2.3 Options..........................4 1.2.4 Keymaps..........................5 1.2.5 Look-and-feel.......................5 2 Prover IDE functionality7 2.1 File-system access.........................7 2.2 Text buffers and theories....................8 2.3 Prover output..........................9 2.4 Tooltips and hyperlinks.................... -
The Complete Freebsd
The Complete FreeBSD® If you find errors in this book, please report them to Greg Lehey <grog@Free- BSD.org> for inclusion in the errata list. The Complete FreeBSD® Fourth Edition Tenth anniversary version, 24 February 2006 Greg Lehey The Complete FreeBSD® by Greg Lehey <[email protected]> Copyright © 1996, 1997, 1999, 2002, 2003, 2006 by Greg Lehey. This book is licensed under the Creative Commons “Attribution-NonCommercial-ShareAlike 2.5” license. The full text is located at http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode. You are free: • to copy, distribute, display, and perform the work • to make derivative works under the following conditions: • Attribution. You must attribute the work in the manner specified by the author or licensor. • Noncommercial. You may not use this work for commercial purposes. This clause is modified from the original by the provision: You may use this book for commercial purposes if you pay me the sum of USD 20 per copy printed (whether sold or not). You must also agree to allow inspection of printing records and other material necessary to confirm the royalty sums. The purpose of this clause is to make it attractive to negotiate sensible royalties before printing. • Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. • For any reuse or distribution, you must make clear to others the license terms of this work. • Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. -
Improving Tools for Javascript Programmers
Improving Tools for JavaScript Programmers (Position Paper) Esben Andreasen Asger Feldthaus Simon Holm Jensen Aarhus University Aarhus University Aarhus University [email protected] [email protected] [email protected] Casper S. Jensen Peter A. Jonsson Magnus Madsen Aarhus University Aarhus University Aarhus University [email protected] [email protected] [email protected] Anders Møller Aarhus University [email protected] ABSTRACT 2. FINDING ERRORS WITH We present an overview of three research projects that all DATAFLOW ANALYSIS aim to provide better tools for JavaScript web application 1 The TAJS analysis tool infers an abstract state for each programmers : TAJS, which infers static type information program point in a given JavaScript web application. Such for JavaScript applications using dataflow analysis; JSRefac- an abstract state soundly models the possible states that tor, which enables sound code refactorings; and Artemis, may appear at runtime and can be used for detecting type- which provides high-coverage automated testing. related errors and dead code. These errors often arise from wrong function parameters, misunderstandings of the run- time type coercion rules, or simple typos that can be tedious to find using testing. 1. JAVASCRIPT PROGRAMMERS NEED We have approached the development of TAJS in stages. BETTER TOOLS First, our focus has been on the abstract domain and dataflow JavaScript contains many dynamic features that allegedly constraints that are required for a sound and reasonably ease the task of programming modern web applications. Most precise modeling of the basic operations of the JavaScript importantly, it has a flexible notion of objects: properties are language itself and the native objects that are specified in added dynamically, the names of the properties are dynam- the ECMAScript standard [3]. -
Pyref: a Refactoring Detection Tool for Python Projects
Università Software della Institute Svizzera italiana PYREF:AREFACTORING DETECTION TOOL FOR PYTHON PROJECTS Hassan Atwi June 2021 Supervised by Prof. Dr. Michele Lanza Co-Supervised by Dr. Bin Lin SOFTWARE &DATA ENGINEERING MASTER THESIS iii Abstract Refactoring, the process of improving internal code structure of a software system without altering its external behav- iors, is widely applied during software development. Understanding how developers refactor source code can help us gain better understandings of the software development process and the relationship between various versions of software systems. Currently, many refactoring detection tools (e.g., REFACTORINGMINER and REF-FINDER) have been proposed and have received considerable attention. However, most of these tools focus on Java program, and are not able to detect refactorings applied throughout the history of a Python project, although the popularity of Python is rapidly magnifying. Developing a refactoring detection tool for Python projects would fill this gap and help extend the language boundary of the analysis in variant software engineering tasks. In this work, we present PYREF, a tool that automatically detect 11 different types of refactoring operations in Python projects. Our tool is inspired by REFACTORING MINER, the state-of-the-art refactoring detection tool for Java projects. With that said, while our core algorithms and heuristics largely inherit those of REFACTORING MINER, considerable changes are made due to the different language characteristics between Python and Java. PYREF is evaluated against oracles collected from various online resources. Meanwhile, we also examine the reliability of PYREF by manually inspecting the detected refactorings from real Python projects. Our results indi- cate that PYREF can achieve satisfactory precision. -
BSD Projects IV – BSD Certification • Main Features • Community • Future Directions a (Very) Brief History of BSD
BSD Overview Jim Brown May 24, 2012 BSD Overview - 5/24/2012 - Jim Brown, ISD BSD Overview I – A Brief History of BSD III – Cool Hot Stuff • ATT UCB Partnership • Batteries Included • ATT(USL) Lawsuit • ZFS , Hammer • BSD Family Tree • pf Firewall, pfSense • BSD License • Capsicum • Virtualization Topics • Jails, Xen, etc. • Desktop PC-BSD II – The Core BSD Projects IV – BSD Certification • Main Features • Community • Future Directions A (Very) Brief History of BSD 1971 – ATT cheaply licenses Unix source code to many organizations, including UCB as educational material 1975 – Ken Thompson takes a sabbatical from ATT, brings the latest Unix source on tape to UCB his alma mater to run on a PDP 11 which UCB provided. (Industry/academic partnerships were much more common back then.) Computer Science students (notably Bill Joy and Chuck Haley) at UCB begin to make numerous improvements to Unix and make them available on tape as the “Berkeley Software Distribution” - BSD A (Very) Brief History of BSD Some notable CSRG • 1980 – Computer Science Research Group members (CSRG) forms at UCB with DARPA funding to make many more improvements to Unix - job control, autoreboot, fast filesystem, gigabit address space, Lisp, IPC, sockets, TCP/IP stack + applications, r* utils, machine independence, rewriting almost all ATT code with UCB/CSRG code, including many ports • 1991 – The Networking Release 2 tape is released on the Internet via anon FTP. A 386 port quickly follows by Bill and Lynne Jolitz. The NetBSD group is formed- the first Open Source community entirely on the Internet • 1992 – A commercial version, BSDI (sold for $995, 1-800-ITS-UNIX) draws the ire of USL/ATT. -
Improving Software Fault Prediction Using a Data-Driven Approach
Improving Software Fault Prediction Using a Data-Driven Approach André Sobral Gonçalves Thesis to obtain the Master of Science Degree in Information Systems and Computer Engineering Supervisor: Prof. Rui Filipe Lima Maranhão de Abreu Examination Committee: Chairperson: Prof. Daniel Jorge Viegas Gonçalves Supervisor: Prof. Rui Filipe Lima Maranhão de Abreu Members of the Committee: Prof. João Fernando Peixoto Ferreira September 2019 ii Acknowledgements Firstly, I want to thank my supervisor, Professor Rui Maranhão for his insight, guidance, patience and for having given me the opportunity to do research in such an interesting field. I am grateful to my family for their immense support, patience and love throughout the entire course. In particular, to my parents, João Carlos and Ana Maria Gonçalves, my brother, João Pedro Gonçalves, my parents-in-law, Carlos and Maria José Alves and my beautiful niece Olivia. I want to thank Carolina Alves, for all her love, care, kindness, determination and willingness to review countless times everything I needed. To my friends and colleagues, José Ferreira, Gustavo Enok, Fábio Almeida, Duarte Meneses, Delfim Costa for supporting me all this time. iii Abstract In software development, debugging is one of the most expensive tasks in the life cycle of a project. Repetitive, manual identification of faults in software, which are the source of errors and inefficiencies, is inherently time-consuming and error-prone. The solution to this problem is automated software diagnosis. This approach solves the issues mentioned previously as long as the accuracy of the diagnosis is credible. There are different tools and techniques which ensure this diagnosis, but they neglect valuable data. -
Set-Up Environment
Set-up Environment Note: While this instruction utilises Windows to demonstrate the installation process, it does apply to other operating systems including Mac OS and Linux. Step 1. Install MinGW on Windows (skip this step if you use Mac OS or Linux) FYI: “MinGW” is a Windows implementation of C compiler that will convert your C source code into executable files. For Mac OS and Linux, C compilers should have already been installed. If you have not already installed “MinGW” for Windows, then use the other document <Install MinGW> on the same LMS page to install it. “MinGW” needs to be installed (or is not installed correctly) if you get the following error message: 'gcc' is not recognized as an internal or external command, operable program or batch file. Step 2.1 Check if you have Java SE 11 (JDK) installed FYI: You are not required to know what “JDK” stands for and what it means. Just bear in mind that it is a prerequisite to running jEdit 5.6.0. How do I know if I have Java installed? Windows: Select from the “Control Panel” => “Programs and Features” and check if you can find an entry called “Java(TM) SE Development Kit 11.0.10 (64-bit)” (or later). If you see such an entry, everything is fine and you can go to Step 3. Otherwise, you do not have Java installed and need to go to Step 2.2 Mac OS / Linux: Open “Terminal” and type “java -version”. If you can see the line: java version “11.0.10” or later, everything is fine and you can go to Step 3.