330 likes | 516 Views
Open Source Software Development Processes Version 2.5, 8 June 2002. Walt Scacchi ICS 225 Spring 2002. Open Software Production Model. Team Project Goals Open source software process meta-model OSS processes OSS agents OSS interface required (input) provided (output) resources
E N D
Open Source Software Development ProcessesVersion 2.5, 8 June 2002 Walt Scacchi ICS 225 Spring 2002
Open 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
Team Project Goals • Model, Visualize, and <other PLC activity> for your Team’s OSSD process(es) • Develop Semi-Structured, Hyperlinked OSSD Process Model(s) • Navigatible Hypermedia (e.g., .ppt -> .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)
Open Software Process Meta-Model composed_ process_1 process_1 process_n process_2
Open Software Process Meta-Model process_1 sub-process/task_n task_1 sub_ process_1
OSSD Process Layering Articulation OSSD Community Processes OSSD Software Development Processes OSSD Infrastructure Processes
OSSD 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
Open Software Development Processes (1) • Download and Install • End-Use • Communicate Experience • Assert Requirements-Design • Develop Open Source Code • Manage Configuration • Review, Analyze and Redesign
Open 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
Basic 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
OS Software Development: Ver. 1.2 Analyze and Redesign End-Use Assert Requirements-Design Develop OSS Code Download and Install Manage Configuration
Download 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
End-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
Communicate 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
Analyze 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
Assert 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
Develop 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
Manage 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
Manage 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
OSS Community Development OSS Community Development Process
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
Contribute 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
(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
Scan 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
Develop 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
Develop 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
Open Software Agents Taxonomy (1) • Programmers • Core developers • Secondary developers • (Infrequent) contributing developers • Reviewers • Code readers • Code approvers • Participants in Project software discourse
Open 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
Open Software Agents (3) • Project Leader (Overlord) • Community Executive Committee • Project (Infrastructure Resources) Donators • Foundation voting members
Open Software Resources Taxonomy (definitely needs help) • Messages • Threaded email postings • Chat records • Private email • Software extension mechanisms and architectures • Web portal contents