Software Architecture (2007/2008)

Course Not running, not visible

Course code
4S00008
Credits
5
Coordinator
Luca Vigano'
Teaching is organised as follows:
Unit Credits Academic sector Period Academic staff
Teoria 4 INF/01-INFORMATICS 2° Q Luca Vigano'
Laboratorio 1 INF/01-INFORMATICS 2° Q Luca Vigano'

Learning outcomes

Module: Theory
-------

The course introduces the basic scientific and professional notions of software architectures, providing in particular a comparative analysis of software architectures together with modeling and specification languages for such architectures.


Module: Laboratory
-------

The course introduces the design and development of software systems. Via the development and implementation of prototypical concrete software projects, the students will learn a number of advanced techniques for the development of object-oriented software systems.

Syllabus

Module: Theory
-------

- Analysis and specification of software architectures:
-- Introduction to software architectures.
-- Taxonomy of the most common software architectures.
-- Software architecture configuration management.
-- Modeling, analysis and specification of object-oriented software architectures.
-- Comparative analysis of software architectures by means of case studies.

- Modeling languages for software architectures and specification of requirements and constraints on object-oriented architecture models:
-- The standard language UML 2 (notation and use of the main diagram types).
-- The standard language OCL 2 (notation and use of the main constructs).
-- The standard language Z (notation and use of the main constructs).

- Software architecture verification, validation and testing:
-- Rapid prototyping of software architecture specifications and automated validation of architecture prototypes.
-- Testing methods and strategies for software architectures: unit, integration, and system testing.
-- Testing methods and strategies for object-oriented software architectures.


Module: Laboratory
-------

The course introduces the principal methodologies and technologies for software development, and covers different programs for computer-aided software engineering (CASE), which may be used for the development of the prototypical software projects considered in the course.
In particular, the students experience the use of UML for the planning and development of small software components, as well as the use of tools for version management.

Through the completion of a number of projects, the students will learn how to work effectively as part of small development team and how to document the software design by creating specific UML diagrams.

Assessment methods and criteria

The examination consists of a written test, for which the students obtain 4 credits, which will be added to the 1 credit the students obtain when they complete the laboratory course (for which the examination consists of the completion of a number of projects, which the students can carry out in small groups of 3 o 4 students).
The written test must be taken without the help of notes, books, or other documentation. The teacher may decide to replace the written test with an oral examination, especially whenever it is not possible to make sure that the students cannot access this documentation.

Share