Learning objectives
The course aims to provide in-depth knowledge of the methodologies and techniques for software development, the Java programming language and the tools that can simplify the development and management of software systems.
In addition, the course aims to provide the ability to use the knowledge acquired and the experience accumulated during the exercises to identify the best solutions for designing software systems and to create satisfactory implementations both in terms of the quality of the systems created and in terms of the cost of development.
Prerequisites
Fundamental concepts of Informatics, Fundamental concepts of
Programming.
Course unit content
The course presents the main techniques and methodologies for the development of software systems, with particular reference to object-oriented systems and the Java programming language. In particular, the course addresses the following topics:
Introduction
Development processes and models
Requirements Engineering
Design
Implementation and testing
Installation and maintenance
Project management
Java
Full programme
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
- Techniques, tools and models for software systems
Bibliography
Ian Sommerville. Ingegneria del Software, 10/ed, Pearson Education, 2017.
Teaching methods
The course is based on theoretical lessons and laboratory exercises. In particular, the laboratory activities will be dedicated to the development of some applications and software systems using the Java language and the tools presented during the course.
In these activities, students will work individually or in pairs, under the guidance and support of the course teacher and without precluding positive interactions between students.
The slides used to support the lessons will be uploaded to the Elly platform, before each lesson, and a handout will be provided for each lesson. To download the slides of a course, registration for the course via Elly is required. The slides are considered an integral part of the teaching material.
Therefore, non-attending students will have to check the teaching material and the instructions provided by the teacher available on the Elly platform.
Assessment methods and criteria
There are written tests and practical tests.
The written tests are based on open-ended questions on theory that must be answered without the help of notes and books. These questions are intended to assess the knowledge acquired on the topics discussed during the course.
The practical tests consist of the development of software applications and systems and can be carried out by students individually or in groups of up to 2 people. The main purpose of these tests is to assess the ability to apply the knowledge acquired during the course. Furthermore, the evaluation of the tests will depend on the quality of the applications and systems developed, and the related documentation.
The duration of a written test is 1 hour and thirty minutes; the duration of a practical test will depend on the complexity of the assignment.
The written and practical tests are evaluated on a scale of 0-30. A test is passed if its result is greater than or equal to 18. The final grade is equal to the arithmetic mean of the test grades. Honors can be awarded in the case of achieving the maximum score on all tests.
Other information
- - -
2030 agenda goals for sustainable development
- - -