Software Analysis and Design (the English translation of "Analisi e Progettazione del Software")
Docente
prof. Andrea SCHAERF
Credits
6 CFU
Language
Italian
Objectives
The course provides principles, techniques, and software tools for the development of computer applications, with the use of the language for analysis UML and the programming language C++.
Acquired skills
- Methodological and technological skills to deal with large-size software projects.
- Capability of software analysis and design.
- Knowledge of the basic principles of object orientation.
- Deep knowledge of C++ programming using the GNU C/C++ compiler (under cygwin).
Lectures and exercises (Topics and specific content)
Principles of software engineering: software qualities and software life cycle (2 hours).
Software analysis: aim and scope of the analysis; introduction to software analysis in UML; description of the main diagrams in UML; design of UML diagrams (4 hours).
Basics of the C++ language: functions, arrays, pointers (starting from C); dynamic and static memory allocation (8 hours).
Classes and objects in C++: data members and methods; constructors; access levels (public and private) (6 hours).
Advanced topics in C++: operator overloading; special functions (for dynamic memory management); compositions of classes; templates (8 hours).
Standard Template Library (STL): introduction to the STL; main STL classes; strings and vectors (6 hours).
Software design: from UML diagrams to C++ programs (8 hours).
Verification and validation: verification and validation tests; classification of tests (2 hours).
Design of applications: full detail project of a complete application with UML and C++ (6 hours).
Exercises (6 hours).
Labs (10 hours).
References
- Malik, C++ Programming, 2009
- Handouts (in Italian)
Type of exam
Written and oral
Additional material or information on line