Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering:...

38
IBM Research – Zurich Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect ([email protected])

Transcript of Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering:...

Page 1: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

IBM Research – Zurich

Model-Driven Software Engineering:

Models in Software Architecture Design

Dr. Olaf Zimmermann, Executive IT Architect ([email protected])

Page 2: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

2

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Learning Objectives

� Understand selected software architecture concepts, and see them being applied to practical examples and industrial case studies– Software quality attributes– Architectural patterns (for application development and integration)– Architectural decisions

� Understand role of models in software architecture design, and be able to consume and create such models– Motivation for modeling– Types of models– Languages and notations– Tool support– Practical hints

Page 3: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

3

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Contents

� Software architecture fundamentals

� Motivation for architectural modeling

� Case study: order management in telecommunications

� Models in software architecture design: UMF and UML

� Concluding thoughts

Page 4: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

4

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Contents

� Software architecture fundamentals

� Motivation for architectural modeling

� Case study: order management in telecommunications

� Models in software architecture design: UMF and UML

� Concluding thoughts

Page 5: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

5

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Java Client

Web Application

.NET Client Browser Office

Web Services Adapter Layer

Java TM API (Dynamic Interface)

Java Backend Connectors (IBM WebSphere MQ, CICS ®)

Access Layer

Business Function

WSDL

generate

generateDatabase(IBM DB2®)

Repository

generate

Documentation

(pSeries)

(zSeries)

Platform independent

IBM CICS

IBM WebSphere ®

A First Example: Core Banking SOA with Web Services

Dyn

amic

Inte

rfac

e

SOAPSOAP SOAP

Page 6: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

6

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Architecture and Software Architecture Defined

Most definitions indicate that an architecture is concerned with both structure and behavior , is concerned with significant elements only, may conform to an architectural style such as SOA, is influenced by its environment , and embodies important decisions [Eel11].

Three commonly used definitions are:

� 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. [IEEE1471]

� 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. [BCK03]

� Software architecture as a set of architectural design decisions. [JB05]

Architecture vs. IT architecture vs. software architecture – all in scope in this lecture

Page 7: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

7

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Software Architecture Fundamentals

� Responsibilities of a software architect in custom application development:– Synthesizes technical solution from requirements (supported by methods)– Technically leads project and estimates development efforts– Coaches developers and other technical staff

� Key concepts : Quality attributes, architectural patterns, architectural decisions– Quality attributes are architecturally significant requirements– ... that drive selection of architectural patterns – … which is captured in the form of architectural decisions

� Foundations date back to late 1990s (industry and academia) – Bass/Clements/Kazman “Software Architecture in Practice” [BCK03]– Shaw/Garlan “Software Architecture – Perspectives on an Emerging Discipline” [SG96]– Buschmann et al. “Patterns of Software Architecture” (POSA) [BMR+96]

Page 8: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

8

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Software Quality Attributes (QAs)

� How does a system provide its functionality (not what it does)– Reliability, usability, efficiency (e.g., performance, scalability), maintainability, and

portability areas defined in ISO/IEC specification 9126-2001

� Requirements in example deal with QAs tacitly or explicitly:– QA “Accuracy”: orders must not be lost, resource reservations must be undone– QA “Efficiency” (performance): sub-second response times specified– QA “Interoperability”: multiple platforms to be supported

� Practical challenges:– Many attributes, many conflicts between them; many attributes hard to quantify– Often under-specified (unknown) or over-specified (overly ambitious)– Often stated on inadequate level of abstraction, e.g., per system (not per function/step)

Page 9: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

9

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Architectural Patterns

� Proven, common solution to known and recurring architecture design problem:– Context captured by intent section– QAs discussed in forces section– A problem statement is given, often in question form– There is a sketch of the solution (not a complete design!)– See e.g. http://hillside.net/index.php/ag-template and http://hillside.net/index.php/a-

pattern-language-for-pattern-writing for pattern writing support and advice

� Top-level pattern in first example and in SOA case study:– “Layers” pattern from [BMR+96] structures the architecture overview diagram– See http://www.vico.org/pages/PatronsDisseny/Pattern%20Layers/index.html

� Practical challenges:– Many eligible pattern languages– Link to requirements covered insufficiently– Transition to platform-specific design not addressed (or only in the form of examples)

Page 10: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

10

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Example: SOA Patterns (UML Sketch of Solution)

� No industry consensus on SOA principles and patterns yet

� Each author defines his/her own – many terminology mismatches

Source: [Zim09]

Page 11: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

11

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

A Closer Look at the Process Manager Pattern

“How do we route a message through multiple process ing steps when the required steps may not be known at design-time and may not be sequential?”

“Use a central processing unit, a Process Manager, to maintain the state of the sequence and determine the next processing step bas ed on intermediate results.”

Source: [HW04] and http://www.eaipatterns.com/ProcessManager.html

Process manager takes care of process instance creation and deletion, control flow routing, error handling in timeout situations, etc.

Page 12: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

12

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Other Popular Patterns in Architecture Design

� Layers, Pipes & Filters, Broker – POSA book series [BMR+96]

� Patterns of Enterprise Application Architecture such as Model-View Controller, Domain Model, Active Record [Fow03]

� Domain-Driven Design patterns such as Bounded Context [Eva03]

� Enterprise Integration Patterns such as Messaging, Channel [HW04]

� Adapter, Observer and other design patterns [GHJ+95]

� “Handbook of Software Architecture” collects such architectural patterns – Compiled by Grady Booch (one of the original authors of UML):

http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Main(registration/login required)

Page 13: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

13

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Architectural Decisions

� Capture the rationale justifying a design, in addition to design itself (answers to “why” questions)

� Example:– “We selected the Layers pattern to make the core banking SOA future proof,

e.g., to be able to add user channels in a flexible manner”– See http://www.ibm.com/developerworks/architecture/library/ar-knowwiki1

for full example and decision capturing template

� Practical challenges:– Retrospective decision capturing takes time and does not yield sufficient

benefits– Relation to other architectural concepts and viewpoints (quality attributes,

patterns) not understood well and not supported in methods and tools

Page 14: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

14

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Methods for Software Architecture Design

� Input and output of artifacts are documents or models

� Widely recognized and/or commonly practices methods:– ADD (SEI CMU), Siemens’ 4 Views, RUP (Rational/IBM), BAPO/CAFCR (Philips),

ASC/ARES (Nokia) [HKN+07]– IBM Unified Method Framework (UMF), e.g. Application Development (AD) 2.0 [EC10]– Object-Oriented Analysis and Design (OOAD), e.g. codified in Open Unified Process

(Open UP) [OUP]. Sample technique (a.k.a. method guidance): Focus on the architecture early to minimize risks and organize development

– Domain-specific methods, e.g. for SOA design

Software Engineering (SE) Method (Asset)

Process

Techniques

Notation

Content(Reference, Sample)

RolesPhases, Activities, Tasks

Artifact FormatsViewpoint Schema

suggest/prescribe

format

adopt

tailor

use

Project Usage of SE Method

Project Plan

Deliverables

Project Documentation

Performing ResourcesWork Breakdown Structure

DocumentsModels for Views

specify

comprise

Source: [Zim09]

Page 15: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

15

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

The architect (a.k.a. technical lead) plays many roles.Project ManagementSoftware

Software Architect

Project Plan incl. Work Breakdown Structure

Design Modeling EnvironmentAnalysis Modeling Environment

Business Activities

Analysis-Phase BPM

BusinessProcesses

Business Activities

Analysis-Phase BPM

BusinessProcesses

Development Environment

WSDLConfiguration

Files,Test Cases

BPEL

ServiceContracts

Design Model(e.g., UML)

Conceptual Workflows

Tacit ADs

TechniquePapers

RolesProcess

Phases/Activities/TasksMethod Browser

Artifacts

Reusable Asset Repository

Industry Models

SampleContent

Enterprise Architecture

Pattern Literature

Code Libraries

Other Content

Review

Create

Consult, tailor

Maintain

Executive ADs (Project Scoping)

Setup, review

Create, review

Traceability Management Tool

Issue List(ADs)

NFRs

Java

Office Suite

Decision Log

NFRs

Office Suite

Decision Log

NFRs

ADs – Architectural Decisions

Tacit ADs

Source: [Zim09]

Page 16: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

16

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Contents

� Software architecture fundamentals

� Motivation for architectural modeling

� Case study: order management in telecommunications

� Models in software architecture design: UMF and UML

� Concluding thoughts

Page 17: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

17

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

What is a Model (Engineering Definition)?

� From 1st lecture (MDSE fundamentals): “A model is an abstraction of something for the purpose of understanding it before building it” [RBT+91]

� Compare with definition by Bran Selic (an author of UML2): “abstraction is an intellectual defense mechanism for coping with overwhelming complexity” [Sel11]:

– “Selective reduction of information of a system which preserves its salient properties relative to a given set of concerns”

– “Refinement is the inverse process”

� In engineering, abstractions are gained through modeling. An Engineering Model is [Sel11]:

– “A selective representation of some system that captures accurately and concisely all of its essential properties of interest for a given set of concerns”

– “We don’t see everything at once”– “What we do see is adjusted” View of real

world

Model

program

Analyseand design

Code

abstractsfrom

is abstractedinto

Page 18: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

18

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Why do Architects Model?

� Modeling forces you think deeply about the requirements and the emerging design – and understand and anticipate their ramifications (consequences)

– Reason about choices– Trigger creativity, force certain decisions (e.g. type and cardinality of associations)– Abstract (leave out unnecessary details)

� Models communicate (an architectural vision/intent)– Within team of architects (same or different areas of specialization/expertise)– Within project team (architects, developers, testers, platform specialists, administrators)– With external stakeholders (sponsors, end users, maintenance teams)

� Models document a design and allow to automate tasks, e.g. test case creation– Simulations (models often are cheaper/less risky to build than the real system)– Automation of routine tasks

Compare with Bran Selic’s view:“Model to understand, to predict, to communicate, to specify” [Sel11]

Do not model without a purpose and a target audience in mind!

Page 19: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

19

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Selected Models as UMF Work Products (Artifacts)

Global Viewpoint

Use Case Model (UCM)

Operational Model (OM) L1(Conceptual/ALOM)

Logical Viewpoint Physical Viewpoint

Non-Functional Requirements (NFRs)

Component Model (CM) L1

Architecture Overview Diagram (AOD)

Component Model (CM) L2

Component Model (CM) L3

Operational Model (OM) L2(Specified/LOM)

Operational Model (OM) L3(Physical)

Architectural Decisions (ARC 100)

Adapted from: [ZKP09]

Page 20: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

20

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Contents

� Software architecture fundamentals

� Motivation for architectural modeling

� Case study: order management in telecommunications

� Models in software architecture design: UMF and UML

� Concluding thoughts

Page 21: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

21

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

“T” Case Study: Context & Business Problems

� Wholesale subsidiary of large telecommunications company T (former monopolist, deregulated)– Provides wire line and wireless telephony services to retailer subsidiary of T

and to 150 other companies, called Virtual Service Providers (VSPs)– One physical telephony network, owned and operated by T

� Strategic imperative of T:– Drive down cost of operations by interacting with VSPs efficiently

� Response: single, partially automated order management system– VSPs are expected to use the order management processes of T to connect,

configure, or disconnect telephony services for their end users– Multiple channels required, including the World-Wide Web (Internet)

Page 22: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

22

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

VSP 1 (Browser)

VSP 2 (Other System via Web Service)

Internal Channelfor T Staff

Order Management System

Customer Database Telephony Network Billing System

MoveCreate

MoveCreate

MoveCreate

System Context

T

uses

Page 23: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

23

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

VSP 1 (Browser)

VSP 2 (Other System via Web Service)

Internal Channelfor T Staff

Two Order Management Processes: „Create PSTN Service“, „Move PSTN Service“:

About 20 steps per process, taking up to 24 hours to co mplete. Steps include:

1. Address validation – complex and requiring several user interactions2. Resource reservation, e.g. copper transmission path, telephone number

Customer Database Telephony Network Billing System

MoveCreate

MoveCreate

MoveCreate

Functional Requirements

T

PSTN – Public Switched Telephone Network

Page 24: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

24

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Important Non-Functional Requirements (NFRs)

1. The software system supporting the two order management processes must be accessible both over a private industry-sponsored network and the Internet. The VSPsand the backend systems to be integrated (e.g., billing system) change over time.

2. Business volumes are approximately 20,000 “Create PSTN service” requests and 15,000 “Move PSTN service” requests per month.

– Given up to 20 steps per process, and a peak hour load of 30% above average, this equates to a peak load of about 4,550 steps executed per hour (based on core business hours of ten hours per day, 20 days per month)

3. Initially, process instances must be able to persist from first step to last for three hours; however, this time will be extended to up to 24 hours in the future.

4. VSPs are spread across a number of time zones, operating 23 hours per day and seven days per week.

5. Average response time targets vary by process step, typically 3-5 seconds; 95% of the user interactions need to complete execution in 5-8 seconds.

6. Domain-specific architecture design challenges include: 1. Address validation completeness and timeliness, 2. Releasing reserved resources (copper transmission path, telephone number) when a process instance fails or customer walks away.

7. Communication patterns and protocols must support multiple platforms.

Page 25: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

25

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

VSP 1 (Browser)

VSP 2(Other System viaWeb Service)

Internal Channelfor T Staff

Solution: Service-Oriented Architecture (SOA) with Process & Service Layers

Customer Database Telephony Network Billing System

MoveCreate

MoveCreate

MoveCreate

Architecture Overview Diagram (First Design Iteration)

T

„Create“ Process „Move“ Process

„Validation“ Service „Pricing“ Service „Transmission Reservation“ Service

ProcessLayer

Service Layer

uses

Page 26: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

26

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Contents

� Software architecture fundamentals

� Motivation for architectural modeling

� Case study: order management in telecommunications

� Models in software architecture design: UMF and UML

� Concluding thoughts

Page 27: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

27

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

UML in an Architecture Design Context

� The term “model” is overloaded – two primary meanings exist (MDSE vs. method)– Instance of a metamodel defining a modeling language (e.g., UML model)– Type of artifact in a method and instance thereof (e.g., UMF component model)

� Several UML profiles for architects exist– IBM Architecture Description Standard (ADS)– IBM Rational UML Profile-Based Integrated Architecture (UPIA) V7.5.2– Profiles supporting (enterprise) architecture frameworks such as DoDAF and MoDAF

� UML concepts frequently used in architecture design:– Use cases, stereotyped class diagrams (e.g., domains models, logical/functional

architecture viewpoint)– Sequence diagrams (for component interactions, system walkthroughs), and state

machines (e.g., protocol specifications)

� Architecture Description Languages increasingly popular, e.g. ArchiMate(subgenre of domain-specific languages)

Page 28: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

28

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Sample Architecture: Multi-Channel Order Management (B2B) Firefox is a registered trademark of the Mozilla Fo undation

� Functional domain– Order entry management

� Two business processes– New customer – Relocation

� Main SOA drivers– Deeper automation grade– Share services between

domains

� Note: Architecture Overview Diagram (AOD) – drawn in an ADL, not in UML!– Proprietary ADL, first defined in

an article on ADS [YRS+99]– Supported by IBM Rational

Software Architect

© 2011 IBM Corporation

Page 29: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

29

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

UMF Use Case Diagram and Component Model

� Note: Both UMF deliverables contain a UML model/diagrams –and more!– Open UP/RUP give similar advice

� E.g. Use case template to be filled out (structured text) – Preconditions, post conditions,

scenario walkthroughs, etc.

� Traceability to functional requirements and NFRs required (a non-trivial task in practice)

� Dynamic view also to be provided (component interaction diagrams)

� Sunny day vs. rainy day design (error handling!)

Page 30: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

30

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

UMF Operational Model

� Note: Like in the AOD, the model elements (i.e., location node, deployment units, relations) and are defined in an ADL [YRS+99], not in UML.

� Design rationale is attached in the form of unstructured comments (free form).

Page 31: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

31

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Important Model Types (Work Products/Artifacts) in UMF

Use Case Model 1 (external)

Component Model 1

(UML outline)

Operational Model 1

(conceptual)

Architecture Overview Diagram

Current

IT Environment

Current Process

AssessmentService Model 1

(incl. WSDL-i)

Component Model 2

(UML refined)

Service Model 2

(incl. WSDL-b)(+Reference

ModelAlignment)

Operational Model 2

(WPS, specified)

Component Model 3

(WPS, JEE)

System Context

Architectural Template

Nonfunctional Requirements

Process Definition

(+Business Use Cases)

Deployment Units (SCA)

Use Case Model 2

(+internals)

Operational Model 3

(WPS, physical)

PIM 0 PIM 2 / PSM 1 (hybrid) PSM 2PIM 1CIM (Analysis)

Analysis to Design (manual)

High to Low Level Design (manual, tool supported)

Design to Implementation (possibly automated)

Process Definition

(Design Model)

Page 32: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

32

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

More Information on Architecture Modeling in UMF/UML

� IBM Architectural Thinking class (subset also available in lecture form) [Eel11]

� IBM Architecture Description Standard (ADS) [ZRS+99]

� “The Software Architecting Process” by Eeles/Cripps is a definite reference [EC10]:

– http://www.architecting.co.uk/index.php

� Also see Unified Process (an Open UP is available from Eclipse) [OUP]:– http://epf.eclipse.org/wikis/openup/

� Many commercial UML tools, e.g. IBM Rational Software Architect and Design Manager are available, as well as open source assets

� Vision stencils (for UML and ADLs)

� Quick reference guides (for UML and ADLs)

Page 33: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

33

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Contents

� Software architecture fundamentals

� Motivation for architectural modeling

� Case study: order management in telecommunications

� Models in software architecture design: UMF and UML

� Concluding thoughts

Page 34: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

34

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Why Model (Revisited)?

� Abstraction helps the architect to deal with complexity

� Support a divide-and-conquer strategy to problem solving– Componentization supports division of labor– Encapsulation, esp. layering eases maintenance (swap parts in/out)– Traceability and auditability (think of recent financial crisis/crises)

� Promotes accuracy and precision (faithful to engineering spirit) – Example: Cardinalities of relations between domain entities and architectural

components may make or break your project• E.g. database design (normalization?)• E.g. API design (method/operation signatures?)• E.g. number of test cases and structure of test data• E.g. security concerns (denial of service attacks)

Page 35: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

35

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Take Aways and Additional Information

� Software architecture– Start from functional requirements and – even more importantly – NFRs,

particularly the explicit and tacit software quality attributes– Find architectural patterns which resolve the forces underneath the NFRs,

e.g., in the POSA book series [BMR+96] and the [Fow03] and [HW04] books– Make conscious pattern selection decisions and follow-on decisions about

technologies and products• Based on experience or reusable asset

� Full lecture on enterprise-wide IT architectures available locally!(Hoidn/Schlatter/Schwidder)

– Link to 2010 edition

Page 36: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

36

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Recommended Reading: Fundamentals and Process

[BCK03] Bass, L., Clements, P., Kazman, R., Software Architecture in Practice, Second Edition. Addison Wesley, 2003.

[EC10] Eeles O., Cripps P., The Process of Software Architecting. Addison Wesley, 2010.

[Eel11] An Introduction to Software Architecture. IBM course, 2011.

[HKN+07] Hofmeister C., Kruchten P., Nord, Obbink J. H., Ran A., America P., A General Model of Software Architecture Design Derived from Five Industrial Approaches. Journal of Systems and Software 80(1), Elsevier, 2007. Pages 106-126

[IEEE1471] ISO/IEC IEEE Std 1471-2000, Systems and Software Engineering –Recommended Practice for Architectural Description of Software-Intensive Systems, ISO/IEC, 2007.

[JB05] Jansen A., Bosch J., Software Architecture as a Set of Architectural Design Decisions, Proc. of the 5th Working International Conference on Software Architecture, IEEE, 2005.

[OG09] The Open Group, The Open Group Architecture Framework, Version 9, 2009. http://www.opengroup.org/togaf

[OG09a] The Open Group, ArchiMate 1.0 Specification, 2009.

[OUP] Open UP, http://epf.eclipse.org/wikis/openup/

[SG96] Shaw M., Garlan D., Software Architecture – Perspectives on an Emerging Discipline. Prentice Hall, 1996.

Page 37: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

37

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Recommended Reading: Patterns and SOA Design

[BMR+96] Buschmann F., Meunier R., Rohnert H., Sommerlad P., and Stal M., Pattern-Oriented Software Architecture – a System of Patterns. Wiley, 1996.

[Eva03] Evans E., Domain-Driven Design. Tackling Complexity in the Heart of Software. Addison Wesley, 2003.

[Fow03] Fowler M., Patterns of Enterprise Application Architecture. Addison Wesley, 2003.

[GHJ+95] Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

[HW04] Hohpe G., Woolf, B., Enterprise Integration Patterns. Addison Wesley, 2004.

[KBS05] Krafzig D., Banke K., Slama D., Enterprise SOA, Prentice Hall, 2005.

[Pap08] Papazoglou, M., Web Services: Principles and Technology. Pearson/Prentice Hall, 2008.

[Zim09] Zimmermann O., An Architectural Decision Modeling Framework for SOA Design. Dissertation.de, 2009

[ZKP09] Zimmermann O., Kopp P., Pappe S., Architectural Knowledge in a SOA Infrastructure Reference Architecture, invited book chapter, in: M. Ali Babar, T. Dingsøyr, P. Lago, H. van Vliet (eds.), Software Architecture Knowledge Management: Theory and Practice, Springer-Verlag (2009)

Page 38: Model-Driven Software Engineering: Models in Software ... · Model-Driven Software Engineering: Models in Software Architecture Design Dr. Olaf Zimmermann, Executive IT Architect

38

IBM Research – Zurich

Dr. Olaf Zimmermann | MDSE 2011

Recommended Reading: Agile and Miscellaneous

[Amb] Ambler S., articles and book references available via his blog:https://www.ibm.com/developerworks/mydeveloperworks/blogs/ambler/?lang=en

[SB02] Schwaber K., Beedle M., Agile Software Development with Scrum. Prentice Hall, 2002

[RBP+91] Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991.

[RW05] Rozanski N., Woods E., Software Systems Architecture. Addison Wesley, 2005.

[Sel11] Selic B., Making Abstraction Concrete, CompArch/WICSA 2011 keynote

[YRS+99] Youngs R., Redmond-Pyle D., Spaas P., and Kahan E., A Standard for Architecture Description, IBM Systems Journal, Volume 38, Number 1, 1999. Pages 32-50.

� IEEE Software magazine: http://www.computer.org/portal/web/software/

� Software Architecture and Design at USI Lugano (link to 2011 edition)

� Also see the recommended reading list in lecture “enterprise-wide IT architectures”(link to 2010 edition)