<- Archives UCL - Programme d'études ->



Software engineering project [ LINGI2255 ]


5.0 crédits ECTS  0 h + 60.0 h   1q 

Teacher(s) Van Lamsweerde Axel ;
Language English
Place
of the course
Louvain-la-Neuve
Online resources


Prerequisites
  • mathematical logic as provided by the course INGI1101
  • master of object-oriented programming, algorithms and data structures as provided by the SINF1121
  • participating in the implementation of a small-size software project (for example SINF1124)
Main themes
  • The software lifecycle: products and processes.
  • Introduction to requirements engineering: eliciting, modeling, specifying, analysing, and documenting software requirements.
  • 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.
Aims

Students completing successfully this course will be able to

  • create and specify the software design for a medium-size software product using a software requirement specification, an accepted program design methodology and appropriate design notation
  • create, evaluate, and implement a test plan for a medium-size code
  • react wisely when expose to problems raised by large software projects
  • use specific tools or concepts to manage the critical steps (see below) of large-software development project with rigor keeping in mind the aim of quality during the whole development process
  1. development of specifications based on a description of the situation, results of interviews with customers and future users of the software (the step of elucidation of requirements being greatly simplified)
  2. product design (software architecture)
  3. design of "good" games test
  4. documentation of the development process followed.

Students will have developed skills and operational methodology. In particular, they have developed their ability to

  • team work by demonstrating through involvement in a team project the central elements of team building and team management
  • write reports showing clearly the progress of a project and justifying the choices made on the basis of rigorous arguments
Evaluation methods
  • quizzes during the semester
  • intermediate reports (specifications, software architecture, formalization of the specifications and test sets) and final report, demonstration of the end product
  • written exam
Teaching methods

The project is strongly coupled to INGI2251. It is to develop a large-scale software, in teams, according to the techniques discussed in the INGI2251 course .

The INGI2251 course is organized intensively at the beginning of the semester, to allow a quick start of the project, then more episodically, depending on the needs of different stages of project development.

The project is to develop a large-scale application, a typical software product from the industry, in conditions of semi-professional work

  • Teamwork of 6-8 developers (necessary to complete a big project), overseen by a project manager (investigator)
  • Traceability management between stages.
  • Exchange of units of work between developers (specification of a component A, design of this component by B design of test sets by C, implementation by D).
  • Management parallelism between developers (maximize) and interactions (minimize)
  • Weekly meeting with the project leader (a researcher in the institute): presentation of the progress and difficulties, assessment of alternative options proposed distribution of work within the team.

For the main phases of the project, preliminary work in teams on a mini-project (application size reduced), followed by a correction with the teaching assistants.

At various stages, individual quizzes based on this mini-project to ensure that every student has the tools necessary to effectively contribute to advancing the work of his team.

Content

The project is to develop a large-scale application, a typical software product from the industry, in conditions of semi-professional work by exploiting the concepts learned in INGI2251 to be followed in parallel.

Examples of systems developed in the past include an e-voting system, an ambulance dispatching system, a distributed meeting scheduler, a distributed resource management system for cybernomads, a hospital management system, a library management system, a system for managing student registrations, etc.

Bibliography
  • slides of the INGI2251 course online
  • statements and schedules of the project online
  • partial and optional support: « Requirements engineering, From System Goals to UML Models to Software Specification », A. van Lamsweerde, Wiley, 2009
Cycle et année
d'étude
> Master [120] in Computer Science and Engineering
> Master [120] in Biomedical Engineering
Faculty or entity
in charge
> INFO


<<< Page précédente