190 likes | 423 Views
Open Source Software Development and Very Large-Scale Software Engineering. Walt Scacchi Institute for Software Research University of California, Irvine Irvine, CA, 92697-3425 USA 19 July 2005 www.isr.uci.edu/research-open-source.html. Overview. OSS Development Models
E N D
Open Source Software Development and Very Large-Scale Software Engineering Walt Scacchi Institute for Software ResearchUniversity of California, IrvineIrvine, CA, 92697-3425 USA 19 July 2005 www.isr.uci.edu/research-open-source.html
Overview • OSS Development Models • Service-Oriented Middleware Architectures • Information Assurance and Security in OSS • OSSD supporting DoD/Federal Agencies • Government and Industry Adoption of OSSD • Very Large-Scale Software Engineering • VLSSE Processes • OSSD/SE Processes Accommodating New H/W
OSS Development Models • Free Software (GPL) • Open Source (BSD/MIT, Mozilla, Apache) • Corporate Source (Hewlett-Packard) • Consortium/Alliance (OSDL, SugarCRM) • Corporate-Sponsored (IBM-Eclipse, Sun-Netbeans, Sun-OpenOffice, HP-Gelato) • Shared Source (Microsoft) • Community Source (Sakai, Westwood) • Open Systems (open APIs, closed components)
Critical OSSD Success Factors • OSS Developers are always users of what they build, while OSS users (>1%) are also OSS developers • Requires “critical mass” of contributors and OSS components connected through socio-technical interaction networks • OSSD projects emerge/evolve via bricolage • Unanticipated architectural compositions • Multi-project components and integrations • OSSD teams use 10-50 OSSD tools to support their development work
Critical OSSD Success Factors • Operational code early and often--actively improved and continuously adapted • Post-facto software system requirements and design • OSSD is not Software Engineering • OSSD has its own “ilities” which differ from those for SE • Caution: the vast majority of OSSD projects fail to grow or to produce a beta release.
Service-Oriented Middleware Architectures • Exchangable data representations and definitional forms (HTML, SVG, ebXML, etc.) • Service component Application Program Interfaces (APIs) • Application Specific Protocols (Data exchange and process invocation) • Application domain processes (Business processes—logistics—expressed in WSDL)
Information Assurance and Security in OSS • Closed versus Open Source—which is more secure? • Empirical question, not a technical or theoretical result • NSA has developed and certified Secure Linux (SELinux) • USNavy (SPAWAR) has been deploying SELinux in the Fleet • Darpa has invested in OpenBSD as its secure (plus encryption) operating system of choice
OSSD supporting DoD/Federal Agencies • Dept. of Defense puts Open Source on a level playing field with proprietary software -DoD issues guidance for using OSS at DoD • MITRE Report - Use of Free and Open Source Software in the US Dept. of Defense - Report prepared by MITRE Corporation for Defense Information Systems Agency (DISA) • Developing An Open Source Option for NASA Software • Mission-Critical Development with Open Source—Lessons Learned (OSSD Case Study at JPL) • See www.egovos.org
Govt and Industry Adoption of OSSD • Large corporations/enterprises: • IBM-Eclipse, Sun-NetBeans and OpenOffice, HP-Gelato, Apple-Darwin, Microsoft Research-Rotor, etc. • Barclays Global Investors, DKW, Merrill Lynch, etc. • DoD, DoE, NSF, NIH, NASA, etc. • MIT, Stanford, CMU, UC, UMichigan, etc. • Mid-size corporations: • RedHat, Novell, Borland • Small (start-up) companies: • ActiveState (now part of Sophos), Collab.Net, Jabber, Ximian (now part of Novell), JBoss, Compiere, etc.
Very Large-Scale Software Engineering • Architectural specification (system, services (data, protocols, processes), team/organization. • Configuration management and version control • Process automation—builds, regression tests, etc. • Reliance on informalisms for development
Very Large-Scale Software Engineering • Information density vs. knowledge coverage • VLSEE needs for ASB to consider: • Test-beds for full-size system mock-ups (probably built from OSS and Computer Game components) • Visualization aids—architecture, configuration, socio-technical networks • Empirical knowledge about existing VLSEE practices for both OSS and CSS • Computer-supported cooperative organizational learning environments (CSCOLE) supporting long-term organizational transformation.
VLSSE Processes • Configuration management and version control • Architectural specification and maintenance • Collaboration, leadership, control and conflict management • Community development and support • Software source code and artifact data mining
OSSD/SE Processes Accommodating New H/W • New H/W being developed to support computer games and grid-based computing clusters using (massively scalable) cell/multi-core processors • Future Army training games should be capable of modeling, simulating, and dynamically reconfiguring “modular brigades” with high visual and operational realism in alternative engagement scenarios • Games and grids increasingly depend on OSSD methods and technologies • “Globus” grid middleware is OSS • Support for OSS game development capabilities now packaged with many successful computer games sold retail • DoD/Navy investing in development of Delta3D OSS game engine (www.delta3d.org)
OSSD/SE Processes Accommodating New H/W • Enable/subsidize the OSS Game and Grid Development communities to lead the way, and to contribute to sustaining the effort. • Example: Engage contractor to setup a “Corporate sponsored” OSS Game Grid project to develop and evolve a massively multi-player online game environment for “playing” real-time strategy games using modular brigades.
Recommendations for ASB • Need to acquire knowledge about development processes, work practices, community dynamics, and system configuration management techniques employed in large-scale (500K-5M SLOC) and very large-scale (>5M SLOC) OSSD projects. • Focused, in-depth, and comparative case studies • Producing shareable, reusable, redeployable knowledge assets
Recommendations for ASB • Need to acquire knowledge of the (modular) architectures of the software systems, development teams, and user communities found in very large OSSD projects. • Architectures are socio-technical interaction networks. • Need knowledge for how to model, visualize, analyze, simulate, and enact OSSD project architectures, and their continuous evolution
Recommendations for ASB • Need to acquire knowledge for how best to adaptively configure modular force architectures for: • Software systems • Developer and User teams • Supporting contractors • Remote contributors (e.g., OSS community contributors)
Acknowledgements • Project collaborators: • Darren Atkinson, Santa Clara University • Mark Ackerman, University of Michigan, Ann Arbor • Les Gasser, University Illinois, Urbana-Champaign • John Noll, Santa Clara University • Chris Jensen and Margaret Elliott and others at UCI-ISR • Funding support (no endorsement implied): • National Science Foundation #0083075, #0205679, #0205724, and #0350754.