DAT250 Advanced Software Technologies

Course description for academic year 2020/2021

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 enterprise and distributed applications.

The course focuses on software technologies supporting the design and implementation of enterprise and distributed applications. Emphasis is on tools and frameworks for web- and cloud-based enterprise applications, in particular software frameworks and application servers in the context of the Java Enterprise Edition. The course also covers emerging software technologies and platforms for Internet (IoT) and - Web-of-Things (WoT) in conjunction with methodology for software technology assessment.

Learning Outcome

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

Knowledge

  • Describe the software architecture and organisation of tiered and service-oriented applications.
  • Explain the use of application servers and containers and the services they provide to applications.
  • Describe the principles, services and programming model of software frameworks and technologies for the development of enterprise and distributed applications.

Skills

  • Configure applications for deployment on application servers such as GlassFish
  • Design tiered enterprise applications organised into web, business logic, and database tiers
  • Implement web-based application clients using model-view-controller technologies such as Java Server Faces, Facelets, and CRUD frameworks.
  • Expose and organize application services by means of SOAP, REST, OSGi, and micro-services.
  • Realise business logic of enterprise application using component- and messaging-based architecture frameworks such as Enterprise Java Beans and Java Message Service.
  • Implement object storage by means of relational (RDBMS) and non-relational (NoSQL) databases.

Competence

  • Evaluate the applicability, relevance, and significance of emerging platform and software development technologies such as the Google Application Engine, AWS, Scala, Go, Play, and Akka
  • Document, relate and assess software frameworks and technologies for use in enterprise and distributed applications
  • Develop enterprise applications using the Java Enterprise Edition in conjunction with state-of-the art software technologies and frameworks

Entry requirements

General admission requirements for the study programme.

Recommended previous knowledge

Programming skills in Java, XML, servlet-based web applications, and relational databases and query languages.

Teaching methods

The course consists of 6 hours of combined lectures and hands-on exercises per week. In addition, there are smaller mandatory programming assignments and a larger technology evaluation project. In the project, the participants explore a recent software technology of their own choice, and develop a prototype to assess the use and capabilities of the technology. The project is to be documented in a 15-page written report. The assignments and the project are conducted in groups of 2-4 participants.

Course requirements

Three mandatory assignments in the form of written reports.The assignments must be submitted within set deadlines and must be approved before examination can take place.

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

Assessment

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 get 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

None

More about examination support material

Course reductions

  • MOD250 (1) - Advanced Software Technologies - Reduction: 10 studypoints