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
|