Outline Introduction Overview of Existin g Techniques Palladio Approach Conclusion 00 oooooooooo ooooooooo 000 Quality-Aware Design of Software Systems Barbora Buhnova Faculty of Informatics, Masaryk University Brno, Czech Republic LaSArIS Seminar April 11, 2013 Barbora ility-Aware Design of Software Systems April 11, 2013 1/34 O Introduction Motivation Focus of the Talk Q Overview of Existing Techniques Foundations Industrial Techniques Research Techniques Q Palladio Approach Performance Analysis Reliability Analysis Combined Techniques O Conclusion Summary Challenges O Introduction Motivation Focus of the Talk Q Overview of Existing Techniques Foundations Industrial Techniques Research Techniques Q Palladio Approach Performance Analysis Reliability Analysis Combined Techniques O Conclusion Summary Challenges Outline Introduction Overview of Existing Techniques Palladio Approach Conclusion •O oooooooooo ooooooooo 000 vation Large-scale software systems with complex architecture • support of critical business processes in enterprise inf. systems • quality = customer trust & satisfaction = money Different ways of understanding the quality • not only system correctness! Other quality attributes • performance • reliability • security • energy consumption • maintainability • ... and many others Barbora ility-Aware Design of Software Systems April 11, 2013 4 / 34 Focus • Information systems with complex architectures • Quality in terms of performance and reliability Goal • Formal techniques assisting software architects in the development of high-quality systems Barbora ility-Aware Design of Software Systems April 11, 2013 5 / 34 O Introduction Motivation Focus of the Talk Q Overview of Existing Techniques Foundations Industrial Techniques Research Techniques Q Palladio Approach Performance Analysis Reliability Analysis Combined Techniques O Conclusion Summary Challenges Performance reflects the ability of a software system to fulfil the requirements on fast response time and high throughput of the system while minimizing the usage of computational resources. Performance attributes • response time • throughput • resource utilization Barbora ility-Aware Design of Software Systems April 11, 2013 7 / 34 Reliability is the probability that a software system will perform the required functionality according to the design restrictions without faults and failures in a given time span. Reliability attributes • probability of failure on demand • mean time to failure Barbora ility-Aware Design of Software Systems April 11, 2013 8 / 34 Outline Introduction 00 Overview of Existing Techniques oo»ooooooo Palladio Approach ooooooooo Conclusion 000 . reliability Differences • Conflicting objectives • Tuning techniques • Prediction questions Similarities • Quantitative quality attributes • Both influenced by very similar architectural elements • Architectural models and prediction techniques Barbora ility-Aware Design of Software Systems April 11, 2013 9 / 34 After implementation (measurement-based) • profiling and measurement of an implemented and deployed system • pro - low effort (no additional model needed) • cons - too late to revert initial design decisions Before implementation (prototype-based) • implement a prototype and measure its characteristics when deployed on the target platform • pro - supports early decisions • cons - very expensive, time consuming, hardware can be hardly changed, imprecise (many measurements needed for „«» /_ statistical validity) Barbora ility-Aware Design of Software Systems April 11, 2013 10 / 34 Introduction Overview of Existing Techniques Palladio Approach Conclusion OO OOOO0OOOOO ooooooooo ooo Industrial techniques for performance/reliability tuning After implementation • faster/more reliable hardware (execution environment in general) • redundancy (reliability), component derating (reliability) • multi-threading (performance) • code and architecture refactoring During implementation • fine-tuning of micro-level issues (performance) • optimizing compilers (performance) • error detection (reliability), fault tolerance (reliability) Donald Knuth: "We should forget about small efficiencies, say/*"SK\ about 97% of the time: premature optimization is the root of all V-/ [ evil" [1974] Barbora ility-Aware Design of Software Systems April 11, 2013 11 / 34 Introduction 00 Overview of Existing Techniques ooooosoooo Palladio Approach ooooooooo Conclusion 000 Goals of ongoing research Develop techniques with the following properties • integrate both quality assessment and tuning • design-time techniques (model-based) • integrated into the development process • easy evaluation of different configurations (changing/updating both software and hardware) • automated quality assessment • model-based prototype generation • combination of formal models with UML Additionally • cost-effective (comparing to industrial techniques) • time-effective (scalability of formal analysis) Barbora ility-Aware Design of Software Systems April 11, 2013 12 / 34 Introduction Overview of Existing Techniques OOOOOO0OOO Palladio Approach ooooooooo Conclusion 000 Quality engineering techniques Focus • Information systems with complex architectures Implications • Complex systems —> formal methods may fail due to system size • Defined architecture —> compositional reasoning Barbora ility-Aware Design of Software Systems April 11, 2013 13 / 34 Architecture-driven analysis • defined in a modular way • each architectural entity seen as independent • each element assigned with a (certified) quality information - i.e. software component —> service: QoS as response time or probability of failure-free operation - i.e. hardware component —> CPU: processing rate, mean time to failure/repair • parameterized specification needed (due to independence) — easy element reuse and update Barbora ility-Aware Design of Software Systems April 11, 2013 14 / 34 Outline Introduction Overview of Existing Techniques Palladio Approach Conclusion oooooooo»o Techniques for inf. systems with complex architectures Software j QoS Specification ^ Service 2 _< - Component 1 Service 3 Service 1 Service 2 Component 2 User behaviour Input parameters User <: Resource Container 1 «allocated» Resource Container 2 Reliability/Performance^ parameters_ Reliability/Performance parameters_ Hardware Barbora ility-Aware Design of Software Systems April 11, 2013 15 / 34 The techniques support architecture design in: • prediction of the expected values of performance and reliability attributes • evaluation of alternative design decisions • sensitivity analysis (as an effect of parameterization - identification of crucial components (both software and hardware) - relaxing uncertainties (in input parameters, system usage) • suggestions for design improvement (architecture optimization) • trade-off analyses (performance and reliability as conflicting objectives) | Barbora ility-Aware Design of Software Systems April 11, 2013 16 / 34 O Introduction Motivation Focus of the Talk Q Overview of Existing Techniques Foundations Industrial Techniques Research Techniques Q Palladio Approach Performance Analysis Reliability Analysis Combined Techniques O Conclusion Summary Challenges Overview of Existing Techniques Palladio Approach oo oooooooooo ooooooooo ooo Palladio - Software Architecture Simulation developed since 2003 as a research project of the Uni of Oldenburg currently developed by Karlsruhe Institute of Technology (KIT), FZI Research Center for Information Technology, a University of Paderborn Website http://www.palladio-simulator.com/ Palladio means Science and Research Consulting for Industry Free tooling Barbora ility-Aware Design of Software Systems April 11, 2013 19 / 34 Scenarios • Sizing • Scalability • Load Balancing • Configuration • Optimization • Design Alternatives Analysis Dimensions • Performance • Reliability • Maintainability • Costs Barbora ility-Aware Design of Software Systems April 11, 2013 20 / 34 Introduction 00 Overview of Existing Techniques oooooooooo Palladio Approach ooooooooo Conclusion 000 Palladio - Analysis overview «Component Developer» T- «System Architect?? r- «System Deployer» F- "Domain E >pert» Component Specifications Architectural Model Deployment Model Usage Model pert» Component Specifications Architectural Model Deployment Model Usage Model