Software Development : An Open Source Approach book cover
1st Edition

Software Development
An Open Source Approach




ISBN 9781439812907
Published January 19, 2011 by CRC Press
400 Pages 153 B/W Illustrations

FREE Standard Shipping
USD $115.00

Prices & shipping based on shipping country


Preview

Book 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

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.

...
View More

Author(s)

Biography

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.

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