Simulating an Automated Approach to Discovery and ...

concepcionsockΛογισμικό & κατασκευή λογ/κού

15 Αυγ 2012 (πριν από 5 χρόνια και 2 μήνες)

311 εμφανίσεις

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

Configur
e 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

Release

proposal

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 Control

Process 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