Software architectures are influenced by many factors. Some factors are obvious, such a system's requirements. Other factors, in contrast, are more hidden -- and are thus often overlooked in software projects. For example, it has a direct impact on a software architecture and design whether an application is controlling physical or logical processes or workflows, like oil production versus creating a work plan or report, regardless of the system's concrete responsibilities. Not preparing architectures appropriately regarding these factors can lead projects quickly into trouble -- ranging form increased development costs and delayed delivery to hot fixes and redeployments of already installed systems.
In this tutorial we will explore the fundamental paradigms and styles that help you define sound architecture base lines for your applications, together with a set of guidelines that support you in taking the right architectural choices. You will learn how core properties of the domain objects in an application influence key design decisions and technology choices, and how the natural parallelism in an application domain can guide the design of a system's concurrency model. The conceptual framework outlined in this tutorial enables you do design systems with economy and elegance, so that they can safely resist the forces and specific requirements to which they are subjected.
Keywords: Software Architecture, Architecture Styles, Architecture Paradigms, Problem Frames, Patterns, Domain Driven Design,
Target Audience: Software Architects, Senior Software Engineers, Software Project Managers
Biography: Frank Buschmann
Frank Buschmann is a Principal Architect at Siemens Corporate Technology in Munich. In this position Frank is involved in, or responsible for, the definition and realization of software architectures for platforms, product lines, and large-scale distributed systems. Frank also serves as architecture reviewer, expert mentor of architects and architecture teams, and supports his division Systems Architecture and Platforms in recruiting, project acquisition, and technological direction.
Frank's research interests include Platform- and Product-Line Architectures, Software Architectures for Parallel Computing, Model-Driven Software Development, and specifically Patterns. In his development work, Frank has lead the design and implementation of several large-scale industrial software projects, including business information, industrial automation, and
Frank is co-author of four volumes of the "Pattern-Oriented Software Architecture" published by John Wiley & Sons.
Frank Buschmann has been contributing to JAOO for many years with all his passions:
- Creating systems architectures with economy and elegance
- Guiding (my own) design and coding through tests
- Talking about Singleton, which is both a whisky and a pattern, but the former is often better for design than the latter
- Programming PLCs to control our automation demos or my Lego Mindstorms
- Designing and programming for the concurrent world
- Design patterns, design patterns, and design patterns once again