Title: Open Source Software Development Processes Version 2.5, 8 June 2002
1Open Source Software Development
ProcessesVersion 2.5, 8 June 2002
- Walt Scacchi
- ICS 225
- Spring 2002
2Open Software Production Model
- Team Project Goals
- Open source software process meta-model
- OSS processes
- OSS agents
- OSS interface
- required (input)
- provided (output) resources
- OSS tools
3Team Project Goals
- Model, Visualize, and ltother PLC activitygt for
your Teams OSSD process(es) - Develop Semi-Structured, Hyperlinked OSSD Process
Model(s) - Navigatible Hypermedia (e.g., .ppt -gt .html)
- Develop Formal OSSD Process Model(s)
- Using Protégé-2000 and PML
- Develop Narrative OSSD Process Model Report
- Publication-quality (e.g., Mozilla Report)
4Open Software Process Meta-Model
composed_ process_1
process_1
process_n
process_2
5Open Software Process Meta-Model
process_1
sub-process/task_n
task_1
sub_ process_1
6Open Software Process Meta-Model
7OSSD Process Layering
Articulation
OSSD Community Processes
OSSD Software Development Processes
OSSD Infrastructure Processes
8OSSD Process Model Template
- Process Name (short)
- Narrative Description (short)
- Agent/Roles
- Interface
- Input Resources
- Output Resources
- Tools
- Control Flow Scenario
- Normal/typical flow sequence
- Exception handling flow sequence
9OSSD Process Taxonomy
10Open Software Development Processes (1)
- Download and Install
- End-Use
- Communicate Experience
- Assert Requirements-Design
- Develop Open Source Code
- Manage Configuration
- Review, Analyze and Redesign
11Open Software Development Processes (2)
- Contribute External Source Code
- Develop Project Community
- (Re)Organize Project Team
- Scan External Environment for Innovation
Opportunities - Develop Community Software
- Develop Community Web Portal
12Basic Open Source Software Development Process
Manage Configuration
Develop OSS Code
Download and Install
Communicate Experience
Assert Requirements-Design
End-Use
Read, Analyze and Redesign
OSS Community Development Process
13OS Software Development Ver. 1.2
Analyze and Redesign
End-Use
Assert Requirements-Design
Develop OSS Code
Download and Install
Manage Configuration
14Download and Install
- Check Open Software Web Site (e.g., via
SourceForge) for news/latest release info - User download packaged open software source code
files (e.g., RPMs) and/or executable image - Unpack and and install source code
15End-Use
- Review any application documentation or Web pages
- Use downloaded executable image
- Optional
- Perform local source code build
- Perform local integration test
- Perform local version control check-in
16Communicate Experience
- Browse OSSD project Web site, discussion forum,
or other online sources - If observe bugs, then do bug report
- If observe performance bottlenecks, external
innovation opportunities, or localization
shortfalls, then do enhancement or code
restructuring request
17Analyze and Redesign
- Select application, process, or Web site to
redesign - Analyze and model
- Identify and Extract structural properties
- Components, connectors, interfaces, resources
I/O, configuration, and version(s) - Identify applicable redesign heuristics
- Develop redesign transformation plan
- Execute plan
18Assert Requirements-Design
- Assert software requirements or design update
using communication tools/artifacts - Read and make sense of updates, determine
accountability - Browse and extend software discourse web
- Harden discourse web via navigational
cross-linkage - Provide global access to software web
19Develop Open Source Code
- Check-out and download source code from project
repository/Web site - Edit source code file(s)
- Compile local source code into executable image
- Debug as needed
- Perform unit test on executable image
- Submit source code to configuration management
20Manage Configuration (1)
- Compose/integrate source code files (e.g., via
Make files) - Build/make executable composed image
- Regression test executable image
- Optional
- Submit source code for review
- Review and approve/reject submitted source
21Manage Configuration (2)
- Check-in source code into (CVS) repository
- Create remote installation package (e.g., RPM)
for release - Create and build multi-platform executable images
for release - Create release news information
- Post news and release on project Web site
- Track and record source/image downloads
22OSS Community Development
OSS Community Development Process
23 Develop Community
- Contribute External Source Code
- Initiate OSSD Project
- Create OSSD Project Web Site Portal
- Create and post Project OSSD to do items
- Invite new contributors to join
- Create community rights of passage and
hierarchy - Assert relevant OSS license/rights to use
- Create Foundation to assure legal status
24Contribute External Source Code
- Develop open source code implementation of
existing software system/application - Create Web site for open source code content and
announce project - Optional Register project and Web site at
SourceForge, Freshmeat, or similar - Configuration manage source code
- Solicit community participation in further
developing open source
25(Re)Organize Project Team
- Solicit and designate Project core contributors
- Identify opportunities for other contributors
- Identify secondary and tertiary participant roles
- Self-select Project to-do tasks to perform
- Self-select Project teamwork structures or
patterns - Align Project (local) configuration for tool,
repository, and OSSD artifacts
26Scan External Environment for Innovation
Opportunities
- Surf informative Web sites and other media for
content on new tools, techniques, concepts, or
data source that may add value to local OSSD
project - Acquire additional knowledge of these
opportunities, as needed - Propose new features or enhancements on local
OSSD project mail list server for how and why to
incorporate the opportunity
27Develop Community Software
- Select OSSD Tools for use by Project
- Setup Project Web Site
- Setup Project resource repositories
- Network file servers
- CVS directory structure/archive
- Content management servers
- Post links to Project tools
28Develop Web Site Portal
- Register Project Internet domain name
- Create home page or site index
- Create Web site architecture
- Insert/update Web site with Project content
29Open Software Agents Taxonomy (1)
- Programmers
- Core developers
- Secondary developers
- (Infrequent) contributing developers
- Reviewers
- Code readers
- Code approvers
- Participants in Project software discourse
30Open Software Agents Taxonomy (2)
- End-users
- Testers and Quality Assurance contributors
- Configuration managers
- Documentation authors and coordinators
- Community Web portal maintainers
- Other community members
- Lurkers
31Open Software Agents (3)
- Project Leader (Overlord)
- Community Executive Committee
- Project (Infrastructure Resources) Donators
- Foundation voting members
32Open Source Software Tools Taxonomy
33Open Software Resources Taxonomy (definitely
needs help)
- Messages
- Threaded email postings
- Chat records
- Private email
- Software extension mechanisms and architectures
- Web portal contents