28021 - Software Engineering T

Course Unit Page

Academic Year 2019/2020

Learning outcomes

Knowledge of models and tools for the analysis, design, development, and testing of software systems. Ability to design, develop, and test software systems.

Course contents

  1. Introduction to software engineering; software product.
  2. Process of software development: feasibility study, analysis and specification of requirements, design, implementation and testing of modules, integration and system testing, operation and maintenance, software quality factors, evolutionary models.
  3. Object-oriented analysis and design: modeling languages, UML.
  4. Requirement analysis: gathering and validation, domain analysis, requirement analysis, use cases and scenarios
  5. Problem analysis: static and dynamic model, definition of the logical architecture of the problem.
  6. Design: designing the system architecture.
  7. Principles of design: rigidity, fragility, and immobility of software.
  8. Design patterns.
  9. Introduction to the .NET framework and the C # language.
  10. Version control systems

Teaching methods

The course is provided by means of slides displayed during lecture hours. Slides are available on the course website.

Lectures are integrated with computer-based experiences in a laboratory: each experience tackles a particular theme, for which real problems are proposed; such problems are to be solved using the knowledge obtained during lecture hours.

Fluent spoken and written italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in italian.

Assessment methods

Achievements will be assessed by the means of a final exam. This is based on an analytical assessment of the "expected learning outcomes" described above. In order to properly assess such achievement the examination is composed of a written session (1 hour long, without the help of books or notes), possibly followed by a project.

The written exam usually consists of 2 open questions. In order to be accepted to the written exam, the student should register through the AlmaEsami application. In order to pass the written exam, a minimum score of 15 points is needed.

The project is about a specific theme chosen by the student and can be performed either singularly or in a team of 3 students. The project consists in a report and a presentation.

The report should contain the complete discussion of the whole project (text and UML diagrams), but not the prototype (which must be presented at the time of the presentation).

The presentation should be performed (by the whole team) by using slides.

To obtain a passing grade in both parts of the exam, students are required to at least demonstrate a knowledge of the key concepts of the subject, some ability for critical application, and a comprehensible use of technical language. Higher grades will be awarded to students who demonstrate an organic understanding of the subject, a high ability for critical application, and a clear and concise presentation of the contents. A failing grade will be awarded if the student shows knowledge gaps in key-concepts of the subject, inappropriate use of language, and/or logic failures in the analysis of the subject.

Teaching tools

Classroom lessons will be held using slides, which will be integrated with the use of the blackboard for the development of exercises.

In case they are present, lab hours are supported by the tutor of the course. Students will be assigned a PC, so as to practice the concepts learned during the lessons.

Office hours

See the website of Marco Patella