Salta ai contenuti. | Salta alla navigazione

Strumenti personali

SOFTWARE ENGINEERING

Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
2022/2023
Teacher
FABRIZIO LUGLIO
Credits
6
Curriculum
Ingegneria informatica - Sistemi web
Didactic period
Secondo Semestre
SSD
ING-INF/05

Training objectives

The course aims to ensure a better and deeper understanding of the object-oriented paradigm e to give the elements of software design through object-oriented design techniques.

The course includes, in addition to lectures, a series of exercises in the classroom on the part relating to UML and the Java language.

The course will give the student the following skills:

- The process of software development: economic, organizational and methodological; the working group; software product and process; the life cycle of software systems; software development models: the traditional waterfall model; evolutionary model and fountain, other models.
- Modeling software: models and specification languages; UML; use of UML within the IT projects; CASE Tools.
- Analysis and specification of requirements: the interaction with the customer and the formalization of the requirements; the method of use cases and applications; Results of the analysis process.
- The software architecture: software architectures for small systems; client-server architectures, multi-tier and Web; MVC and its applications; reuse of components.
- The Java language; the architecture of Java 2; Java and properties of objects; multi-tier systems in Java;
- Software systems: principles and design methods; principles of modularity and encapsulation; The object-oriented design; the "design patterns" and their use; rules of writing code.
- The testing and software quality (metrics and methodologies)
- Of software project management methodologies: project management
- The operational management of a project: setting and goal setting; analysis of constraints; choice of tools and architectures; team work; metrics and useful diagrams (Gantt, PERT, ...); the problem of documentation; communication within and out of a team; evolution and maintainability of systems, evolutionary maintenance.

At the end of the course students will be able to model a software system according to the requirements of crops or make reverse_engineering of an already implemented system. It will also be able to design a complex system through the various object-oriented methodologies with the aim of satisfying the design for the reuse the design for change.

Prerequisites

A good knowledge of the basics of object-oriented programming and an OO language, preferably Java or C++

Course programme

1.Introduction to software engineering
2.The software production process
3.OOP basics revisited
4.Historical evolution of OOP
5.OOP, advanced concepts
6.Implementation techniques
7.Introduction to UML8.
8. Elements of Object Oriented Design
9.Software components: concepts and models

Didactic methods

During the course, the arguments will be illustrated with slides containing the theoretical part, with practical examples and exercises.
For each concept it explains the aim, its evolution, how it is implemented through JAVA and exercises to better understand the practical application.

Learning assessment procedures

Exams will be held in Ferrara, Via Saragat or, alternatevely, at the “Centec tecnopolo” (in Cento - FE)
Tests are intended to be both written and oral. Written examination will take about an hour and the oral part will follow afterwards.
Candidates will be asked to answer closed questions on the theory held during the course and selected exercises from the following possibilities: a) conversion of classes of models or UML use case in Java and vice versa b) exercises on design patterns c) drawing up of UML models from an issue described in natural language. The tests will last about an hour and, thereafter, the candidate will have to do oral examination, dealing with the teacher on what has been done in the written test.


It is optional for the student a design and documentation project in UML. Students will find example and specifications in the slides and documentation page. Project could be made by individual or two students and it will be part in calculating the final result.
For the evaluation of the project will be referred to the DOC or PDF document produced by the applicant and that will contain models of the use cases and specifications, the domain classes models, design models and diagrams sequence according to the principles studied during the course and consistent with the developed application code.

Final assessment = (written + oral)/2 + (0,1,2,3 points for the optional project)

Passing the final exam is the proof that knowledge and abilities outlined in the training objectives of the course have been achieved.

Reference texts

Main reference book: Ian Sommerville, Ingegneria del software, Pearson Education USA 2014


Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994 (Versione Italiana, McGraw-Hill, 2003)

Martin Fowler - UML Distilled. Pearson Addison Wesley 2014