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: guidelines and best practices for 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. Web-application development concepts: the role of frameworks, multi-platform and native mobile development.
Distributed systems: main concepts, techniques and algorithms/protocols.
Fundamentals reliable (e.g. availability, performance) and scalable systems and services.
C++11/C++14/C++17 main innovations for performance, parallelism exploitation and productivity (e.g. r-value references, perfect forwarding, threading, lambdas). Advanced object-oriented programming language support for productivity, modularity and testing.
Basic elements of computer security and security management. Notable strategies/algorithms/protocols for security.
Effects of technological discontinuities into future elaboration systems.