SOFTWARE ENGINEERING

Teachers: 
POGGI Agostino
Credits: 
9
Site: 
PARMA
Year of erogation: 
2021/2022
Unit Coordinator: 
Disciplinary Sector: 
Data Processing Systems
Semester: 
First semester
Year of study: 
3
Language of instruction: 

Italian

Learning outcomes of the course unit

The goal of the course is to provide an in-depth knowledge on the methodologies and techniques for the development of the software, on the Java programming language, and on the tools that may simplify the development and management of software systems.
Moreover, the course has the goal of providing to the students the ability to use the acquired knowledge and the experience, gained during the lab activities, to identify the best solutions for the desigh of software systems and for developing some satisfying implementations for both the properties and the cost of the developed systems.

Prerequisites

Fundamental concepts of Informatics, Fundamental concepts of
Programming.

Course contents summary

The course presents the main techniques and methodologies for the development of software systems with particular attention to object-oriented systems and introduces the Java programming language. In particular, the course copes with the following topics:
Introduction (3 hours)
Development processes and models (7 hours)
Requirement engineering (16 hours)
Design (15 hours)
Implementation and testing (5 hours)
Installation and maintenance (2 hours)
Project management (3 hours)
Java (12 hours)

Course contents

Introduction
Development processes and models
- Software development processes
- Software development models
- UML
Requirement engineering
- Introduction
- UML e OCL for the requirement engineering
- Requirements elicitation
- Requirements analysis
- Requirements management and validation
Design
- Design process
- Design principles
- Architectural design
- User Interface Design
- Software Pattern
- Object-oriented design
Implementation and testing
- Software implementation
- Software testing
Installation and maintenance
- Software installation
- Software maintenance
Project management
Java
- General properties
- Exceptions
- Input/output
- Collections
- Graphical user interfaces
- Functional Programming
- Reflection and concurrent programming

Recommended readings

Ian Sommerville. Software Engineering, 10/ed, Pearson Education, 2015.

Teaching methods

The course is based on theoretical lectures and lab activities. In particular, the lab activities are dedicated to the development of some software systems taking advantage of the Java language and of the software tools discussed during the course. In these activities, students work individually, of course under the control and with the support of the teacher and without any restriction on positive interaction among them.
The slides used to support the teaching activities will be uploaded on the Elly platform before each lecture. Students need to subscribe to the online course to download the corresponding slides. Slides are an integral part of the teaching material. Therefore, non-attending students need to check the teaching material and the teacher’s recommendations available on the Elly platform.

Assessment methods and criteria

Evaluation consists of a written test and a practical test. Written tests are composed of seven open-ended questions to be answered without the use of books and notebooks. Five questions have the goal to evaluate the acquired knowledge on the argument discussed during the course. The remaining two questions have the goal to evaluate the capability to apply the knowledge acquired during the course. Written tests duration is an hour and thirty minutes, their score scale is 0-30 and grades will be communicated within two weeks after the tests through the Elly system. Practical tests consist in the development of a software system and can be carried out by students individually or in groups of up to two people. These tests have the goal to evaluate the capability to apply the knowledge acquired during the course. Moreover, the value of such an evaluation will depend on the quality of the developed system, of the related documentation, and of the oral presentation of the system. The score scale of practical tests is 0-30 and grades are communicated at the end of the presentation. The exam is passed if the grade of both the tests is greater or equal to 18. Final evaluation is the average grade of the two tests. Honors can be awarded in case of achieving the highest score on both tests. For the students following the pre-fit (PF24) studies, the practical tests consist in the preparation of two lesson on specific course arguments and in the oral presentation of one of them.