Prof. Dr. R. H. Reussner (reussner@ipd.uka.de) Lehrstuhl Software-Entwurf und ­Qualität Institut für Programmstrukturen und Datenorganisation (IPD) Fakultät für Informatik, Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Praktikum Ingenieurmäßige Software-Entwicklung Palladio Component Model (PCM) SD Xperf=1.00 Xloss=0.01 Software Design and Quality Outline 1.Introduction a. Roles, Process Model, Example b. Solver (Simulation, Analytical Model) 2.Component Developer a. Repository b. Component, Interface, Data Types c. SEFF 3.Stochastical Expressions a. Constants, PMF, PDF, Parameter Characterisation b. Parametric Dependencies Palladio Component Model 17.08.2007 2 Lecture 1 Lecture 2 Lecture 3 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Outline 4.Software Architect a) System (Composed Structure) b) QoS Annotations on System Interfaces 5.System Deployer a) Resource Types, Resource Environment b) Allocation 6.Domain Expert a. Usage Model b. Parameter Characterisations 7.Solver, Result Interpretation 8.Comprehensive Case Study 9.Outlook Palladio Component Model 17.08.2007 3 Lecture 4 Lecture 5 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Outline 1.Introduction a. Roles, Process Model, Example b. Solver (Simulation, Analytical Model) 2.Component Developer a. Repository b. Component, Interface, Data Types c. SEFF 3.Stochastical Expressions a. Constants, PMF, PDF, Parameter Characterisation b. Parametric Dependencies Palladio Component Model 17.08.2007 4 Lecture 1 Lecture 2 Lecture 3 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Developed at Uni Oldenburg, Uni Karlsruhe since 2003 Domain-specific Modelling Language Targeted at ­ Performance Prediction for Component-based Software Architectures ­ Business Information Systems Extensive Metamodel in EMF/Ecore Named after famous Renaissance Architect Palladio Component Model Palladio Component Model 17.08.2007 5 SD Xperf=1.00 Xloss=0.01 Software Design and Quality CBSE Development Process Palladio Component Model 17.08.2007 6 [Cheeseman2000, Koziolek2006a] SD Xperf=1.00 Xloss=0.01 Software Design and Quality Developer Roles Palladio Component Model 17.08.2007 7 Palladio Component Model 17.08.2007 8 Component Developers Software Architect System Deployer Domain Expert [Becker2007a] Palladio Component Model 17.08.2007 9 Dom. Exp. DSL Instance Sys. Depl. DSL Instance Soft. Arch. DSL Instance Comp.Dev. DSL Instance Stochastic Regular Expr. Analysis SPA with Scheduling Analysis + Simulation Queueing Network Performance Prototype Java Code Skeletons Simulation Execution + Measurement Completion + Compilation Instance Palladio Component Model [Becker2007a] SD Xperf=1.00 Xloss=0.01 Software Design and Quality Repository Palladio Component Model 17.08.2007 10 Component Developer SD Xperf=1.00 Xloss=0.01 Software Design and Quality Service Effect Specification Palladio Component Model 17.08.2007 11 Component Developer SD Xperf=1.00 Xloss=0.01 Software Design and Quality System Palladio Component Model 17.08.2007 12 Software Architect SD Xperf=1.00 Xloss=0.01 Software Design and Quality Resource Environment Palladio Component Model 17.08.2007 13 System Deployer SD Xperf=1.00 Xloss=0.01 Software Design and Quality Usage Model Palladio Component Model 17.08.2007 14 Domain Expert SD Xperf=1.00 Xloss=0.01 Software Design and Quality Model Solver Palladio Component Model 17.08.2007 15 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Model Solver PCMSolver Only Single User Fast (~2-5 seconds) Analytical Method, High Precision Stochastic Process Algebra based Traverses the architecture once Directly convolutes specified probability functions SimuBench Single + Multiple User Slow (~30-600 sec.) Process-based Simulation Queueing Network based (G/G/n) Traverses the architecture repeatedly Draws samples from probability functions, adds them up Palladio Component Model 17.08.2007 16 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Example Blog-System Switch to Eclipse! Palladio Component Model 17.08.2007 17 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Outline 1.Introduction a. Roles, Process Model, Example b. Solver (Simulation, Analytical Model) 2.Component Developer a. Repository b. Component, Interface, Data Types c. SEFF 3.Stochastical Expressions a. Constants, PMF, PDF, Parameter Characterisation b. Parametric Dependencies Palladio Component Model 17.08.2007 18 Lecture 1 Lecture 2 Lecture 3 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Tasks Specifies Component & Interfaces Specifies Data Types Builds Composite Components Creates Service Effect Specifications Stores Modelling & Implementation Artefacts in Repositories Implements Components Tests Components Maintains Components Palladio Component Model 17.08.2007 19 Component Developer SD Xperf=1.00 Xloss=0.01 Software Design and Quality Example Repository Palladio Component Model 17.08.2007 20 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Example Repository Palladio Component Model 17.08.2007 21 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Interfaces Palladio Component Model 17.08.2007 22 [Beugnard1999] SD Xperf=1.00 Xloss=0.01 Software Design and Quality PCM Interfaces QoS (=Performance, Reliability) ­ Service Effect Specification (Lecture 2) Protocol (=Valid Call Sequences) ­ Finite State Machine (Not shown here) Signature ­ Corba IDL: * Return Type * Name * Parameter List * Exception List Palladio Component Model 17.08.2007 23 SD Xperf=1.00 Xloss=0.01 Software Design and Quality PCM Component Types Palladio Component Model 17.08.2007 24 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Provided Component Type Only Provided Interfaces mandatory May contain required services, not mandatory Specified during early development, refined later Situation: certain functionality needed, but additionally required services unknown QoS Annotations Palladio Component Model 17.08.2007 25 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Complete Component Type Provided and Required Interfaces mandatory Dependencies between Provided and Required Interfaces not fixed Situation: Needed functionallity known, component environment also fixed Palladio Component Model 17.08.2007 26 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Basic Component Provided/Required Interfaces mandatory One option to implement a Complete Type Service Effect Specification for Dependencies between Provided and Required Interfaces May be composed to Composed Components Palladio Component Model 17.08.2007 27 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Composite Component During development composed from any component types Finally composed from Basic Components and/or other Composite Components Likely not used in the experiment, but may occur in exercises Palladio Component Model 17.08.2007 28 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Data Types Primitive Datatype ­ INT, CHAR, BOOL, DOUBLE, LONG, ... Collection Datatype ­ Contains an inner primitive datatype ­ ARRAY, SET, LIST, TREE, HASHMAP, ... Composite Datatype (Struct) ­ Contains inner primitive and/or collection and/or composite datatypes ­ ADDRESS, CUSTOMER, PERSON, ... Palladio Component Model 17.08.2007 29 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Hands on Example Switch to PCMBench Palladio Component Model 17.08.2007 30 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Outline 1.Introduction a. Roles, Process Model, Example b. Solver (Simulation, Analytical Model) 2.Component Developer a. Repository b. Component, Interface, Data Types c. SEFF 3.StoEx a. Constants, PMF, PDF, Parameter Characterisation b. Parametric Dependencies Palladio Component Model 17.08.2007 31 Lecture 1 Lecture 2 Lecture 3 SD Xperf=1.00 Xloss=0.01 Software Design and Quality Lessons Learned Today Person ­ Role ­ Task Component Developer, Software Architect, System Deployer, Domain Expert PCMSolver vs. SimuBench PCM Repository (Component Developer) ­ Components (Provided, Complete, Basic, Composite) ­ Interfaces (Signature, Protocol, SEFF) ­ Data Types (Primitive, Collection, Composite) Palladio Component Model 17.08.2007 32