Find this and related slide shows on ArchiMate and TOGAF on this page http://grahamberrisford.com/AM%201%20Methods/6PRODUCTSandTECHNIQUES/AM%20products%20and%20techniques.htm Avancier EA models the enterprise as a system that is stateful and eventdriven. System elements are interrelated. Events trigger changes to system state and/or the provision of services to external entities. ArchiMate and TOGAF Core concepts Symbols (boxes & lines) Concept framework Relations 1. order and derivation 2. grouping 3. realisation Diagram types Concept Framework Analysing the meaning of ArchiMate diagrams and the ambiguity of some concepts Including diagrams and definitions edited from the ArchiMate 2.1 standard. Copyright © The Open Group, All Rights Reserved. ArchiMate is a registered trademark of The Open Group. Training at http://avancier.website Concept Framework ► ► ► ► Part I: The Generic Meta Model Part II: The Enterprise Architecture layers Part III: Applying the Meta Model to EA layers Part IV: Similar concepts in System Theory Training at http://avancier.website Avancier Architects and systems Avancier ► The word “architect” comes from the Greek “master builder”. ► In enterprise and solution architecture frameworks, the buildings are “systems”. ► “Architecture descriptions are formal descriptions of a system.” (ArchiMate® 2.1 Specification, The Open Group.) Training at http://avancier.website Structure v Behaviour Avancier ► “The principal heuristic innovation of the systems approach is what may be called ‘reduction to dynamics’ as contrasted with ‘reduction to components’ ” ► (Laszlo and Krippner.) ► “[Architecture descriptions are] organized in a way that supports reasoning about the structural and behavioral properties of the system and its evolution.” ► (ArchiMate® 2.1) Behavioral Dynamics Structural Components Training at http://avancier.website Structure v Behaviour (2) Avancier ► Behavioural elements ► Structural elements ■ describe what a system does ■ are typically called processes or activities Transient behaviour Activities Events Operations Processes Rules Flows Dynamic behaviour ■ describe what a system is made of ■ are typically called components, actors or roles Persistent structure Actors Entities Objects Performers Roles Stocks Static components ► Also passive structure elements (objects on which behavior is performed). Training at http://avancier.website Structure v Behaviour (3) Avancier ► Behaviours (processes) are distinguishable from structure ► by having start and end points in time (sometimes cyclical) ► Structure (components) are distinguishable from behaviour ► by being addressable in space. ■ In natural systems, behaviours create and sustain the components (autopoiesis). ■ But to get behaviours performed in a designed systems, external entities must address the structural elements. ■ Component types (roles) are not addressable, but component instances (actors) must be. Training at http://avancier.website ArchiMate generic meta model - overview Avancier ► TOGAF focuses on components that offer services ► But architects have to think also about sequential processes, and how services are presented to consumers via interfaces. ArchiMate 2.1 Behavioural elements Structural elements External users in the environment of the system External view Service “a unit of functionality which provides a certain value.” Interface “a point of access where one or more services are made available to the environment.” Internal view “a unit of activity performed by one or more active structure elements.” e.g. Process or Function “an entity that is capable of performing behavior.” e.g. Component, Role or Actor Training at http://avancier.website ArchiMate generic meta model – in detail Service: a unit of functionality that a system exposes to its environment, hides internal operations, provides a value; accessible through interfaces. Passive structure element: object on which behavior is performed. Avancier Interface: a point of access where services are made available to the environment, provides an external view on the service provider and hides its internal structure. External System Internal Behavior element: a unit of activity performed by Active structure element: an entity one or more active structure elements. capable of performing behavior Training at http://avancier.website The primacy of behaviour Avancier ► Our domain is not designing a building made of passive bricks. ► It is modelling an activity system that responds to discrete events and service requests. ► In this domain, system architects have long been taught to define required behaviours before designing structures. Construction Training at http://avancier.website ArchiMate’s approach reflects system theory 1. Realisation: we encapsulate the system ■ Then “realise” the external elements (services and interfaces) by defining the internal elements. 2. Construction: we define the behaviours of a system. ■ Then “construct” the system by assigning structural components to access/perform those behaviours. Realisation Construction Training at http://avancier.website Avancier Aside: on the ambivalence of a structural element ► It is described in terms of the behaviours it can perform, and exists to perform them. ► At run time, an active component instance has a "thread of control”. ► But that doesn’t make it a behaviour. Training at http://avancier.website Avancier The meta model shows these relations between elements Avancier One Service can be assigned from > 1 Interface. One Interface can be assigned to > 1 Service. One Service can be realised by > 1 Behaviour element One Interface can compose > only 1 Active structure element? One Behaviour element can realise > 1 Service One Active structure element can be composed of > 1 Interface. One Active structure element can be assigned to > 1 Behaviour element One Behaviour element can be assigned from only 1 Active structure element? Training at http://avancier.website Making sense of the relations between elements Avancier “The Application Layer supports the business layer with application services which are realized by (software) applications.” App Service “Services are accessible through interfaces, which constitute the external view on the active structural aspect.” “An interface provides an external view on the service provider and hides its internal structure.” Services are realised by Functions. App function App interface “A behavior element is defined as a unit of activity performed by one or more active structure elements”. Training at http://avancier.website App component Making sense of relations in the meta model Avancier ► The standard’s narrative makes more sense than the meta model ► And can be read to mean as follows App Service One Service can be accessible through > 1 Interface. One Interface can enable access to > 1 Service. One Service can be realised by > 1 Function One Function can realise > 1 Service App function App interface One Interface can hide only 1 Component? One Component can be hidden by > 1 Interface. One Component can perform > 1 Function. One Function can be performed by only 1 Component? Training at http://avancier.website App component Aside: on ArchiMate’s 3rd dimension Avancier ► “The ArchiMate Language Primer” by Lankhorst et al. defines a 3rd dimensions of system description. ■ behaviour --- structure. ■ internal --- external, also ■ individual --- collective. External Collective Behaviour Structure Individual Internal ► But ArchiMate's general position is as follows: ► "At the enterprise architecture abstraction level, it is more common to model types rather than instances. ► In most cases [we] model an object type (cf. a UML class), of which several instances may exist.” Training at http://avancier.website Concept Framework ► ► ► ► Part I: The Generic Meta Model Part II: The Enterprise Architecture layers Part III: Applying the Meta Model to EA layers Part IV: Similar concepts in System Theory Training at http://avancier.website Avancier The focus of enterprise architecture ► The standard says architects are concerned with “information-intensive organisations”. ► That is, businesses where ► business processes are enabled and supported by ► information systems that capture and provide business data, which are enabled and supported by ► a platform of infrastructure technologies. Training at http://avancier.website Avancier EA is much about processes that create and use business data ► “the domain of information-intensive organisations…is the main focus of the language” ■ (The ArchiMate modelling language standard v2.1) ► “EA is the determinant of survival in the Information Age.” ■ (John Zachman) ► “Today’s CEOs know that the effective management and exploitation of information through IT is a key factor to business success.” ■ (TOGAF 9.1) ► "companies excel because they've [decided] which processes they must execute well, and have implemented the IT systems to digitise those processes." ■ (Ross, Weill and Robertson) Training at http://avancier.website Avancier ArchiMate says Avancier ► “Architecture descriptions are formal descriptions of a system ► [and of] information-intensive organisations” “offers products and services to external customers - realized in the organization by business processes performed by business actors.” “supports the business layer with application services - realized by (software) applications.” “offers infrastructure services needed to run applications - realized by computer and communication hardware and system software” “The ArchiMate Language Primer” Training at http://avancier.website “ArchiMate 2.1.” Architecture layering Avancier ► Summary view Architecture ArchiMate 2.1 standard says layer Core system elements “offers products and services to external customers Business services realized in the organization by business processes performed by business actors.” Actors playing Roles (think business components) in processes Business “supports the business layer with Applications application services Application services realized by (software) applications.” Application components “offers infrastructure services needed to run applications Infrastructure services Infrastructure realized by computer and communication hardware and system software” Training at http://avancier.website System software (think infrastructure components) Concept Framework ► ► ► ► Part I: The Generic Meta Model Part II: The Enterprise Architecture layers Part III: Applying the Meta Model to EA layers Part IV: Similar concepts in System Theory Training at http://avancier.website Avancier Applying the generic meta model to the architecture layers Passive Structure Behavior Avancier Active Structure Business Service Business Interface Business Process Function Business Role App Service App Interface Business Object Data Object Business Actor Business Applications App Function App Component Infrastructure Service Infrastructure Interface Infrastructure Function (inc. Sys Software & Device) Artifact Training at http://avancier.website Node Infrastructure Technology ArchiMate’s Business layer meta model ► Notice the generic meta model Copyright © 2009-2012 The Open Group, All Rights Reserved. ArchiMate is a registered trademark of The Open Group. Training at http://avancier.website Avancier Event or Process <triggers> Process Avancier ► Classically, a process is triggered by an event, ► and proceeds step by step to a conclusion Meaning ? Instant ? Write access Split or choice? Read access Training at http://avancier.website Service Interface Process Role/Actor Triggers in ArchiMate process flows ► Classically, a trigger from A to B in a flow chart means ■ there is a transfer of control, A stops and B starts. ► An ArchiMate trigger from A to B means that ■ B is started by, or causally depends on, A, ■ Whether A stops is not defined. ► So, is this a process flow or component communication diagram? ■ Strictly, to disambiguate, you’d need to annotate to say a process does not persist (as a component does) after the trigger has been fired? Training at http://avancier.website Avancier On the absence of a "control flow" arrow ► This omission seems odd in a language intended for the "formal description" of systems. ► It leaves the "trigger" arrow with the dual task of ■ "start up" alone, or ■ "control flow" as well. ■ (And note that if a trigger points to a structural element, it will represent neither the start up of that elements, nor a control flow to it). Training at http://avancier.website Avancier The interfaces used/shown by the insurance seller? ► How is the Seller is engaged in the Service via the Interface? ► What do the symbols say about this? Training at http://avancier.website Avancier Service Interface Process Role/Actor Interface <composes> Role Role <composed of> Interface ► Surely a seller is not <composed> of a telephone? ► Perhaps the Role <is instantiated via> the Interface? Training at http://avancier.website Avancier Service Interface Process Role/Actor Service <realised by> Process ► So Service <encapsulates> Process? ► E.g: Policy Creation, Claim Registration, Claim Payment. ► A service contract can define the pre and post conditions of the process Training at http://avancier.website Avancier Service Interface Process Role/Actor Service <assigned from> Interface “Services are accessible through interfaces, which constitute the external view on the active structural aspect.” ► Note the mix of ■ business entities (business service and seller) ■ infrastructure entities (web and telephone) Training at http://avancier.website Avancier Service Interface Process Role/Actor Hmm… Avancier ► A traffic control system makes services accessible to its users via ■ business interfaces (monitor and control panels), connected via ■ more generic infrastructure interfaces (e.g. telco network). ► Should the Telco mast be drawn as an “interface” on a Business Architecture level diagram? Training at http://avancier.website Hmm… Avancier ► An application makes services accessible to users via ■ graphical user interfaces, transmitted over ■ more generic infrastructure interfaces (TCP, IP, Ethernet). ► Should TCP, IP or Ethernet be drawn as an “interface” on an App Architecture level diagram? Training at http://avancier.website Interfaces <used > to access the service by customers ► A call centre operator (with a script), addressable using a telephone number ► A web site UI, addressable using a web address Training at http://avancier.website Avancier Service Interface Process Role/Actor 1:1 relations can be overly clunky ► In other cases, there can be ■ 1 Interface to several Services ■ 1 Service to several Interfaces Training at http://avancier.website Avancier Service Interface Process Role/Actor Role <uses> Service Avancier ► Customer <uses> Insurance Selling Service Service Interface ► OK, but is Customer an Actor or a Role? Process Role/Actor Role Actor Training at http://avancier.website Types and things that instantiate them ► Planet is an entity type. ■ It defines the attribute types of a thing that instantiates the planet type ● A large, sun-orbiting, body ► Venus and Mars are individual things ■ that instantiate the attributes types of the entity type (and more) Outside ArchiMate, Role to Actor is Type to Instance, or Logical to Physical, or perhaps even External to Internal. Role ► Roles are entity types ■ A role defines the attribute types of a thing that instantiates the role . ● ● Actor Behaviour: primarily, the services provided to others Structural attributes: qualifications, skill level, salary… ► Actors are individual things (with names and addresses) ■ that instantiate the attributes types of the role (and more) Training at http://avancier.website Avancier ArchiMate definitions can be read as role/type to actor/instance Role Actor ► "A business role is defined as the responsibility for performing specific behavior, to which an actor can be assigned. ► A business actor is defined as an organizational entity that is capable of performing behavior.“ ► You might read the indefinite article (an) as distinguishing ■ instance (an elephant) from ■ type (elephant). ► But people don’t like the Role symbol ► So they use the Actor symbol instead ► And the ArchiMate distinction is blurred Training at http://avancier.website Avancier Roles and Actors in Logical and Physical Models All structural component instances (be they actors, app components or nodes) must be addressable. Otherwise they could never be found when required to do work in the system. Still, putting the name and address of an actor on a diagram is not to model that actor per se. The diagram shows only a role that actors can play in the system or situation of interest to us. For a computer actor, the model likely excludes power supply, circuit boards, ventilation etc. For a human actor, the model defines only (say) 0.0000001 % of the real-world person's capability. In a logical model, we model the attributes of a Role that Actors can or do play in our system. Where a Role is played by only one individual Actor, we can signify that by using an Actor symbol. But we want the flexibility to replace that Actor (in the Role) without changing the model. If one and only actor can play a role, and unlikely to move, then we might include their name and address in a logical model, but that is an exception. In a physical model, we are more likely to assign names and addresses to actors. But only if the diagrams actually do show individuals. Network diagrams may show the names and addresses of hardware nodes, firewalls and data servers. But it is rare to see the names and addresses of people. Training at http://avancier.website Avancier Interface <assigned to> Service ► Can we assign a Service to an Interface? ► Or say Service <accessible via> Interface? Training at http://avancier.website Avancier Service Interface Process Role/Actor Role <composed of> interface ► Alternatively, Role <provides> Interface? ► Why show the web form as an interface of a seller role rather than a web application? ► Is the seller a user of that application? Training at http://avancier.website Avancier Service Interface Process Role/Actor Collaboration <aggregates> Role ► Is Collaboration played by one Actor? Or two? ► Could it be replaced by an aggregate Role symbol? Avancier Service Interface Process Role/Actor Collaboration Training at http://avancier.website ArchiMate’s Application layer meta model ► Notice the generic meta model Avancier Service Interface Function Component Copyright © 2009-2012 The Open Group, All Rights Reserved. ArchiMate is a registered trademark of The Open Group. Training at http://avancier.website What does Function mean? Avancier ► To some - a purpose of a system. Service Interface ► In TOGAF and BSC reference model - a logical component Function Component ■ a logical organisation unit, ■ a business function as opposed to a process. ► In UML and maths - a special kind of process ■ that transforms a set of input values to a set of output values without reference to system state. ► In ArchiMate – is a function ■ a process? a component ? either or both? Training at http://avancier.website Service <realised by> Function ► You could read 1 Service to 1 Function to say the Function is a Process encapsulated by the Service Training at http://avancier.website Avancier Service Interface Function Component 2 Services <realised by> 1 Function ► You could read this to say the Function realises ■ 2 Services in 1 stateful (Create-Send) Process flow ■ 2 Services that are not related this way Training at http://avancier.website Avancier Service Interface Function Component Are Functions behavioural or structural? ► In biology: ■ Heart, lungs and skin are structural elements. ■ Breathing, running and perspiration are behaviours. ► In UML: ■ Multi-operation classes/objects are structural elements. ■ End-to-end operations are behaviours. ► In ArchiMate, are Functions behavioural or structural? ■ An end-to-end Function is certainly a behaviour (cf. UML operation) ■ A multi-service Function is more like a structural element (cf. UML Class). Training at http://avancier.website Avancier Notes on the structure/behaviour distinction Avancier ► “A behavior element [e.g. a Function] is defined as a unit of activity performed by one or more active structure elements [e.g. Component].” ArchiMate 2.1 ► That seems clear; a Function is discrete process with a start and end in time. ► So what is the other kind of Function in this ArchiMate illustration? ► One that associates temporally-unrelated Services? ► It is not a discrete unit; it is a *structure* that groups several units. ► Is this a purely imaginary grouping on a diagram, of no consequence for designers? ► Or something to be implemented as a component or sub component of some kind? ► If the Function symbol straddles structure and behaviour, then ■ the reader of the symbol cannot be sure which is meant ■ ArchiMate has no symbol devoted to the concept of a discrete process ■ It seems redundant to the sense or purpose of the standard. Training at http://avancier.website Function <assigned from> Component ► Generally speaking, a functional decomposition is a structural component decomposition. How to distinguish the notion of a multi-service function from the notion of a multi-service component? Training at http://avancier.website Avancier Service Interface Function Component Function Avancier ► Function has (or has been given by illustrators) the dual task of representing a behaviour and a structure. ► Replacing Function by Process would remove this ambiguity. Training at http://avancier.website Service <realised by> Function Interface <composes> (composed into?) Component Avancier Service Interface Function Component ► 1:1 relations can be overly clunky ► Generally speaking ■ 1 Interface to several Services. ■ 1 Service to several Interfaces ► And ■ 1 Component to several Functions. ■ 1 Function to several Components? Training at http://avancier.website Making sense of relations in the meta model Avancier ► The standard’s narrative seems clearer than the meta model, and suggests (to me at least) these associations App Service One Service can be accessible through > 1 Interface. One Interface can enable access to > 1 Service. ► See note 2. One Service can be realised by > 1 Function One Function can realise > 1 Service? ► See note 3 App function App interface One Interface can be realised by > 1 Component One Component can be hidden by > 1 Interface. One Component can perform > 1 Function. One Function can be performed by > 1 Component? ► See note 1. Training at http://avancier.website App component Note 1: One Function can be performed by only 1 Component? ► Some favour defining behaviour such that only one Component performs one Function. ► However, architects compose and decompose Functions and Components. ► Just as Actors playing different business Roles may cooperate in performing a Business Process. ► So, many small Application Components may cooperate in performing an Application Function. ► Architects make a design choice as to ■ give a control of a Function to one Component (fork style) or ■ distribute control between Components (chain style). Training at http://avancier.website Avancier Note 2: One Service can be realised by > 1 Function ► If you find a process flow in a diagram that connects Functions by Triggers, you can encapsulate it behind a service contract. ► The diagram suggests the whole end-to-end Function is encapsulated by one coarse-grained Policy Creation Service. ► Similarly, any application "use case" definition can be defined as an end-to-end Function encapsulated by one Service. Training at http://avancier.website Avancier Note 3: One Function can realise > 1 Service? Avancier ► If one Function can realise several Services, then it is hard to distinguish a Function from a Component. ► And if we can’t distinguish a Function from a Component, we can’t distinguish structural elements from behavioural elements S1 S2 S3 S4 ► How about constraining when 1 Function realises > 1 Service? ► Limit it to the case where several fine-grained Services are connected by the flow of one end-to-end Function? Training at http://avancier.website Proposal: give “Process” its due place in the meta model ► Where is the concept of a start-to-end behavioural element under a control flow? ► We have Components ► Do we need Functions that mimic them? ► We do need Process ► Proposal: ditch Function for Process or Operation ► A long Process can be encapsulated behind a coarse-grained Service contract ► Shorter Process steps can be encapsulated behind finer-grained Service contracts Training at http://avancier.website Avancier Business Service Business Interface Business Process Business Role/Actor App Service App Interface App Operation App Component Infrastructure Service Infrastructure Interface Infrastructure Operation (Sys Software or Device) Node A provided Interface should also be a required Interface ► How does the “required interface” cup differ from “used by” arrow? ► Is this the name of ► The Interface? ► One Service? ► A Data flow passed in a Service? Training at http://avancier.website Avancier Service Interface Function Component Interactions - between components in a collaboration Could be defined in a UML sequence diagram? Avancier A somewhat artificial construct ► Interaction ► Collaboration ■ A process? ■ A transient cooperation between components or roles ■ An aggregate of components/roles ■ to which interactions can be attached Are there aggregate Services and Interfaces? Training at http://avancier.website ArchiMate’s Technology (Infrastructure) layer meta model ► Notice the generic meta model Copyright © 2009-2012 The Open Group, All Rights Reserved. ArchiMate is a registered trademark of The Open Group. Training at http://avancier.website Avancier Service Interface Function Node Nodes Avancier ► “A node is defined as a computational resource upon which artifacts may be stored or deployed for execution.” ■ “A device: a physical computational resource, upon which artifacts may be deployed for execution.” ■ “System software: an infrastructural software component running on a device.” Training at http://avancier.website Node: Devices and Networks ► Why not include these lines in the relations? ► A communication path is a link between nodes, through which they can exchange data. ► Why use association lines here? ► Because a path is between nodes Training at http://avancier.website Avancier Service Interface Function Node A human-level interface at the top of a communication stack ► A telephone presents an interface humans can use ► A telephone connection uses a communication path ► A telco provides a network for communication paths to be established Training at http://avancier.website Avancier System software node <assigned to> Device node ► “System software represents a software environment for specific types of components and objects that are deployed on it in the form of artifacts” Training at http://avancier.website Avancier Service Interface Function Node FTP could possibly appear as the name of ► the interface to an FTP server node Avancier FTP Unix server ■ (system software or device) ► a system software component. FTP server ► an artifact deployed to a server node ■ (system software or device) FTP server Unix server ► an attribute of a data flow between application components FTP protocol ► an annotation on a network connection or used by arrow ► an attribute of an service accessible via an interface. Copyright Avancier Ltd Get (via FTP) FTP protocol Here, Get is Service FTP is Interface Artifact <assigned to> Software System ► “An artifact is defined as a physical piece of data that is used or produced in a software development process, or by deployment and operation of a system.” ► “Artifact <realises> Application Component” ► What does realisation mean here? ► Could one show the Application Component directly? Training at http://avancier.website Avancier Service Interface Function Node Service <realised by> Infrastructure Function or System Software ► Why does the DBMS have no symbol in the corner? ► Are these Services really Interfaces? Service Interface Function Node ► How does a Software System Function differ from a Component? ► 1-to-1 relations make for clunky diagrams Training at http://avancier.website Avancier Infrastructure Usage Viewpoint ► Are these Services really Interfaces? ► 1 to 1 relations make for clunky diagrams Training at http://avancier.website Avancier Service Interface Function Node “Service” is a very slippery concept Avancier Service Interface Function Node Are these really Interfaces, or Network Connections to Apps on higher Nodes? Training at http://avancier.website Questionable use of “Realisation” relation Avancier ► A Software System “realises” an Application Component? ► A hardware Device Node “realises” an Application Component? Is this system software? Should be used by ► Why is only one Communication path shown? Training at http://avancier.website Concept Framework ► ► ► ► Part I: The Generic Meta Model Part II: The Enterprise Architecture layers Part III: Applying the Meta Model to EA layers Part IV: Similar concepts in System Theory Service State Interface System Process Training at http://avancier.website Component Avancier Where to look for inspiration? Avancier ► ArchiMate looks to natural language ■ subject = active structure element ■ verb = behavior element ■ object = passive structure. Object Verb Subject Service Interface Process Component ► Natural language is malleable ■ The dog <bit the tail of> itself ► It is arguable that general system theory provides a more secure platform for the generic meta model Training at http://avancier.website State What is an activity system? ► In essence. ■ ■ ■ ■ a set of components that perform roles in processes to achieve desired effects, by maintaining system state and/or producing outputs (goods or services). Training at http://avancier.website Avancier Five tenets of general system theory 1 A system description is abstraction. 2 A system is logically bounded within its environment 3 A system interacts with its environment via inputs and outputs 4 Holism: a system’s components are related in structures and interact in processes 5 A system processes information and maintains an internal state “real systems are open to, and interact with, their environments, the arrangement of and relations between the parts which connect them into a whole (cf. holism). system-environment boundary, input, output, process, state, hierarchy, goal-directedness and information. a system is independent of the concrete substance of the elements” Principia Cybernetica Training at http://avancier.website Avancier Environment Desired effects on external entities and activities Inputs Outputs Processes Components State System General system theory concepts - used in the BCS ESA RM Avancier 1 A system description is abstraction. 2 A system is logically bounded within its environment 3 A system interacts with its environment via inputs and outputs Service 5 A system processes information and maintains an internal state Interface System State Process Component Environment 4 Holism: a system’s components are related in structures and interact in processes “real systems are open to, and interact with, their environments, the arrangement of and relations between the parts which connect them into a whole (cf. holism). system-environment boundary, input, output, process, state, hierarchy, goal-directedness and information. a system is independent of the concrete substance of the elements” Training at http://avancier.website Behavioural elements v. Structural elements Avancier “It is the pervading law of all things organic and inorganic, of all things physical and metaphysical, of all things human and all things super-human, of all true manifestations of the head, of the heart, of the soul, that the life is recognizable in its expression, that form ever follows function. This is the law.” American architect Louis Sullivan, 1896. Event/ Service ► Behavioural elements ► named using a verb ► has a start and end in time (and usually repeats). Interface System Process Component Behavior Active Structure ► Structural elements named using a noun ► can be found at an address. Usually, persistent component/roles outlive transient processes. This is not always true, but it is a helpful way of thinking about the structure/behaviour distinction. Training at http://avancier.website A system is encapsulated in an environment Avancier Environment Hot dinners Cold snacks Drinks Order Cook Serve Event/ Service Interface System Process Component Behavior Active Structure Training at http://avancier.website A la carte menu. Table d’hote menu Today’s specials. Waiter Chef Oven Where is the system’s state? Avancier ► The system’s information state ► (its memory, which is updated and referred to by processes) ► contains structured business data objects Object: an item or structure that is used, moved or made by processes Event/ Service Object Passive Structure Interface System Process Component Behavior Active Structure A system processes information and maintains an internal state Training at http://avancier.website System elements are recursive Avancier Environment A system description is abstraction. Event/ Service Object Passive Structure Interface System Process Component Behavior Active Structure Training at http://avancier.website 5 system description entities as Avancier defines them Service: what a client can request to process a specific event or deliver a specific result Object: an item or structure that is used, moved or made by processes Interface: presents services for access by clients Event/ Service Object Passive Structure Interface System Process Component Behavior Active Structure Process: a sequence of activities Component: a subsystem that that respond to an event or meet a performs process steps. service request. Training at http://avancier.website Avancier Beware that “interface” can be interpreted two ways Avancier ► as a passive structural element – e.g. a menu. ► as an active structural element via which services are invoked – e.g. a waiter. External Service Interface menu? waiter? Process Component Behavior Active Structure Internal ► The latter is a special kind of component, a facade component, which shows an interface definition to service consumers. Training at http://avancier.website Interface as a passive structural element Behaviour what the system does External Services: operations clients can request to deliver a result required by external Service entities Internal Process the workings of the Processes: executed step by step system to meet service requests Avancier Structure what the system is made of Interfaces: present services Purely descriptive of services offered accessible by clients. Interface Component Components: subsystems that execute processes. Training at http://avancier.website The menu The waiter who presents the menu Interface as an active structural element Behaviour what the system does External Services: operations clients can request to deliver a result required by external Service entities Internal Process the workings of the Processes: executed step by step system to meet service requests Avancier Structure what the system is made of A façade giving Interfaces: present services component, access to services accessible by clients. Interface Component The waiter* who presents the menu The chef who processes the order Components: subsystems that execute processes. * Not the waiter actor. Rather, that part of the waiter role that is merely a façade. The waiter actor (a person) can play that and play other roles Training at http://avancier.website Aside: further reading Avancier ► For formal yet natural language description of business rules, then ■ try Semantics of Business Vocabulary and Business Rules (SBVR) ■ a standard of the Object Management Group (OMG) ■ part of their Model Driven Architecture (MDA). Perhaps also ORM? http://www.orm.net/pdf/ORM2_TechReport2.pdf ► For an exploration of system theory and how it differs from systems thinking ■ See Systems Theory for Architects at avancier.website Training at http://avancier.website Architecture frameworks ► Avancier Methods are useful with all architecture frameworks that share similar domains and entities Avancier BCS E&SA reference model ArchiMate Language Framework ► http://avancier.co.uk TOGAF The Open Group Avancier Methods CSC’s domains of change (POLDAT) IBM’s view EA EA as Strategy” MIT Training at http://avancier.website
© Copyright 2024