Software Engineering

Software has become a central differentiator for almost every product. Smartly used software has the potential to revolutionize entire industries, as the automotive industry clearly shows. Companies that were not founded as software companies are often not yet prepared for these upheavals. Keywords like Agile or DevOps have often been discussed at length, but due to the lack of understanding of management for the software development process, there is still a lot to be done in these areas. If we look at lateral entrants to the software sector, they are often only familiar with the basics of programming, but the handling of today’s complex software systems and architectures still needs to be learned. Efficient and collaborative work on large systems requires innovative methods and tools, which is why life-long learning plays a special role in software engineering.

Our portfolio of online courses and online learning content on Software Engineering covers a wide range of topics. We explain important software architecture, design and testing patterns for developers and those who want to become one. Topics such as DevOps or antipatterns were designed to meet the requirements of management. Our portfolio of online learning content is the starting point for creating tailor-made training courses for your company and your employees. The content in this area was developed with Prof. Brügge, Chair of Applied Software Technology at the Technical University of Munich. The content is continuously developed further by partners such as harbor.space.

Our cooperation partners

We offer content that was developed with experts from a wide range of companies and institutions in the field of software engineering. Here are some examples of the contributing partners and experts:​

Prof. Dr. Bernd Brügge

University Professor of Computer Science & Chair of Applied Software Engineering, Technical University of Munich, Lecturer at Carnegie Mellon University, USA

Dr. Lukas Alperowitz

Postdoctoral Researcher, Technical University of Munich

Hossein Yousefi

Co-Founder & CTO at identi Lecturer at harbour.space

We cover the following themes with our portfolio:

  • Introduction to software engineering
  • Software architecture: what and why?
  • DevOps
  • Agile software engineering
  • Introduction to antipatterns
  • Software engineering patterns
  • Management of antipatterns
  • Software lifecycle models

 

  • Cloud computing
  • Cloud & security
  • Edge/Fog computing
  • Architecture antipatterns
  • Architecture for Fog computing
  • Blackboard architecture
  • Broker pattern
  • Client-server pattern
  • Cloud architecture
  • Microservices
  • Repository pattern
  • REST architecture
  • Layer architecture
  • Introduction to software testing
  • Code smells
  • Software tests with JUnit
  • Mock object pattern
  • Dependency injection
  • Adapter design patterns
  • Antipatterns
  • Bridge design pattern
  • Composite design pattern
  • Observer and MVC Pattern
  • Proxy design patterns
  • State pattern
  • Strategy pattern

Our portfolio is the basis for:

Have a look at some content examples from our offering:

Patterns in Software Engineering | EN | 2 Chapters | approx. 1 h

Pattern-based development is one of the fundamental skills a software developer should have. A lot of people can code but having patterns in mind and being able to understand when these patterns are used will allow you to become a talented software engineer. With pattern-based development, what you produce can be used and reused, extended, and scaled well into the future because other developers can understand it. In Patterns in Software Engineering, you will learn a common dictionary for crafting software components. Applying patterns is beneficial for everyone who works with your code. This course was produced with experts from TU Munich.

To Course


Dependency Injection | EN | 1 Chapter | approx. 2 h

Before you can become an expert of pattern-based software, you need to know the most important patterns by heart. Dependency injection is an important pattern to make code ready for change. In Dependency Injection, you will get to know how dependency injection is used and implemented with two coding Challenges to consolidate your knowledge. This course was produced with experts from TU Munich.

To Course

Your contact person for Software Engineering at University4Industry:

Natascha Wechselberger

The physicist Natascha came to U4I in 2017 and has been active in the areas of AI, blockchain and software engineering ever since. She brings her passion for new technologies and her predilection for practice-oriented learning to a wide range of topics. Natascha has significantly shaped the software area at U4I and is currently in charge of the cloud and Microsoft Azure programs.