This course is intended for software engineers and software architects and fits an agile process that they may have deployed in their organization.
The proposed training program focuses on the application of design patterns from the Gang of Four to satisfy non-functional requirements and to obtain a software architecture that can withstand software evolution in an emergent manner. The basic idea that permeates the course is that non-functional improvements are made by transforming and refactoring a software application using patterns. An important aspect is the shaping of component interfaces in a way that makes integration easier by guaranteeing backwards compatibility with existing client code.
The program offers a healthy mix of theory and exercises. In the exercises the participants must select a pattern to improve an existing design on a particular non-functional aspect. Typical such aspects are scalability, reuse, extensibility and portability. The last half day of the course addresses various architectural patterns from Buschmann et al. and shows how these architectures can be realized using the GoF design patterns by making stepwise transformations. For additional info, click here.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the Design Patterns training can be adapted to your situation and special needs.
Creating software that is maintainable, extensible, and meets user needs is a challenge for many development teams. This course provides practical techniques to analyze a domain and design object-oriented software using a structured approach.
The course begins with an introduction of object-oriented programming. One of the main strengths of object orientation is that code is decomposed into objects, enabling developers to use objects from the problem domain – their responsibilities, behaviors, and interactions – as the starting point for design.
The key to dealing with the complexities of software development is separating analysis – understanding what the application should do – from design – determining how it should work. This is reflected in the structure of the course; the first part focuses on analysis, while the second part addresses design. In real-world projects, these activities are applied in rapid, iterative cycles to build software incrementally.
Analysis focuses on describing the domain without worrying about technical details. It is difficult to automate, as it typically involves close interaction between domain experts and the development team. The outcome of the analysis serves as the foundation for the design phase, where non-functional requirements are incorporated through iterative model transformations. Mastering design skills is more important than ever, particularly with the rise of AI-assisted development that boosts coding productivity.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, this OOAD training can be adapted to your situation and special needs.
Well-performing multithreaded code is still a mystery to many. This 3-day course teaches participants how to benefit from the power of modern multicore processors by understanding the ins-and-outs of parallelism, the parallel programming paradigms, applying parallel patterns and avoiding common pitfalls.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the Multicore programming in C++ training can be adapted to your situation and special needs.
This course teaches you to bridge customer needs, technological constraints, and the development process. The architecture task is all about main decisions that define the creation and working of a system, and how it fits into its environment. Architecture decisions determine the structure and style of the system, and the main guidelines for its realization.
This training stands out because you will:
get a clear grip on what a good architecture means in your context
apply insights directly to your own case with personal coaching
strengthen your reasoning on quality attributes
integrate business value, technical constraints, and development process
use the Architecture Reasoning Model (ARM) as a unifying framework
learn from Robert Deckers, EngD, PhD — with consistently high participant satisfaction
This course focuses on the definition of an architecture that is well-engineered, fits its context, and communicable. You will learn how architecture puts technical design in the context of the customer needs and other stakeholder concerns, and in the context of the development process. You are asked to bring your own case which will be addressed during the training. Also, the homework assignment for the period in between the two modules will focus on your case as well.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the Good software architecture training can be adapted to your situation and special needs.
In the High Tech Industry a lot of projects have a multidisciplinary character. People from different disciplines have to work together closely to create optimal solutions, making 1 + 1 = 3.
Multidisciplinary teamwork means understanding “just enough” about what the other is doing, what kind of world colleagues or others are living in. Especially for engineers designing real tangible stuff it is not easy to understand how the abstract software world looks like. But at the same time, the amount of software in complex systems is growing rapidly.
The workshop focusses on machine control: situations where software controls the behaviour of the machine and makes the system alive. So it includes topics like embedded and real-time software and error handling. But also several general software topics are covered, e.g. the difference between programming and software engineering, software deployment and the software life cycle.
This websites uses cookies to function. Additionally, we would like your consent to include cookies from third-parties. For more information on our cookies, please read our cookie statement. ACCEPT
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.