Software Development: An Open Source Approach, 1st Edition (Hardback) book cover

Software Development

An Open Source Approach, 1st Edition

By Allen Tucker, Ralph Morelli, Chamindra de Silva

CRC Press

400 pages | 153 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781439812907
pub: 2011-01-19
SAVE ~$19.59
$97.95
$78.36
x
eBook (VitalSource) : 9780429130212
pub: 2011-01-19
from $48.98


FREE Standard Shipping!

Description

To understand the principles and practice of software development, there is no better motivator than participating in a software project with real-world value and a life beyond the academic arena. Software Development: An Open Source Approach immerses students directly into an agile free and open source software (FOSS) development process. It focuses on the methodologies and goals that drive the development of FOSS, combining principles with real-world skill building, such as debugging, refactoring, and writing.

The text explains the software development process through an integration of FOSS principles, agile techniques, modern collaboration tools, community involvement, and teamwork. The authors highlight the value of collaboration as a fundamental paradigm for software development. They show how an effective development team can often create better quality software than an individual working in isolation.

Written by experienced software developers and educators, this book enables students to gain a rich appreciation of the principles and practice of FOSS development. It also helps them become better writers, programmers, and software community members.

Web Resource

The book’s companion website provides a wealth of resources:

  • Downloadable FOSS development projects, including design documents, use cases, and code bases
  • A discussion forum for instructors and students to share their experiences and exchange ideas about particular issues raised by these projects
  • Supporting materials for common FOSS development tasks, such as setting up a version control system, an IDE, a project code base, and a unit test suite
  • Additional exercises that reflect a wide variety of software projects and other activities

Reviews

Software, which makes all of this data processing possible, must be robust, dependable, and easy to use. Accordingly, people who develop software should use sound methodologies to achieve these properties; this book helps with just that. … clearly and thoroughly explains the fundamental concepts of software development, with the help of many figures and tables. … Although the book is heavily centered on free and open-source software, and is organized as a textbook, individual programmers and teams of programmers can easily use it as a guide.

Computing Reviews, February 2012

Integrating project work in computing courses is highly valuable. Project-driven learning experiences are enhanced when students are exposed to real-life problems and actually engaged with community partners, whether industry, business, or nonprofit organizations. While all this sounds very convincing in theory, making it a reality is a big challenge. Software Development: An Open Source Approach is an excellent resource for teachers and students to take on this challenge. The book’s RMH Homebase case study and web site supporting materials, RMH Homebase code base releases, and staging server setup instructions transform an individual reading experience of a well-written textbook into a collective software development effort that is productive, effective, and, above all, captivating.

—Mihaela Sabin, University of New Hampshire, Manchester, USA

Table of Contents

Overview and Motivation

Software

Free and Open Source Software (FOSS)

Two Case Studies

Working with a Project Team

Key FOSS Activities

Client-Oriented vs. Community-Oriented Projects

Working on a Client-Oriented Project

Joining a Community-Oriented Project

Using Project Tools

Collaboration Tools

Code Management Tools

Run-Time System Constraints

Software Architecture

Architectural Patterns

Layers, Cohesion, and Coupling

Security

Concurrency, Race Conditions, and Deadlocks

Working with Code

Bad Smells and Metrics

Refactoring

Testing

Debugging

Extending the Software for a New Project

Developing the Domain Classes

Understanding the Current System

Adding New Features

Class Design Principles and Practice

Managing the Ripple Effect

Developing the Database Modules

Design Principles and Practice

Working with a Database

Database Security and Integrity

Adding New Software Features: Database Impact

Developing the User Interface

Design Principles and Practice

Working with Code

Adding New Features: User Interface Impact

User Support

Technical Writing

Types of User Support

Example: RMH Homebase On-Line Help

Project Governance

Origins and Evolution

Evolving into a Democratic Meritocracy

Releasing Code

New Project Conception

Requirements Gathering

Initial Design

Appendix A: Details of the Case Study

Requirements

Design

Appendix B: New Features for an Existing Code Base

Starting with a Request from the Client

Impact on the Design and the Code Base

Defining a Project that Implements These New Features

References

A Summary and Exercises appear at the end of each chapter.

About the Authors

Allen B. Tucker is the Anne T. and Robert M. Bass Professor Emeritus at Bowdoin College in Brunswick, Maine. Dr. Tucker is an ACM Fellow and Distinguished Lecturer and a member of the Humanitarian FOSS Project's executive committee. He has published papers in the areas of programming languages, software development, natural language processing, and curriculum development.

Ralph A. Morelli is a professor of computer science at Trinity College in Hartford, Connecticut. Dr. Morelli is one of the principal investigators of the Humanitarian FOSS Project. He has published papers in the areas of artificial intelligence, FOSS, and computer science education.

Chamindra de Silva is the CTO and director of the Sahana Project, which provides a free and open source disaster management system. He is also a co-founder of the Humanitarian FOSS Community and an advisory board member of the Humanitarian FOSS Project. He has participated in many governmental and NGO projects in Pakistan, the Philippines, Peru, the United States, China, and Haiti.

For more information on the Humanitarian FOSS Project, visit its website.

About the Series

Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COM012040
COMPUTERS / Programming / Games
COM051230
COMPUTERS / Software Development & Engineering / General
COM051300
COMPUTERS / Programming / Algorithms