Identification of an innovative project idea solvable by modern IT infrastructures.
Requirements and constraint specification, aimed at the design of the architecture of a complex system/service, considering also the possible heterogeneity of the involved devices (smartphones, general purpose computers, servers, embedded systems, etc.).
Usability and graphical user interfaces: specification of the user interaction and experience, integration on different devices.
Modular decomposition of the functionalities and of the architecture. Functional and non-functional requirement description of the modules and description of the inter-module interaction protocols.
Integration issues and constraint management in the adoption of existing and/or off-the-shelf modules.
Enterprise architectures, service oriented architectures (SOA): RMI, Java EE platform, EJB and web service technologies. JSF, WebSockets. Client-side frameworks.
Distributed systems: main concepts, techniques and algorithms/protocols.
Fundamentals reliable (e.g. availability, performance) and scalable systems and services.
Advanced object-oriented programming language support for productivity, modularity and testing.
C++11 main innovations: r-value references, perfect forwarding, threading.
Elements of mobile development and, specifically, high-level design for heterogeneous platform support.
Deployment issues for reliable, manageable and scalable datacenters.
Basic elements of computer security and security management. Notable strategies/algorithms/protocols for security.