Visual Modelling and Managing the Software Architecture Landscape in a large Enterprise by an Extension of the UML



Similar documents
Business Modeling with UML

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Modeling the User Interface of Web Applications with UML

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Modeling Guidelines Manual

Applying 4+1 View Architecture with UML 2. White Paper

To introduce software process models To describe three generic process models and when they may be used

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Designing Real-Time and Embedded Systems with the COMET/UML method

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

A Business Process Driven Approach for Generating Software Modules

GenericServ, a Generic Server for Web Application Development

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2

UML SUPPORTED SOFTWARE DESIGN

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Component visualization methods for large legacy software in C/C++

The Unified Software Development Process

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

Enterprise Architecture: Practical Guide to Logical Architecture

Menouer Boubekeur, Gregory Provan

Part I. Introduction

Managing Variability in Software Architectures 1 Felix Bachmann*

Using Business Process Reengineering to obtain a RAISE Specification

Enterprise Architecture at Work

Business-Driven Software Engineering Lecture 3 Foundations of Processes

A UML Introduction Tutorial

Masters of Science in Software & Information Systems

How To Develop Software

Software Engineering Reference Framework

Verification and Validation of Software Components and Component Based Software Systems

Chapter 4 Software Lifecycle and Performance Analysis

A UML 2 Profile for Business Process Modelling *

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

A Pattern-based Framework to Address Abstraction, Reuse, and Cross-domain Aspects in Domain Specific Visual Languages *

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Meta-Model specification V2 D

COMOS Platform. Worldwide data exchange for effective plant management.

A CONCEPTUAL MODEL FOR REQUIREMENTS ENGINEERING AND MANAGEMENT FOR CHANGE-INTENSIVE SOFTWARE

3C05: Unified Software Development Process

Efficient Management of Tests and Defects in Variant-Rich Systems with pure::variants and IBM Rational ClearQuest

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Compare & Adjust How to Guide for Compare & Adjust in SAP Solution Manager Application Lifecycle Management

Document Engineering: Analyzing and Designing the Semantics of Business Service Networks

Software Engineering

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

PROCESS-DRIVEN SOFTWARE DEVELOPMENT METHODOLOGY FOR ENTERPRISE INFORMATION SYSTEM

Principles and Software Realization of a Multimedia Course on Theoretical Electrical Engineering Based on Enterprise Technology

Advancements in the V-Model

ORGANIZATIONAL KNOWLEDGE MAPPING BASED ON LIBRARY INFORMATION SYSTEM

A Tool Suite for the Generation and Validation of Configurations for Software Availability

Chapter 5. Regression Testing of Web-Components

TOGAF usage in outsourcing of software development

Software Development Kit

A SOA visualisation for the Business

POLAR IT SERVICES. Business Intelligence Project Methodology

Setting Up an AS4 System

Umbrella: A New Component-Based Software Development Model

Software Development Methodologies

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Developing SOA solutions using IBM SOA Foundation

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Diagramming Techniques:

Nr.: Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg

IndustrialIT System 800xA Engineering

Using UML Part One Structural Modeling Diagrams

Lecture 9: Requirements Modelling

Evaluating OO-CASE tools: OO research meets practice

A Brief Analysis of Web Design Patterns

Introduction to Embedded Systems. Software Update Problem

A Multi-layered Domain-specific Language for Stencil Computations

Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models?

Increasing Development Knowledge with EPFC

BUSINESS PROCESS MODELING AND SIMULATION. Geoffrey Hook. Lanner Group The Oaks, 5 Clews Road Redditch. B98 7ST UK

IFS-8000 V2.0 INFORMATION FUSION SYSTEM

Report on the Dagstuhl Seminar Data Quality on the Web

zen Platform technical white paper

11 Tips to make the requirements definition process more effective and results more usable

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Process Modeling using BPMN 2.0

Oracle Real Time Decisions

Windchill PDMLink Curriculum Guide

CDC UNIFIED PROCESS PRACTICES GUIDE

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Information systems modelling UML and service description languages

Rational Software White Paper

A Framework for Software Product Line Engineering

Chap 1. Introduction to Software Architecture

Business Process Modeling with Structured Scenarios

Object Oriented Programming. Risk Management

Requirements Management

Model Simulation in Rational Software Architect: Business Process Simulation

Five best practices for deploying a successful service-oriented architecture

Transcription:

Visual Modelling and Managing the Software Architecture Landscape in a large Enterprise by an Extension of the UML Abstract Marcus Heberling 1, Christoph Maier 2, Thomas Tensi 3 In large enterprises the number of software systems for diverse tasks is very high. They have different technical platforms and design philosophies but nevertheless are intensely connected. Hence to deal with the complexity of such a application network some software architecture management is necessary. The ARCUS method in the Bayerische Landesbank defines domain-specific visual language for modelling the architecture of a complete landscape of software via the Unified Modelling Language. This is achieved by extending the UML metamodel with new stereotypes and constraints and by introduction of new notions like e.g. the derived relations. To implement this method tools are vital, but also new roles within the organisation have to be established. 1. Introduction Large enterprises normally have a zoo of applications with different technical realisations and design concepts. Nevertheless those applications are normally intertwined intensely. Sometimes an application uses information provided by another; sometimes the application have an overlap in the data used or even in the algorithms used. Traditionally applications are developed and maintained by only looking at their immediate context. This means that there is no global view of dependencies and possible redundancies. This leads to problems like e.g. - business requirements cannot be traced to applications, - small changes in a single application may lead to avalanche changes in other applications, and - planning strategic changes (like e.g. mass migration to decentralised systems) is impossible. Hence the typical management of architecture-in-the-small is not sufficient. There must be a global view of the single applications' architecture and the architecture-in-the-large of all applications (their interconnection, commonly used components etc.). Otherwise one will get a heterogeneous global architecture and problems with algorithmic or data redundancies. Based on those ideas the Bayerische Landesbank, Munich, started the ARCUS project four years ago. Its aim was to develop a notation and tool set to support the architecture management within the enterprise and also to decide how to embed this management into the organisation. Also a method for creating and maintaining architecture models has been developed. Due to the limited space and scope of the paper we will not go into details of this method. 1 Marcus Heberling, F.A.S.T. GmbH, Arabellastraße 17, D-81925 München 2 Dipl.-Inform. (univ.) Christoph Maier, Bayerische Landesbank, Briennerstraße 20, D-80333 München 3 Dr. rer. nat. Thomas Tensi, sd&m AG, Thomas-Dehler-Straße 27, D-81737 München

Process architecture layer Problem domain layer Logical application architecture layer System architecture layer server host client Figure 1: Four layers of an application landscape 2. Goals, Purpose and Audience of Architecture Management The main purpose for an architecture management is to ensure the compatibility of all hardware and software systems used within the enterprise. As already mentioned it does not suffice to simply put together the individual application models or to have a broad view on all applications, but have them both in a single model. The architecture model contains several layers, containing different aspects of a software system. Those layers form a hierarchy and are connected; hence it is useful to keep them together in a single model. As layers we have a broad model of the business processes, a class model of the business notions, an abstract model of the applications' logical components and a technical model of hardware and software components. Business processes and notions are independent of an implementation on a computer. Both layers together cover the dynamic and static aspects of the business. The component model describes the conceptual, the technical model describes the real implementation architecture. They could be isomorphic but in practice often are not. Of course, due to the high complexity it is neither possible nor necessary to precisely model every aspect of an application in the central model. The central architecture model is just a macroscopic view of the application landscape. Detailed information about a single application is stored in the different development environments. That information can be abstracted in the central model because many implementation details do not affect the architecture of the application. In that respect the application landscape model resembles a zoning plan for a city: here you are interested in what kind of buildings are put at some place and the zoning plan reveals how the structure will develop. Nevertheless details of buildings (like the shape of the window frames) is irrelevant. Covering all those aspects and connecting them in the model allows to find out how - business processes are supported by applications, - new business requirements may change existing applications,

- existing model parts or components might be reused, and - the existing application landscape might be simplified by restructuring. The architecture model addresses mainly two audiences: the management and the developing projects. Management gets some ideas how business problem domains are supported by IT and how improvements could map into the IT domain; the projects know their context early, especially with respect to interfaces and possible reuse of existing solutions. Based on the intended purpose and the target audience, ARCUS has several goals: - establishing a common vocabulary for the topics of "software architecture" and "application landscape" - realisation of a simple notation for software architecture based on a standard notation language and - systematic and abstract representation of the enterprise's existing and target architecture. Additionally architecture management had to be embedded into the enterprise. A central architecture management team has been established taking care of an enterprise-wide application landscape model. This model is also available to architecture teams for the diverse business domains which may selectively change those aspects for which they are responsible and have expertise. 3. Using the UML as a Base Metamodel for ARCUS As mentioned before modelling the application landscape is done on four architecture layers (see figure 1). Those layers describe - the business processes supported by the applications, - the important business notions in a class model including relations between them, - the logical application components, their interconnection and the processed logical data and - the physical computer topology as well as the technical software components implementing the logical application architecture and their relations. It is not sufficient to model the layers seperately but one also has to include inter-layer-relationsships explicitely, to show dependencies between model elements in the different layers and be able to follow them.

Process superprocess 0..1 detail 0..1 Event 0..1 incoming edges * FlowTransition FlowGraph * source 1 1..* FlowElement {NOT isoftype(businessprocess)} 1 0..1 ExecutionVariant * target 1 outgoing edges Condition Iteration Activity Event Synchroniser Figure 2: Extract from ARCUS metamodel for modelling business processes Basis for the ARCUS metamodel is the Unified Modelling Language (UML, see [UML]) which has been extended by ARCUS in several ways: - Variants of existing UML model elements have been introduced by using stereotypes. The elements of the layers are stereotypes of classes with specific stereotyped relations. The altogether about 50 stereotypes for classes for a proper hierarchy. - There are additional rules on how those new model elements can be interconnected. ARCUS defines this in a metamodel which comprises about 80 metamodel elements and more than 60 metarelations. Figure 2 shows a part of the metamodel for the process architecture layer. Here you can see that a process may be refined by a flow graph. The nodes in the flow graph are either activities or events, which are connected by flow transitions (details in section 4.1.). Additional semantic rules are given as constraints of the metamodel (partly as OCL-constraints, see figure 2 for an example). - For convenience in modelling the new concept of a detailed class has been introduced. This is a class element with some encapsulated internal structure, which can be exposed on demand. It is somewhat a mixture between a package and a class (more on that in section 5.1.). - As the elements form a hierarchy relations on lower hierarchies may induce relations on upper hierarchies. Those relations do not have to be modelled explicitely but are automatically synthesized as so-called derived relations following special rules (see section ) All those concepts have been implemented by using a commercial case tool and extending it by several modules. Those programs help a modeller to navigate through an architecture model, to check the consistency of the model and to query it or extract other representations from it. The metamodel is parametrized by putting a text definition of it into an external file and can be easily changed. Due to some restrictions in the UML semantics (or at least in the implementation thereof in the CASE tool used!) all ARCUS model elements are either classes or relations between classes. This design decision gives a very flexible basis for implementing the ARCUS metamodel.

role i subprocess Traveler Detailing the process gather voucher voucher [all vouchers available] [vouchers missing] manual work step collect expense data number vouchers account rejected travel data collected produce voucher substitutes account accepted check expense data Accountant pay out travel expenses event autom. work step gather travel data i do control printout [data incorrect or incomplete] i account booked travel expense list information travel data done vouchers (assigned) Figure 3: Example for the business process architecture layer in ARCUS 4. Architecture Layers in Detail In this section we illustrate the four architecture layers using an example of a simple and fictional travel expense management system. 4.1. Business Process Architecture Layer This layer describes the business processes concentrating on those directly supported by applications. The centre of modelling is the role. Here we describe what kind of roles there are, what tasks they are responsible for and how they interact in handling a business process. Technically the description is done by flow graphs which are networks of activities, events and connected information flows. The graph is an abstraction of all possible sequences of activities for the given business process and is very similar to the UML activity diagrams. Base elements are "process", "work step", "event", "information", "organisational unit" and "role". A business process is detailed by a graph of process, work step and event nodes connected by flow relations. Also possible are branches, loops and parallelism. The graph may be augmented by relations to information sources and sinks as well as roles and org. units performing the process steps. Figure 3 illustrates this layer with excerpts from the model for the travel expense management system. Note that the focus of ARCUS is not on replacing standard business process modelling: the ARCUS model is not a business administration view, but a technical view focussing on the IT support of processes. To be able to navigate the model and do meaningful queries the connection to other layers is obligatory (see section 4.5.). 4.2. Problem Domain Architecture Layer In this layer the business notions are modelled by using types and objects with their static and dynamic relations.

In principle we here have a simplified analysis class or data model. This means we're not doing a complete class model of the application (which is normally very technical and done elsewhere), but modelling the important - mostly inter-application - notions and their relations and constraints. Hence in this layer we use the standard UML concepts like classes, associations, objects, state models etc. There is only one stereotype added in this layer: the "central notion". It visually emphasises the fact that a class is very important for the enterprise. This layer is introduced to give an idea, what notions an application uses and supports technically. One now can easily query a model to find applications with overlapping problem domains. 4.3. Logical Application Architecture Layer This layer describes the applications and their components from a logical point of view regardless of the technical implementation constraints. The idea is to introduce an intermediate layer which describes how the applications and the application network would be structured when no technical constraints were given. This layer firstly supports people not proficient with technical terms (like most non-it customers) giving them an abstract view on the application. Secondly normally the abstract application architecture is much more stable than the physical. Here the base model elements are "application", "component", "module" and "data" plus variants. Figure 4 illustrates this layer with excerpts from the model for the travel expense management system.

application UI component Detailing data travel expense system UI travel expense acquisition control component UI travel expense analysis travel data travel lump sums employee data Dialog control f. acquisition Dialog control for analysis component travel expense model travel data employee data travel lump sums Figure 4: Example for the logical application architecture layer in ARCUS Software Travel Expense Acquisition Program Travel Expense Database Travel Expense Accounting Program Hardware <<TCP/IP; HTTP>> <<TCP/IP; IIOP>> Employee PCs server station Application Server Accounting PCs <<TCP/IP>> <<TCP/IP>> client group main server Database Server Figure 5: Example for the system architecture layer in ARCUS 4.4. System Architecture Layer The architecture layer describes the final implementation architecture of an application and its deployment. It consists of a hardware and software view. - The hardware view describes the physical computer landscape and the topology but abstracting from concrete systems and considering only archetypes of systems. Hence typical elements are called "data-warehouse server" and not "Machine 3637". As base hardware elements we have "computer", "network" and "physical data". Additionally there are variants and groupings (like "server group"). - The software view describes the technical realisation of an application including technical components (for communication, middleware etc.) which have been intentionally left out of the logical application architecture. Base software elements are "program"

(executables, scripts and third-party products), "physical data" (files and databases) and "software systems" (as clusters of data and programs) with variants. To model the deployment of the software elements on the hardware elements relations are allowed between specific software and hardware elements. Figure 5 illustrates this layer with excerpts from the model for the travel expense management system. 4.5. Inter-Layer-Relationships As we have all layers in one model we can establish relations between them and also query for those connections. Of course, the metamodel restricts the relations allowed to meaningful constellations. With those relations the model can be approached depending on the modeller: A process-oriented modeller can traverse the model top-down to find out what implications a change in a business process might have on the applications; a technically-oriented modeller can traverse the model bottom-up finding the effect of changes in the technical application interconnection on data flow in the process layer. For easier layer identification the visual representation of the model elements uses a unique colour for all the elements within a layer (see figures 3, 4 and 5 above). 5. Specific Metamodel Constructs There are additional ARCUS-specific metamodel extensions which have proved to be helpful in doing the modelling. 5.1. Detailed Elements As already shown in figures 3 and 4 it is convenient to consider at least some elements in the metamodel as detailable. - A non-detailed element has no internal structure and its visual representation has a grey background (it's a black box...). - A detailed element has some internal structure which normally is not shown. Its visual representation has a transparent background (it's a white box...) and reveals its contents on demand. E.g. in the left part of figure 3 we have a detailed process element "collect expense data" whose detailed structure is shown in the right part of figure 3. Note that normally not all elements in a detail view are parts of the detailed element (in the sense of an UML aggregation). In our case the work steps and subprocesses of the right part of figure 3 might be parts of "collect expense data", but the involved roles certainly are not. The ARCUS metamodel defines exactly what detailing aggregations the elements may have.

derived from R3, R4 and R5 activity1 <<derived control flow>> <<derived control flow>> derived from R1 and R2 activity 2 suba11 suba12 R1 R2 event 1 suba21 suba22 suba23 R3 R5 event 2 synchroniser R4 Figure 6: Deriving a Relation over Transparent Elements 5.2. Derived Relations ARCUS allows to handle relations which have not been fixed by the modeller, but are automatically generated by the system: the so-called derived relations. To understand the purpose of those relations, first look at an example: Assume that application "A" contains a component "A 1 " and an application "B" contains a component " B 1 ". Let's also assume "A 1 " uses "B 1 ". If a view shows "A 1 " and "B 1 " then also the usage relationship between "A 1 " and "B 1 " should be visible. Normally the UML-CASE-tool does this automatically. But in a view which only shows "A" and "B" and not their parts ""A 1 " and "B 1 " also an implicit usage relationship must be visible between "A" and "B", because some part of "A" uses some part of "B". This rule is valid for many such situations and transitively across arbitrary aggregation hierarchies. The semantic rules of the metamodel clarify exactly when this propagation of relations may occur. It also deals with some technical complications that some elements may be transparent with respect to some relations. In figure 6 we have two high level activities with some aggregated subactivities. There is a intersected control flow relation between "suba 12 " and "suba 21 " with some event in between and another between "suba 22 " and "suba 11 " with some synchroniser and event in between. Nevertheless when just coarsening the flow graph to activities only, we can derive two control flow relations between "activity 1" and "activity 2". But figure 6 does not reveal the whole truth: of course, there are derived relations relations missing (e.g. one between "activity 1" and "suba 11 " as well as another one between "suba 23 " and "suba 11 "!). Two remarks are necessary: - Firstly, it would be quite incomprehensible when all derived relations would be shown in views. Hence in any view of the model only those relations are visible which are on the lowest hierarchy level shown. If in some view only "activity 1", "activity 2" and " suba 21 " from the model in figure 6 were visible, the derived relation from "activity 1" to " suba 21 " would be shown, but the one from "activity 1" to "activity 2" would not! - Secondly, derived relations are volatile: The system stores how the propagation occurred (see the notes in figure 6 for an example) and generates or deletes the relations automatically. This volatility is also visualised in views by colouring derived relations differently from normal relations.

Figure 7: Searching for elements in an architecture model 6. Tool Support It is impossible to establish architecture modelling according to some notation with a sometimes complicated semantics without any tool support. Hence we have implemented add-ins for the common commercial CASE-tool "Rational Rose" which allow to generate, modify and query architecture models and to export architecture models into relational data bases or HTML representations. Figure 7 shows how to specify some simple query for elements in the model. In most cases modellers will work on the graphic views of the application model. Hence also model queries will offer the opportunity to deliver their output as diagrams. Those diagrams can then be used to selectively change properties of the elements found in the query. Also as this application landscape will become very large it has to be version-controlled with a fine granularity. In the moment we are working on a migration to a metamodelling tool which also allows a stronger semantic checking of the model. This is currently only possible a posteriori. 7. Experiences Initially the focus of the project was to develop some effective add-in for Rational Rose to work with some highly configurable metamodel for architecture modeling. The effort to do this was about two manyears which is little compared to the effort going into consulting the users and promoting the method. A problem with a highly configurable metamodeling engine is that you might be mislead into putting in "too much stuff" and build a very complex metamodel. We also fell into this trap. In the meantime the granularity of the metamodel has been reduced significantly.

An important lesson learned is that typically an a-posteriori-checking is not done by the modellers, because it hinders them to draw diagrams "freely". A correctness-by-construction approach is much more suited when you need consistency across teams. 8. Summary In the ARCUS project of the Bayerische Landesbank we have developed a notation and method for modelling software architecture for applications in the large. Main purpose of architecture management is to make planning of changes in the application landscape possible. By the global view possible synergies can be detected more easily. The basis for the notation of the ARCUS method is the Unified Modelling Language. It was extended by standard mechanisms as well as by defining a new metamodel with additional semantic rules. All those concepts have been implemented by adding specific modules to a commercial CASE-tool. Additionally some method for developing architecture models has been devised and the architecture management has been embedded into the organisation. Acknowledgements The ARCUS system and method has been developped within the last four years by several people. The authors explicitely would like to thank the former project team leaders Sascha Groh, Jörg Hermanns and Fridtjof Toenniessen and the former team members Alessandra Cavarra, Christian Jänsch and Hubert Zweckstetter. ARCUS would not exist without them. References [Arch1] [Arch2] [Arch3] [BPR1] [BPR2] [UML] Len Bass, Paul Clements und Rick Kazman. Software Architecture in Practice, Addison-Wesley, 1998 IEEE Recommended Practice for Architectural Description, Draft 4.1 of IEEE P1471, December 1998 (http://www.pithecanthropus.com/~awg/) SEI Software Architecture http://www.sei.cmu.edu/architecture/sw_architecture.html Michael Hammer and James Champy. Reengineering the corporation A Manifesto for Business revolution. New York: HarperBusiness, 1993 Ivar Jacobson, Maria Ericsson, and Agneta Jacobson. The Object Advantage - Business process reengineering with object technology. Addison-Wesley, 1994 J. Rumbaugh, G. Booch, I. Jacobson. The UML Reference Guide. Addison Wesley, 1999