64
© I n g o A r n o l d Department Computer Science University of Basel Process Models Software Life-Cycle Management Architecture Introduction

4.2 architecture introduction

  • Upload
    ingo

  • View
    788

  • Download
    4

Embed Size (px)

DESCRIPTION

architecture introduction ingo arnold

Citation preview

Page 1: 4.2 architecture introduction

© In

go

Arn

old

Department Computer Science

University of Basel

Process Models

Software Life-Cycle Management

Architecture Introduction

Page 2: 4.2 architecture introduction

What do we deal with by the way?

We …• Plan & Define

• Architect & establish

• Maintain & operate

… our Company’s Information System …

Department of Computer Sciences – University of Basel 2

Page 3: 4.2 architecture introduction

What do we deal with by the way?

What is a Company Information System?• Flight Booking System @ Lufthansa, Germany, mid 60ies

Department of Computer Sciences – University of Basel 3

Page 4: 4.2 architecture introduction

What do we deal with by the way?

A Company Information System is comprised of ...• Processes

Department of Computer Sciences – University of Basel 4

Page 5: 4.2 architecture introduction

What do we deal with by the way?

A Company Information System is comprised of ...• Function points and applications

Department of Computer Sciences – University of Basel 5

Page 6: 4.2 architecture introduction

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)

Department of Computer Sciences – University of Basel 6

Page 7: 4.2 architecture introduction

What do we deal with by the way?

A Company Information System is comprised of ...• Some sorts of technological infrastructure and underpinnings

Department of Computer Sciences – University of Basel 7

Page 8: 4.2 architecture introduction

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 Department of Computer Sciences – University of Basel 8

Page 9: 4.2 architecture introduction

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 …

Department of Computer Sciences – University of Basel 9

Page 10: 4.2 architecture introduction

Architecture is not new

… similar to what the Solution Architects have to in 2008

... just the means changed a bit in the meantime

Department of Computer Sciences – University of Basel 10

Page 11: 4.2 architecture introduction

Architectural disorientationWhy bother?

Department of Computer Sciences – University of Basel 11

Page 12: 4.2 architecture introduction

Architectural disorientation

What is architecture?

What are you expected to do as an architect?

How is architecture manifested?

A tube

A brush

Department of Computer Sciences – University of Basel 12

Page 13: 4.2 architecture introduction

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?

Department of Computer Sciences – University of Basel 13

Page 14: 4.2 architecture introduction

Architecture evolves in its context – Barcelona …

Architectural disorientation

Department of Computer Sciences – University of Basel 14

Page 15: 4.2 architecture introduction

Architecture evolves in its context – Barcelona …

Architectural disorientation

Department of Computer Sciences – University of Basel 15

Page 16: 4.2 architecture introduction

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“.

Department of Computer Sciences – University of Basel 16

Page 17: 4.2 architecture introduction

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.

Department of Computer Sciences – University of Basel 17

Page 18: 4.2 architecture introduction

All too often reality

Department of Computer Sciences – University of Basel 18

Page 19: 4.2 architecture introduction

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.

Department of Computer Sciences – University of Basel 19

Page 20: 4.2 architecture introduction

All too often reality

Department of Computer Sciences – University of Basel 20

Page 21: 4.2 architecture introduction

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.

Department of Computer Sciences – University of Basel 21

Page 22: 4.2 architecture introduction

Question 4 you

What are symptoms of bad architecture?

Department of Computer Sciences – University of Basel 22

Page 23: 4.2 architecture introduction

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.

Department of Computer Sciences – University of Basel 23

Page 24: 4.2 architecture introduction

Symptoms of immature architectures

Redundancy of code and functionality.

System‘s building blocks are heavily interdependent.

Very long development and change cycles.

Department of Computer Sciences – University of Basel 24

Page 25: 4.2 architecture introduction

Symptoms of immature architectures

System complexity

Arc

hite

ctur

e re

leva

nce

Department of Computer Sciences – University of Basel 25

Page 26: 4.2 architecture introduction

What is architecture?

Have you ever seen or touched Architecture?

.. even here ..

Department of Computer Sciences – University of Basel 26

Page 27: 4.2 architecture introduction

What is architecture?

We believe “No” ..

Design-time PerspectiveSystemPerspective(Physics)

Department of Computer Sciences – University of Basel 27

Page 28: 4.2 architecture introduction

What is architecture?

Architecture is an inherent aspect of any system

But you can’t 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

ArchitecturePerspective(Models & Plans)

Department of Computer Sciences – University of Basel 28

Page 29: 4.2 architecture introduction

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 system‘s problem domain analysis phase up to this system‘s retirement

Architecture makes complexity manageable by focussing onto only the substantial aspects of an IT-system

System

People

Department of Computer Sciences – University of Basel 29

Page 30: 4.2 architecture introduction

What is architecture?

An Architecture defines behavior

Department of Computer Sciences – University of Basel 30

Page 31: 4.2 architecture introduction

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

Department of Computer Sciences – University of Basel 31

Page 32: 4.2 architecture introduction

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 system‘s fine grained structures and elements (i.e. classes, objects, algorithms) but instead with such system‘s coarse-grained components and building blocks

Department of Computer Sciences – University of Basel 32

Page 33: 4.2 architecture introduction

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 architect‘s 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”

Department of Computer Sciences – University of Basel 33

Page 34: 4.2 architecture introduction

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 system’s ability to evolve and scale over time they are architectural

Department of Computer Sciences – University of Basel 34

Page 35: 4.2 architecture introduction

What is architecture?

Architecture contributes to the non-functional capabilities of our systems, where investments are vital & crucial but also have a diminishing ROI

Department of Computer Sciences – University of Basel 35

Page 36: 4.2 architecture introduction

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

Department of Computer Sciences – University of Basel 36

Page 37: 4.2 architecture introduction

What is architecture?The spirit of architecture

What’s so cool about the SAPs of this world?

Company A Company B Company C

20

%

cust

omiz

ing

80

% C

OT

S

Department of Computer Sciences – University of Basel 37

Page 38: 4.2 architecture introduction

What is architecture?The spirit of architecture

Frameworks are applied architecture• Hollywood principle ( „don‘t call us – we call you“)

• Architecture constraints – it controls potential developer-freedom based on a system‘s fundamental structures (e.g. backbone process logic).

Department of Computer Sciences – University of Basel 38

Page 39: 4.2 architecture introduction

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).

Department of Computer Sciences – University of Basel 39

Page 40: 4.2 architecture introduction

What is architecture?The spirit of architecture

Frameworks are applied architecture• The SAP system is an HR generic process expert.

• Novartis 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

Department of Computer Sciences – University of Basel 40

Page 41: 4.2 architecture introduction

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]

Department of Computer Sciences – University of Basel 41

Page 42: 4.2 architecture introduction

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.

Department of Computer Sciences – University of Basel 42

Page 43: 4.2 architecture introduction

Architecture – Definition

Architecture is concerned with the main pillars of a computer-system – not with this system‘s details ..

Department of Computer Sciences – University of Basel 43

Page 44: 4.2 architecture introduction

Architecture – Definition

.. but what the main pillars are, depends on viewpoint and perspective!

Solution context A Solution context BDepartment of Computer Sciences – University of Basel 44

Page 45: 4.2 architecture introduction

Architecture – Definition

.. but what the main pillars are, depends on viewpoint and perspective!

Department of Computer Sciences – University of Basel 45

Page 46: 4.2 architecture introduction

Architecture – DefinitionAreas of Engagement

Department of Computer Sciences – University of Basel 46

Strategic alignment & planning perspective with a focus on smoothly underpinning the continuous evolution of the overal IT Service landscape

Quality of Application and Infrastructure Service landscapes

with a clear focus on providing holistic views and view models for

planning purposes

Quality of individual Application and Infrastructure Services with a focus on quality attributes:• Stability• Performance• Extensibility• Security• Maintainability

Application & Infrastructure Architecture

Domain & Enterprise

Architecture

IT Planning & Strategy

Page 47: 4.2 architecture introduction

Architecture – DefinitionAreas of Engagement

Department of Computer Sciences – University of Basel 47

Architecture related Activities

Govern vs Perform

Application vs Infrastructure

Services

CCMOR Services

Enterprise vs Domain vs

Service

Trends & Innovation

Consulting

Communication

Planning & Roadmaps

Requirements

Dependencies

Concept & Design

PoCs & Candidates

Review & Verification

Documentation

Trends & Innovation

Training & Education

Assessment

Establish rules & policies

Execute rules & policies

ApplicationProcesses, Application, Data, Interfaces, …

InfrastructureMiddleware, Server, Storage, Frameworks, Network, Data Centers, …

Create

Change

Migrate

Operate

Retire

Enterprise (All)

Domain (Many)

Service (Single)

X X X X

Page 48: 4.2 architecture introduction

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 company’s 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)

Department of Computer Sciences – University of Basel 48

Page 49: 4.2 architecture introduction

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

Hostand

operate

Package and

deploy

ImplementFunction

Serve

Function1 Function2 Function3

Department of Computer Sciences – University of Basel 49

Page 50: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. but this should be done in order ..

Department of Computer Sciences – University of Basel 50

Page 51: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Aarau Photo)

Department of Computer Sciences – University of Basel 51

Page 52: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Aarau Model)

Department of Computer Sciences – University of Basel 52

Page 53: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Public Transport)

Department of Computer Sciences – University of Basel 53

Page 54: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Denisity of Populat.)

Department of Computer Sciences – University of Basel 54

Page 55: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Buffer Zones)

Department of Computer Sciences – University of Basel 55

Page 56: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. Zoom-Level is similarily important ..

Department of Computer Sciences – University of Basel 56

Page 57: 4.2 architecture introduction

Architecture – Definition

Architecture shows the holistic whole only if all appropriate views are combined .. as filters ..

Department of Computer Sciences – University of Basel 57

Page 58: 4.2 architecture introduction

Architecture – Definition

Architecture needs to be managed• One System

• Many Systems

Department of Computer Sciences – University of Basel 58

Page 59: 4.2 architecture introduction

Architecture – Definition

Architecture needs to be managed over time• Yesterday ..

• Tomorrow

Department of Computer Sciences – University of Basel 59

Page 60: 4.2 architecture introduction

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.

Department of Computer Sciences – University of Basel 60

Page 61: 4.2 architecture introduction

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

• has technology knowledge

• has design skills

• has programming skills

• is a good communicator

• makes decisions by balancing tradoffs

• is aware of organisations’ politics

• is a negotiator

Department of Computer Sciences – University of Basel 61

Page 62: 4.2 architecture introduction

Architecting

Architecting • is an art

• spans multiple disciplines

• is an ongoing activity

• is driven by many stakeholders

• often involves making tradeoffs

• acknowledges experience

• is both top-down and bottom-up

Department of Computer Sciences – University of Basel 62

Page 63: 4.2 architecture introduction

ArchitectingThe benefits of Architecting

The benefits of Architecting • it addresses system qualities

• it drives consensus

• it supports the planning process

• it drives architectural integrity

• it helps manage complexity

• it provides a basis for reuse

• it reduces maintenance costs

• it supports impact analysis

Department of Computer Sciences – University of Basel 63

Page 64: 4.2 architecture introduction

Questions?

Department of Computer Sciences – University of Basel 64