Software Architecture

© Ingo Arnold Department Computer Science University of Basel Introduction Software Architecture The WHAT dimension of architecture Lecture Introdu...
Author: Natalie Poole
3 downloads 0 Views 1MB Size
© Ingo Arnold

Department Computer Science University of Basel

Introduction

Software Architecture The WHAT dimension of architecture Lecture Introduction

The WHAT dimension Overview

Department of Computer Sciences – University of Basel 2

The WHAT dimension Definition “IT-System” “An IT-system is a unit that consists of integrated software and hardware building blocks and exists for the purpose of fulfilling a functional objective. To achieve this objective, it communicates with its environment and must take account of the conditions defined by the environment.”

Department of Computer Sciences – University of Basel 3

The WHAT dimension Definition “Software Architecture” "The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them." (Len Bass et al) Where Bass uses the term ‘element’ for the parts of the architecture, this book uses the term ‘building block’

"Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution.” (IEEE) "As a discipline, software architecture covers the architectural activities and the related decisions about the design and implementation of a software architecture.” Department of Computer Sciences – University of Basel 4

The WHAT dimension Definition “Software Architecture” System architecturestructure: The system architecture of a system is the structure or structures of the system, which comprise building blocks (software and hardware building blocks), the externally visible properties of those building blocks, and the relationship among them and with their environment. System architecturediscipline: As a discipline, system architecture covers the architectural activities and the related decisions about the design and implementation of a system architecture. System architecturetotal = System architecturestructure + System architecturediscipline

Department of Computer Sciences – University of Basel 5

The WHAT dimension Architecture terms and their relationships

System

System architecture

Software system

Software architecture

Degree of platform dependency

Degree of abstraction

structures

Functional building blocks

Functional architecture

structures

Technical building blocks

Technical architecture

structures

Platform building blocks

Platform architecture

Department of Computer Sciences – University of Basel 6

The WHAT dimension Architecture terms and their relationships

 Functional architecture • arises from the domain or problem area for which the system is developed • divides the system into functional building blocks • is driven by the character of the domain • is driven by the functional requirements placed on the system • is based on technical architecture • «order processing system» example: - order entry - order management - customer management

Department of Computer Sciences – University of Basel 7

The WHAT dimension Architecture terms and their relationships

 Technical architecture • is domain-independent • is dedicated primarily to the realization of non-functional requirements • defines technical building blocks for non-functional aspects (e.g. logging, auditing, security, reference data, persistence, and transaction management) • uses services from the platform

• encapsulates services such that they can be used in a platform-independent way by functional building blocks • can generally be used for software systems of various domains • defines how functional building blocks are mapped onto the technical architecture

Department of Computer Sciences – University of Basel 8

The WHAT dimension Architecture disciplines

 There are many architecture disciplines that can be distinguished

Department of Computer Sciences – University of Basel 9

The WHAT dimension Architecture disciplines

 Architecture is a multi-disciplinary endeavour ... • many disciplines contribute to a system • with the increasing complexity and size of the system, multi-disciplinary architecture is becoming ever more important • tasks of different architecture disciplines are spread over many shoulders • main responsibility generally lies with the software architect (SA)

• for consultation purposes the SA involve architects from other disciplines.

Department of Computer Sciences – University of Basel 10

The WHAT dimension Architecture and the System Concept “A system is a set of elements that are related to each other and interact in such a way that they can be seen as one unit that separates itself in this regard from the surrounding environment for a specific task, sense, or purpose.”

 Systems consist of parts • a system is a unit that consists of mutually interacting parts (aka: system building blocks) • a system can consist of subsystems or finely grained system building blocks • can be structured hierarchically • can be seen as a system building block of other systems

Department of Computer Sciences – University of Basel 11

The WHAT dimension Architecture and the System Concept

 Systems have a system boundary • a system has a system boundary that separates it from its environment

Department of Computer Sciences – University of Basel 12

The WHAT dimension Architecture and the System Concept

 Systems have objectives • A system always exists to achieve an objective

 Emergence of systems • a system has properties that differentiate it from its system building blocks • no one system building block holds these properties alone

• properties arise from the interaction of the individual system building blocks • as a whole, the system is more than the sum of its individual parts • for architecture, this means that every architecture level has different emergent properties

 Holism • the holistic view of systems looks at a system in its entirety • this is the view that determines whether an architecture can be deemed stable Department of Computer Sciences – University of Basel 13

The WHAT dimension Architecture and the System Concept

 Reductionism • the individual system building blocks are analyzed separately • a subsystem is thus perceived as a white box • due to the inherent emergence of systems, it is not possible to determine the behavior of the whole system in this way

Department of Computer Sciences – University of Basel 14

The WHAT dimension Architecture and the building blocks of a system

 System building blocks and their relationships

Department of Computer Sciences – University of Basel 15

The WHAT dimension Architecture and the building blocks of a system

 System building block • represents the abstract type of all concrete building blocks • can require other system building blocks • can have one or more interfaces • can require one or more interfaces of other system building blocks

 System • consists of system building blocks • is itself a building block • this means that a system can also contain subsystems

 Subsystem • encapsulate coherent functionality and are self-contained • provides related functionality that satisfies some of the requirements placed on the system Department of Computer Sciences – University of Basel 16

The WHAT dimension Architecture and the building blocks of a system

 Software and hardware building blocks • are specializations of system building blocks • hardware building block can require another hardware building block and can consist of hardware building blocks • software building block can require another software building block and can consist of software building blocks

Department of Computer Sciences – University of Basel 17

The WHAT dimension Architecture and the building blocks of a system

 Layers • are one example for internally arranging systems more sophistically • layers structure systems logically in hierarchy levels • subsystems of a layer have common characteristics and responsibilities

Department of Computer Sciences – University of Basel 18

The WHAT dimension Architecture and the building blocks of a system

 Platform • a platform is a system that can consist of software and, if applicable, hardware building blocks • used to execute software building blocks of a system and is part of the holistic view of software architecture

Department of Computer Sciences – University of Basel 19

The WHAT dimension Architecture and the building blocks of a system

 Execution environment • platforms provide execution environments in which software building blocks are executed • an execution environment is itself a software building block that provides services • a JEE application server for example offers execution environments for JEE components such as Java Servlets or Enterprise JavaBeans

 Services • services are also software building blocks • services provide basic functionality that is usually independent of any business functionality realized by the system

Department of Computer Sciences – University of Basel 20

Questions?

Department of Computer Sciences – University of Basel 21