INTERDISCIPLINARY LABORATORY B

Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2018/2019
Year: 
2
Academic year in which the course will be held: 
2019/2020
Course type: 
Compulsory subjects, characteristic of the class
Credits: 
3
Period: 
Second semester
Standard lectures hours: 
24
Detail of lecture’s hours: 
Lesson (24 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 exam consists in the design and development of a software application starting from a set of requirements, to be carried out in a work group of 1 to 4 students, and in the discussion of the project with the members of the group.

The purpose of the project is to verify the student’s ability to understand the proposed problems and, to collaborate to the analysis of the requirements, to the design and development of the application in such a way that the specified requirements are fulfilled.

The purpose of the discussion is to verify the validity of the proposed design and implementation choices, and to evaluate the ability of any group member to communicate and argue these choices. The mastery of the analysis, design and implementation techniques is verified by means of questions. During the discussion, a demo of the execution of the application shall be presented.The evaluation will consider to which degree the developed system satisfies requirements, the quality of the analysis and design documents defined for the software application and the database, the algorithmic and design choices at the basis of the development, and the quality of the source code and of the related documentation.

The mark is expressed in thirtieths.

Assessment: 
Voto Finale

This course aims at defining skills related to the object oriented development process, concerning design and implementation of software applications interfaced with a relational database starting from a set of requirements.

Students are required to develop a project under the supervision of a tutor, applying skills learned from the courses "Software Design", "Databases" and "Concurrent and Distributed Programming". The project requires the application of the proposed process to develop a software application with distributed architecture, interfaced with a relational database management system.

It is expected that, once completed the course, students have experimented and thus are able to manage the object-oriented development process. In particular, it is expected that students:

1)have a general knowledge of the activities and artifacts generated throughout the development process.

2)are able to elicit and analyze the functional and non-functional requirements.

3)are able to design the target application, starting from the analyzed requirements.

4)are able to design and implement the database, and the related data selection and manipulation queries.

5)are able to implement the designed application in Java, managing communication aspects in a distributed environment, the concurrent access to shared resources, and the interaction with the database.

The course will cover the following topics:

- Introduction to the Object-Oriented Development Process, (2h, teaching goal 1)
++ Characterizing activities and generated artefacts

- Requirements elicitation and analysis (7h, teaching goal 2)
++ Functional and non functional requirements
++ Scenarios, use cases and the analysis model

- System design and object design (9h, teaching goal 3)
++ Architectural styles
++ Reuse of components
++ Design patterns

- Data management (4h, teaching goal 6)
++ The Object-Relational mismatch and bridging approachest
++ Direct access to a DBMS by means of JDBC

- Presentation of project requirements, 2h

- Development of projects: 100 h of students autonomous work (teaching goal 2, 3, 4, e 5)

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 slides used during the lessons, 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.

Students reception takes place at the end of each class, and by appointment, issuing an email request to the lecturer.

Professors