Aspect-Oriented Modelling of Software Framework Interfaces

Total Page:16

File Type:pdf, Size:1020Kb

Aspect-Oriented Modelling of Software Framework Interfaces Aspect-Oriented Modelling of Software Framework Interfaces Emil Dafinov Master of Science School of Computer Science McGill University Montreal,Quebec 2013-08-15 A thesis submitted to McGill University in partial fulfillment of the requirements of the degree of Master of Science Copyright 2013 Emil Dafinov. All rights reserved DEDICATION This work is dedicated to three very important women in my life, all of whom are far more accomplished academics than I could ever hope to be. One is my sister, who embarked on the road to graduate studies, despite her claims that she would never do that. The second is my mother, who stressed the importance of education throughout my whole life. She set a shining example by starting her graduate studies after her eldest daughter had already done so and graduating before her. The last but not least person I would like to mention is the lovely lady who became a part of my life at the time of the writing of this thesis. Something tells me she would have have preferred a citation to a dedication. ii ACKNOWLEDGEMENTS First and foremost, I would like to thank my supervisor, Professor J¨org Kienzle, for his patience, guidance and continuous support throughout my graduate studies. I would also like to thank my colleagues at the McGill University : Wisam Al Abed, Omar Alam and Matthias Sch¨ottlefor putting up with my endless questions about the workings of Reusable Aspect Models (RAM), and everyone at the the Software Engineering Lab in general, for being a great friend and for making my M.Sc. experience so enjoyable. iii ABSTRACT Object-oriented software frameworks are a prominent way of software reuse, since they allow for increased developer productivity. However, frame- works often present the user with a steep learning curve before they can be leveraged efficiently. This issue is caused by the fact that frameworks offer rich feature sets, yet their documentation is often incomplete and informal. In the following thesis we propose a method that relies on feature diagrams in order to describe the features offered by a given framework and the relation- ships between them. The Reusable Aspect Models method is used in order to formally describe the individual features' interfaces. The interfaces' structural and behavioral properties are described using UML class diagrams and UML sequence diagrams, respectively. A complete model of the subset of a given framework's interface that is relevant to a particular client application can be created by composing the models of the framework features used by that application. The individual feature models serve as a basis for generating tu- torials showcasing the framework's capabilities, or even portions of the client application code necessary to interface with the framework. In order to test this method, a case study focusing on the Spring framework was conducted. iv ABREG´ E´ Les frameworks orient´esobjet sont un moyen important de la r´eutilisation de code, car ils permettent d'am´eliorerla productivit´edes d´eveloppeurs. Cepen- dant, les frameworks pr´esentent souvent `al'utilisateur une courbe d'apprentissage abrupte avant qu'ils ne puissent ^etreexploit´eesefficacement. La cause de ce probl`emeest le fait que les frameworks offrent des nombreuses fonctionnalit´es, mais leur documentation est souvent incompl`eteet informelle. Dans la th`ese suivante, nous proposons une m´ethode qui s'appuie sur les feature models afin de d´ecrireles caract´eristiques(oufeatures) offertes par un framework et les relations qu'ils existent entre eux. La m´ethode RAM est utilis´eepour d´ecrire formellement les interfaces des caract´eristiques individuelles. Les propri´et´es structurelles des interfaces sont d´efinies`al'aide des diagrammes de classes tandis que les propri´et´escomportementales des interfaces sont d´efinies`al'aide des diagrammes de s´equence.La m´ethode RAM permette aussi de composer les mod`elesindividuels afin de cr´eerun mod`elede la partie de l'interface du framework qui s'applique l'application cliente. Les mod`elespermettent de g´en´ererdes exemples pour l'utilisation du framework. Afin de tester n^otre m´ethode, une ´etude de cas bas´eesur le framework Spring a ´et´er´ealis´ee. v TABLE OF CONTENTS DEDICATION . ii ACKNOWLEDGEMENTS . iii ABSTRACT . iv ABREG´ E..................................´ v LIST OF TABLES . viii LIST OF FIGURES . ix 1 Introduction . 1 1.1 Motivation . 1 1.2 Thesis Goals . 2 1.3 Thesis Contributions . 3 1.3.1 Novel method of formalizing framework interfaces . 3 1.3.2 Adapting the Reusable Aspect Models methodology to a new problem . 4 1.3.3 Case study: the Spring framework . 4 1.4 Thesis Outline . 4 2 Background . 6 2.1 Software Frameworks . 6 2.2 Reusable Aspect Models . 9 2.2.1 The Structural View . 10 2.2.2 Message Views . 12 2.2.3 Aspect Dependencies and Instantiation . 14 2.2.4 Aspect Weaving . 16 2.3 Feature Models . 22 3 Theoretical Contributions . 25 3.1 Capturing framework features with feature models . 25 3.2 Discovering framework features . 26 3.3 Modelling the interface of individual features . 30 3.4 Deriving feature relationships . 33 3.5 Generating the interface of a combination of features (tuto- rials) . 35 vi 4 The Spring Framework Case Study . 37 4.1 The Spring Framework . 37 4.2 Features Modelled . 38 4.2.1 Feature Model . 38 4.2.2 Individual Features . 39 4.2.3 Combining Spring Features . 58 4.3 Difficulties Encountered . 61 5 Related Work . 64 5.1 Understanding framework APIs . 64 5.2 Aspect-Oriented Modelling . 67 5.3 Software Product Lines . 68 6 Conclusions and Future Work . 70 6.1 Observations . 72 6.2 Limitations of the TouchRAM tool . 73 6.3 Future Work . 74 6.4 Final Remarks . 75 LIST OF REFERENCES . 76 vii LIST OF TABLES Table page 3{1 Some Open Source projects using the Spring framework . 27 viii LIST OF FIGURES Figure page 2{1 The Observer aspect . 11 2{2 The ZeroToMany aspect . 16 2{3 The Observer and ZeroToMany aspects woven together . 17 2{4 The PushObserver aspect . 19 2{5 The PushObserver and Observer aspects woven together . 20 2{6 A sample feature model [13] . 23 3{1 E-Shop Feature Model [4] . 25 3{2 Sample Feature Model including the Observer and PushOb- server features [8] . 34 4{1 Spring Features . 38 4{2 Structural View of the BeanContainer aspect . 40 4{3 Message Views of the BeanContainer aspect . 41 4{4 Structural View of the XmlBeanFactory aspect . 42 4{5 Structural View of the BeanContainerConfigurable aspect . 43 4{6 BeanContainerConfigurable.setupContainer Message View Ref- erence . 44 4{7 BeanContainerConfigurable.readDefinitions Aspect Message View 44 4{8 Structural View of the InitializingBean aspect . 45 4{9 InitializingBean.initialize Aspect Message View . 47 4{10 InitializingBean.getBeanInstance Message View Reference . 47 4{11 Structural View of the BeanPostProcessor aspect . 48 4{12 BeanPostProcessor.setupContainer Message View Reference . 48 4{13 BeanPostProcessor.getBeanInstance Message View Reference . 48 ix 4{14 BeanPostProcessor.addPostProcessor Aspect Message View . 49 4{15 BeanPostProcessor.postProcessBefore Aspect Message View . 50 4{16 BeanPostProcessor.postProcessAfter Aspect Message View . 51 4{17 Structural View of the EventPublisher aspect . 53 4{18 EventPublisher.setupApplicationContext Aspect Message View 54 4{19 EventPublisher.setupContainer Message View Reference . 54 4{20 EventPublisher.publishEvent Aspect Message View . 55 4{21 Structural View of the Transaction aspect . 56 4{22 Transaction.transactionaExecution Aspect Message View . 57 4{23 Woven model for the fBeanContainer, XmlBeanFactoryg fea- ture selection . 59 4{24 Woven model for the fBeanContainer, XmlBeanFactory, Initial- izingBean, BeanPostProcessor, BeanContainerConfigurableg feature selection - Structural View . 60 4{25 Woven model for the fBeanContainer, XmlBeanFactory, Initial- izingBean, BeanPostProcessor, BeanContainerConfigurableg feature selection - Message Views . 63 x Chapter 1 Introduction 1.1 Motivation As the complexity of modern software increases, the need for relying on reusable software modules becomes greater than ever. In order to increase productivity, software developers need to be able to concentrate on develop- ing high-level features that are specific to the products they are working on. Having to spend time implementing lower-level application infrastructure is often tedious and time-consuming. Moreover, a lot of this low-level function- ality could be present in multiple applications. Good software engineering practices suggest that the code implementing this shared functionality should not be re-implemented for every client application. In order to address these issues, developers need to rely on software frameworks. A software framework provides code that can be reused by client applications in order to solve a particular problem. Although this definition sounds very similar to the defi- nition of software libraries, there are several important distinctions that exist between the two. First and foremost, an object-oriented software library con- tains classes and methods that the client code would instantiate and call in order to achieve its (the client's) goals. Frameworks on the other hand are based on the principle of Inversion of Control (IoC): the client is responsible for writing application specific code that is to be called by the framework code at runtime. Thus, it is the framework code and not the user application that defines the control flow of the resulting application. In order to achieve this, the application-specific client code must conform to a rigid API defined by the framework. In short, in the final application the framework provides a 1 backbone, whose functionality can be specialized in order to fit the need of each individual client application. A framework usually aims to provide some default functionality out of the box, but it expects the client code to extend and override it in order to suit its needs.
Recommended publications
  • Ioc Containers in Spring
    301AA - Advanced Programming Lecturer: Andrea Corradini [email protected] http://pages.di.unipi.it/corradini/ AP-2018-11: Frameworks and Inversion of Control Frameworks and Inversion of Control • Recap: JavaBeans as Components • Frameworks, Component Frameworks and their features • Frameworks vs IDEs • Inversion of Control and Containers • Frameworks vs Libraries • Decoupling Components • Dependency Injection • IoC Containers in Spring 2 Components: a recap A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party. Clemens Szyperski, ECOOP 1996 • Examples: Java Beans, CLR Assemblies • Contractually specified interfaces: events, methods and properties • Explicit context dependencies: serializable, constructor with no argument • Subject to composition: connection to other beans – Using connection oriented programming (event source and listeners/delegates) 3 Towards Component Frameworks • Software Framework: A collection of common code providing generic functionality that can be selectively overridden or specialized by user code providing specific functionality • Application Framework: A software framework used to implement the standard structure of an application for a specific development environment. • Examples: – GUI Frameworks – Web Frameworks – Concurrency Frameworks 4 Examples of Frameworks Web Application Frameworks GUI Toolkits 5 Examples: General Software Frameworks – .NET – Windows platform. Provides language interoperability – Android SDK – Supports development of apps in Java (but does not use a JVM!) – Cocoa – Apple’s native OO API for macOS. Includes C standard library and the Objective-C runtime. – Eclipse – Cross-platform, easily extensible IDE with plugins 6 Examples: GUI Frameworks • Frameworks for Application with GUI – MFC - Microsoft Foundation Class Library.
    [Show full text]
  • Evolution and Composition of Object-Oriented Frameworks
    Evolution and Composition of Object-Oriented Frameworks Michael Mattsson University of Karlskrona/Ronneby Department of Software Engineering and Computer Science ISBN 91-628-3856-3 © Michael Mattsson, 2000 Cover background: Digital imagery® copyright 1999 PhotoDisc, Inc. Printed in Sweden Kaserntryckeriet AB Karlskrona, 2000 To Nisse, my father-in-law - who never had the opportunity to study as much as he would have liked to This thesis is submitted to the Faculty of Technology, University of Karlskrona/Ronneby, in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Engineering. Contact Information: Michael Mattsson Department of Software Engineering and Computer Science University of Karlskrona/Ronneby Soft Center SE-372 25 RONNEBY SWEDEN Tel.: +46 457 38 50 00 Fax.: +46 457 27 125 Email: [email protected] URL: http://www.ipd.hk-r.se/rise Abstract This thesis comprises studies of evolution and composition of object-oriented frameworks, a certain kind of reusable asset. An object-oriented framework is a set of classes that embodies an abstract design for solutions to a family of related prob- lems. The work presented is based on and has its origin in industrial contexts where object-oriented frameworks have been developed, used, evolved and managed. Thus, the results are based on empirical observations. Both qualitative and quanti- tative approaches have been used in the studies performed which cover both tech- nical and managerial aspects of object-oriented framework technology. Historically, object-oriented frameworks are large monolithic assets which require several design iterations and are therefore costly to develop. With the requirement of building larger applications, software engineers have started to compose multiple frameworks, thereby encountering a number of problems.
    [Show full text]
  • Software Development a Practical Approach!
    Software Development A Practical Approach! Hans-Petter Halvorsen https://www.halvorsen.blog https://halvorsen.blog Software Development A Practical Approach! Hans-Petter Halvorsen Software Development A Practical Approach! Hans-Petter Halvorsen Copyright © 2020 ISBN: 978-82-691106-0-9 Publisher Identifier: 978-82-691106 https://halvorsen.blog ii Preface The main goal with this document: • To give you an overview of what software engineering is • To take you beyond programming to engineering software What is Software Development? It is a complex process to develop modern and professional software today. This document tries to give a brief overview of Software Development. This document tries to focus on a practical approach regarding Software Development. So why do we need System Engineering? Here are some key factors: • Understand Customer Requirements o What does the customer needs (because they may not know it!) o Transform Customer requirements into working software • Planning o How do we reach our goals? o Will we finish within deadline? o Resources o What can go wrong? • Implementation o What kind of platforms and architecture should be used? o Split your work into manageable pieces iii • Quality and Performance o Make sure the software fulfills the customers’ needs We will learn how to build good (i.e. high quality) software, which includes: • Requirements Specification • Technical Design • Good User Experience (UX) • Improved Code Quality and Implementation • Testing • System Documentation • User Documentation • etc. You will find additional resources on this web page: http://www.halvorsen.blog/documents/programming/software_engineering/ iv Information about the author: Hans-Petter Halvorsen The author currently works at the University of South-Eastern Norway.
    [Show full text]
  • Everyware Software Framework
    Device Application Framework Everyware Software Framework • Quickly develop your application using M2M/IoT Java packages and services • Build solid, secure, network-centric embedded devices leveraging field proven networking services • Remotely configure and upgrade your application throughout its lifecycle • Take advantage of a solid queuing system for back-end connectivity • Bring your product to market quickly and deterministically while reducing efforts and risks FEATURES Eurotech Everyware Software Framework (ESF) is a device application framework specialized to build machine-to-machine (M2M) or Internet of Things (IoT) applications. ESF provides a highly cost-effective, flexible and IT- oriented framework to build the new generation of connected, smart devices and applications. ESF enables developers to concentrate on the application by providing a set of field proven M2M/IoT building blocks like: • Device abstraction: provides a complete Java consistent software abstraction across all the hardware interfaces like WiFi, Cellular, GPS, Serial, USBs, CAN ports, Digital I/Os, Analog I/Os… • Security: Provides a full set of security features across all layers of the framework (gateway middleware): Authentication, certificate management , secure execution environment, signed bundles, encrypted messaging and firewall. • Gateway basic service: offers ready to use services like time synchronization, serial port configuration, application monitoring, cellular management, Ethernet management… • Network configuration: IP, DHCP, NAT, NTP, and Firewall are just some of the networking services that can be easily configured. • Connectivity and Delivery: default services include sophisticated queuing, always-on connection and self-restoring of the connection. • Field protocols: field-tested industrial, transportation and healthcare protocols are available through Java APIs. Support for custom protocols design.
    [Show full text]
  • Agent-Based Modeling with the JABM Toolkit
    Noname manuscript No. (will be inserted by the editor) Agent-Based Modeling with the JABM Toolkit Steve Phelps Centre for Computational Finance and Economic Agents (CCFEA) [email protected] the date of receipt and acceptance should be inserted later Abstract In many areas of science, agent-based models have become increasingly important. These models are often sufficiently complex that deriving closed-form solutions for quantitative aspects of their macroscopic behaviour is often impracti- cal if not impossible, and hence they are often analysed using discrete-event simu- lation and Monte-Carlo methods. In this paper we give an overview of agent-based modeling with an emphasis on its application to multi-agent systems research, and show how a software design pattern called \dependency injection" can be used to implement highly configurable simulation models which are able to incorporate various assumptions about agents' rationality and learning. We then show how these ideas have been implemented in the Java Agent-Based Modelling (JABM) toolkit | an open-source framework for building agent-based models. 1 Introduction In this paper we describe practical aspects of developing agent-based simulation models with particular emphasis on agent-based computational economics and work carried out within the trading-agent design and analysis community. We introduce a new software framework for building agent-based models | the Java Agent Based Modeling (JABM) toolkit1. Work on JABM arose out of an earlier project | Java Auction Simulator API (JASA)2 | which was designed as a toolkit for performing experiments in Agent-based Computational Economics (ACE)3 and was subsequently used as the basis of the JCAT software used to run the CAT tournament which is part of the Trading Agent Competition (Cai et al, 2009).
    [Show full text]
  • Smart-EIS: an End to End Enterprise Information Systems Framework
    Journal of Computer Science Original Research Paper Smart-EIS: An End to End Enterprise Information Systems Framework 1Jalal Kiswani, 2Muhanna Muhanna and 3Abdallah Qusef 1Department of Computer Science and Engineering, University of Nevada, Reno, USA 2Department of Creative Media, Luminus Technical University, Amman, Jordan 3Department of Software Engineering, Princess Sumaya University for Technology, Amman, Jordan Article history Abstract: Enterprise Information Systems (EIS) are widely and extensively Received: 29-08-2018 used in many domains such as banking, telecommunication, e-commerce Revised: 19-11-2018 and government. Although several research studies and investigations were Accepted: 22-12-2018 performed that explore the importance of EIS, only a few studies have focused on effective and efficient end-to-end approaches to developing Corresponding author: Abdallah Qusef such systems. In this article, a proposed software development framework Department of Software (Smart-EIS) is presented. The primary objective of Smart-EIS is making Engineering, Princess Sumaya the development of high-quality EIS more effective and efficient. In University for Technology, particular, it aims to reduce the development cost and to provide built-in Amman, Jordan transparent quality, security, performance and user-experience features. A Email: [email protected] comprehensive review of the traditional EIS is presented. This includes a discussion of the characteristics and patterns of such systems, the layered architectural patterns and the main components of these systems. The working methodology for the work discussed in this article depends on dynamically construct the common and general aspects of EIS at runtime. The methodology starts with extracting metadata models from the traditional architectural and components patterns.
    [Show full text]
  • Application Programming Interface (API) Is a Specification Intended to Be Used As an Interface by Software Components to Communicate with Each Other
    Application programming interface 1 Application programming interface An application programming interface (API) is a specification intended to be used as an interface by software components to communicate with each other. An API may include specifications for routines, data structures, object classes, and variables. An API specification can take many forms, including an International Standard such as POSIX or vendor documentation such as the Microsoft Windows API, or the libraries of a programming language, e.g. Standard Template Library in C++ or Java API. An API differs from an application binary interface (ABI) in that the former is source code based while the latter is a binary interface. For instance POSIX is an API, while the Linux Standard Base is an ABI.[1] Language used An API can be: • language-dependent, meaning it is only available by using the syntax and elements of a particular language, which makes the API more convenient to use. • language-independent, written so that it can be called from several programming languages. This is a desirable feature for a service-oriented API that is not bound to a specific process or system and may be provided as remote procedure calls or web services. For example, a website that allows users to review local restaurants is able to layer their reviews over maps taken from Google Maps, because Google Maps has an API that facilitates this functionality. Google Maps' API controls what information a third-party site can use and how they can use it. The term API may be used to refer to a complete interface, a single function, or even a set of APIs provided by an organization.
    [Show full text]
  • Applying Dependency Injection to Agent-Based Modeling: The
    Applying Dependency Injection to Agent-Based Modeling: the JABM Toolkit Steve Phelps Centre for Computational Finance and Economic Agents (CCFEA) [email protected] August 31, 2012 Abstract In many areas of science, agent-based models have become increasingly important. These models are often sufficiently complex that deriving closed-form solutions for quantitative aspects of their macroscopic behaviour is often impractical if not impossible. Thus these models are often analysed using Monte-Carlo simulation. Object-oriented programming languages are naturally suited to implementing such models. However, Monte-Carlo methods impose some subtle requirements: we must run the same program very many times with randomly-drawn values of variables in the simulation being drawn from probability distributions, taking great care to ensure that each run is not contaminated with state from previous runs. Typically these problems are tackled by model-specific application code residing in the objects representing individuals in the model. However, this approach is not declarative and leads to cross- contamination between code representing experiments or treatments and code representing the model itself. In this paper we give an overview of agent-based modelling with an emphasis on its application to multi-agent systems research, and show how a design pattern called \dependency injection" can be used to implement highly configurable simulation models which are able to incorporate various assumptions about agents' rationality and learning. 1 Introduction In this paper we describe practical aspects of developing agent-based simulation models with particular emphasis on agent-based computational economics and work carried out within the trading-agent design 1 and analysis community.
    [Show full text]
  • Display-Independent Software Framework, High-Speed Rendering Electronics, and Several New Displays
    Spatial 3-D Infrastructure: Display-Independent Software Framework, High-Speed Rendering Electronics, and Several New Displays Won-Suk Chun, Joshua Napoli, Oliver S. Cossairt, Rick K. Dorval, Deirdre M. Hall, Thomas J. Purtell II, James F. Schooler, Yigal Banker, Gregg E. Favalora* Actuality Systems, Inc., 25 Corporate Dr. Ste. 300, Burlington, MA USA 01803 ABSTRACT We present a software and hardware foundation to enable the rapid adoption of 3-D displays. Different 3-D displays – such as multiplanar, multiview, and electroholographic displays – naturally require different rendering methods. The adoption of these displays in the marketplace will be accelerated by a common software framework. The authors designed the SpatialGL API, a new rendering framework that unifies these display methods under one interface. SpatialGL enables complementary visualization assets to coexist through a uniform infrastructure. Also, SpatialGL supports legacy interfaces such as the OpenGL API. The authors’ first implementation of SpatialGL uses multiview and multislice rendering algorithms to exploit the performance of modern graphics processing units (GPUs) to enable real-time visualization of 3-D graphics from medical imaging, oil & gas exploration, and homeland security. At the time of writing, SpatialGL runs on COTS workstations (both Windows and Linux) and on Actuality’s high- performance embedded computational engine that couples an NVIDIA GeForce 6800 Ultra GPU, an AMD Athlon 64 processor, and a proprietary, high-speed, programmable volumetric frame buffer that interfaces to a 1024 × 768 × 3 digital projector. Progress is illustrated using an off-the-shelf multiview display, Actuality’s multiplanar Perspecta Spatial 3D System, and an experimental multiview display. The experimental display is a quasi-holographic view- sequential system that generates aerial imagery measuring 30 mm x 25 mm x 25 mm, providing 198 horizontal views.
    [Show full text]
  • Introduction to E-Commerce Combining Business and Information Technology
    MARTIN KÜTZ INTRODUCTION TO E-COMMERCE COMBINING BUSINESS AND INFORMATION TECHNOLOGY 2 Introduction to E-Commerce: Combining Business and Information Technology 1st edition © 2016 Martin Kütz & bookboon.com ISBN 978-87-403-1520-2 Peer review by Prof. Dr. Michael Brusch, Fachbereich 6, Hochschule Anhalt and Prof. Dr. Corinna V. Lang, Fachbereich 2, Hochschule Anhalt 3 INTRODUCTION TO E-COMMERCE CONTENTS CONTENTS Table of abbreviations 7 1 Basics and definitions 15 1.1 The term “E-Commerce” 16 1.2 Business models related to E-Commerce 24 1.3 Technical and economic challenges 34 1.4 Exercises 35 2 Frameworks and architectures 37 2.1 Actors and stakeholders 37 360° 2.2 Fundamental sales process 39 2.3 Technological elements 44 2.4 Exercises 360° 61 thinking. thinking. 360° thinking . 360° thinking. Discover the truth at www.deloitte.ca/careers Discover the truth at www.deloitte.ca/careers © Deloitte & Touche LLP and affiliated entities. Discover the truth at www.deloitte.ca/careers © Deloitte & Touche LLP and affiliated entities. © Deloitte & Touche LLP and affiliated entities. Discover the truth at www.deloitte.ca/careers 4 © Deloitte & Touche LLP and affiliated entities. INTRODUCTION TO E-COMMERCE CONTENTS 3 B2C business 62 3.1 The process model and its variants 62 3.2 The pricing challenge 77 3.3 The fulfilment challenge 79 3.4 The payment challenge 80 3.5 B2C-business and CRM 80 3.6 B2C software systems 81 3.7 Exercises 85 4 B2B business 86 4.1 The process model and its variants 86 4.2 B2B software systems 98 4.3 Exercises 106 5 Impact
    [Show full text]
  • Modularity Framework As a New Software Framework in Enhancing Modularity in Open Source Projects
    Modularity Framework as a New Software Framework in Enhancing Modularity in Open Source Projects Andi Wahju Rahardjo Emanuel 1, Khabib Mustofa 2 1Bachelor Informatics Program, Faculty of Information Technology, Maranatha Christian University, Jl. Prof.Drg. Suria Sumantri 65, Bandung, Indonesia 2Computer Science Postgraduate Program, Faculty of Mathematics and Natural Sciences, Gadjah Mada University, Jl. Sekip Utara, Sleman, Yogyakarta, Indonesia [email protected], [email protected] Abstract—In this paper a new Open Source Software Despite of these success stories about Open Source Framework called Modularity Framework is proposed and Softwares, the fact that there are many failures of analyzed for the first time. Study by several researchers such developing software using this methodology is disturbing. as Dekoenigsberg and Gurbani have identified that For example, in sourceforge.net, one of the biggest portals modularity is one of the key success factors of Open Source for developing Open Source Softwares, is currently Projects, but how modularity should be achieved in these projects are not clearly understood. The primary having more than 180 thousands Open Source Projects, components of the proposed Software Framework, which but the number of projects that is downloaded with more are Software Design Patterns and Software Components, are that 25 thousand times are only about 5000 Projects or analyzed against some parameters currently attributed to less than 3%. Several studies have been conducted in software modularity such as module’s size, number of trying to identify the possible cause of these failures, and modules, complexity, cohesion, and coupling / dependency some important causes of these failures are the lack of (fan in, and fan out).
    [Show full text]
  • Web Application Programming Interfaces (Apis): General-Purpose Standards, Terms and European Commission Initiatives
    Web Application Programming Interfaces (APIs): general-purpose standards, terms and European Commission initiatives APIs4DGov study — digital government APIs: the road to value-added open API-driven services Santoro, M., Vaccari, L., Mavridis, D., Smith, R. S., Posada, M., Gattwinkel, D. 2019 EUR 29984 EN This publication is a Technical report by the Joint Research Centre (JRC), the European Commission’s science and knowledge service. It aims to provide evidence-based scientific support to the European policymaking process. The scientific output expressed does not imply a policy position of the European Commission. Neither the European Commission nor any person acting on behalf of the Commission is responsible for the use that might be made of this publication. For information on the methodology and quality underlying the data used in this publication for which the source is neither Eurostat nor other Commission services, users should contact the referenced source. The designations employed and the presentation of material on the maps do not imply the expression of any opinion whatsoever on the part of the European Union concerning the legal status of any country, territory, city or area or of its authorities, or concerning the delimitation of its frontiers or boundaries. Contact information Name: European Commission, Joint Research Centre (JRC), Digital Economy Unit (JRC.B6) Address: Via Enrico Fermi, 2749 — 21027 Ispra (VA), Italy Email: [email protected] Tel.: +39 0332 78 57 58 EU Science Hub https://ec.europa.eu/jrc JRC118082 EUR 29984 EN PDF ISBN 978-92-76-13183-0 ISSN 1831-9424 doi:10.2760/675 Luxembourg: Publications Office of the European Union, 2019 © European Union, 2019 The reuse policy of the European Commission is implemented by the Commission Decision 2011/833/EU of 12 December 2011 on the reuse of Commission documents (OJ L 330, 14.12.2011, p.
    [Show full text]