Functional Architecture Session 11 Course ICT-Entrepreneurship Prof.dr. Sjaak Brinkkemper
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
Architecture Definition: An Architecture is a high-level decomposition of a system into major components together with a characterization of the interaction of the components (van Vliet 2000) Purpose: 1. Communication among stakeholders Architects, Product Mgrs, Software Engineers, Testers, Sales&Marketing, Consultants, Customers 2. Capturing design decisions Rationale for later reference 3. Transferable abstraction for reuse Generalized constructs to be applied in other contexts
Types of architecture Functionele architecture: usage perspective Enterprise architecture Application architecture Technical architecture: development perspective Software architecture Component architecture System architecture Data architecture Data flow architecture Examples of different architectures on the next slides
Functional architecture BaanERP Sales Service Planning Manufacturing Distribution E-Sales Apropos Order Promising PDM Designer SalesPlus E-Service Planner MES RoutePro SalesPoint E-Service Remote Demand Planner Scheduler TransPro Configuration Service Scheduler TQM BidPro Enterprise Professional ERP Collaboration Business Intelligence Portal
High level technical architecture User Interface Win-XP, Browser, X- Windows, even ASCII User Interface Driver Application Logic Middleware Other Application Data Access Layer DBMS Driver Database Management System IBM DB-2, Oracle, MS SQL Server, Informix
Software architecture Business Object Repository Subscription Repository BOR Layer Subscription Layer Interface Interface QCD DCD BOI implementation OpenWorld ERP Public method Protected method Audit Trail Synchronization Server BOI implementation BOI implementation BOI proxy ERP Database DAL DAL2 DAL2 Business Object Business Object Layer Interface User Interface ERP Server Adapter BOI proxy ERP Client Adapter Bus Client Adapter BOI implementation James Server Adapter SCM / CRM / PLM / E-E /
Component architecture Function drivers Shared services Data banker Physical models Filter behaviors Software utilities Device interfaces Application data types Extended computer
Component Architecture
Data Architecture Cost Components (tcmcs048) To From Diag. Name tiasc Diag. Desc. Module - Assembly Control Diag. Version tib51a Modification Date 26-11-1999 Currencies (tcmcs002) Financial Transactions (tiasc710) is for is for uses operation cost component uses overhead cost component uses material cost component Assembly Line Status (tiasc720) Line Utilization (tiasl300) Utilization per Critical Option Combination (tiasl310) is for refers to Assembly Lines (tiasl130) has has has is for Assignments (tiasc510) has calculation office Line Segments by Assembly Line (tiasl141) Calendar Codes (tcccp010) is part of Option Combination Expressions (tiasl160) Exchangeable Configurations (tiasl230) is for is planner for Employees (tccom001) is critical in is refered to in Option Combinations (tiasl110) blocks or clusters blocks Line Sequences (tiasl400) for Line Segments (tiasl140) is for Line Rules by Line refers to Segment (tiasl171) placement Option Combination Line Rules (tiasl170) Lists (tiasl111) Option Combination Lists - Option Combinations (tiasl165)
Data Flow Architecture Pilot, external world Device interfaces values to display stored values computed values computed values Data banker sensor inputs Shared services Function drivers stored values calculated real-world values sensor values filtered values Physical models Filter behaviors
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
What makes a good architecture?
What makes a good architecture? Architecture is a premier key to the success of a product Good architectures survive many releases New functionality can easily be incorporated Elegancy of a product is reflected in the elegancy of the architecture What makes a good design? SAP R3, Google SE, MS Windows, Linux, No scientific evidence of good architectures Some evidence for other domains: electronics, building, civil engineering
Influences on architecture Requirements of product Functionality Technical context Development organization and history Earlier versions Other systems Background and expertise of architect Technical environment Design tools available Development platform
Design structures Design structures for the functional architecture A. Modularity: structure and flexibility What are the modules? For now and for in the future? B. Variability: multiple platforms and products What variability is to be distinguished? Both technical and functional In which modules resides the variability? C. Interoperability: interfacing externally What interfaces are needed? Standards or dominant players available? Positioning of interfaces in architecture? Discuss these on a beamer
Example: Technical modularity UI Windows UI GSM UI PDA Windows UI Module UI Driver Module Generic UI Module Application Module Application Module A. Single UI platform B. Multiple UI platforms
Example: Functional modularity Retail Factory outlet Distributor Warehousing Module WH scenario Module Generic WH Module Manufacturing Module Manufacturing Module A. Single Warehousing scenario B. Multiple Warehousing scenarios
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
Product Software Architecture 1. Functional Architecture use Enterprise Function Diagram 2. Technical Architecture use techniques from other courses UML software architecture diagram
Functional Architectures A functional architecture is an architectural model from a usage perspective So the functional architecture should resemble the enterprise functions of the customer organisation or user context Names of modules should resemble the names of enterprise functions Flows in functional architecture resemble the interactions in the customer domain Standard functional architecture is called Reference Architecture More theory on these types of models is presented in the course Enterprise Architecture
Example of Functional Architecture On-line authoring tool import Templates Mgmt template upgrade Authoring drafts Draft Management final document sign off Publish ing authoring request print ready document references comments image order
Example of Functional Architecture for ERP product Bussiness Planning BusinessPlan Product Innovation Product Information PO/ Contracts/ Inquiries Progress Purchase Material Plan Master Planning Requirements Planning Subcontracting Production Master Plan Material Plan Production Orders/ schedules Warehousing Sales Order Ready for Assembly Assembly FAS Order Sales Packing and shipping order Sales Forecast Customer Request Invoiced Sales Order Received Goods Picking List Picking List Shipment order Receipt & Goods Component Manufact. Assembly Packing & Shipping
Enterprise Function Model definition Enterprise Function Model An Enterprise Function Model is the representation of the primary process of an enterprise, consisting of its physical and administrative functions The Enterprise Function Model also helps to: identify the main functions show the interaction of the enterprise functions create a clear overview of the enterprise as a whole EFD: Enterprise Function Diagram
Product usage scope Example: Collaborative authoring import Templates Mgmt template upgrade Authoring drafts Draft Management final document sign off Publish ing authoring request print ready document references Reference Mgmt comments Reviewing image order Image Handling
Functional Architecture On-line authoring tool Module import Templates Mgmt template upgrade Authoring drafts Draft Management final document sign off Publish ing authoring request print ready document references comments image order Product scope Information flow Note: We assume it has been decided that Reference management, Reviewing and Image handling are not in the scope of the product
FA on module level: Authoring Language Support suggestions Completeness Checking final document Writer draft stamps final draft language settings empty template Drafting drafts template Template Selection reviewer draft Authoring Review Handler reviews Module scope Sub-module
FA of Draft management Sub-module Baseline Checker sign off draft authored draft Draft Administration references review comments draft template upgrade Change Impact Analyzer Draft Management Module scope
Notation of EFDs Publishing final document Module or sub-module Color is used for categorization All words start with Capital Flow all lower case Scenario as overlay on EFD
Scenario on EFDs New Sales Order Assembly Order Sales Order Management Packing & Shipping transfer Assembly Order Executed Sales Order executed Packing & Shipping control executed Assembly Control Pack & Ship Control Shop floor Order Shop floor Order Executed Shipping Order Shipping executed Final Assembly Packing & Shipping Components Finished goods Shipment
Technical systems FA can also be provided for technical systems User Interface User Interface Driver BPEL Editor BPEL Process Mgr Workflow Rules Business Activity Monitoring Application Logic Web Service Manager Security Enterprise Service Bus Adapter Transformer Routing Data Access Layer DBMS Driver OLE Application Server DBMS
Identifying Enterprise Functions What is an Enterprise function? Definition: An enterprise function is a collection of coherent processes, continuously performed within an enterprise and supporting its mission Examples: Corporate Planning Human Resource Management Supplier Contract Management Shop Floor Control Naming standards: Use substantivised nouns: Planning in stead of Plan Precise, determining words known in the business domain Name is Capitalized
Identifying Functions (2) Function Typology Life cycle stadium of a product or service: Design, Manufacturing, Distribution, Purchase Supporting resources: Human Resource Management, Facility Management Control and planning of the company core activities: Administration, Finance, Credit Control Usually two levels are enough for Functional Architectures
Identification of interfaces Assembly Scheduling Production Order Control Sales Order Request Definition Sales Order Fulfillment Sales Order to be Fulfilled C U Fulfilled Sales Order S T O M E R Pick Control (Prod.) Production Operation Control Receipt Control (Prod.) Pick Control (Sales) Packing Control Shipping Control Assembly Packing Shipping
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
Decomposition What is a process? A business process is an activity of which the execution can be described in terms of needed and delivered data and of which the start and end can be determined. A process is the WHAT a company does Not HOW it is being done. stock order details product details receive order order rejected order
Functions versus Processes Examples of Processes: accept order create delivery schedule receive payment pay employee verify customer credit rating Lower level of detail compared to a function No realization (how) information Processes are modeled in the Feature Model
Functional Decomposition The modules in a functional architecture are modelled in 2 or 3 layers At the lowest level the module consists of features Definition: Feature is a discrete unit of unique and attractive functionality of a product that delivers measurable benefit to customers The lowest level modules are elaborated in a feature model M1 M3 M11 M12 M13 F1 F2 F3 F4 M2 Mn Mn1 Mn2 Mn3 Mn4
Example: Authoring tool Templates Authoring Publishing Draft Mgmt Language Support Template Management Writer Drafting Completeness Checking Review Handler Baseline Checker Draft Administration Change Impact Analyzer Open draft Save draft Save draft as Convert draft Send draft to Select rules Run checker Provide statistics.
Reality vs. Product Function Module Processes Features
Features Feature models are a modeling tool for the process support functionality in a software product. See: Matthias Riebisch Towards a more Precise Definition of Feature Models - Modelling Variability for Object-Oriented Product Lines. BookOnDemand Publ. Co., Norderstedt, 2003. pp. 64-76.
Feature models Writer Drafting Template Mgmt Review Handler Open draft Saving File exchange Save draft Save draft as Convert draft Send draft to
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
Positioning Bussiness Planning Product Innovation Control PO/ Contracts/ Inquiries Progress Material Plan Master Planning Requirements Planning Subcontracting Production Master Plan Material Plan Production Warehousing Purchase Assembly FAS Order Orders/ schedules Product Information Sales Order Ready for Assembly Sales Sales Forecast Customer Request Invoiced Sales Order Packing and shipping order Received Goods Picking List Picking List Shipment order Receipt & Goods Component Manufact. Assembly Packing & Shipping Flow of execution progress
Hierarchical positioning of modules Strategic functions (management) Tactical functions (control) Operational functions (execution) Supportive functions (platform)
Sequential positioning of modules 3 rd Party Products Input functions Processing functions Output functions 3 rd Party Products
Superpositioning Input functions Processing functions Output functions Strategic functions Plan (management) Source Deliver Tactical functions Control (control) 3 rd Party Products Operational Processing functions (execution) 3 rd Party Products Supportive Supportive functions (platform)
How to position the modules? Input functions Processing functions Output functions Bussiness Planning Product Innovation 3 rd Party Products PO/ Contracts/ Inquiries Progress Material Plan Received Goods Receipt & Goods Strategic functions (management) Master Planning Requirements Planning Production Component Manufact. Master Plan Warehousing Assembly Purchase Assembly Subcontracting Material Plan Tactical functions (control) Production Picking List FAS Order Orders/ schedules Picking List Product Information Sales Order Ready for Assembly Operational functions (execution) Supportive functions (platform) Sales Packing & Shipping Shipment order Sales Forecast Customer Request Invoiced Sales Order Packing and shipping order 3 rd Party Products
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
Reference Architectures A Reference Architecture is a generic functional architecture for software products in a particular line of business Purposes: Expressing complete functional coverage in line of business Indication of the functional coverage of a product Indication of the technical quality of a module Identifying market growth options and roadmap Positioning with 3rd party products Sources on the web, e.g.: Supply Chain Operations Reference (SCOR), see scor.org
ITIL models
Cobit: Control Objectives for Information and related Technologies (COBIT)
Quality Indication on Reference Architecture Technical Quality Key: Differentiator Good Weak Opportunity
Variability Indication on Reference Architecture Business Variability Key: Real Estate Facility Mgmt Both
Healthcare EFD Insurers Regulators Payers Health Interest Groups Care Business Management Quality Point of Service Planning & Budgeting Client Client Order Management Client Care Process Control Public Health Supplier Intake Observation Interpretation Intervention Resource Allocation End of Episode of Care Educational Organization Financial Administration Care Customer External Care Provider Materials Management Human Resource Mngt / Payroll Supplier Management Reporting / Analyzing Facilitating Functions Service Management Customer Request Mngt. Project Management Customer
Care Planning & Budgeting Demand Forecast Definition Care Business Management Contracts to be Managed Demand Plan to be (Re) defined Demand Plan to be (Re) defined Demand Plan Definition Demand Plan to be (Re) defined Resource Planning to be (Re) defined Resource Plan to be (Re)defined Internal Budgets to be (Re) created Resource Plan Definition Financial Business Calculation to be Processed Investment information to be Processed Financial Administration Budget & Plan Monitoring Internal Budgets to be (Re) defined Internal Budget Creation Internal Budgets Care to be (Re) defined Business Management Internal Budgets to be Changed CCPC
Contents What is architecture? Design structures in architecture Functional Architecture Enterprise Function Diagrams Decomposition Positioning Reference Architectures Creating a Functional Architecture
Creating a Functional Architecture 1. Determine scope 2. Define request - feedback flows 3. Model the primary function flow 4. Add control and monitoring functions 5. Specify external to/ from internal interactions
Step 1: Determine scope Identify all external products in the usage environment Take the Product Context diagram as a starting point. Include future products to be interfaced with
Example Out of Scope Within Scope Sales Customer Relationship Management Transportation Suppose we are architecting a Sales product that will be interfaced with a CRM system and possibly with a Transportation product.
Step 2: Define request - feedback flows Define all request-feedback loops a. with the the external products b. between functions and external products Note: focus just on essential interactions; those interactions related to the main features of the product
Request - Feedback Flows always appear in a pair: a combination of a Request and a return arrow that represents the Feedback of the result. This construction is called a Request Feedback loop. Request to be fulfilled Enterprise Function A Enterprise Function B Fulfilled request
Example Describe interaction between product and external products: E.g. with CRM Sales Contract Agreed Sales Contract Sales Order Delivered Sales Order C R M Sales Quotation Provided Sales Quotation
Step 3: Model the primary function flow The primary function flow (aka. primary process) is modeled by identifying the steps as function boxes. These functions are separated by flows that are usually information flows or waiting queues. Sales Order Request Request Change mgmt Final Sales Order Order Fulfillment
Example Model primary function flow Sales Sales Order Request Request Change mgmt Final Sales Order Order Fulfillment Delivered Sales Order Customer Relationship Management
Step 4: Add control and planning functions The primary function flow is controlled by one or more enterprise functions The relation between every primary function and every control function is usually a request-feedback loop. On top of these functions the appropriate planning functions are added.
Example Add control and planning Sales Plans Sales Planning Margins Sales Order Request Targets Sales Control Request Realisation Change mgmt Final Sales Order Order Fulfillment Delivered Sales Order Customer Relationship Management
Step 5: Specify interactions Specifying the information represented by the request flow from the external product e.g. CRM requests a sales order to be delivered. Follow the subsequent steps trough the scope until one or more feedback flows; splitting and joining (bifurcations) are possible. Follow the process from the outside to inside the product.
Example Specify interactions Sales Plans Sales Planning Margins Sales Order Request Targets Sales Control Quotation Control CRM Request Change mgmt Final Sales Order Order Fulfillment Realisation Delivered Sales Order Quotation Registration Quotation
Concluding Enterprise Function Diagrams are a powerful modeling tool for a functional architecture of software products Assists in the determination of modules Interactions between the functions and the environment are shown Models are recognized by non-specialists without formal training Can be applied in any type of business: Public sector: health care, governmental Private sector: manufacturing, financial, services, food and beverage, project industries