Logo webu
Are you interested in studying at Unicorn University? Sign up for an open day and find out more.

Cloud Application Architecture

12 ECTS
Bachelor
Czech | English
George Feuerlicht

You will expand your knowledge of programming from the subject Basics of Software Development, and you will learn to develop a cloud application, including its deployment in the cloud. At the same time, you will learn the basics of creating applications for uuApp Server NodeJS. The architecture of cloud applications consists of four blocks:

Architecture

Introduction to the typical software architecture of cloud applications, MVC (Model-view-controller) architecture, common application structure and method of documentation. You will learn the basic functionalities and services that are provided by the application server, data storage options or methods of communication and data transfer between cloud applications.
Analysis and design

We will teach you basic knowledge in the field of software analysis and design. During the year, you will also learn about key products in the software development lifecycle and the basic principles and typology of software requirements. In connection with this, you will get acquainted with the most used UML diagrams (Unified Modeling Language), such as use case diagram, sequence diagram, activity diagram, component diagram, package diagram, and basic notation uuBML. At the same time, you will gain contextual knowledge, know the basic terminology and be familiar with data storage and how to model them.
Programming

We will teach you more advanced work using methods with commonly used data types and collections. It is also related to the knowledge of the basics of object-oriented programming, but also more demanding work with functions. Of course, error handling with exceptions and files and specific JSON, XML and CSV formats. Finally, you will learn the basics of unit tests and the principles of creating source code documentation.
Algorithm development
You will learn the most well-known types of algorithms in solving implementation problems. You will learn the theoretical foundations of algorithms, data structure and search and sorting methods.

Course outline

Architecture

Cloud app architecture
Three-layer architecture, MVC architecture, app topology in uuAppServer, Use-Case driven development, the controller, the model (app logic), DAO (data persistence).
App communication
REST essentials, machine readable data formats and data structures for communication (JSON, XML, CSV).
App server
Services (uuCMDs), persistence (model/dao/data), routing, validation, exceptions, authentication, authorisation, logs, testing…).
User interface
The basic structure, the component approach, technology and framework overview.
Data persistence
Types, terminology, basic principles, SQL vs NoSQL database essentials, practical demonstrations of their use. DAO methods and indices.
Rights in an app
Profiles for UseCase and authorisation in an app, user authentication through identity, mass user and right administration, extension possibilities.
Logs
What and how to log in apps, levels of logging, access to app logs.
Working with binary data
Uploading and downloading of binary data (e.g. images), binary data persistence.
App deployment
Basic principles, the deployment process, production vs. development environment, deploying an app in the most common PaaS platforms, tools for the support of the deployment.

Analysis and design

The lifecycle of designing and developing a cloud uuApp
Assignment, HLC, design, implementation, deployment, operation.
Object-oriented analysis and design
Basic principles, terminology, UML, the difference between the analysis and design, request categorisation (FURPS+).
Visual modelling
Formal vs. informal modelling, UML notation, uuBML notation.
UML diagrams
The basic structure, the component approach, technology and framework overview.introducing individual diagram types, the class diagram, the use-case diagram, the activity diagram, the status diagram, the sequence diagram, the package and component diagram.
Data storage modelling
Basic principles, relation types, the difference in the modelling approach between SQL and NoSQL.

Algorithm development

Computational complexity
Time complexity, spatial complexity, asymptotic complexity.
The Turing machine
Introducing the Turing machine, its use for computational complexity.
Sorting
Undamental principles of sorting (stability, complexity etc.), basic classification methods (selection sort, insertion sort, bubble sort etc.).
Searching
The search structure, the search operations above the list and field (including binary and interpolation search), the binary search tree, the AVL tree and its features.
Bit operations and hashing
Bit operations, interpretations of binary numbers, hashing and corresponding data structure.

Programming

Revising and extending the basic JavaScript syntax
Revising programming constructions, learning further syntactic JavaScript language tools for their implementation, essentials for working with JavaScript documentation.
Object-oriented programming
Classes, constructors, heredity, polymorphism and interface, possibilities of multiple heredity (mixins), objects and the keyword “this”.
Modular applications
Dividing apps into modules (require vs. import, export), visibility of variables, objects and functions, working with modules.
Working with files, data types and advanced asynchronicity
The Node.js module for working with files, advanced work with asynchronous tasks (async/await, Promise), the JSON format.
Advanced collection work
Work with fields, associative fields and subsets by means of inbuilt methods. Immutability and reference.
Exceptions and error processing
Fundamentals of working with exceptions, the try-catch-finally blocks.
Advanced work with strings
Advanced work with strings by means of inbuilt methods, regular expressions, using regular expressions in JavaScript.
Testing and documentation
Test types, the process of testing (preparing, performing and evaluating tests), forming unit tests and source code documentation principles.
document_check.svg
We use cookies on this website to ensure its functionality and to personalise ads, solely with your consent and in accordance with our Cookies Policy.

By clicking on the "Accept cookies" button, you consent to the use of selected cookies and agree to the transfer of behavioural data for the display of targeted advertising on social and advertising networks. You can choose which information you want to share with us by clicking on the Cookie settings button.