Digital Audio Workstation Architecture
Evaluation and Evolution
Last year’s “Architecture of Digital Audio Workstations” talk was a broad introduction, followed by an overview of two DAW applications’ architectures, and the decisions behind these. While it covered a great deal of ground, it also had to leave out several important topics.
This talk concentrates on two additional areas:
- Evaluating Architecture
- Evolving Architecture
We will discuss how requirements, constraints and quality attributes come into play when evaluating architectural decisions. This is needed throughout the design process - definitely while creating the initial architectural design, but equally importantly, continuously while maintaining the software.
The familiar saying bears repeating: “Software is finished when no-one uses it”. Throughout its lifetime, software is bound to evolve. The evolution will be driven by sometimes drastic alterations, making it inevitable that the architecture also changes.
After a general coverage of these two new topics, four concrete example cases will be discussed, connecting practice to theory:
1. On how changing requirements result in architectural changes, and introducing new design decisions, resulting in overall improvement.
2. How an existing architecture allowed adding a complex unpredicted feature, without altering the architecture.
3. How mistaken design choices can create “debt” in the codebase, and when/how to address this.
4. How adding a new feature requires designing around the existing architecture, and finding a good compromise between refactoring, and meeting the new requirements.
Inevitably there will be some overlap with last year’s talk, but that will be kept to a minimum. So while I encourage attendees to watch that talk first, this one will be created so that it can be followed regardless, for an audience with some knowledge of software architecture.
This subject area is vast, but I hope that this introductory coverage of the two additional important topics, of architecture evaluation and evolution, will help further build on the knowledge shared on this very central topic for our community!
Ilias Bergström
Computer Scientist, Researcher, Interaction Designer, Musician, with a love for all music but especially live performance.
I've worked on developing several applications for live music, audiovisual performance, and use by experts, mainly using C++.
My career spans more than 20 years of developing media technology software, and of working as a researcher on the topic, in equal measure.