Simulating an Automated Approach to Discovery and Modeling of Open Source Software Development...

Preview:

Citation preview

Simulating an Automated Approach to Discovery and Modeling of Open Source

Software Development Processes

Chris Jensen and Walt Scacchi

Institute for Software Research

University of California, Irvine

Irvine, CA 92697-3425

cjensen@ics.uci.edu, wscacchi@ics.uci.edu

Introduction

Goal: Demonstrate the feasibility to automate the

discovery of process workflows via manual search and analysis tools in open source software development communities

Motivation

Manual simulation provides insight into: The feasibility of an automated approach Techniques for implementation

Without: Costly, high-risk investment

A Directed Approach

Domain: large scale online open source software development (OSSD) projects Short duration, frequent enactment, and a

propensity for available evidence

Contextual clues guide process discovery Project Web information structure Site contents Usage patterns

Our Study

Phase1: reference model

Phase2: project history: development in context

Phase3: use-case mining Relevancy issues

Phase4: process modeling, prototyping

Phase5: analysis

Sun Microsystems

The Board Release Manager

Maintainer Developers/ Contributors

Website

Mailing Lists

Users

Contribute to community

, Meet time constraints for the release

Maintain a project/ module, manage a group of developers

ensure that the netbeans community is being run in a fair and open manner

Start new release phase, propose schedule/plan

Download and use free software

CVS

Funds, support, Promote Java/Open source

IssueZilla

QA team

Produce Q builds and ensure quality of the software

Release proposal, Release updates,

branch for current release, release post mortem,

review Release Candidates & decide final release

download development builds and test

, Release Q-builds

Download new release

report bugs

Select feature to develop

, bug to fix, download netbeans,

commit code

decide features for the project and merge patches/bug fixes

, create module web page

make decisions for the community, on high level

grant CVS commit privilege to developers

Link to all Use cases Links to all Agents

CVS Manager

Configure and Maintain CVS

Grant Access

Site Administrator

Manage website

Deploy Builds SourceCast

Tools

Link to Tools

Release candidate 2

Release candidate 1

Development build

Q build

Release Manager

source code

Module maintainer

QA Team

Test(Netbeans)

User

Use (Netbeans, Issuezilla)

List of bugs to

fix

Final release

Developer

Write bug fix

(Netbeans)

Check(Netbeans, Mailing list)

Module plan

Roadmap

Decide future release dates

Determine project features

(Mailing list)

Schedule Releaseproposal

Start a new release phase (Mailing list)

Determine main features

(Mailing list)

Build(CVS scripts)

Board member Release Manager

Netbeans Web Site

Create module web page(Web site)

List of bugs

Release information update

(SourceCast)

Check(Netbeans, Mailing list)

Check(Netbeans, Mailing list)

Decide which bugs to fix (Issuezilla)

Site administrator

Download links(SourceCast)

Module Web Page

Towards a Formal Model

Lessons Learned

Information availability Web pages, asynchronous communication via threaded

communication lists, software product source code, development tools, development resources, OSS extension mechanisms

Granularity ControlProcess Validation Inconsistency between prescriptions and implementation

Accountability for Evolution Need for temporal locality indication for process

footprints

Prognosis

What makes us believe such an approach could actually work? Frequent iteration of a small number of tasks Tasks performed lend themselves to automation

Keyword search of domain-related terms Existence of technological enablers

Web Data Mining, Probabilistic Relational Modeling

The End

Questions?

Results

Reconstructing process fragments Rich Picture Macro-view process diagram Formal Model

PML → Protégé-2000 Ontology→ ? Process prototype

Recommended