Outline Introduction Performance and Reliability Techniques Conclusion 00 ooooooooooo 00 Quality-Aware Design of Software Systems Barbora Buhnova Faculty of Informatics, Masaryk University Brno, Czech Republic LaSArIS Seminar October 10, 2013 Barbora ility-Aware Design of Software Systems October 10, 2013 1 / 20 Outline Introduction 00 Performance and Reliability Techniques ooooooooooo Conclusion 00 O Introduction Motivation Focus of the Talk © Performance and Reliability Techniques Foundations Industrial Techniques Research Techniques Q Conclusion Challenges Barbora ility-Aware Design of Software Systems October 10, 2013 2/20 Outline Introduction 00 Performance and Reliability Techniques ooooooooooo Conclusion 00 O Introduction Motivation Focus of the Talk © Performance and Reliability Techniques Foundations Industrial Techniques Research Techniques Q Conclusion Challenges Barbora ility-Aware Design of Software Systems October 10, 2013 3/20 Outline Introduction Performance and Reliability Techniques Conclusion •o ooooooooooo oo 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 October 10, 2013 4/20 Introduction Performance and Reliability Techniques ooooooooooo Conclusion 00 Focus of the talk 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 October 10, 2013 5/20 Outline Introduction 00 Performance and Reliability Techniques ooooooooooo Conclusion 00 O Introduction Motivation Focus of the Talk © Performance and Reliability Techniques Foundations Industrial Techniques Research Techniques Q Conclusion Challenges Barbora ility-Aware Design of Software Systems October 10, 2013 6/20 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 October 10, 2013 7/20 Outline Introduction 00 Performance and Reliability Techniques o»ooooooooo Conclusion 00 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 October 10, 2013 8/20 Introduction 00 Performance and Reliability Techniques oo»oooooooo Conclusion 00 Performance vs. 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 October 10, 2013 9/20 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 October 10, 2013 10 / 20 Outline Introduction 00 Performance and Reliability Techniques oooo^oooooo Conclusion 00 Wi 021 1 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 1 evil" [1974] Barbora ility-Aware Design of Software Systems October 10, 2013 11 / 20 Introduction 00 Performance and Reliability Techniques ooooo»ooooo Conclusion 00 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 October 10, 2013 12 / 20 Introduction 00 Quality engineering techniques Performance and Reliability Techniques OOOOOOOOOOO Conclusion 00 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 October 10, 2013 13 / 20 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 October 10, 2013 14 / 20 Performance and Reliability Techniques oooooooo»oo Conclusion 00 Architecture-based models 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 October 10, 2013 15 / 20 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 October 10, 2013 17 / 20 Outline Introduction 00 Performance and Reliability Techniques ooooooooooo Conclusion 00 O Introduction Motivation Focus of the Talk © Performance and Reliability Techniques Foundations Industrial Techniques Research Techniques Q Conclusion Challenges Barbora ility-Aware Design of Software Systems October 10, 2013 18 / 20 Performance • high dependence on low-level details (platform dependent, e.g. scheduling strategies) Reliability • accuracy of the input data (failure probabilities and hardware availability) • knowledge gap between software engineers/architects and quality experts Both • minimization of the modelling effort Barbora ility-Aware Design of Software Systems October 10, 2013 19 / 20 Outline Introduction 00 Performance and Reliability Techniques ooooooooooo Conclusion O» Thank you for your attention! Any questions? Barbora ility-Aware Design of Software Systems October 10, 2013 20 / 20