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. 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.
Advanced object-oriented programming language support for productivity, modularity and testing.
C++11/C++14 main innovations for performance, parallelism exploitation and productivity(e.g. r-value references, perfect forwarding, threading, lambdas).
Basic elements of computer security and security management. Notable strategies/algorithms/protocols for security.