Skip to content

Software Engineering Radio

The Podcast for Professional Software Developers

Archive

Tag: Technology Talk

Recording Venue:
Guest(s):
Host(s): Bernd Arno
Recording Venue:
Guest(s):
Host(s): Bernd Arno
In this espisode we take a closer look at relational database systems and the concepts behind them. We start by discussing the relational paradigm, its concepts and ramifications, and go on to architectural aspects.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Michael Markus
In this episode, Michael and Markus talk about software components. We first looked at a couple of attempts at defining what a component is. We then provided our own definition that will be used in the rest of the episode. We then looked at the promises of component-based development: why are components useful?

We then discussed some of the typical metadata components should specify to make them useful. We discussed to some extent typical variations in component models. The next topic was the separation of concerns between the component functionality and functionality provided by the component’s execution environment (aka. container).
We then compared components with other (more or less) related technologies such as OO and SOA.

We concluded the episode with the notion of architecture as language, where you use a formal DSL to describe a system’s architecture. Components are the basic building block for this approach.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Michael Markus
Recording Venue:
Guest(s):
Host(s): Michael Markus
This episode is an introduction to embedded system. It is an introduction in the sense that we cover many topics very briefly: upcoming episodes will provides details for many of these topics.
We start by discussing what an embedded system is an what the important characteristics are. Among them is limited resources, concurrency, real time and hardware integration. We also discuss the range of embedded systems from small mirocontrollers to mobile phones to distributed real time embedded systems. We also cover the different business case for embedded systems (per unit cost) and some non-trivial developmental aspects (cross compilation debugging, heisenbugs).
We close the episode by discussing some important architectural styles (time triggered, event-based, microkernels, state machines) as well as tools of the trade: languages, operating systems and middleware.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Michael Markus
Variability is one of the key concerns in software product line engineering. The episode introduces the concepts of structural and non-structural (or configurative) variability. It also discusses how to find and model variability, and especially how to implement variability in the solution artifacts. Michael and Markus discuss a series of variability mechanisms that can be used with today’s programming languages and technologies.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Martin Eberhard
Recording Venue:
Guest(s):
Host(s): Martin Eberhard
In the first episode on Refactoring we talked about the basic ideas behind refactoring and some base principles why refactoring is a key part of software engineering. Now we move on to more complicated refactorings and discuss three major situations, their problems and possible solutions: advanced refactorings in large projects that can hardly be finished in a few minutes or hours and refactoring in larger teams. Also covered are the refactoring of published APIs and how merciless refactoring could be aligned with backward compatibility of published APIs, and refactorings that affect more than just code like for example database schemas.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Markus Michael
Recording Venue:
Guest(s):
Host(s): Markus Michael
Michael Kircher and Markus Voelter introduce the topic of software product line engineering. They motivate when and why product lines are important to consider and what makes them so special. Further, they introduce some key terminology, such as platform, core asset, feature model, commonality, and variability.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Arno Michael
Recording Venue:
Guest(s):
Host(s): Arno Michael
In this episode, Arno and Michael take a look at Design by Contract, a programming technique formalized by Bertrand Meyer. The idea is that an interface is more than method signatures – it is also about specifying the expected behavior that implementations must provide. While some languages include direct support for this style of programming, it is a useful mindset when desiging interfaces even without such language features.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Martin Eberhard
Recording Venue:
Guest(s):
Host(s): Martin Eberhard
Changeable software has been a goal of several technique in software engineering. Probably the most important is Refactoring, changing the code without changing the behaviour (or at least without breaking the tests). In this episode Eberhard talks with Martin Lippert about this technique. The episode covers a history of refactoring, a definition of code smells and how to actually do refactorings in your everyday work. Also some advanced topics – like the ROI of Refactoring or Refactoring in dynamic languages – are covered.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Arno Alexander
Recording Venue:
Guest(s):
Host(s): Arno Alexander
This is the second part of our two part discussion of the eXtreme Programming development methodology. While the first part introduced the values, principles and basic practices, this time Arno and Alex speak about the practices that set the context for an XP project and how to get started, and they discuss some FAQs they often get when introducing XP.

Links:

Play

Recording Venue:
Guest(s):
Host(s): Michael Markus
Recording Venue:
Guest(s):
Host(s): Michael Markus
This is the fourth and final episode on the fundamentals of Software Architecture. We talk mainly about architectural styles and patterns, as introduced in the POSA 1 Book. We also discuss a little bit the process of actually using those patterns for architecting systems.

Links:

Play