IBM Software Group Understanding Architectural Assets Peter Eeles

® IBM Software Group Understanding Architectural Assets Peter Eeles peter. eeles@uk. ibm. com © 2008 IBM Corporation

IBM Software Group | Rational software Agenda § Introduction § Sources of architecture § Types of architectural asset § Characterizing architectural assets § Automating asset reuse § Conclusion 2

IBM Software Group | Rational software Inputs into this Presentation § Working IEEE/IFIP Conference on Software Architecture (WICSA) 2008 4 18 – 22 February 2008, Vancouver, BC, Canada 4 Working session: Architectural Knowledge § IBM Asset Architecture Board § Reusable Asset Specification § Rational Asset Manager § RUP for Asset-based Development © 2006 Tourism Vancouver 3

IBM Software Group | Rational software Agenda § Introduction § Sources of architecture § Types of architectural asset § Characterizing architectural assets § Automating asset reuse § Conclusion 4

IBM Software Group | Rational software Sources of Architecture § Theft 4 From a previous system or from technical literature § Method 4 An approach to deriving the architecture from the requirements § Intuition 4 The experience of the architect From “Mommy, Where Do Software Architectures Come From? ”, Philippe Kruchten 1 st International Workshop on Architectures for Software Systems, Seattle, 1995 5

IBM Software Group | Rational software Agenda § Introduction § Sources of architecture § Types of architectural asset § Characterizing architectural assets § Automating asset reuse § Conclusion 6

IBM Software Group | Rational software What Types of Architectural Asset are there? Reference Architecture Design Pattern Legacy Application Architectural Mechanism Pattern Language Packaged Application Development Method Reference Model Architectural Decision Programming Pattern Component Library Component Architectural Pattern Architectural Style Application Framework 7

IBM Software Group | Rational software Development Method § Best practices § Guidance (techniques) § Work product templates (e. g. architecture description template) § Work product examples § … Rational Unified Process 8
![IBM Software Group | Rational software Pattern § [A pattern is] a common solution IBM Software Group | Rational software Pattern § [A pattern is] a common solution](http://slidetodoc.com/presentation_image_h2/8fef7c07a7c8bcd969cb599a0a1e5192/image-9.jpg)
IBM Software Group | Rational software Pattern § [A pattern is] a common solution to a common problem in a given context. [UML User Guide] § Pattern types 4 Architectural Patterns § Distribution patterns § Security Patterns § … 4 Design Patterns 4 Programming Patterns 4 Requirements Patterns 4 Testing Patterns 4 Project Management Patterns 4 Process Patterns 4 Organizational Patterns 4… 9

IBM Software Group | Rational software Architectural Pattern § An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them. [Buschmann] § Example: Pattern Layers Context A system that requires decomposition Problem High-level elements rely on lower-level elements and the following forces must be balanced: - Interfaces should be stable - Parts of the system should be exchangeable - Source code changes should not ripple through the system Solution Structure the system into layers 10

IBM Software Group | Rational software Architectural pattern – Layers ISO OSI 7 -Layer Model Layer 7 Application Layer 6 Presentation Layer 5 Session Manages the connection Layer 4 Transport Creates packets of data Layer 3 Network Routes packets of data Layer 2 Data Link Detects and corrects errors Layer 1 Physical Transmits bits Provides application facilities Structures information as required Personal Organizer 11

IBM Software Group | Rational software Design Pattern § A design pattern provides a scheme for refining the subsystems or components of a software system, or the relationships between them. It describes a commonly-recurring structure of communicating components that solves a general design problem within a particular context. [Gamma] Observer Pattern 12

IBM Software Group | Rational software Programming Pattern § An idiom is a low-level pattern specific to a programming language. An idiom describes how to implement particular aspects of components or the relationships between them using the features of the given language. [Buschmann] // Swap the values of 2 variables temp = a; a = b; b = temp; 13
![IBM Software Group | Rational software Architectural Style § [An architectural style] defines a IBM Software Group | Rational software Architectural Style § [An architectural style] defines a](http://slidetodoc.com/presentation_image_h2/8fef7c07a7c8bcd969cb599a0a1e5192/image-14.jpg)
IBM Software Group | Rational software Architectural Style § [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] § Client-server 4 Supports the physical separation of client-side processing (such as a browser) and server-side processing (such as an application server that accesses a database) § Event-based 4 Promotes a publish-subscribe way of working, applied strategically across large areas of the architecture § Pipes-and-filters 4 A series of filters that provide data transformation, and pipes that connect the filters. Examples include compilers, signal processing, Straight Through Processing (STP) and trading of electricity, oil and gas 14

IBM Software Group | Rational software Pattern Language § A pattern language defines a collection of patterns and the rules to combine them. Pattern languages are often used to describe a family of systems § IBM Patterns for e-Business 4 A set of architectural patterns that describe various web-based applications 4 Includes a pattern selection process that drives: § Selection of a business, integration or composite pattern § Selection of application patterns § Selection of runtime patterns § Identification of product mappings *See http: //www. ibm. com/developerworks/patterns 15

IBM Software Group | Rational software Reference Architecture § A reference architecture is an architecture representation of a particular domain of interest. It typically includes many different architectural patterns, applied in different areas of its structure § Examples include J 2 EE and. NET 16

IBM Software Group | Rational software Reference Model § A reference model is an abstract representation of entities, their relationships and behavior, in a given domain of interest, and which typically forms the conceptual basis for the development of more concrete elements § Examples include a business model, an information model and a glossary of terms IBM Information Frame. Work (IFW) IFW Information Models (Banking Data Warehouse) IFW Process & Integration Models IFW Foundation Models Financial Services Data Model Financial Services Function Model Financial Services Workflow Model Business Solution Templates Business Object Model Business Process Model Application Solution Templates Banking Data Warehouse Model Interface Design Model 17

IBM Software Group | Rational software Application Framework § An application framework represents the partial implementation of a specific area of an application § Most widely-known frameworks are those supporting user interfaces 4 Java Server Pages 4 ASP. NET Client URL Server HTTP Internet Web Server Scripting container Script 18

IBM Software Group | Rational software Architectural Mechanism § Architectural mechanisms represent common concrete solutions to frequently encountered problems. They may be patterns of structure, patterns of behavior, or both. [RUP] § Often characterized as 4 “the mechanism for achieving X” 4 “this element is underpinned by mechanism Y” § Examples 4 Persistency mechanism 4 Error logging mechanism 4 Communication mechanism 4 Shopping cart 19

IBM Software Group | Rational software Packaged Application § A packaged application is a large-grained Commercial-Off-The-Shelf (COTS) product that provides a significant amount of capability (and reuse) § Examples 4 Customer Relationship Management (CRM) application (e. g. Siebel) 4 Enterprise Resource Planning (ERP) application (e. g. SAP) § The amount of custom development required is greatly reduced § Primary focus is on configuring the application 20

IBM Software Group | Rational software Component & component library § Component examples 4 GUI widget (such as a table) 4 Service § Component library examples 4 Class libraries (e. g. Java class library) 4 Procedure libraries 21

IBM Software Group | Rational software Legacy Application § A legacy application is a system that continues to be used because the owning organization cannot replace or redesign it § Tends to be a focus on integration rather than new development § Often results in a focus on enterprise application integration (EAI) 22
![IBM Software Group | Rational software Architectural Decision § [Architectural decisions are] conscious design IBM Software Group | Rational software Architectural Decision § [Architectural decisions are] conscious design](http://slidetodoc.com/presentation_image_h2/8fef7c07a7c8bcd969cb599a0a1e5192/image-23.jpg)
IBM Software Group | Rational software Architectural Decision § [Architectural decisions are] conscious design decisions concerning a software system as a whole, or one or more of its core components. These decisions determine the non-functional characteristics and quality factors of the system. [Zimmermann] § Decision rationale may come from experience, method or some other asset 23

IBM Software Group | Rational software Agenda § Introduction § Sources of architecture § Types of architectural asset § Characterizing architectural assets § Automating asset reuse § Conclusion 24

IBM Software Group | Rational software An Architectural Asset Metamodel 25

IBM Software Group | Rational software Attributes of an architectural asset Large-Grained Reference Architecture Packaged Application Legacy Application Reference Model Pattern Language Granularity Application Framework Architectural Style Architectural Pattern Architectural Mechanism Design Pattern Component Library Component Programming Pattern Fine-Grained Architectural Decision Specification Articulation Implementation 26

IBM Software Group | Rational software Asset Attributes § General attributes 4 Contained artifacts 4 Name 4 Related assets 4 Usage instructions 4 Version § Process-related attributes 4 Author 4 Feedback 4 Rating 4 Reviewer 4 State § Architecture-related attributes 4 Application type (e. g. custom app. ) 4 Articulation (e. g. specification) 4 Asset type (e. g. design pattern) 4 Business domain (e. g. telecoms) 4 Development discipline (e. g. testing) 4 Development process (e. g. RUP) 4 Granularity (e. g. fine-grained) 4 Level of abstraction (e. g. logical) 4 Lifecycle phase (e. g. inception) 4 Non-functional properties (e. g. cost) 4 Scope (e. g. systems engineering) 4 Technical domain (e. g. embedded) 4 Variability (e. g. limited) 4 Visibility (e. g. public scope) 27

IBM Software Group | Rational software Asset Categories § A category is a search mechanism § It provides a match on assets with specific attribute values 4 E. g. All assets associated with the telecoms business domain 4 E. g. All assets whose cost is less than $100 28

IBM Software Group | Rational software Agenda § Introduction § Sources of architecture § Types of architectural asset § Characterizing architectural assets § Automating asset reuse § Conclusion 29

IBM Software Group | Rational software The Reusable Asset Specification (RAS) § An OMG standard § Defines a standard way to describe and package assets § Defines the interface to a RAS repository § RAS is used to package many kinds of assets including components, services, patterns, and so on Asset Name Desc State Ver Profile Classification Descriptors: Name/Value pairs Context Domain, Development, Test, Deployment, and so on… Solution Artifacts Asset Overview Requirements Models, Code, Tests Documents … Usage Instructions & Activities Filling Variability Points Related Assets Association, Aggregation, Dependency, Parent 30

IBM Software Group | Rational software Rational Asset Manager (RAM) § Manages assets across their lifecycle from design/creation to consumption/change § Leverages an extensive library of process best practices for asset creation & reuse Asset Administrator Analyst, Architect, Developer, Tester Project Manager, Reviewer, Approver Project Manager, CIO/CTO Define Configuration Create & Modify Assets Search & Retrieve Assets Measure Govern Asset Management Lifecycle 31

IBM Software Group | Rational software RAM - Configuration 32

IBM Software Group | Rational software RAM – Asset types, category schema 33

IBM Software Group | Rational software RAM – Communities, review processes 34

IBM Software Group | Rational software RAM – Asset Lifecycle 35

IBM Software Group | Rational software RAM - Architecture Software Development Platform Developer Web. Sphere Studio Asset Analyzer Project Manager Create, modify & use assets Identify & harvest candidate assets Business Manager RPM, RMC Measurement and Control Platform Analyst Architect Developer RAD RSM RSA WID WBM RSD RSM Clear. Case SCM Plug-in* Tester RFT RPT • Administration All Roles Asset Manager Plug-in Measure perf asset metrics Publish, search, browse, retrieve Rational Asset Manager Server WAS Metadata LDAP* Asset Management Platform Business Manager Web client Web Services export Project Manager Browser Eclipse Gen process Asset Governance & Asset-Based Development Process • Create. modify, use & review assets Deployment Manager Tivoli Storage DB 2 Filesystem Oracle CVS* SQL Server Clear. Case* Submit and query change requests Developer Web. Sphere Service Registry & Repository* Clear. Quest* * Optional 36

IBM Software Group | Rational software RAM and WSRR Deployed Run-time Development-time Web. Sphere Service Registry and Repository Rational Asset Manager Federated Search & Publish Find Enrich Clear. Quest Clear. Case Software Architect CICS Generic Client (. Net or other) Asset based development change, notification & review process Service traceability to versioned assets and referenced artifacts Ensures services are developed consistently & in compliance with architecture Any CICS Web services provider program publish & read capability Web services client can publish & search Manages information that is useful for developing, re-using and managing all types of reusable assets Manage Govern ESB, Message Broker Process Server Mediations based on WSRR Lookup for dynamic endpoint selection & binding Manages information that is useful for the runtime operation, management and development use of services 37

IBM Software Group | Rational software Conclusion § Many types of architectural asset are at the disposal of the architect § Understanding their characteristics and value can help the architect in their decision-making § Application of appropriate automation is critical in ensuring the success of strategic reuse 38
![IBM Software Group | Rational software References § [Alexander] § [Alexander 2] § [Alexander IBM Software Group | Rational software References § [Alexander] § [Alexander 2] § [Alexander](http://slidetodoc.com/presentation_image_h2/8fef7c07a7c8bcd969cb599a0a1e5192/image-39.jpg)
IBM Software Group | Rational software References § [Alexander] § [Alexander 2] § [Alexander 3] 4 4 4 § Notes on the Synthesis of Form, Christopher Alexander, Harvard University Press, 1964 A Pattern Language, Christopher Alexander, Sara Ishikawa and Murray Silverstein, Oxford University Press, 1977 The Timeless Way of Building, Christopher Alexander, Oxford University Press, ISBN 0 -19 -502402 -8, 1979 [Brown] 4 Anti. Patterns – Refactoring Software, Architectures, and Projects in Crisis, William Brown, Raphael Malveau, Hays Mc. Cormick and Thomas Mowbray, John Wiley and Sons, ISBN 0 -471 -19713 -0, 1998 § [Buschmann] § [Fowler] § [Gamma] 4 4 4 § Analysis Patterns – Reusable Object Models, Martin Fowler, Addison Wesley, ISBN 0 -201 -89542 -0, 1997 Design Patterns – Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Addison Wesley, ISBN 0 -201 -63361 -2, 1995 [Kruchten] 4 § Pattern-Oriented Software Architecture – A System of Patterns, Frank Buschmann et al. , John Wiley and Sons, ISBN 0 -471 -95869 -7, 1996 The Architects – The Software Architecture Team, Philippe Kruchten, Proceedings of the First Working IFIP Conference on Software Architecture (WICSA 1), Patrick Donohoe (editor), Kluwer Academic Publishing, 1999 [Kruchten 2] 4 Mommy, Where Do Software Architectures Come From? , Philippe Kruchten, 1 st International Workshop on Architectures for Software Systems, Seattle, 1995 § [RAS] § [Rozanski] 4 4 Reusable Asset Specification, Object Management Group Inc. , Document number 04 -06 -06, June 2004 Software Systems Architecture – Working with Stakeholders using Viewpoints and Perspectives, Nick Rozanski and Eoin Woods, Addison Wesley, ISBN 0 -32111229 -6, 2005 § [RUP] § [Shaw] § [UML User Guide] § [Zimmermann] 4 4 Rational Unified Process, Rational Method Composer 7. 1, IBM Rational Software, 2006 Software Architecture – Perspectives on an Emerging Discipline, Mary Shaw and David Garlan, Prentice Hall, ISBN 0 -13 -182957 -2, 1996 The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh and Ivar Jacobson, Addison Wesley, ISBN 0 -201 -57168 -4, 1999 Combining Pattern Languages and Reusable Architectural Decision Models into a Comprehensive and Comprehensible Design Method, Olaf Zimmermann et al, Proceedings of WICSA 2008 39

IBM Software Group | Rational software 40
- Slides: 40