Category: 2.6 Architecture and Design

  • Visual spaghetti robotics edition

    Visual spaghetti robotics edition

    Ever since the Intrinsic launch event a few weeks back, I wanted to write a long article on how the shown approach of visual programming for robotics is likely to fail. This prediction is based on forty years of experience with visual spaghetti in software engineering. I never got around writing a long blog post,…

  • What Microservices Can Learn From Enterprise Information Integration [HICSS 2020]

    What Microservices Can Learn From Enterprise Information Integration [HICSS 2020]

    Abstract: Microservices are an architectural style in which each service typically provides the complete stack of functions from a user or application programming interface through a domain model all the way to storage for that model. As a consequence, querying conjunct data from different microservices becomes a non-trivial engineering task. In this article, we review…

  • How UML is Actually Used (if it is Used)

    When I started our software architecture course about eight years ago, I was happy to find out about a book series on the architecture of open source applications. I was thrilled: Not only code, but architecture descriptions! I expected great material for my course. Sadly, I had to realize that none of the chapters in…

  • Data Structures vs. Functions in the Age of Microservices

    The old wisdom of “data structures over functions” has stood the test of time for probably 50 years now. It states that long-term, a system is better built on sound data structures than functions. While functions may hide clumsy data structures for a while, when faced with evolution and new user needs, poor data structures…

  • Microservices vs. Inner Source

    I just listened to Eberhard Wolff’s BED-Con talk on microservice-based system architectures, which he prefers to call Independent Systems Architectures (ISA). One purpose of calling it ISA is to emphasize that there should be no common data model and no shared reusable libraries between microservices. Obviously, by discounting reuse, ISA may increase development speed short-term…

  • The Design Space for Object Creation

    While preparing a session on (object-oriented) object creation for my Advanced Design and Programming course, I noticed that there are at least two major ways of looking at how to decide on how to create an object. The traditional way is a (still unwritten) pattern language that utilizes the classic Gang-of-Four object creational patterns (and…