Software Engineering : Measures and Maintenance [ LINGI2252 ]
5.0 crédits ECTS
30.0 h + 15.0 h
1q
Teacher(s) |
Mens Kim ;
|
Language |
English
|
Place of the course |
Louvain-la-Neuve
|
Online resources |
> https://www.icampus.ucl.ac.be/INGI2252/
|
Prerequisites |
- Object-oriented programming and experience with medium-size codes (eg SINF1121)
- simultaneous or previous experience of developing large-size software (eg INGI2251 and SINF2255/INGI2255)
|
Main themes |
- "Best practices" of object-oriented programming ;
- Reuse techniques and application frameworks ;
- Software measures and metrics ;
- Version management : variants, revisions, configurations ;
- Software comprehension and reverse engineering ;
- Software reengineering and restructuring ;
- The use of variety of tools that support some of the above activities.
|
Aims |
Students completing successfully this course will be able to
- analyze the quality of a software system (and more specifically, its maintainability) ;
- understand the nature of some of the problems encountered when maintaining complex software systems ;
- suggest appropriate solutions to improve reusability and maintainability of a software system, measure its quality and support its evolution ;
- program in Smalltalk, a pure object-oriented programming language.
Students will have developed skills and operational methodology. In particular, they have developed their ability to
- have a critical look at the results of an automated tool;
- make a persuasive presentation;
- write a summary report.
|
Evaluation methods |
The course evaluation is based on the reports and presentation of their work on the case study.
Each student will carry out a small project during the semester, and summarise the results of this project in a scientific report and/or presentation. The final mark of this course will be based on the results reported on, the quality of the report and (if necessary) an oral project defence organised during the exam session.
Conditions for participating in the exam (= project defense) in June or September: having submitted the project report within the deadline imposed by the teacher.
For the exam of September, the mark obtained in June will not be considered. However, the student will be asked to conduct a new project (and write an associated report) of the same complexity and size as in June.
|
Teaching methods |
The theoretical aspects are introduced in the theory sessions.
They are put in practice during "hands-on" practical sessions in one of the computer rooms. A single software application will be developed throughout the different practical sessions, and the techniques taught in the theory course will be tested on this application.
A case study application will be analyzed using these techniques by group of 2. The students are asked to analyze the qualities of this application (and its maintainability in particular) and suggest possible improvements to that application. The results of their work will be summarised in intermediate and final reports and during a presentation.
The students are asked to write the reports and present their work in English.
|
Content |
The theoretical aspects that will be introduced in the theory sessions will be put in practice during "hands-on" practical sessions in one of the computer rooms. A single software application will be developed throughout the different practical sessions, and the techniques taught in the theory course will be tested on this application. The course evaluation will be an assignment where the students are asked to apply the learned techniques on a software application of their choice, more specifically to analyze the qualities of this application (and its maintainability in particular) and suggest possible improvements to that application.
|
Bibliography |
The theory course relies on several books, such as :
- N.E. Fenton and S.L. Pfleeger, " Software Metrics: A Rigorous and Practical Approach", 2nd edition, Thomson Computer Press, 1996.
- K.Beck, "Smalltalk Best Practice Patterns", Addison-Wesley, Prentice Hall, 1996
- M. Fowler, "Refactoring, Improving the Design of Existing Code", Addison-Wesley, 1999
The course slides as well as the practical session guides and other practical information related to the course will be accessible online.
|
Other information |
|
Cycle et année d'étude |
> Master [120] in Computer Science and Engineering
> Master [120] in Computer Science
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|