Software engineering project [ LSINF2255 ]
5.0 crédits ECTS
0 h + 60.0 h
2q
Teacher(s) |
Van Lamsweerde Axel ;
|
Language |
English
|
Place of the course |
Louvain-la-Neuve
|
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 large-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 large-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
- 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)
- product design (software architecture)
- design of "good" games test
- 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 (30%)
- intermediate reports (specifications, software architecture, formalization of the specifications and test sets) and final report, demonstration of the end product (40%)
- individual participation to the group meetings with the assistant (30%)
|
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
|
Other information |
- 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
|
Cycle et année d'étude |
> Master [120] in Computer Science
> Master [60] in Computer Science
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|