E-Book, Englisch, 400 Seiten
Reihe: Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series
An Open Source Approach
E-Book, Englisch, 400 Seiten
Reihe: Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series
ISBN: 978-1-4398-1291-4
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
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
Zielgruppe
Undergraduate and graduate students in computer science; software engineers and computer programmers.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
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.