1 Episode 19: Concurrency Pt. 2 By feedproxy.google.com Published On :: Wed, 14 Jun 2006 22:00:00 +0000 In this second part of our concurrency series Michael and Alexander talk about basic patterns for concurrent programming, such as Active and Monitor Object, Scoped Locking and Futures. Further, they discuss some architectural considerations regarding the number of threads and resource usage in general. For more information, see the references for part one as well as the following links Full Article
1 Episode 21: Error Handling Pt. 2 By feedproxy.google.com Published On :: Tue, 04 Jul 2006 22:00:00 +0000 In this Episode, Arno and Michael take a closer look at Exceptions and Error conditions, how to categorize them and how to deal with them. We look at the different levels of guarantee that a piece of code can provide with regard to exceptional condition and finish with a discussion of a number of best practices and their respective trade-offs. Full Article
1 Episode 23: Architecture Pt. 1 By feedproxy.google.com Published On :: Fri, 14 Jul 2006 22:00:00 +0000 This is the first of a series of Episodes on Software Architecture. Alex, Michael and Markus talk about rather fundamental topics in this episode, we'll go into much more detail in subsequent episodes in that series. Topics in this episode include: What is architecture, how is it different from design what different kinds of architecture are there in addition to software architecture the role of the architect, do we have one or more? architecture in agile software development tasks of the architect architect vs. the technical project lead architecture and project politics architecture requirements, estimating, team assembling There aren't too many good references for this general architecture discussion. You might want to take a look at Software Architecture in Practice by Len Bass, or, if you speak German, at the book Software-Architektur by Vogel, Arnold, Chugtai, Ihler, Mehlig, Neumann, Voelter and Zdun. Full Article
1 Episode 24: Development Processes Pt.1 By feedproxy.google.com Published On :: Mon, 24 Jul 2006 22:00:00 +0000 In this episode Arno and Alex talk about the basics of software development processes. They discuss why and when software development processes are needed and also why some developers don't like them. They discuss the theories behind different processes and talk about defined vs empiric processes in general. This episode is the first in a row that will later on describe specific processes like eXtreme programming or the unified process. Full Article
1 Episode 27: Service Oriented Architecture Pt.1 By feedproxy.google.com Published On :: Wed, 23 Aug 2006 22:00:00 +0000 SOA (Service Oriented Architecture) appears to be just another hype - after all we have been building distributed systems for quite a while now. But the real value of SOA is non-technical. In this episode Eberhard and Markus discuss the advantages and disadvantages, what SOA actually is and how it compares to other approaches that have been tried out before. Full Article
1 Episode 31: Agile Documentation By feedproxy.google.com Published On :: Tue, 03 Oct 2006 13:27:15 +0000 In this episode, our guest Andreas Rueping and Markus talk about documenting software. While this is a topic that many people don't like or consider fun, it is nonetheless very important. Based on his book, Agile Documentation, we talk about various aspects documenting software such as what to document, when to document, which media to use as well as specifically a number of layouting tips for nice documents. Full Article
1 Episode 37: eXtreme Programming Pt.1 By feedproxy.google.com Published On :: Sat, 18 Nov 2006 12:07:54 +0000 This is the first of two episodes where Arno and Alex discuss eXtreme Programming in se-radio's development process track. eXtreme Programming (XP) revolutionized the way of thinking about software development methodologies and helped to make the agile movement popular. In this episode they discuss the very basics of XP, its value system, principles and the basic practices used in an XP project. The second episode will continue the introduction adding the missing practices and how to introduce XP into projects. Full Article
1 Episode 41: Architecture Patterns (Architecture Pt. 4) By feedproxy.google.com Published On :: Wed, 27 Dec 2006 10:14:51 +0000 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. Full Article
1 Episode 46: Refactoring Pt. 1 By feedproxy.google.com Published On :: Fri, 16 Feb 2007 09:25:33 +0000 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. Full Article
1 Episode 51: Design By Contract By feedproxy.google.com Published On :: Wed, 28 Mar 2007 07:57:29 +0000 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. Full Article
1 Episode 53: Product Line Engineering Pt. 1 By feedproxy.google.com Published On :: Tue, 17 Apr 2007 07:08:39 +0000 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. Full Article
1 Episode 61: Internals of GCC By feedproxy.google.com Published On :: Thu, 05 Jul 2007 22:00:00 +0000 This show takes a behind-the-scenes look at compilers and their inner workings, using the Gnu compiler collection (GCC) as an example. Arno interview Morgan Deters, covering all steps from the parsing of different programming languages to machine independenet optimizations and generating processor specific binary code. Full Article
1 Episode 71: Survey Results By feedproxy.google.com Published On :: Sat, 13 Oct 2007 18:09:47 +0000 In this Episode I talk about the results of the listener survey and reply to some of the suggestions and criticism expressed in survey replies. Full Article
1 Episode 77: Fault Tolerance with Bob Hanmer Pt. 1 By feedproxy.google.com Published On :: Tue, 13 Nov 2007 19:08:32 +0000 In this Episode we discuss fault tolerance based on the new book by Bob Hanmer. This is the actually the first part of the discussion, the remainder will be published in the next episode of SE Radio. We start by discussing some of the context for fault tolerant systems and the imperfect world assumption. We then discuss a number of terms we will need when discussing the fault tolerance patterns. We then discuss the fault tolerance mindset and connect fault tolerance to a number of related subject areas, such as software quality. We then discuss the shared context for the patterns that follow, among them the important observation that fault tolerance does not come for free! Finally we provide an overview over the different sections covered in the book and start the detailed discussion of the patterns by looking at the Architectural Patterns section. The next episode will discuss the remaining patterns in the book. Full Article
1 Episode 81: Interview Erich Gamma By feedproxy.google.com Published On :: Sun, 23 Dec 2007 18:37:22 +0000 This episode is a conversation with Erich Gamma. We covered the four things he is known for in chronological order. We started with design patterns and the Gang-of-Four book of which he is the lead author. We then looked at JUnit, the testing framework he coauthored with Kent Beck and how it introduced unit testing to the masses. The next topic is obviously Eclipse, where Erich and his lab in Zürich is responsible for the Java Development Tooling. We also briefly discussed The Eclipse Way, the (obviously) successful process the Eclipse team uses for developing Eclipse itself. Finally, we're looking at Erich's current endeavour, the Jazz project. Jazz is a technology for collaborative software development. Full Article
1 Episode 91: Kevlin Henney on C++ By feedproxy.google.com Published On :: Sun, 30 Mar 2008 05:15:55 +0000 In this episode, we talk with Kevlin Henney about the C++ programming language. We look at the history and the culture of the language, and how it went through several phases in its evolution. We also take a look at some of the special language features of C++ and their overall influence. Full Article
1 Episode 100: Software in Space By feedproxy.google.com Published On :: Tue, 10 Jun 2008 12:24:42 +0000 In this episode we're talking to Hans-Joachim Popp, CIO at DLR about software in space. We start out by reviewing some well-known accidents of unmanned space flight that were caused by software faults and use this as a motivation to discuss how to avoid these in the future. We discuss culture, process, techniques and tools that DLR uses to create high-quality software for use in unmanned space systems. Full Article
1 Episode 101: Andreas Zeller on Debugging By feedproxy.google.com Published On :: Fri, 20 Jun 2008 09:18:24 +0000 In this episode we're talking to Andreas Zeller. about debugging. We started the discussion with an explanation of what debugging and how it works in principle. We then briefly discussed the relationship between debugging and testing. Next was the importance of the scientific method for debugging. We then looked as debugging as a search problem, leading to a discussion about delta debugging, the main topic of this discussion. We concluded the discussion by looking at the practical usability of delta debugging and the relationship to other means of automatically finding problems in software. Full Article
1 Episode 102: Relational Databases By feedproxy.google.com Published On :: Mon, 30 Jun 2008 09:15:07 +0000 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. Full Article
1 Episode 103: 10 years of Agile Experiences By feedproxy.google.com Published On :: Thu, 10 Jul 2008 07:04:47 +0000 In this episode we're talking to Jens Coldewey about his experiences in 10 years of introducing agile techniques to project teams. We discuss real-world examples and the lessons learned and strategies derived from them. Full Article
1 Episode 104: Plugin Architectures By feedproxy.google.com Published On :: Sun, 20 Jul 2008 07:30:56 +0000 In this episode we talk with Klaus Marquardt about building systems out of plugins. After briefly introducing the concept of a plugin in contrast to modules and related software engineering concepts, we discuss different views on plugins and different ways of working with plugins for developing software. We are looking at plugins for embedded systems as well as large business systems, at how plugins change the working mode and team organization, and discuss the possibilities of why and when to use plugins for implementing software systems. Full Article
1 Episode 105: Retrospectives with Linda Rising By feedproxy.google.com Published On :: Wed, 30 Jul 2008 08:57:29 +0000 In this episode we're talking to Linda Rising about retrospectives. We start by defining what a retrospective is and discuss some of the logistics of making it work for software projects. We then look at the different phases of a retrospective. The main part then is a discussion about some of the practices or games that are used to facilitate the retrospective. We conclude the retrospective discussion with destroying some of the prejudices against it and the relationship to process improvement and CMM. At the end of the interview we talk a little about Linda's current interest: how does the brain work? Full Article
1 Episode 106: Introduction to AOP By feedproxy.google.com Published On :: Sat, 09 Aug 2008 17:07:58 +0000 This episode is a systematic introduction to Aspect Oriented Programming (in contrast to the interview with Gregor Kiczales). We discuss the fundamentals of AOP, define many of the relevant terms and also look at how and where AOP is used in practice, as well as at some current research trends. Full Article
1 Episode 107: Andrew Watson on the OMG By feedproxy.google.com Published On :: Tue, 19 Aug 2008 05:46:25 +0000 This episode is a discussion with Andrew Watson, Technical Director of the Object Management Group. The episode is structured into five parts. We start with the history of the OMG and its early work. Then we look at the set of standards it has been (or is currently) working on. Next is a discussion of the standardization process used by the OMG, including the much-debated topic of compliance testing. We then look at OMG's relationship to other standards bodies (W3C, OASIS). Finally Andrew and I briefly discuss our common passion, gliding :-) Full Article
1 Episode 108: Simon Peyton Jones on Functional Programming and Haskell By feedproxy.google.com Published On :: Fri, 29 Aug 2008 07:47:22 +0000 We start our discussion with a brief look at what Haskell is and how a pure functional language is different from non-pure languages. We then look at the basic building blocks and the philosophy of the language, discussing concepts such as the lambda calculus, closures, currying, immutability, lazy evaluation, memoization, and the role of data types in functional languages. A significant part of the discussion is then spent on the management of side effects in a pure language - in other words, the importance of monads. We conclude the episode with a look at Haskell's importance and community today. Full Article
1 Episode 109: eBay’s Architecture Principles with Randy Shoup By feedproxy.google.com Published On :: Mon, 08 Sep 2008 06:57:11 +0000 In this episode we discuss with Randy Shoup, Distinguished Architect at eBay, about architectural pinciples and patterns used for building the highly scalable eBay infrastructure. The discussion is structured into four main ideas: partition everything, use asynchrony everywhere, automate everything, and design the system keeping in mind that everything fails at some point in a large distributed system. Full Article
1 Episode 110: Roles in Software Engineering I By feedproxy.google.com Published On :: Thu, 18 Sep 2008 19:51:58 +0000 This is the first part of a two part topic on roles in software engineering. Michael and Markus discuss role definitions in an corporate environment. For several typical roles we give hints on the expected skills, knowledge, and mindset. In this episode we discuss the roles junior developer, senior developer, and software architect. Full Article
1 Episode 111: About Us 2008 By feedproxy.google.com Published On :: Mon, 22 Sep 2008 06:16:39 +0000 In this episode we discuss the status of SE Radio today and introduce the team members. Among other things, Markus discusses stats, sound quality, partners, transcripts, and the cooperation with Hillside Europe. Also, the team members introduce themselves with a one to two minute clip. Full Article
1 Episode 112: Roles in Software Engineering II By feedproxy.google.com Published On :: Sun, 28 Sep 2008 06:05:25 +0000 This is the second part of the two part topic on roles in software engineering. Michael and Markus discuss role definitions in a corporate environment. For several typical roles we give hints on the expected skills, knowledge, and mindset. In this episode we discuss the roles technical lead, technologist, requirements engineer, product manager, and project manager. Full Article
1 Episode 113: Building Platforms with Jeff McAffer By feedproxy.google.com Published On :: Wed, 08 Oct 2008 05:53:29 +0000 In this episode we talk with Jeff McAffer about building platforms. We start with a brief discussion about what a platform is in contrast to a framework or an application. Drawing from his experiences working on the Eclipse platform for years, Jeff talks with us about how to develop platforms, why developing a platform is different from developing an application, what makes a good platform great, and why API design becomes so extremely important for platforms. He provides us with some insights on how the development process and the client collaboration for platform development could look like and what has and has not worked in the past. Full Article
1 Episode 114: Christof Ebert on Requirements Engineering By feedproxy.google.com Published On :: Sat, 18 Oct 2008 07:28:32 +0000 In this episode we talk to Christof Ebert about requirements engineering. As the name "engineering" suggests, we need to be systematic when working and managing requirements. Christof will structure RE into several activities, namely elicitation (identifying the relevant requirements), specification (clearly describing requirements), analysis (synthesizing a solution), verification and validation (achieving good requirements quality), comittment (allocating requirements to a project, product release or iteration), and management (keeping track of the implementation status of requirements). In this episode we discuss these activities and highlight lots of practical guidance. Full Article
1 Episode 115: Architecture Analysis By feedproxy.google.com Published On :: Tue, 28 Oct 2008 07:41:25 +0000 During Evolution of a software system, it becomes more and more difficult to understand the originally planned software architecture. Often an architectural degeneration happens because of various reasons during the development phases. In this session we will be looking how to avoid such architectural decay and degeneration and how continuous monitoring can improve the situation (and avoid architectural violations). In addition we will look at "refactoring in the large" and how refactoring can be simulated. A new family of "lint like tools for software architectures" is currently emerging in the marketplace I will show some examples and how they scale and support you in real world projects. Full Article
1 Episode 116: The Semantic Web with Jim Hendler By feedproxy.google.com Published On :: Fri, 07 Nov 2008 07:47:58 +0000 In this episode we're talking to James A. Hendler about the semantic web. We start with a definition of the semantic web and by discussing the main ingredients. We then look at (more or less) related topics such as prolog, artificial intelligence, wisdom of the crowds, and tagging. In the next section we discuss the core semantic web technologies: RDF, OWL, inference engines, SPARQL, and GRDDL. We conclude our discussion by looking at the status of the semantic web today and a couple of example applications. Full Article
1 Episode 117: Bran Selic on UML By feedproxy.google.com Published On :: Mon, 17 Nov 2008 05:48:32 +0000 In this episode we're talking to Bran Selic of Malina Software about modelling in general and UML2 in particular. Bran covers the basics of modelling, the history of UML, and what's new in UML2. Full Article
1 Episode 118: Eelco Visser on Parsers By feedproxy.google.com Published On :: Thu, 27 Nov 2008 06:27:21 +0000 In this episode we're talking to Eelco Visser about parsing text. We start at the basics - what is parsing? - covering classic tools such as Yacc and classic parsing approaches such as LALR before examining how more recent approaches such as scannerless parsing can make parsing easier and enable previously impractical use cases. Full Article
1 Episode 119: DSLs in Practice with JP Tolvanen By feedproxy.google.com Published On :: Sun, 07 Dec 2008 17:35:25 +0000 In this episode, Markus talks with Juha-Pekka Tolvanen about using DSLs and code generation in practice. The main part of the episode is the discussion about a number of case studies that show how DSLs and code generation are used in practice. Omega Tau, Markus' new podcast mentioned in the beginning of the show Full Article
1 Episode 120: OCL with Anneke Kleppe By feedproxy.google.com Published On :: Wed, 17 Dec 2008 20:39:29 +0000 In this episode we're talking to Anneke Kleppe about model-driven software development and language engineering. We start with her involvement in the creation of the Object Constraint Language (OCL) and discuss the intial expactations, actual experiences, and the place of OCL in the current day. From here, Anneke talks us through her take on the formative years of UML and MDA. From here, we expand to the realm of Domain-Specific Languages and Anneke discusses their place in software engineering in general and why we should expect DSLs in significant numbers to become a common sight. Full Article
1 Episode 121: OR Mappers with Michael Plöd By feedproxy.google.com Published On :: Sat, 27 Dec 2008 17:20:02 +0000 In this episode, Michael Plöd is interviewed about Object-Relational Mapping technology. He talks about the common concepts, compares the range of different tools that go by this name, and goes into the design and architectural consequences of using an OR mapper. Full Article
1 Episode 122: Interview Janos Sztipanovits By feedproxy.google.com Published On :: Tue, 06 Jan 2009 19:04:06 +0000 This is a discussion with Janos Sztipanovits about Cyber Physical Systems and how DSLs are used to approach some of the challenges in that domain. Specifically, in the second part we talk about formalizing DSL semantics. Full Article
1 Episode 123: Microsoft OSLO with Don Box and Doug Purdy By feedproxy.google.com Published On :: Fri, 16 Jan 2009 07:58:06 +0000 In this episode we discuss Microsoft's OSLO platform with Doug Purdy and Don Box. We briefly discuss what OSLO is in general and then look at the various components of OSLO. We also look at how OSLO fits in with the general Microsoft strategy and how it compares to other DSL/Model-driven approaches. We then look at language modularization and composition and discuss the similarities with XML and Smalltalk. Finally, we discuss possible integrations of OSLO with other MD* approaches and technologies. Full Article
1 Episode 124: OpenJDK with Dalibor Topic By feedproxy.google.com Published On :: Mon, 26 Jan 2009 16:25:48 +0000 In this episode we look at SUN's open source strategy for the OpenJDK. We discuss challenges in creating such a big open source project, and ways to keep it focused and organized. We discuss what it means for the Java runtime to be adopted as the technological foundation for other programming languages. Full Article
1 Episode 125: Performance Engineering with Chris Grindstaff By feedproxy.google.com Published On :: Thu, 05 Feb 2009 18:06:00 +0000 In this episode Martin talks with Chris Grindstaff about the fundamentals of performance engineering. The episode discusses when and how to work on performance of client- and server-side systems, what you should take into account during development to avoid performance issues, typical situations that cause performance problems, and some common pitfalls when analysing performance. Full Article
1 Episode 126: Jetbrains MPS with Konstantin Solomatov By feedproxy.google.com Published On :: Sun, 15 Feb 2009 09:35:22 +0000 In this episode we take a brief look at Jetbrains' Meta Programming System, a language workbench for creating external DSLs or for extending existing languages (such as Java). In a brief telephone discussion, Konstantin Solomatov explains what the system does and how it works. The system has recently been released into public beta and will be made available under then Apache 2.0 Open Source license. Full Article
1 Episode 127: Usability with Joachim Machate By feedproxy.google.com Published On :: Wed, 25 Feb 2009 16:33:32 +0000 This episode is an introduction to user interface design with Joachim Machate of UID. We talk about the importance of user interface design, about its relationship to the overall software engineering process, as well as about UID's process for systematic user interface design. Full Article
1 Episode 128: Web App Security with Bruce Sams By feedproxy.google.com Published On :: Sat, 07 Mar 2009 16:44:45 +0000 The majority of hacker attacks (70 %) are directed at weaknesses that are the result of problems in the implementation and/or architecture of the application. This session shows how you can protect your web applications (J2EE or .NET) against these attacks. The session covers lots of practical examples and techniques for attack. Furthermore, it shows strategies for defense, including a "Secure Software Development Lifecycle". A "Live Hacking" demo rounds it out. This is a session recorded live at OOP 2009. SE Radio thanks Bruce, SIGS Datacom and the programme chair, Frances Paulisch, for their great support! Full Article
1 Episode 129: F# with Luke Hoban By feedproxy.google.com Published On :: Tue, 17 Mar 2009 16:24:54 +0000 This episode is a discussion about F# with Microsoft's F# program manager Luke Hoban. Full Article
1 Episode 130: Code Visualization with Michele Lanza By feedproxy.google.com Published On :: Fri, 27 Mar 2009 20:17:08 +0000 This episode is a discussion about code and metrics visualization with Michele Lanza. Michele invented the Code Cities idea about which he talks in this episode. Full Article
1 Episode 131: Adrenaline Junkies with DeMarco and Hruschka By feedproxy.google.com Published On :: Mon, 06 Apr 2009 09:43:54 +0000 This episode is an interview with Tom DeMarco and Peter Hruschka about the new book of the Altantic Systems Guild: Adrenaline Junkies and Template Zombies: Understanding Patterns of Project Behavior. This is a session recorded live at OOP 2009. SE Radio thanks Tom and Peter, SIGS Datacom and the programme chair, Frances Paulisch, for their great support! Full Article
1 Episode 132: Top 10 Architecture Mistakes with Eoin Woods By feedproxy.google.com Published On :: Thu, 16 Apr 2009 15:53:47 +0000 This is a discussion with Eoin Woods about his collection of top 10 software architecture mistakes. Looking at things that don't work is always a good way to learn what you should actually do. Full Article
1 Episode 133: Continuous Integration with Chris Read By feedproxy.google.com Published On :: Sun, 26 Apr 2009 08:13:45 +0000 In this episode Markus discusses with Chris Read basics and some advanced topics in the space of continuous integration. We cover concepts, some tools, as well as a number of best practices. Full Article