Aims
- To understand and explain the various problems raised in the development of large-scale, complex software systems. Understand and explain the various qualities such systems should exhibit.
- To understand and explain the various types de product and process involved along the software engineering lifecycle.
- To assess the impact of the decisions made at the various steps of this lifecycle.
- To understand and apply typical approaches for engineering software requirements and for modeling, specifying, designing, validating, and documenting high-quality software.
Main themes
- The software lifecycle: products and processes.
- Introduction to requirements engineering: eliciting, modeling, specifying, analysing, and documenting software requirements ; requirements management.
- Introduction to architectural design: logical vs. physical architecture; hierarchical structuring, modularisation; styles and architectural patterns.
- Specifying modules as work units. Formal specification.
- Test case design for black-box, white-box, and integration testing.
- Documenting decisions at each development step.
Content and teaching methods
The course is strongly coupled with the development of a large-scale project, by teams, according to the techniques studied (see INGI2255 : Software Engineering Project).
It is organized intensively during the very first weeks of the quadrimester to allow the project to start promptly. Subsequent teaching sessions are organized episodically as the various development steps require them.
Quizzes are organized regularly to check whether each individual student in a team is working properly. Case study sessions are also scheduled to show how the techniques can be used in another, smaller-size project.
The course exercises (2 ECTS) are fully integrated in INGI2255 (Software Engineering Project, 5 ECTS). This introduction to software engineering thus corresponds to a global load of 10 ECTS, that is, third-time work throughout the whole quadrimester.
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
- Prerequisite:
(1) The student should have taken an introductory course in logic and in programming techniques, similar to:
INGI2101- Discrete Maths: Logical Foundations of Computing Science.
LINF2121 - Algorithmics and Data Structures.
(2) The student should also have successfully completed a programming-in-the-small project in the past.
- References:
(1) Course lecture notes.
(2) Mandatory reading: F. Brooks, The Mythical Man-Month, Addison-Wesley, 1995.
(3) C. Ghezzi, M. Jazayeri, D. Mandrioli, Fundamentals of Software Engineering, 2nd Edition, Prentice-Hall, 2002.
(4) S. Pfleeger, Software Engineering: Theory and Practice, 2nd Edition, Prentice-Hall, 2001.
(5) M.C. Gaudel et al., Précis de génie logiciel, Masson, 1996.
- Evaluation :
Quizzes during the quadrimester and written exam at the end.
- Remarque:
See also http://www.info.ucl.ac.be/notes_de_cours/INGI2255/
Other credits in programs
FSA3DA
|
Diplôme d'études approfondies en sciences appliquées
|
(5 credits)
| |
FSA3DS/IN
|
Diplôme d'études spécialisées en sciences appliquées (informatique)
|
(5 credits)
| |
INFO22
|
Deuxième année du programme conduisant au grade d'ingénieur civil informaticien
|
(5 credits)
|
Mandatory
|
INFO23
|
Troisième année du programme conduisant au grade d'ingénieur civil informaticien
|
(5 credits)
| |
LINF22/GN
|
Deuxième licence en informatique (informatique générale)
|
(5 credits)
|
Mandatory
|
LINF22/GS
|
Deuxième licence en informatique (informatique de gestion)
|
(5 credits)
|
Mandatory
|
|