Modularity Framework As a New Software Framework in Enhancing Modularity in Open Source Projects
Total Page:16
File Type:pdf, Size:1020Kb
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). The result of the analysis shows that formal process similar to its proprietary counterpart [3], the composition of these Design Patterns combined with poor architectural design [5], the lack of documentation Software Components (interfaces and abstract classes) in a that hinder new participants to contribute to the projects form of Software Framework called Modularity Framework is highly feasible. [6] and high entry barier for new participant to be able to contribute significantly to the project [15]. Index Terms—Modularity Framework, Open Source, Some studies are able to discover the key success Software Architecture, Software Framework factors of the Open Source Software Projects. The important finding is that one of the key success factors in developing high quality Open Source Software is the sound and modular architecture of the software [4] [9]. I. INTRODUCTION Eventhough modularity has been identified as the key Open Source currently become one major research success factor, how modularity in early phase of Open topic in software engineering by many researchers Source Projects should be achieved, in order to increase worldwide. This alternative software development its change of survival, is not yet clearly understood. Since methodology which is initiated in 1990s by Richard most of the Open Source Projects are developed in ad hoc Stallman in his paper "Why Software should be Free" [14] manner, more systematic and repeateable approaches in and Eric Raymond in his paper "The Cathedral and the the development of Open Source Projects using proper Bazaar" [13] now becomes the mainstream software Software Framework as the mini-architectural guidance engineering movement in Information Technology. The which focuses on modularity are needed. In this paper, a development methodology, which allow almost everyone new Software Framework called Modularity Framework to download, improve, and modify the source code, is is proposed and discussed for the first time. This creating groups of users and developers called Open framework focuses on achieving modularity and Source Communities which are constantly trying to addressing the poor architectural design of the Open improve the software in rapid and evolutionary manner. Source Software Project. Even though the members of the communities are never meet each other in person and only connected using electronic means such as email and forum, this distributed II. CURRENT RESEARCHES collaboration is eventually able to create some very high quality softwares which are comparable and even The software framework being proposed will consist competing to the proprietary softwares. Some noticeable of two main components which are collection of Software success stories about Open Source Software are Linux Components and composition of several Software Design Operating System (Debian, Ubuntu, FreeBSD, Red Hat, Patterns. The combination of these two main components etc.), Apache Web Server, Firefox / Mozilla Web will create a mini-architecture which can be used as a Browser, OpenOffice.org , and many more. guidance in starting the modular Open Source Software. 136 International Conference on Rural Information and Communication Technology 2009 Several researches have been conducted in Software The development methods of the Open Source Frameworks, Architecture, and Software Design Patterns. projects are lacking of formal methodology found in commercially developed software applications. A. Software Framework and Architecture During the development of Open Source Softwares, the developers and communities depend on some tools. There are currently several studies about Software CVS (Concurrent Version System) is used as the Framework and Software Architecture in Open Source repository and version control of the source code. Bug Projects. Stewart studied the development model of Open Database software such as Bugzilla or TRAC is used to Source Projects which focused on complexity [15]. keep track of all the bugs during developement. All the Nakagawa in his study of software architecture in Open proposed functionalities and improvement suggestions are Source Software proposed architecture refactoring activity kept in a TODO List / Wish List. Documentation of the to repair software architecture [12]. Study in the software is kept using Wiki. The communication among composition of patterns for example in MVC (Model – developers and communities are done electronically via View – Controller) architecture is actually the websites, forum, mailing list etc. The distribution and composition of Composite, Strategy and Observer Design modification of the software is controlled by specific Patterns [2]. licensing scheme such as GPL, LGPL, etc [16]. Currently, many website portals have been developed B. Software Design Pattern as an incubator for Open Source software initiators and The study about Design Pattern in 1000 Open Source interested participants to develop and host their projects. Projects was conducted by Hahnsler in which he found These portals are equipped with many development tools that Singleton is mostly used Design Pattern and only and statistics to assist the project initiator or administrator very few Open Source Developers were actually using in improving their Open Source projects and other Design Pattern [10]. Empirical Study evolution of design interested contributors to join the projects. Some of the pattern of three Open Source Projects which are popular portals are sourceforge.net, freshmeat.net, JHotdraws, ArgoUML, and Eclipse JDT found that launchpad.net, and Google Code (code.google.com). patterns used are changed more frequently, and different kind of changes impact differently on co-changed classes, B. Software Design Pattern different capabilities of making the system resilient to Design Pattern is defined as micro architecture, and it changes [1]. captures essence of good solution in particular context. In summary, it can be seen from above researches that The characteristics of software design patterns: the study about Software Frameworks, Architecture and Descriptions of communicating objects and classes Design Patterns are mainly focuses on detecting the that are customized to solve a general design problem existing Framework, Architecture and Design Patterns in in a particular context . the Open Source Projects and all of the consequences Design pattern is not as data structures nor complex relating to them. There is no effort have been conducted domain specific designs. in trying to enforce the Open Source development process There are several benefit of Design Pattern, such as it to have sound and modular architecture characteristics. enables large-scale reuse of software architectures, helps The Modularity Framework proposed in this paper is document systems, captures expert knowledges and trying to fill the gap. design tradeoffs, improves developer communication, forms a common vocabulary among developers and many more. The descriptions of design pattern are usually consist of [7]: Pattern name, Problem, Intent, Context, III. THEORETICAL BACKGROUND When to apply, Solution, UML-like structure, Abstract The theoretical background for this paper will describe code, Consequences, Results, Tradeoffs. Design Patterns Open Source Software Projects and Software Framework are categorized into three types [7]: and all that related to them such as Software Component, Creational: Singleton, Abstract Factory, Factory Design Pattern, Software Framework and Software Method, Prototype, Builder. Architecture. Structural: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy. A. Open Source Software Projects Behavioural: Chain of Responsibility, Command, Interpreter, Mediator, Momento, Observer, State, Open Source is a software