1st Edition
Software Development An Open Source Approach
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.
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.
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 2012Integrating 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






