Working with Free and Open Source Software (FOSS)
Christof Ebert, Vector
Total pages: 37
$29.00
Introduction
Many of today':s most innovative products and solutions are developed on the basis of free and open source software (FOSS). The software world we know can':t be imagined without open source operating systems, databases, application servers, Web servers, frameworks, and tools. Brands such as Linux, MySQL, Apache, and Eclipse have shaped product and service development. They facilitate competition and open markets as well as innovation to meet new challenges. FOSS de facto standards such as Eclipse or Corba simplify the integration of products with each other and also with other suppliers': products. Independent software vendors (ISVs) distribute popular FOSS solutions and components or integrate them and thus help accelerate integration efforts. This reduces the cost and risks of integrating several software components coming from various suppliers. Because FOSS makes its code available, you can substitute or rework suppliers and support conditions. Other ISVs or software houses can start supporting specific FOSS at any time, mitigating the risk we face when the sole supplier stops supporting its proprietary software.
The articles in this TechSet provide concrete usage scenarios of FOSS in industry, with how-to-do tips, case studies, and examples of how you can best use FOSS. We start with three articles on open software engineering tools and move to two articles on FOSS component usage in real-world software development.
In "Experiences with Open Source Software Engineering Tools," Kal Toth underlines that OSS is often used for engineering tools such as those embedded to Eclipse and highlights concrete experiences with such tools. In "Using Wikis in Software Development," Panagiotis Louridas shows that wikis are broadly used today for building low-cost collaboration environments. He provides tips on how to make best use of this technology. Louridas also looked into famous xUnit test tools, an excellent example of FOSS for a widespread application domain, namely unit testing. His "JUnit: Unit Testing and Coding in Tandem" emphasizes test-driven development, which gained momentum for building high-quality software at modest cost.
A key requirement is having unit-test tools, which the article evaluates. Jeffrey Norris and colleagues show with their article "Mission-Critical Development with Open Source Software: Lessons Learned" that people often hesitate to embed OSS into systems with high-quality requirements. They provide practical experience using OSS in such systems and thus show how to cope with risks and manage such system development.
Finally, in his classic article, "Using Linux for Real-Time Applications," Armand Marchesin provides a real-world case study on how an RT-Linux Kernel was combined with a proprietary OS to build a PBX and handle a wide range of functional and timing requirements.
These articles on FOSS provide a look at practical experiences in applying FOSS to engineering projects and product development with focus on how to make it happen in your own environment. I selected them based on their practical insight and value-add from real-world industrial applications of FOSS for components and tools.
Keywords: free and open source software, FOSS, open source development
Table of Contents
Experiences with Open Source Software Engineering Tools
Kal Toth
Summary: Open source software offers a unique opportunity for improving learning outcomes for software engineering and computer science education. This article describes experiences exploiting OSS to enhance the practical aspects of such programs.
Using Wikis in Software Development
Panagiotis Louridas
Summary: Wikis have become one of the most popular tool shells. They have a place in intranetbased applications such as defect tracking, requirements management, test-case management, and project portals. The author describes wiki essentials and nicely distinguishes various types.
JUnit: Unit Testing and Coding in Tandem
Panagiotis Louridas
Summary: JUnit is an open source Java library that purports to make unit testing so much fun that programmers will actually want to write tests for their code.
Mission-Critical Development with Open Source Software: Lessons Learned
Jeffrey S. Norris and Poul-Henning Kamp
Summary: When considering an open source component, prospective users should evaluate the project for several characteristics: maturity, longevity, and flexibility. For greatest benefit, OSS users should also build and maintain a strong working relationship with the component's developers.
Using Linux for Real-Time Applications
Armand Marchesin
Summary: Alcatel chose Linux with RTLinux extension to support the software platform of its OXO e-communication server. In this column, the author discusses how they used Linux, focusing particularly on software architecture and real-time issues.