INTERDISCIPLINARY LABORATORY B

Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2017/2018
Year: 
2
Academic year in which the course will be held: 
2018/2019
Course type: 
Compulsory subjects, characteristic of the class
Credits: 
3
Period: 
Second semester
Standard lectures hours: 
42
Detail of lecture’s hours: 
Lesson (2 hours), Exercise (40 hours)
Requirements: 

The course has no mandatory prerequisite, however for a successful attendance the student has to be able to manage the knowledge acquired in the courses "Software Design", "Databases", and "Concurrent and Distributed Programming".

Final Examination: 
Orale

The final exam consists in the design and development of a software application on the basis of an assigned project, and in a discussion of the adopted design and implementation choices.

The aim of the project activity is to verify the student's ability to understand the proposed problems, and to design and implement the application satisfying the requirements on the basis of the acquired knowledge,

The purpose of the discussion is to verify the validity of the proposed design and implementation choices and the ability to communicate and argue these choices.

The mark is expressed in thirtieths. The final exam is considered passed if the student has obtained a grade not less than 18/30.

Assessment: 
Voto Finale

This course aims at defining skills concerning the development of software applications. These abilities are acquired through the development of a project. The project, which is developed under the supervision of a tutor, requires students to apply the knowledge acquired from the courses "Software Design", "Databases" and "Concurrent and Distributed Programming". The assigned project essentially requires the development of a software application starting from the analysis of a set of user requirements.
Once completed the course, the student is expected be able to manage:
1) the design of a software application with distributed architecture, which relies on a database for data management purposes.
2) the design and implementation of a database
3) the implementation in Java of the designed application, which is developed in such a way as to effectively manage communication aspects in a distributed environment, and the concurrent access to shared resources.

It is expected that students develop the above mentioned skills all throughout the course.

Introduction to the Object-Oriented Development Process, (2h, teaching goal 1)
Characterizing activities and generated artefacts
The role of the models
Introduction to UML

Requirements elicitation (2h, teaching goal 2)
Functional and non functional requirements
Use cases and scenarios

Requirements analysis (5h, teaching goal 3)
Analysis object model
Dynamic model

System design (5h, teaching goal 4)
Design goals
Architectural styles
Approaches to address design goals

Object design (4h, teaching goal 5)
Reuse of components
Interface specification
Change management by means of design patterns

Data management (4h, teaching goal 6)
The Object-Relational mismatch
Bridging approaches: the brute force technique
Design patterns for data management: Data Access Object
Direct access to a DBMS by means of JDBC

Project presentation, 2h
Development of projects: 100 hours of students autonomous work

The advised textbook is:

B. Bruegge & A. H. Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java. Third Edition, Prentice Hall

Students can also refer to the textbooks of the courses Software Design, Databases and Concurrent and Distributed Programming.

The lectures slides, and any additional documentation required for the project development are provided to students through the University's e-learning platform.

The course consists of lectures (24 hours), and of a project work carried out by the student as an autonomous task (100 hours).
The lessons aim to present activities characterizing the object oriented development process and approaches to document the artefacts generated all throughout the development.
One class (2 hours) is devoted to present the requirements of the application that students will have to develop as an exam project. The presentation is achieved in an interactive way, simulating at least in part the interaction with the "customer". The student is involved in the requirements elicitation process and applies his / her knowledge to identify and analyze the main and critical points of the requirements.

Student reception takes place at the end of the lessons, and by appointment with an email request to the teacher.

Professors