The Free Technology Academy is closed. To know why, and what may come next, please read here. To find and download FTA resources not listed in these pages, instead, please visit the Free Technology Academy File Archive! Thanks!

Software engineering in Free Software environments


This course is designed to introduce students to fundamental concepts of software engineering and its application in Free Software environments. The student will study the design of software using UML, and the application of methods of testing and version control. In addition, students will become familiar with using version control tools, management software through the package management systems, software documentation and the use of online resources and virtual communities.

Learning Outcomes

  • To know the main concepts around object oriented programming, and the modeling and design of applications using UML.
  • To become familiar with some of the tools for software modeling and code generation that make use of UML.
  • To know the main techniques for manual and automatic software testing that are used in Free Software engineering. To use error management systems such as Bugzilla.
  • To use and administrate revision control systems such as CVS or Subversion to follow the evolution of free software projects in which several developers are involved.
  • To create and manage software packages based on 'rpm' and 'deb' formats
  • To know the main documentation systems, learning how to create 'man' pages, HOWTOs, manuals, etc.
  • To be able to use web-based repositories for hosting of Free Software projects.

Teaching Staff

See the FTA tutors page.

Academic Requirements

It's recommended to have initially completed the Concepts of Free Software and Open Standards and Software Development courses first.


If you want to enroll into this course, please follow the instructions in the main Courses page.