There is a software engineering course in the fourth year
of the computer engineering program offered by Universidad de la República
(Uruguay) that is divided into two semesters. The first one focuses on
theoretical aspects, and the second on the development of a project with real
clients, supervised by professors. This initiative aims at promoting reflection
upon the software development process.
The project proposed to students in 2003 was developing a
prototype, for the Seciu (University IT Central Service), for managing e-records
as well as records on paper by applying the development methodology proposed by
XP together with GeneXus' incremental methodology of development.
GXFlow, ARTech's Workflow tool, was also used in cases
where record-management flows were predetermined.
Beatriz Pérez, a professor in the Engineering Department,
studied eXtreme Programming and adapted it to GeneXus. This is how students for
the 2003 course were invited to experiment with XP by using GeneXus.
eXtreme Programming (XP) is a software development
methodology whose basic hypothesis lies in claiming that the cost of change does
not grow exponentially as the development project progresses, said Jorge
Triñanes, professor at said university. He claims that this hypothesis makes
considerable sense for GeneXus. He also says that "the facility that provides
GeneXus for implementing automatic changes in the database transforms the XP
hypothesis into something reasonable." Triñanes added that with GeneXus you may
modify the database and manage to have things still working.
XP is a way to develop software that originated in 1996.
Its target is small groups with blurry and changing requirements, and what it
does is offer a quick development process in response to heavy processes such as
documentation-based developments. Triñanes informed that before programming in
XP, it is necessary to program the tests. This is so because one of the concepts
championed by XP is building software on solid and stable bases. XP offers
design simplicity, which means that it is not necessary to imagine the clients'
future needs, but rather design according to present requirements. The
definition of requirements is actually based on stories -simplified use cases-
written by clients themselves; however, in this particular case, the stories
were written by an analyst who belonged to the group of students to which this
role was assigned.
Another concept favored by XP is the collective property
of the code. This means that everyone knows the code and has the power to modify
it. It also features programming based on rotating pairs ? two people in each
workstation ? that work according to a plan, as well as continuous integration
of the code created. The teacher said that students were divided in two groups
and that each group had a PC (one provided by Seciu and another by ARTech) used
for the weekly integration.
"The client was very satisfied because the result actually
exceeded his expectations. As far as the students are concerned, there was a
group that enjoyed this development modality more than the other," said
Triñanes.
In 2002, GeneXus was also used in projects for the
software engineering course. For this to be possible, a process model had been
developed by using GeneXus that year, which was presented at the XIII GeneXus
International Meeting. (http://www.gxtechnical.com/main/hdcenter.aspx?2,5,36,905)
More information: http://www.fing.edu.uy/inco/cursos/ingsoft/pis/GXP/index.htm