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
In software-centric businesses, the ability to develop new software efficiently while maintaining market-oriented quality will be increasingly important. Since the success of software projects depends significantly on experienced and skilled software engineers, a professional qualification of key roles in software engineering is crucial. This talk informs about the curriculum for software engineers at Siemens, with a specific focus on the software architect. You will get an overview of the curriculums's vision, and an insight into the role and skills profile of software architects and corresponding qualification program.
Keywords: architecture, software architect role profile, expert qualification and certification
Target audience: architects, senior software engineers, software development managers, software project managers
Time and again softwareprojects fail, experience time or budget slips, or must deliver withless functionality or decreased quality. Despite all advances insoftware technologies, methods, processes, and tools. Despite allquality assuranceand controlling frameworks aiming to minimize software failure. Thenon-conformance costs of troublesome projects put a significant burdenon the budgets of many software development organizations.
This tutorial takes another perspective: learning from failure.Despite blindly trusting the latest software technology hypes toresolve all problems, we first outline the root causes for problems andfailure in software engineering, with a focus on thesoftware architecture. From this basis we explore how to address theseproblems thoughtfully and thoroughly, using concrete softwareengineering practices, establishing an early warning system that helpsrealizing when there are indications for trouble. Interestingly,these practices are well-known for decades, and applied in the dailywork of peak performance software development projects. You will learnthat it does not require truly novel approaches to minimize softwareproject failure, but strong leadership, honesty,and a consequent application of proven software engineering practices.
Keywords: software project failure, learning from failure, software quality, software architecture, risk-driven design, test-triven design, value-driven design
Target audience: senior software engineers, software architects, software project managers, software development managers
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