This class is given in Italian. Slides and materials are in English, and I'm available to answer questions or discuss in English.
Course Content
This class is about (1) SW architectures and (2) software engineering methods.
(1) The concept of software architecture is addressed with reference to a J2EE full stack 3-tier web application based on Java, JPA/Hibernate, CDI, and JSF. Evolution towards architectures exposing a REST service layer is also outlined.
(2) The concept of software engineering methods is mainly addressed with reference to patterns of Object Oriented analysis, and to design and testing.
(1) comprehensive understanding of the architecture of a complex web applications;
(2) practical ability in the usage of major technologies in the Java Enterprise Architecture (JPA, CDI);
(3) Knoweldge of software engineering methods applied in the construction of a web application.
Prerequisites
good understanding of Java (or any other OO language), UML, design patterns, essential concepts of Software Engineering.
(e.g. what is reached with the course on Software Engineering that I teach at the third year of the undergraduate level).
Teaching Methods
- lectures with slides and discussion of code snippets;
- hands-on exercitations;
- autonomous experimentation of single steps during the course and of an integrated implementation within a final assignment.
Further information
I gave this class for the first time in the year 2016/17, and may be that on some aims I will adapt along the way.
More timely informations is published at http://stlab.dinfo.unifi.it/vicario/Teaching/SW_Architecture_and_Methodolog/sw_architecture_and_methodolog.html
Type of Assessment
Students develope an assignment, in collaboration with other collegues, devloping some experimental practice on the contents of the course.
The discussion of the assignment provides a way to ascertain the ability of the candidate in: discussing and presenting concepts; designing solutions and document them with text and standard UML artifacts; discussing about general concepts of methodology; autonomously studying technological components beyond what is presneted during lectures; organizing a writtend and oral presentation.
Course program
This course is about:
SW architectures with reference to the the Java Enterprise Architecture in a 3-tier web application with:
presentation organized in user interface pages (just a short mention) and a business logic layer of pae controllers;
domain logic based on Java Objects with JPA mapping annotations;
access to the persistence layer through an Object Relational Mapping based on Data Access Objects and Java Persistence Api;
connection between tiers based on Context and Dependency Injection.
software engineering methods with reference to:
analysis and design methods for the development of a rich domain model, with specific reference to architectural patterns and patterns of Object Oriented analysis;
conceptual and specification modeling based on UML, with specific reference to use case diagrams and templates, class diagrams, mockups, page navigation diagrams;
testing methods and frameworks supporting development and performance engineering.