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



Software Development Project [ LSINF2255 ]


6.0 crédits ECTS  15.0 h + 45.0 h   1q 

Teacher(s) Mens Kim ;
Language English
Place
of the course
Louvain-la-Neuve
Online resources

> https://icampus.uclouvain.be/claroline/course/index.php?cid=SINFINFO2255

Main themes

Depending on the topic of the project and the chosen software development methodology, which may vary from one year to another, the following themes may be addressed to some extent:

  • Software development methodologies, static (products) and dynamic aspects (processes);
  • Requirement analysis (goals, use cases), software architectures, architectural styles and patterns, model-driven engineering (MDE);
  • Programming techniques, software development environments, refactoring;
  • Software validation through unit tests, integration tests, functional and structural tests, and code reviews.
  • Examples of kinds of systems to be developed are distributed systems, client/server systems, secure systems, mobile systems, adaptable systems, optimizations of existing systems or data-intensive systems.
  • Project management, planning, resource estimation, reporting.
  • Version management by using a version management tool.
Aims

Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • INFO2.1-5
  • INFO4.1-4
  • INFO5.1-6
  • INFO6.1, INFO6.4

Given the learning outcomes of the "Master [120] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • SINF2.1-5
  • SINF4.1-4
  • SINF5.1-6
  • SINF6.1, SINF6.4

Given the learning outcomes of the "Master [60] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • 1SINF2.1-5
  • 1SINF4.1-4
  • 1SINF5.1-6
  • 1SINF6.1, 1SINF6.4

At the outcome of this course, the students will have acquired the necessary competences to build a large-scale software system under semi-professional working conditions. More specifically, students having completing this course with success will be able to:

  • Complete, in a rigorous and systematic way, the different software life cycle phases (specification, architecture, design, implementation, validation, documentation);
  • Apply a software development methodology currently practiced in industry;
  • Put in practice different methods and techniques to assure the quality of the produced software;
  • Estimate the time and resources needed to complete such a software development project, plan the tasks to be executed and the deliverables to be produced, and respect this planning;
  • Use a project management tool to assign and follow the planned software development tasks;
  • Understand the problems inherent to the development of large software systems having many different stakeholders and that consist of multiple components addressing different problems;
  • Work in team and manage the coordination and communication between the different team members;
  • Interact with a client to identify his requirements, to clarify imprecise specifications, and to take into account requested modifications throughout the development process;
  • Build upon existing code that is poorly or badly documented.
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
Background :
  • LINGI1101 for the mathematical logic
  • LSINF1121 to master of object-oriented programming, algorithms and data structures
  • LSINF1225 for participating in the implementation of a small-size software project
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