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)
Capability of developing small programs, knowledge of structural elements of programming languages (functions, classes, packages)
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)
-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 represent 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
- test: test white and black box, unit, integration, system; techniques and tools
- inspections, static analysis
Software project management(0.5 crediti)
- 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)
-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 represent 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
- test: test white and black box, unit, integration, system; techniques and tools
- inspections, static analysis
Software project management(0.5 crediti)
- 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
Exercices and cases studies: inspection of a requirement document, inspection of a design document, definition of test cases, planning of a software project.
Exercices and cases studies: inspection of a requirement document, inspection of a design document, definition of test cases, planning of a software 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 (in aula);
Exam: Written test;
...
The exam is made of a simplified case study (accounting for 80% of the evaluation) and a few open questions.
The case study is a fictional software application to be built.
The case study evaluates the capability of the student to:
--formalize the functional requirements of the application, using UML Use Case Diagrams ,UML Class Diagram, scenarios
--formalize the non functional requirements of the application
--define test cases, using black box techniques (equivalence classes, boundary conditions)
--define test cases, using white box techniques (statement, decision, condition, loop, path coverage)
The open questions (free text answers) cover the remaining parts of the course
The exam lasts 2 hours, the use of books or notes is forbidden.
Past exams with solutions are available on the course web site.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Written test;
The exam is made of a simplified case study (accounting for 80% of the evaluation) and a few open questions.
The case study is a fictional software application to be built.
The case study evaluates the capability of the student to:
--formalize the functional requirements of the application, using UML Use Case Diagrams ,UML Class Diagram, scenarios
--formalize the non functional requirements of the application
--define test cases, using black box techniques (equivalence classes, boundary conditions)
--define test cases, using white box techniques (statement, decision, condition, loop, path coverage)
The open questions (free text answers) cover the remaining parts of the course
The exam lasts 2 hours, the use of books or notes is forbidden.
Past exams with solutions are available on the course web site.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.