SOFTWARE ENGINEERING
OVERVIEW
- Software engineering = a set of theories, methods, techniques and
tools to develop quality software in a professional manner
AIMS AND CONTENT
LEARNING OUTCOMES
The course aims to introduce the scientific and professional principles of software engineering basis, addressing the various stages of code development: planning, design, modeling, implementation, testing and verification, maintenance.
After completing the course, the student will have acquired a basic knowledge of UML .
Teaching methods
- Traditional lecture
- Labs and supplementary activities using AulaWeb
AulaWeb will be used for three purposes: as a repository of course materials; as a channel for the bureaucratic communications, explanations, discussions related to the course etc .; and finally to facilitate teamwork
SYLLABUS/CONTENT
- Introduction to the course and to software engineering
- Software development process models, agile methods (eg. Extreme programming)
- Requirements Engineering. Scenarios and use cases
- Design principles and design methods, coupling and cohesion, software architecture, design patterns, refactoring
- The UML : Class diagram, Sequence diagram, State Machine diagram, Activity diagram
- Software Testing : Testing functional / structural and coverage. Unit tests, integration, system, acceptance tests and regression tests
- Software evolution and Maintenance
RECOMMENDED READING/BIBLIOGRAPHY
- Martin Fowler UML Distilled 4/Ed. Pearson-Addison Wesley 2010.
- Sommerville I. Software Engineering 8th edition, Addison Wesley, 2006 [some portions]
- Shari Lawrence Pfleeger, Joanne M. Atlee. Software Engineering: Theory and Practice (4th Edition), 2009 [some portions]
TEACHERS AND EXAM BOARD
Ricevimento: Appointment by email
Exam Board
FILIPPO RICCA (President)
ANDREA STOCCO
GIANNA REGGIO
GIOVANNA GUERRINI
LESSONS
Teaching methods
- Traditional lecture
- Labs and supplementary activities using AulaWeb
AulaWeb will be used for three purposes: as a repository of course materials; as a channel for the bureaucratic communications, explanations, discussions related to the course etc .; and finally to facilitate teamwork