Tool Support for Architectural Decision Making in Large Software Intensive Projects

Total Page:16

File Type:pdf, Size:1020Kb

Tool Support for Architectural Decision Making in Large Software Intensive Projects TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Informatik XIX Tool support for architectural decision making in large software intensive projects Manoj Mahabaleshwar Vollständiger Abdruck der von der Fakultät für Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr. Alexander Pretschner Prüfer der Dissertation: 1. Univ.-Prof. Dr. Florian Matthes 2. Univ.-Prof. Dr. Bernd Brügge Die Dissertation wurde am 31.10.2019 bei der Technischen Universität München eingereicht und durch die Fakultät für Informatik am 08.03.2020 angenommen. II Zusammenfassung Während des letztens Jahrzehnts hat sich ein Paradigmenwechsel vollzogen, in der Weise, in der Wissenschaftler und Praktiker Softwarearchitekturen betrachten. Eine Softwarearchitektur wird heutzutage nicht nur als Blaupause gesehen, sondern als eine Menge von Designentscheidungen, die zur Blaupause des zugrundeliegenden Softwaresystems führen. Architekten und Entwick- ler treffen regelmäßig Designentscheidungen, die zum Beispiel die Wahl eines Architekturstils, eines Entwurfsmusters und der zugrundeliegenden IT-Infrastruktur betreffen. Die Dokumen- tation solcher Entscheidungen hilft, in großen Projekten, Fragen zu beantworten wie: „Welche Designentscheidungen wurden bereits getroffen?”, „Welche Architekturelemente und Qualität- sattribute werden von einer Entscheidung beeinflusst?”, „Wer sollte in eine neue Entscheidung involviert sein?”, „Welche ähnlichen Entscheidungen wurden in der Vergangenheit getroffen?” und „Welche Alternativen sollten beim Treffen einer Entscheidung berücksichtigt werden?”. Obwohl zahlreiche Tools zum Architektur-Wissensmanagement (architectural knowledge man- agement, AKM) das Dokumentieren von Designentscheidungen unterstützen, beobachten wir, dass diese Entscheidungen in der Praxis selten dokumentiert werden. Die Gründe warum De- signentscheidungen nicht explizit dokumentiert werden sind zahlreich. Diese umfassen, ohne darauf beschränkt zu sein, die fehlende Integration von AKM Tools in der Software Engineer- ing Praxis. Darüber hinaus werden solche AKM Tools als störend wahrgenommen, da sie den Architekten dazu zwingen, Designentscheidungen manuell zu dokumentieren, was umständlich und teuer ist. Im Gegensatz zu traditionellen AKM Tools, die einen Top-Down-Ansatz verfolgen, schlagen wir einen Bottom-Up-Ansatz für das Kuratieren und die Wiederverwendung von Architekturwissen vor. Im Bottom-Up-Ansatz werden Architekturentscheidungen automatisch aus verschiedenen Systemen abgerufen und mit öffentlich verfügbaren Wissensquellen erweitert. Spezifisch umDe- signentscheidungen die in der Vergangenheit getroffen wurden zu verstehen und um Architekten beim Treffen zukünftiger Entscheidungen zu unterstützen, präsentieren wir die Umsetzung eines Amelie - Decision Explorer (ADeX) genannten Frameworks. Die Komponenten innerhalb des Frameworks rufen zunächst projektbezogene Informationen von verschiedenen Systemen ab und identifizieren dann automatisch Designentscheidungen innerhalb der Projektdaten unter Ver- wendung von Techniken des maschinellen Lernens. Im nächsten Schritt annotiert ADeX, mit Hilfe von Natural Language Processing, Architek- turelemente und Qualitätsattribute, die von den extrahierten Entscheidungen beeinflusst wer- den. Unter Verwendung der Annotationen aus dem vorherigen Schritt quantifiziert ADeX die Architektur-Expertise von Individuen, um Experten für die Lösung neuer Designprobleme zu empfehlen. Schließlich schlägt ADeX, unter Verwendung eines Ontologie-basierten Ansatzes, Al- ternativen vor, die beim Treffen von Architekturentscheidungen (architectural decision-making, ADM) berücksichtigt werden können. Basierend auf den Ergebnissen dieser Schritte werden verschiedene Standpunkte generiert, um Architekten bei der Beantwortung der zuvor genannten Fragen im ADM-Prozess zu unterstützen. III IV Die qualitative Evaluation von ADeX zeigt, dass es den benötigten Aufwand zur Pflege von Ar- chitekturwissen reduziert und Stakeholdern einen Rückblick auf Designentscheidungen in großen Softwareprojekten ermöglicht. Darüber hinaus wurden die Komponenten innerhalb des Frame- works quantitativ evaluiert, hierfür wurden Datensätze aus Open-Source- und Industrieprojek- ten verwendet. Basierend auf diesen Datensätzen fanden wir heraus, dass Entscheidungen mit einer Genauigkeit von 91% automatisch aus Issues extrahiert werden können, Architekturele- mente können mit einer Genauigkeit von 84% annotiert werden und Experten können mit einer Genauigkeit von 79% empfohlen werden um neue Designprobleme zu adressieren. Außerdem wird ADeX, das während der letzten vier Jahre realisiert wurde, aktuell im Rahmen einer AI4AM genannten Initiative von unserem Industrie-Partner verwendet, um seine Vorteile für die Geschäftsbereiche hervorzuheben. Ein solches Setup bietet uns die nötige Plattform um verwandte Herausforderungen im ADM zu untersuchen, inklusive der Aspekte Bias und Unsicherheiten beim Treffen von Entscheidungen. V VI Abstract Over the last decade, there has been a paradigm shift in the way researchers and practitioners view software architectures. Today, a software architecture is not only seen as a blueprint but instead is considered as a set of design decisions that leads to the blueprint of the underly- ing software system. Architects and developers regularly make design decisions, for instance, concerning the selection of an architectural style, design pattern, and also the underlying IT infrastructure. Documenting such decisions especially in large projects is beneficial to answer questions such as “What design decisions have already been made?”, “Which architectural ele- ments and quality attributes are affected by a decision?”, “Who should be involved in making a new decision?”, “Which similar decisions have been made in the past?”, and “What are the alternatives to consider while making a design decision?”. Even though many of the architectural knowledge management (AKM) tools provide means to capture design decisions, we observe that, in practice, those decisions are rarely documented. The reasons for not explicitly capturing design decisions are manifold. These include, but not limited to, the lack of integration of AKM tools in software engineering practice. Second, these AKM tools are considered intrusive since they require architects to manually document decisions which can be tedious and expensive. Contrary to the traditional AKM tools that follow a top-down approach, we propose a bottom-up approach for AK curation and reuse thereof. In the bottom-up approach, design decisions are automatically retrieved from various systems as well as annotated with publicly available knowl- edge sources. Specifically for understanding design decisions made in the past and for supporting architects in making future decisions, we present the realization of a framework called Amelie - Decision eXplorer (ADeX). The components within the framework first retrieve project-related information from disparate systems and then, automatically identify design decisions within project’s data using machine-learning techniques. Next, by using natural language process- ing, ADeX annotates architectural elements and quality attributes affected by the extracted decisions. Using the annotations from the previous step, ADeX quantifies the architectural ex- pertise of individuals to recommend experts for addressing new design concerns. And finally, using an ontology-based approach, ADeX suggests alternatives that can be considered during architectural decision-making (ADM). Based on the results of these steps, various viewpoints are generated to support architects answer the aforementioned questions during the ADM process. The qualitative evaluation of ADeX shows that it reduces the effort required for maintaining AK and provides stakeholders with a retrospective view of design decisions in large software projects. Furthermore, the components within the framework have been quantitatively evaluated using datasets both from open-source and industrial projects. Based on those datasets, we found that decisions can be automatically extracted from issues with an accuracy of 91%, architectural elements can be annotated with an accuracy of 84%, and with an accuracy of 79% experts can be recommended to address new design concerns. Finally, ADeX, which has been realized over the last four years is currently being used by our industry partner to highlight its benefits to the business units under an initiative called AI4AM. Such a setup provides us the necessary platform to further investigate related challenges of ADM including the aspects of biases and uncertainties in decision making. VII VIII Acknowledgment For writing this acknowledgment section, when I reflect on how my journey began at the Soft- ware Engineering for Business Information Systems (sebis) Chair, it is hard to believe that I have been associated with the sebis chair for almost seven years now; first, as a master’s student and then, as a PhD candidate. My first interaction with Prof. Dr. Florian Matthes in2012, when I approached him for a working student position remains vivid in my memory. His en- thusiasm during the discussions, openness, and encouragement for new ideas as well as playing the devil’s advocate to challenge my train of thoughts have remained consistent over the years. For providing me the opportunity and the environment to grow as a researcher, for supervising my dissertation,
Recommended publications
  • Histcoroy Pyright for Online Information and Ordering of This and Other Manning Books, Please Visit Topwicws W.Manning.Com
    www.allitebooks.com HistCoroy pyright For online information and ordering of this and other Manning books, please visit Topwicws w.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Tutorials Special Sales Department Offers & D e al s Manning Publications Co. 20 Baldwin Road Highligh ts PO Box 761 Shelter Island, NY 11964 Email: [email protected] Settings ©2017 by Manning Publications Co. All rights reserved. Support No part of this publication may be reproduced, stored in a retrieval system, or Sign Out transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid­free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without the use of elemental chlorine. Manning Publications Co. PO Box 761 Shelter Island, NY 11964 www.allitebooks.com Development editor: Cynthia Kane Review editor: Aleksandar Dragosavljević Technical development editor: Stan Bice Project editors: Kevin Sullivan, David Novak Copyeditor: Sharon Wilkey Proofreader: Melody Dolab Technical proofreader: Doug Warren Typesetter and cover design: Marija Tudor ISBN 9781617292576 Printed in the United States of America 1 2 3 4 5 6 7 8 9 10 – EBM – 22 21 20 19 18 17 www.allitebooks.com HistPoray rt 1.
    [Show full text]
  • Beyond Relational Databases
    EXPERT ANALYSIS BY MARCOS ALBE, SUPPORT ENGINEER, PERCONA Beyond Relational Databases: A Focus on Redis, MongoDB, and ClickHouse Many of us use and love relational databases… until we try and use them for purposes which aren’t their strong point. Queues, caches, catalogs, unstructured data, counters, and many other use cases, can be solved with relational databases, but are better served by alternative options. In this expert analysis, we examine the goals, pros and cons, and the good and bad use cases of the most popular alternatives on the market, and look into some modern open source implementations. Beyond Relational Databases Developers frequently choose the backend store for the applications they produce. Amidst dozens of options, buzzwords, industry preferences, and vendor offers, it’s not always easy to make the right choice… Even with a map! !# O# d# "# a# `# @R*7-# @94FA6)6 =F(*I-76#A4+)74/*2(:# ( JA$:+49>)# &-)6+16F-# (M#@E61>-#W6e6# &6EH#;)7-6<+# &6EH# J(7)(:X(78+# !"#$%&'( S-76I6)6#'4+)-:-7# A((E-N# ##@E61>-#;E678# ;)762(# .01.%2%+'.('.$%,3( @E61>-#;(F7# D((9F-#=F(*I## =(:c*-:)U@E61>-#W6e6# @F2+16F-# G*/(F-# @Q;# $%&## @R*7-## A6)6S(77-:)U@E61>-#@E-N# K4E-F4:-A%# A6)6E7(1# %49$:+49>)+# @E61>-#'*1-:-# @E61>-#;6<R6# L&H# A6)6#'68-# $%&#@:6F521+#M(7#@E61>-#;E678# .761F-#;)7-6<#LNEF(7-7# S-76I6)6#=F(*I# A6)6/7418+# @ !"#$%&'( ;H=JO# ;(\X67-#@D# M(7#J6I((E# .761F-#%49#A6)6#=F(*I# @ )*&+',"-.%/( S$%=.#;)7-6<%6+-# =F(*I-76# LF6+21+-671># ;G';)7-6<# LF6+21#[(*:I# @E61>-#;"# @E61>-#;)(7<# H618+E61-# *&'+,"#$%&'$#( .761F-#%49#A6)6#@EEF46:1-#
    [Show full text]
  • Lesson 17 Building Xqueries in Xquery Editor View
    AquaLogic Data Services Platform™ Tutorial: Part II A Guide to Developing BEA AquaLogic Data Services Platform (DSP) Projects Note: This tutorial is based in large part on a guide originally developed for enterprises evaluating Data Services Platform for specific requirements. In some cases illustrations, directories, and paths reference Liquid Data, the previous name of the Data Services Platform. Version: 2.1 Document Date: June 2005 Revised: June 2006 Copyright Copyright © 2005, 2006 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software and documentation is subject to and made available only pursuant to the terms of the BEA Systems License Agreement and may be used or copied only in accordance with the terms of that agreement. It is against the law to copy the software except as specifically allowed in the agreement. This document may not, in whole or in part, be copied photocopied, reproduced, translated, or reduced to any electronic medium or machine readable form without prior consent, in writing, from BEA Systems, Inc. Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the BEA Systems License Agreement and in subparagraph (c)(1) of the Commercial Computer Software- Restricted Rights Clause at FAR 52.227-19; subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013, subparagraph (d) of the Commercial Computer Software--Licensing clause at NASA FAR supplement 16-52.227-86; or their equivalent. Information in this document is subject to change without notice and does not represent a commitment on the part of BEA Systems.
    [Show full text]
  • Data Platforms Map from 451 Research
    1 2 3 4 5 6 Azure AgilData Cloudera Distribu2on HDInsight Metascale of Apache Kaa MapR Streams MapR Hortonworks Towards Teradata Listener Doopex Apache Spark Strao enterprise search Apache Solr Google Cloud Confluent/Apache Kaa Al2scale Qubole AWS IBM Azure DataTorrent/Apache Apex PipelineDB Dataproc BigInsights Apache Lucene Apache Samza EMR Data Lake IBM Analy2cs for Apache Spark Oracle Stream Explorer Teradata Cloud Databricks A Towards SRCH2 So\ware AG for Hadoop Oracle Big Data Cloud A E-discovery TIBCO StreamBase Cloudera Elas2csearch SQLStream Data Elas2c Found Apache S4 Apache Storm Rackspace Non-relaonal Oracle Big Data Appliance ObjectRocket for IBM InfoSphere Streams xPlenty Apache Hadoop HP IDOL Elas2csearch Google Azure Stream Analy2cs Data Ar2sans Apache Flink Azure Cloud EsgnDB/ zone Platforms Oracle Dataflow Endeca Server Search AWS Apache Apache IBM Ac2an Treasure Avio Kinesis LeanXcale Trafodion Splice Machine MammothDB Drill Presto Big SQL Vortex Data SciDB HPCC AsterixDB IBM InfoSphere Towards LucidWorks Starcounter SQLite Apache Teradata Map Data Explorer Firebird Apache Apache JethroData Pivotal HD/ Apache Cazena CitusDB SIEM Big Data Tajo Hive Impala Apache HAWQ Kudu Aster Loggly Ac2an Ingres Sumo Cloudera SAP Sybase ASE IBM PureData January 2016 Logic Search for Analy2cs/dashDB Logentries SAP Sybase SQL Anywhere Key: B TIBCO Splunk Maana Rela%onal zone B LogLogic EnterpriseDB SQream General purpose Postgres-XL Microso\ Ry\ X15 So\ware Oracle IBM SAP SQL Server Oracle Teradata Specialist analy2c PostgreSQL Exadata
    [Show full text]
  • Rdbmss Why Use an RDBMS
    RDBMSs • Relational Database Management Systems • A way of saving and accessing data on persistent (disk) storage. 51 - RDBMS CSC309 1 Why Use an RDBMS • Data Safety – data is immune to program crashes • Concurrent Access – atomic updates via transactions • Fault Tolerance – replicated dbs for instant failover on machine/disk crashes • Data Integrity – aids to keep data meaningful •Scalability – can handle small/large quantities of data in a uniform manner •Reporting – easy to write SQL programs to generate arbitrary reports 51 - RDBMS CSC309 2 1 Relational Model • First published by E.F. Codd in 1970 • A relational database consists of a collection of tables • A table consists of rows and columns • each row represents a record • each column represents an attribute of the records contained in the table 51 - RDBMS CSC309 3 RDBMS Technology • Client/Server Databases – Oracle, Sybase, MySQL, SQLServer • Personal Databases – Access • Embedded Databases –Pointbase 51 - RDBMS CSC309 4 2 Client/Server Databases client client client processes tcp/ip connections Server disk i/o server process 51 - RDBMS CSC309 5 Inside the Client Process client API application code tcp/ip db library connection to server 51 - RDBMS CSC309 6 3 Pointbase client API application code Pointbase lib. local file system 51 - RDBMS CSC309 7 Microsoft Access Access app Microsoft JET SQL DLL local file system 51 - RDBMS CSC309 8 4 APIs to RDBMSs • All are very similar • A collection of routines designed to – produce and send to the db engine an SQL statement • an original
    [Show full text]
  • Eclipselink Understanding Eclipselink 2.4
    EclipseLink Understanding EclipseLink 2.4 June 2013 EclipseLink Concepts Guide Copyright © 2012, 2013, by The Eclipse Foundation under the Eclipse Public License (EPL) http://www.eclipse.org/org/documents/epl-v10.php The initial contribution of this content was based on work copyrighted by Oracle and was submitted with permission. Print date: July 9, 2013 Contents Preface ............................................................................................................................................................... xiii Audience..................................................................................................................................................... xiii Related Documents ................................................................................................................................... xiii Conventions ............................................................................................................................................... xiii 1 Overview of EclipseLink 1.1 Understanding EclipseLink....................................................................................................... 1-1 1.1.1 What Is the Object-Persistence Impedance Mismatch?.................................................. 1-3 1.1.2 The EclipseLink Solution.................................................................................................... 1-3 1.2 Key Features ...............................................................................................................................
    [Show full text]
  • Research Document
    Research Document Student Name: James Heneghan Student ID: C00155861 Course ID: CW_KCSOF_B Project Name: Take Me There Supervisor: Joseph Kehoe Institute: Institute of Technology Carlow Date: 16/10/2014 1 Contents Introduction ............................................................................................................................................ 3 Galileo Board ........................................................................................................................................... 3 Details of the Architecture .................................................................................................................. 3 Communication ................................................................................................................................... 3 Accelerometer......................................................................................................................................... 4 Cloud Hosting .......................................................................................................................................... 4 Google Maps API ..................................................................................................................................... 4 Google Maps JavaScript API ................................................................................................................ 4 Google Static Maps API ......................................................................................................................
    [Show full text]
  • Java Database Technologies (Part I)
    Extreme Java G22.3033-007 Session 12 - Main Theme Java Database Technologies (Part I) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 1 Agenda Summary of Previous Session Applications of Java to Database Technology Database Technology Review Basic and Advanced JDBC Features J2EE Enterprise Data Enabling XML and Database Technology Readings Class Project & Assignment #5a 2 1 Summary of Previous Session Summary of Previous Session Enterprise JavaBeans (EJBs) J2EE Connector Architecture Practical Survey of Mainstream J2EE App. Servers Web Services Developer Pack Enterprise Application Integration (EAI) and Business to Business Integration (B2Bi) J2EE Blueprint Programs Class Project & Assignment #4c 3 Part I Java and Database Technology Also See Session 12 Handout on: “Java and Database Technology (JDBC)” and Session 12 Presentation on: “Designing Databases for eBusiness Solutions” 4 2 Review of Database Technology Introduction to Database Technology Data Modeling Conceptual Database Design Logical Database Design Physical Database Design Database System Programming Models Database Architectures Database Storage Management Database System Administration Commercial Systems: www.oracle.com,www.ibm.com/db2, http://www- 3.ibm.com/software/data/informix/,www.sybase.com 5 Advanced Database Concepts Parallel and Distributed Databases Web Databases Data Warehousing and Data Mining Mobile Databases Spatial and Multimedia Databases Geographic Information
    [Show full text]
  • Data Managementmanagementdata for Scientific Research
    DDaattaa MMaannaaggeemmeenntt For Scientific Research Photo: © Stanza. Used with permission. CCoouurrssee IInnttrroodduuccttiioonn Welcome to a course in data management for scientific research projects. CCoouurrssee SSttrruuccttuurree Casual “guided” study-group approach Presentations, demos, hands-on exercises, discussions and “homework” Materials: A textbook, eBooks, websites, and online videos WWhhyy TTaakkee TThhiiss CCoouurrssee?? PracticalComputing.org Researchers work with increasing amounts of data. Many students do not have training in data management. Science degree programs generally do not address this gap. It is difficult for “non-majors” to get into IT courses. This leaves students and research teams struggling to cope. And therefore places a heavy burden on IT support. Our data management course provides the needed skills to address these issues. Exciting new discoveries await those who can effectively sift through mounds of data! Participant IntroductionsIntroductionsParticipant Please introduce yourself and share your: Degree program and emphasis Research area (general topic) Your current research project (specific topic) The types of data or data systems you use in this project What you hope to get out of this course Session 1: Data System Essentials How will you manage your data? You need a data system. There are many choices. To pick the best one, you need to state your requirements. Photo: NASA Today's Learning Objectives In this session, you will … Become familiar with common types of data systems Learn to differentiate between flat files and relational databases Learn to differentiate between spreadsheets and databases Learn how to model system functions and interactions Learn how to create system diagrams Learn how to state system requirements Ultimately, this knowledge will help you select or design the best data system for your needs.
    [Show full text]
  • Webscalesql : Basic Details and Installation
    The Customize Windows Technology Blog http://thecustomizewindows.com WebScaleSQL : Basic Details and Installation Author : Abhishek WebScaleSQL is a modified MySQL Database developed by Engineers at Facebook, Google, LinkedIn, and Twitter for making kind of scalable SQL. Everyone knows about MySQL Database. Those who do not know what is MySQL, they can read our previously published article - What is MySQL, Why We Need MySQL. At the time of publishing this article; WebScaleSQL is on everyone's lips. MySQL is great, but it is not intended to be Scalable when it was written, that is the basic reason why we try to make Scalable MySQL Database for CMS like WordPress in a kind of legacy mode. WebScaleSQL is kind of fork of MySQL. WebScaleSQL : Basics Need for the Approach Flexibility and Scalability are the Key Benefits of Cloud Computing. Again, Scalability and Service Continuity are Not equivalent. There is another a MySQL Improved Extension - MySQLi. There are reasons why NoSQL Movement was started. 1 / 4 The Customize Windows Technology Blog http://thecustomizewindows.com Official website of WebScaleSQL is : http://webscalesql.org/ But, we do not need the official website, but the Github repository : https://github.com/webscalesql/webscalesql-5.6/tree/webscalesql-5.6.16 2 / 4 The Customize Windows Technology Blog http://thecustomizewindows.com Do you know that, PostgreSQL; one of the most popular noSQL database actually can be used instead of MySQL for WordPress? MariaDB is constantly merged with MySQL community edition. Instead of writing vague collected data on WebScaleSQL, let us install WebScaleSQL. WebScaleSQL : Installation In order to test WebScaleSQL, we will need the following dependencies : + cmake + gcc + libaio-dev + libncurses5-dev + libreadline- dev + bison + git + perl I believe, WebScaleSQL is not intended for use on a VirtualBox as a Virtual Appliance.
    [Show full text]
  • A Novel Approach for Estimating Truck Factors
    A Novel Approach for Estimating Truck Factors Guilherme Avelino∗y, Leonardo Passosz, Andre Hora∗ and Marco Tulio Valente∗ ∗ASERG Group, Department of Computer Science (DCC) Federal University of Minas Gerais (UFMG), Brazil Email: fgaa, mtov, [email protected] y Department of Computing (DC) Federal University of Piaui (UFPI), Brazil zUniversity of Waterloo, Canada Email: [email protected] Abstract—Truck Factor (TF) is a metric proposed by the agile for TF-estimation for which we apply to a target corpus community as a tool to identify concentration of knowledge comprising 133 systems in GitHub. In total, such systems in software development environments. It states the minimal have over 373K files and 41 MLOC; their combined evolution number of developers that have to be hit by a truck (or quit) before a project is incapacitated. In other words, TF helps history sums to over 2 million commits. By surveying and to measure how prepared is a project to deal with developer analyzing answers from 67 target systems, we evidence that in turnover. Despite its clear relevance, few studies explore this 84% of valid answers developers agree or partially agree that metric. Altogether there is no consensus about how to calculate it, the TF’s authors are the main authors of their systems; in 53% and no supporting evidence backing estimates for systems in the we receive a positive or partially positive answer regarding our wild. To mitigate both issues, we propose a novel (and automated) approach for estimating TF-values, which we execute against estimated truck factors. a corpus of 133 popular project in GitHub.
    [Show full text]
  • Lecture 10: Database Connectivity
    Outline Persistence via Database Lecture 10: JDBC (Java Database Connectivity) Database Connectivity JDBC API -JDBC Wendy Liu CSC309F – Fall 2007 1 2 Java Persistence JDBC (Java Database Relational Database Connectivity) Management System Object relational (RDBMS) Persistence via Database mapping Object-oriented Java Data Object Database Management (JDO) System (OODBMS) Enterprise JavaBean (EJB) 3 4 Three Tier Architecture Database Advantages Data Safety data is immune to program crashes Concurrent Access atomic updates via transactions Fault Tolerance replicated DBs for instant fail-over on machine/disk crashes Data Integrity aids to keep data meaningful Scalability Database can handle small/large quantities of data in a uniform manner A way of saving and accessing structured data on Reporting persistent (disk) storage easy to write SQL programs to generate arbitrary reports 5 6 1 Relational Database Movie Database Example First published by Edgar F. Codd in 1970 A relational database consists of a collection showtimes of tables showtimeid movieid theaterid sdate stime available 1 1 1 3/20/2005 20:00:00 90 A table consists of rows and columns 2 1 1 3/20/2005 22:00:00 90 orders Each row represents a record orderid userid showtimeid 11 1 Each column represents an attribute of the records contained in the table 7 8 RDBMS Technology Client/Server Databases Derby, Oracle, Sybase, MySQL, PointBase, SQLServer JDBC Embedded Databases (Java DataBase Connectivity) Derby,PointBase Personal Databases Access 9 10
    [Show full text]