Text of Architectural Thinking - What Is Architecture?
Architectural Thinking What is Architecture? Ingo Arnold
WHAT Dimension WHAT Fundamental definitions WHY Motivation and
requirements WHERE Views and perspectives WHEREBY Means and
techniques WHO Roles and organisations HOW Methodologies and
processes
What do we deal with by the way?
We
Plan & Define
Architect & establish
Maintain & operate
our Companys Information System
What do we deal with by the way?
What is a Company Information System?
Flight Booking System @ Lufthansa, Germany, mid 60ies
What do we deal with by the way?
A Company Information System is comprised of ...
Processes
What do we deal with by the way?
A Company Information System is comprised of ...
Function points and applications
What do we deal with by the way?
A Company Information System is comprised of ...
Data, Data Structures and Data Containers (Folders, Binders et
al)
What do we deal with by the way?
A Company Information System is comprised of ...
Some sorts of technological infrastructure and
underpinnings
What do we deal with by the way?
What has changed is that ...
Things have taken off the ground
... and become ...
Virtual
Clonable
Shippable
Configurable
Investigable
Deletable
.. far beyond what was possible in the things world of the mid
60ies
Architecture is not new
The Solution Architect in the 60ies had to arrange processes,
data, applications, tools, spaces and other means, fundamental to
the given business models
Architecture is not new
similar to what the Solution Architects have to in 2008
... just the means changed a bit in the meantime
Architectural disorientation Why bother?
Architectural disorientation
What is architecture?
What are you expected to do as an architect?
How is architecture manifested?
A tube A brush
Architectural disorientation
How do you distinguish good from bad architecture?
Where and when does architecture occur?
Why is architecture to be developed why is it useful?
Whereby is architecture developed?
Who is responsible for architecture?
How do you approach architecture?
What do you need to know as an architect?
Software is complex and IT is everchanging!
If we continued to protect our assets as we did in 16th
century,
Architectural disorientation
Software is complex and IT is everchanging!
our landscape nowadays would look like this
Architectural disorientation
Software is complex and IT is everchanging!
but it does not!
Architectural disorientation
Architecture evolves in its context Barcelona
Architectural disorientation
Architecture evolves in its context Barcelona
Architectural disorientation
All too often reality
We start with a wish list.
What follows is a concept.
A first pilot is implemented.
The pilot goes life.
Changes are required.
To implement the changes we need to deviate from the original
concept.
All too often reality
Software architectecture was created:
Big Ball of Mud-Pattern In computer programming, Big Ball of Mud is
a term for a system or computer program that has no real
distinguishable architecture. It usually includes more than one of
the other anti-patterns.
All too often reality
All too often reality Maintaining a shantytown is
labor-intensive and requires a broad range of skills. One must be
able to improvise repairs with the materials on-hand, and master
tasks from roof repair to ad hoc sanitation. However, there is
little of the sort of skilled specialization that one sees in a
mature economy.
All too often reality
All too often reality All too many of our systems are,
architecturally, little more than shantytowns. Investment in tools
and infrastructure is too often inadequate. Tools are usually
primitive, and infrastructure such as libraries and frameworks, is
undercapitalized. Individual portions of the system grow unchecked,
and the lack of infrastructure and architecture allows problems in
one part of the system to erode and pollute adjacent portions.
Question 4 you
What are symptoms of bad architecture?
Symptoms of immature architectures
Results of analysis phase are not adequately considered.
Holistic view of IT-System is missing.
Complexity increases and becomes unmanageble.
Planning and risk-management becomes difficult.
Reuse of expertise as well as system building blocks is
difficult.
Flexibility, maintainability, interoperability become a
problem.
Architecture documentation is missing or not up-to-date.
Steep learning curve for new staff entering the project.
Symptoms of immature architectures
Redundancy of code and functionality.
Systems building blocks are heavily interdependent.
Very long development and change cycles.
Symptoms of immature architectures System complexity
Architecture relevance
What is architecture?
Have you ever seen or touched Architecture?
.. even here ..
What is architecture?
We believe No ..
Design-time Perspective System Perspective (Physics)
What is architecture?
Architecture is an inherent aspect of any system
But you cant see nor can you touch it on the system level
Architecture is tangible only on the level of models and
plans
Architecture is mainly about quality .. not functionality
Architecture has a mid- to long-term ROI .. you cannot avoid
it
Architecture Perspective (Models & Plans)
What is architecture?
Architecture of a computer or IT-system is not immediately
tangible. Nevertheless does every IT-system have an
architecture
There are many architecture definitions out there, which are
typically comprised of the following aspects:
Structure
Behaviour and collaboration of architectural building
blocks
Discipline and methodology
Architecture covers everything .. from a systems problem domain
analysis phase up to this systems retirement
Architecture makes complexity manageable by focussing onto only
the substantial aspects of an IT-system
System People
What is architecture?
An Architecture defines behavior
What is architecture?
An Architecture Balances Stakeholder Needs
The needs of the end user are associated with intuitive and
correct behavior, performance, reliability, usability,
availability, and security.
The needs of the system administrator are associated with
intuitive behavior, administration, and tools to aid
monitoring.
The needs of the marketer are associated with competitive
features, time to market, positioning with other products, and
cost.
The needs of the customer are associated with cost, stability,
and schedule.
The needs of the developer are associated with clear
requirements and a simple, consistent design approach.
The needs of the project manager are associated with
predictability in the tracking of the project, schedule, productive
use of resources, and budget.
The needs of the maintainer are associated with a
comprehensible, consistent, and documented design approach, as well
as the ease with which modifications can be made
What is architecture?
An Architecture May Conform to an Architectural Style
Every well-structured software-intensive system is full of
patterns. (Booch 2009)
An architectural style defines a family of systems in terms of
a pattern of structural organization. More specifically, an
architectural style defines a vocabulary of components and
connector types, and a set of constraints on how they can be
combined. (Shaw 1996)
An Architecture is influenced by its environment
Architecture is not concerned with a systems fine grained
structures and elements (i.e. classes, objects, algorithms) but
instead with such systems coarse-grained components and building
blocks
What is architecture?
Architecture is concerned with all decisions which are
difficult to be changed later on
Architecture is more than just the result of an architects
design-activities architecture is a science in its own right
Architecture and Design are two sides of the same coin:
All respective activities, decision making, ways of thinking
are no different at all
Architectural Decisions just have a wide ranging impact (across
the system)
Design decisions have a rather local and isolated scope (e.g.
sub-system)
Architecture aims at sustaining investments
United Nations Sustainability Sustainability means meeting the
needs of the presence without compromising the needs of the
future
What is architecture?
Architecture is concerned with Macro-Structures of a system.
Well, here the question remains: what are such
macro-structures?
For example, lock-strategies for persistence-stores
or addressing schema length (e.g. 32-bit versus 64-bit) seem
pretty low-level technical at a first glance
However, if they have a significant impact on the systems
ability to evolve and scale over time they are architectural
What is architecture?
Architecture contributes to the non-functional capabilities of
our systems, where investments are vital & crucial but also
have a diminishing ROI
What is architecture? Well and there are a few more ;-)
First we make our Systems then our Systems make us
We make Software like we make cathedrals first we make them and
then we pray
What is architecture? Well and there are a few more ;-)
By looking at systems & system architectures the values and
maximes by which an organisation lives can easily be derived
This is similar to archaeology, where the experts derive
cultural & behavioural specifics by artefacts found centuries
later
What is architecture? Well and there are a few more ;-)
Do we all really well understand what we do always?
A fool with a tool is still a fool ( you know that)
A fool with a tool is an armed fool ( even worse)
engine doesnt run anymore Well maybe some fuel?! Lets have a deeper
look into there
What is architecture? Well and there are a few more ;-)
Do we all really well understand what we do always?
A tool with a fool is still a fool ( you know that)
A tool with a fool is an armed fool ( even worse)
Not a good idea!!!
What is architecture? The spirit of architecture
Whats so cool about the SAPs of this world?
Company A Company B Company C 20 % customizing 80 % COTS
What is architecture? The spirit of architecture
Frameworks are applied architecture
Hollywood principle ( dont call us we call you )
Architecture constraints it controls potential
developer-freedom based on a systems fundamental structures (e.g.
backbone process logic).
What is architecture? The spirit of architecture
Frameworks are applied architecture
Architecture guides.
Architecture reduces complexity by offering dedicated extension
points.
Architecture frees up developers from architectural decision
making (i.e. Backbone process logic).
What is architecture? The spirit of architecture
Frameworks are applied architecture
The SAP system is an HR generic process expert.
is an expert in their specific HR process requirements.
The overall architecture balances these forces and allows for
both, controlled evolution and governance, as well as
flexibility.
Example
Architecture Definition
The software architecture of a program or computing system is
the structure or structures of the system, which comprise software
components, the externally visible properties of those components,
and the relationships among them [Bass et al]
Architecture Definition
Architecture is concerned with ...
the structure and structure(s) of a system ..
its individual building blocks or components ..
their externally visible properties ..
as well as their relationships amongst these.
Architecture Definition
Architecture is concerned with the main pillars of a
computer-system not with this systems details ..
Architecture Definition
.. but what the main pillars are, depends on viewpoint and
perspective!
Solution context A Solution context B
Architecture Definition
.. but what the main pillars are, depends on viewpoint and
perspective!
Architecture Definition
Architecture contributes to the non-functional capabilities (
qualities) of a system as well as to its longevity
Extensibility ( Quickly add PDF as a new UI channel )
Adaptability and changebility ( Add the role Supervisor to our
system )
Reusability ( Reuse the Shopping Cart we developed for our
portal )
Managability ( Grant the aquired companys employees access to S
)
Security ( Encrypt all data that goes into this database )
Availability ( Make sure the service is always up and running
)
Scalability ( A marketing campaign is going to increase load on
Site S )
Performance ( S is only used if search-result response time is
below x )
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined.
Function / Process View Stakeholder View Component View Operational
View Deployment View Host and operate Package and deploy Implement
Function Serve Function 1 Function 2 Function 3
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. but this should be done in order ..
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. as shown here (Aarau Photo)
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. as shown here (Aarau Model)
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. as shown here (Public Transport)
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. as shown here (Denisity of Populat.)
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. as shown here (Buffer Zones)
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. Zoom-Level is similarily important ..
Architecture Definition
Architecture shows the holistic whole only if all appropriate
views are combined .. as filters ..
Architecture Definition
Architecture needs to be managed
One System
Many Systems
Architecture Definition
Architecture needs to be managed over time
Yesterday ..
Tomorrow
Architecture Definition
IT-Systems become increasingly more complex, which naturally
leads to more specialised architectural domains and
disciplines:
Enterprise-Architecture.
Software-Architecture.
Data-Architecture.
Integration-Architecture.
Network-Architecture.
Security-Architecture.
System-Management-Architecture.
Etc.
One singular IT-System requires its overall architecture to
take into consideration most if not all of the above listed areas
and disciplines.
Architect
The Architect
is a Technical Leader
role may be fulfilled by a team
understands the system development process
has knowledge of his business or technology domain