Alexander von Zitzewitz is founder, managing director of the company and CEO of the US subsidiary. He has more than 20 years of project and management experience. In 1993 he founded ootec - a company focused on project services around object oriented software technology. This company was sold to the French Valtech group in March 2000 and served customers like Siemens, BMW, Thyssen-Krupp-Stahl and other well known names in German industry. From 2003 to early 2005 he was working as Director of Central Europe for the French company Xcalia S.A. Since the summer of 2008 he is living in Massachusetts. His areas of expertise are object oriented system design and large scale system architecture. Alexander has a degree in Computer Science from the Technical University of Munich.
Analyzing architecture is all about finding structural decay in applications and systems to determine whether the architecture is still satisfying the business concerns (performance, scalability, fault tolerance, availability, and so on) and also whether the architecture supporting the application functionality is still viable. This is known as “architectural vitality”. While the functionality of a system may be sound, the architecture supporting that functionality may not be. For example, performance and scalability may have been the number one concern 5 years ago, but today agility, testability, and deployability is the number one concern to support high levels of competitive advantage and time-to-market. Does the architecture support these “-ilities”? If not, the company is likely to fail in today’s highly competitive market.
In this intense 1-day hands-on workshop you will learn what structural decay means and how to detect it. You will also learn what it means to “analyze an architecture”, and how to measure and quantify various “-ilities” such as performance, scalability, testability, maintainability, and so on. Leveraging source code metrics and open-source analysis tools, you will then see how to apply micro-level (source code) analysis techniques to identify decay in your architecture. You will also learn how to perform risk analysis against your architecture to help identify and prioritize architectural refactoring efforts, and also how to assess the level of modularity in your application in preparation for the move to microservices.
While the analysis techniques taught in this class are largely platform and technology-agnostic, most of the analysis tools we will be using will be in Java.
Requirements
A laptop is recommended for this workshop so you can follow along with the class exercises.
Prerequisites
The desire to find out whether you have a sound and viable architecture supporting your systems and applications. There are no technical or architectural prerequisites for the class.
Most nontrivial software systems suffer from significant levels of technical and architectural debt. This leads to exponentially increasing cost of change, which is not sustainable for a longer period of time. The single best thing you can do to counter this problem is to give some love to your architecture by carefully managing and controlling the dependencies among the different elements and components of a software system. For that purpose we will introduce a DSL (domain specific language) that can be used to describe and enforce architectural blueprints. Moreover we will make an excursion into the topic of legacy software modernization.
In this workshop part participants will use Sonargraph to assess and analyze a software system of their choice (Java, C/C++, C# or Python) and design an architectural model using the domain specific language introduced in the session. The tool and a free 60 day license will be provided during the workshop.
Most nontrivial software systems suffer from significant levels of technical and architectural debt. This leads to exponentially increasing cost of change, which is not sustainable for a longer period of time. The single best thing you can do to counter this problem is to give some love to your architecture by carefully managing and controlling the dependencies among the different elements and components of a software system. For that purpose we will introduce a DSL (domain specific language) that can be used to describe and enforce architectural blueprints. Moreover we will make an excursion into the topic of legacy software modernization.
In this workshop part participants will use Sonargraph to assess and analyze a software system of their choice (Java, C/C++, C# or Python) and design an architectural model using the domain specific language introduced in the session. The tool and a free 60 day license will be provided during the workshop.
Software metrics can be used effectively to judge the maintainability and architectural quality of a code base. Even more importantly they can be used as “canaries in a coal mine” to warn early about dangerous accumulations of architectural and technical debt.
This session will introduce some key metrics that every architect should know and also looks into the current research regarding software architecture metrics. Since we have 90 minutes there will be some time for hands-on software assessments. If you'd like to follow along bring your laptop and install Sonargraph-Explorer from our website www.hello2morrow.com. (It's free and covers most of the metrics we will introduce) Bring a Java, C#, C/C++ or project and run the metrics on your own code. Or just download an open source project and learn how to use metrics to assess software and detect issues.