Servizi per la didattica
PORTALE DELLA DIDATTICA

Software engineering

04GSPOV

A.A. 2019/20

Course Language

English

Course degree

Master of science-level of the Bologna process in Computer Engineering - Torino

Course structure
Teaching Hours
Lezioni 70
Esercitazioni in laboratorio 10
Teachers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Morisio Maurizio Professore Ordinario ING-INF/05 67 0 10 0 16
Teaching assistant
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 8 B - Caratterizzanti Ingegneria informatica
2019/20
Goal of the course is to expose the students to the problems involved in programming in the large (programs of medium large size, involving teams of programmers) and to the tools offered by the software engineering discipline to tackle these problems.
Goal of the course is to expose the students to the problems involved in programming in the large (programs of medium large size, involving teams of programmers) and to the tools offered by the software engineering discipline to tackle these problems.
Knowledge acquired: issues in the development of large software systems (communication and coordination between contractors and developers, evolution, correctness, reliability, usability). Software life cycles. The UML language. Operational modeling and prototyping. Verification and validation. Management and support of software projects. Skills acquired: ability to analyze and formalize functional and non functional requirements of a software system. Ability to define an operational model of a software system. Ability to validate and verify a software system (through test, prototyping and inspection). Ability to define the organizational support of a software project (project management, configuration management, lifecycle).
Knowledge acquired: issues in the development of large software systems (communication and coordination between contractors and developers, evolution, correctness, reliability, usability). Software life cycles. The UML language. Operational modeling and prototyping. Verification and validation. Management and support of software projects. Skills acquired: ability to analyze and formalize functional and non functional requirements of a software system. Ability to define an operational model of a software system. Ability to validate and verify a software system (through test, prototyping and inspection). Ability to define the organizational support of a software project (project management, configuration management, lifecycle).
Capability of developing small programs, knowledge of structural elements of programming languages (functions, classes, packages), operational knowledge of Java.
Capability of developing small programs, knowledge of structural elements of programming languages (functions, classes, packages), operational knowledge of Java.
Introduction (0.5 CFU) -issues in the development and maintenance of large programs -software qualities: functionality, correctness, efficiency, usability, portability etc -economic value, direct and indirect, of programs -program types Software processes (0.5 CFU) -waterfall, prototyping, iterative - agile methodologies UML (1.5 CFU) -structural diagrams (class diagram, component diagram) -dynamic diagrams (sequence diagram, statecharts) -functional diagrams (use case diagram) Requirements Analysis and modelling (1.5 CFU) - Functional and non functional requirements - Stakeholders - Outline of a requirement specification document - use of UML to formalize requirements - Validation and verification of requirements: inspections, prototypes, formal models Software design(1 CFU) - use of UML for design -design and architectural diagrams -Validation and verification of designs Verification and Validation (2 CFU) - testability, correctness, reliability a - test: test white and black box, unit, integration, system; techniques and tools - inspections, walkthrough, reviews, reading Software project management(0.5 CFU) - tools:WBS, Gantt, Pert, milestones, deliverables. - activities: estimation, planning, tracking, post mortem Configuration management (0.5 crediti) - identification of configuration items - version control, change management, configuration control
Introduction (0.5 CFU) -issues in the development and maintenance of large programs -software qualities: functionality, correctness, efficiency, usability, portability etc -economic value, direct and indirect, of programs -program types Software processes (0.5 CFU) -waterfall, prototyping, iterative - agile methodologies UML (1.5 CFU) -structural diagrams (class diagram, component diagram) -dynamic diagrams (sequence diagram, statecharts) -functional diagrams (use case diagram) Requirements Analysis and modelling (1.5 CFU) - Functional and non functional requirements - Stakeholders - Outline of a requirement specification document - use of UML to formalize requirements - Validation and verification of requirements: inspections, prototypes, formal models Software design(1 CFU) - use of UML for design -design and architectural diagrams -Validation and verification of designs Verification and Validation (2 CFU) - testability, correctness, reliability a - test: test white and black box, unit, integration, system; techniques and tools - inspections, walkthrough, reviews, reading Software project management(0.5 CFU) - tools:WBS, Gantt, Pert, milestones, deliverables. - activities: estimation, planning, tracking, post mortem Configuration management (0.5 crediti) - identification of configuration items - version control, change management, configuration control
Lessons. Project and labs to support the execution of the project.
Lessons. Project and labs to support the execution of the project.
B. Bruegge, A. Dutoit, Object Oriented Software Engineering, Prentice Hall. Morisio M., Vetro A., Falcarin P., Software Engineering Exercices, CLUT Slides, exercices and case studies on the course web site.
B. Bruegge, A. Dutoit, Object Oriented Software Engineering, Prentice Hall. Morisio M., Vetro A., Falcarin P., Software Engineering Exercices, CLUT Slides, exercices and case studies on the course web site.
ModalitÓ di esame: prova scritta; progetto di gruppo;
Project, in 4 people teams, developed only during the course: consists in developing a small project in Java, delivering: requirement document, design document, code, test cases (unit, integration, acceptance), estimation document, user manual. The project is managed through a configuration management tool (aka GIT) and uses open source tools (aka Eclipse, Junit, PlantUmL, Jacoco, Slack and similar). The project is graded considering the quality of the deliverables. Weekly labs are organized to support the students in the execution of the project. Written exam, individual, 1 hour duration, no access to books or notes. The exam is made of a few exercices (accounting for 80% of the evaluation) and a few open questions. Past exams with solutions are available on the course web site. The final grade depends on the grade of the project (60%) and grade of the written exam (40%).
Exam: written test; group project;
Project, in 4 people teams, developed only during the course: consists in developing a small project in Java, delivering: requirement document, design document, code, test cases (unit, integration, acceptance), estimation document, user manual. The project is managed through a configuration management tool (aka GIT) and uses open source tools (aka Eclipse, Junit, PlantUmL, Jacoco, Slack and similar). The project is graded considering the quality of the deliverables. Weekly labs are organized to support the students in the execution of the project. Written exam, individual, 1 hour duration, no access to books or notes. The exam is made of a few exercices (accounting for 80% of the evaluation) and a few open questions. Past exams with solutions are available on the course web site. The final grade depends on the grade of the project (60%) and grade of the written exam (40%).


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il