Jensen-Scacchi - University of California, Irvine
Download
Report
Transcript Jensen-Scacchi - University of California, Irvine
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
[email protected], [email protected]
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
Funds, support,
Promote
Java/Open
source
Sun
Microsystems
Download and
use free
software
Configur
e and
Maintain
CVS
ensure that the
netbeans community
is being run in a fair
and open manner
Download new
release
make decisions for
the community, on
high level
The Board
report bugs
Users
CVS
Manager
Mailing Lists
Site
Administrator
Maintainer
Website
Deploy
Builds
decide features for
the project and
merge patches/bug
fixes, create module
web page
Maintain a
project/
module,
manage a
group of
developers
Link to all Use cases
Tools
SourceCast
CVS
IssueZilla
Select feature to
develop, bug to fix,
download netbeans,
commit code
grant CVS
commit
privilege to
developers
Contribute to
community,
Meet time
constraints for
the release
Link to Tools
Release
Manager
Release proposal, Release
updates, branch for current
release, release post
mortem, review Release
Candidates & decide final
release
Grant
Access
Manage
website
Start new
release phase,
propose
schedule/plan
download
development
builds and test,
Release Qbuilds
QA team
Produce Q
builds and
ensure
quality of
the
software
Developers/ Contributors
Links to all Agents
Board member
Decide future
release dates
Roadmap
Release Manager
Start a new
release phase
(Mailing list)
Determine main
features
(Mailing list)
Release
proposal
Schedule
Site administrator
Module maintainer
Determine
project features
(Mailing list)
Module
plan
Create module
web page
(Web site)
Build
(CVS scripts)
source
code
QA Team
Download links
(SourceCast)
Final
release
Check
(Netbeans, Mailing list)
Development
build
Developer
Write bug
fix
(Netbeans)
Test
(Netbeans)
Netbeans
Web Site
Release information
update
(SourceCast)
Release
candidate 2
Release
candidate 1
Check
(Netbeans, Mailing list)
Check
(Netbeans, Mailing list)
List of
bugs to
fix
Q
build
Use
(Netbeans,
Issuezilla)
User
Release Manager
Module
Web
Page
Decide which
bugs to fix
(Issuezilla)
List of
bugs
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