The aim of the course is to provide an overview of Software Engineering concepts required for the design and development of
large modern software as well as providing knowledge of concepts and
tools to follow the entire life cycle of the software, both from a
technical and managerial points of view, working in multiple development teams.
Knowledge and understanding:
The student must demonstrate to know and understand the concepts underlying the professional development of the software, motivations and needs.
It must also incorporate the knowledge necessary to carry out all the activities foreseen in the development of the software, and of the various software development models.
Ability to apply knowledge and understanding:
The student must demonstrate the ability to use his or her acquired knowledge to solve advanced problems, to manage software projects and communicate results.
Autonomy of judgment:
The student must be able to know independently assessed the quality of the proposed solutions, the need for further steps to refine the solutions, using the acquired quality criteria.
Communication skills:
The student must be able to face and manage all the phases of a software project, therefore he must exhibit all the necessary skills to produce a detailed documentation of the application domain requirements, of the design and implementation, showing the results obtained also with seminar activities and small project meetings.
Learning ability:
The student must be able to keep up-to-date and explore topics and innovations proposed in the literature in all phases of software design.