Code Quality in Open Source Software: Inspecting Apache
By Jeff Klagenberg
July 14, 2003
(Code Quality in Open Source Software: Inspecting Apache
: Page 1 of 1 )
On February 11, 2003 Reasoning (a company providing automated software inspection
services) published a study comparing the Linux TCP/IP
stack to commercially developed TCP/IP stacks. This comparison showed
that an active, mature open source project may have fewer defects
than a similar commercial project.
The report generated numerous requests for more information about open
source development and how it compares to commercial development. In
response to those inquiries, Reasoning inspected an open source
project in an earlier phase of the development life-cycle. The
selection was based on the following criteria, chosen because they
represent the most appropriate comparison with the company's existing knowledgebase of code inspections:
An active open source community, which shows that there are stakeholders
in the development effort.
Code in development, which allows us to see the state of code earlier in
the lifecycle.
Stable code base (i.e. 2.x or 3.x release), to avoid the vagaries of a
"starter project."
Usage
within the software industry, to ensure that there is pressure from
the customer community.
Based
on these criteria, the Apache Web Server was a natural selection.
This is the most widely used Web server available, and is essential
to many commercial Web-based applications running today. The code
that was inspected is included in Apache http server 2.1, dated
January 31, 2003. This specific version represents active development
of approximately two months.
Automated Software Inspection
Software
inspection—the process of examining source code to identify
defects—is a standard practice in development organizations
and widely recognized as the best way to find defects. Inspection
is hardware-independent, does not require a "runable"
application or a suite of test cases, and does not affect code size
or execution speed. The majority of code inspections are performed
manually.
2008 International Mathematica Conference Dr. Dobb's interviews Wolfram Research's Theo Gray, co-founder and Director of User Interfaces, and Roger Germundsson, Director of Research and Development, about the upcoming 2008 International
Mathematica Conference.
How Do You Do Nightly Builds and Tests when there is No Overnight? Software Production in a Geographically Distributed Environment
Attend this Webcast and find out how to overcome common build-test-deploy challenges that affect all members of a distributed team, including:
<ul>
<li> Communication difficulties, because of time-zone and cultural differences</li>
<li> Workflow challenges, like lack of documented procedures and build and test handoff problems</li>
<li> Slow build and test cycles, broken builds, and other factors that hamper distributed team productivity</li>
</ul>
Thursday, September 25, 2005 " 11am PT / 2pm ET
</p>
In this volume of Best of BYTE, we explore the emergence of some heuristic algorithms. Although we have only scratched the surface of this intriguing subject, we hope we've suggested the potential of the synthesis of heuristics and algorithms.
Understand C/C++ code in less time. A new team member ? Inherited legacy code ? Get up to speed faster with Crystal Flow for C/C++. Code-formatting improves readability. Flowcharts are integrated with code browser. Export flowcharts to Visio.