
Software Reuse and Evolution
Code
11173
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
6.0
Teacher in charge
Ana Maria Dinis Moreira, Miguel Jorge Tavares Pessoa Monteiro
Weekly hours
4
Teaching language
Português
Objectives
The focus of this years'''' edition of this course in on the ''''software evolution'''' part, which includes reengineering with an emphasis on reverse engineering.
Many graduates of LEI find themselves having to deal with large and complex systems they are not familiar with, whose documentation is out of date or non existent and without adequate team support. Nevertheless recent graduates are occasionally told to carry out important and complex tasks on such systems, namely further development, maintenance, adaptation and bug fixing. This course aims to provide students with the necessary concepts and techniques for extracting useful information from legacy systems.
This course also provides knowledge on the most popular design patterns as an important background for the remainder of the course.
Prerequisites
Ideally, prior competences for taking this course include a good grasp of OO/Java concepts, preferably including notions of good style, good design and basic grasp of architecture principles. Such notions are to be further developed in this course.
Subject matter
In this years'' edition of the course,
focus will be on the topic of software reengineering,
with an emphasis on reverse engineering of legacy systems.
It will cover system analysis to the source code level,
extraction of representations to higher levels
of abstraction that are easier to understand,
particularly to serve as support for
software maintenance, remanufacturing,
reuse and (possibly) production of
updated documentation.
Teaching method
The proposed methodology for teaching this course focuses on the conducting of various exploration tasks on one (or several) software system(s) or nontrivial size and complexity. Tasks include the extraction of qualitative and quantitative information, using various tools - namely metrics computation, clone detection, extraction of UML diagrams, use of software visualization, etc. Next, follows a critical assessment of the values and artefacts obtained in view of the preparation of reports on the analyzed system.
Evaluation method
This course is of a fundamentally practical nature. Thus, the experience gained in the carrying out of work assignments has priority.
There are two components of assessment:
Written Test (unique): 30%
3 work assignments, 20%, 25%, 25%: 70%
Frequency:
Is granted frequency the student who cumulatively meet the following requirements:
- Average of work assignments equal or greater than 9.5.
- At least 7.5 in each of the three work assignments.
Rounds in the grades are made only when calculating the final grade.