Jump to content

DAT250 Advanced Software Technologies

Course description for academic year 2024/2025

Contents and structure

The students shall learn about and get hands-on experience with current and emerging software platforms, frameworks, and programming language technologies in the context of distributed applications and smart software systems.

The course focuses on software technologies supporting the design and implementation of distributed applications, enterprise applications, and smart software systems comprised of front-end clients, Internet-of-things (IoT) devices, cloud-based business logic and data storage, and back-end analytics and prediction. The emphasis is on software tools and frameworks for cloud- and IoT-based applications. In particular software frameworks and technology stacks related to cloud computing and IoT are discussed. Moreover, students will learn about the general methodology for software technology development and assessment.

Learning Outcome

Upon successful completion of this course, students should be able to:


  • describe the software architecture and organisation of tiered and service-oriented applications, and smart software systems combining cloud and IoT platforms
  • explain the use of cloud platforms, containers, and application servers for providing software applications
  • describe the principles, services and programming models of software frameworks and technologies for the development of distributed applications and smart software systems


  • configure applications for deployment in containers, on application servers, and on cloud platforms
  • design smart software systems comprised of front-ends, business logic, persistent storage in databases, analytics and prediction, and IoT devices
  • implement web-client applications using the model-view-controller (MVC) pattern and single-page-web-application (SPA) technologies
  • expose and organize application functionality using web services (REST APIs) building on network protocols such as HTTP, MQTT, and WebSockets
  • realise business logic of enterprise applications using component- and messaging-based architecture, such as microservices. styles
  • implement object storage by means of relational (RDBMS) and non-relational (NoSQL) databases using object-relational mapping (ORM) technologies such as Jakarta Persistence (JPA) and MongoDB.


  • evaluate the applicability, relevance, and significance of emerging software platforms and technologies
  • document, relate and assess software frameworks and technologies for use in distributed applications and smart software systems
  • develop smart software systems and distributed applications using state-of-the art software technologies and frameworks.

Entry requirements

General admission requirements for the study programme.

Recommended previous knowledge

Java programming, XML, web applications, and relational databases and query languages.

Teaching methods

The course consists of 6 hours of combined lectures and hands-on laboratory exercises per week. In addition, there are smaller mandatory programming and software technology assignments, and a larger software development project. In the project, the participants uses recent and emerging software technologies of their own choice to implement a smart software system. The developed prototype is used to evaluate and assess the capabilities of the software technology. The project is to be documented in a 15-page written report. The assignments are individual and the project is conducted in groups of 2-4 participants.

Compulsory learning activities

A number of smaller individual assignments involving software technology experiments and an associated laboratory report. The assignments must be submitted within set deadlines and must be approved before examination can take place. Progress and final presentations related to the group project on design and implementation of a smart software system.

Approved assignments and presentation are valid for the examination semester and the two following semesters.


The course has an examination in two parts: an oral exam and a project report.

The project report counts for 40% of the final grade and the oral exam counts for 60% of the final grade.

Both parts must result in a passing grade in order to get a final grade for the course.

In case one of the parts gets a failing grade, that part can be taken as a re-sitting/postponed exam.

Grading scale is A-F where F is fail.

Examination support material


More about examination support material

Course reductions

  • MOD250 - Avanserte programvareteknologiar - Reduction: 10 studypoints