Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Advancing Software Quality through Many-Objective Optimization and Model-Driven Performance Engineering​

Advancing Software Quality through Many-Objective Optimization and Model-Driven Performance Engineering​

Daniele Di Pompeo

December 20, 2023
Tweet

More Decks by Daniele Di Pompeo

Other Decks in Research

Transcript

  1. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering About me • Education: ◦ Bachelor and Master degrees in Computer Engineering at the University of L’Aquila. ◦ PhD in Information and Communication Technology (ICT) in 2019. • Postdoctoral Experience: ◦ Over 4 years of experience as a postdoc at DEWS and Ex-EMERGE. • Teaching: ◦ Instructor for "Metodi di sviluppo Agile," a bachelor's degree course in Computer Science. ◦ Expert in Software Quality Engineering for a Master's degree course since 2019. • Research Interests: ◦ Focus on Software Performance. ◦ Specialization in Refactoring. ◦ Interest in Search-based Software Engineering. • Research Support: ◦ Currently supported by SoBigData.it
  2. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Outline • Background ◦ Software Architecture ◦ Software Performance Engineering ◦ Multi-objective optimization ◦ Refactoring • Our proposed solution • Some Results • Conclusion
  3. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Software architecture “The software architecture of a system represents the design decisions related to overall system structure and behavior.“ 1 • High-Level Structure: Software architecture involves the high-level structure of software systems. It defines the system's components or modules and the relationships between them. • Blueprint for Development: It serves as a blueprint for both the system and the project developing it. It includes making decisions about the layout and interactions of different components, as well as the technologies and platforms to be used. • Non-functional Requirements: Software architecture is instrumental in meeting non-functional requirements like performance, scalability, reliability, and security, which are critical to the system's overall success. • Quality Attributes: Software architecture is designed keeping in mind the quality attributes of a system, which may include modifiability, portability, reusability, and testability. 1 - https://www.sei.cmu.edu/our-work/software-architecture/
  4. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Software Performance Engineering “is a systematic, quantitative approach to the cost-effective development of software systems to meet performance requirements.”2 • Focus on Performance from the Start: SPE emphasizes incorporating performance considerations early in the software development lifecycle • Performance Modeling: It involves creating models to predict how software will perform (e.g., Layered Queueing Network) • Trade-off Analysis: SPE often requires balancing various aspects such as functionality, time-to-market, and performance • Iterative Approach: Performance is evaluated continuously throughout the development process, allowing for incremental improvements and early detection of performance issues 2 - http://www.spe-ed.com/classic-site/speis.htm
  5. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Multi-objective optimization “Multi-objective optimization allows a decision maker to evaluate trade-offs between objectives” • Pareto Optimality: A solution is Pareto optimal if no objective can be improved without worsening another. • Solution Methods: ◦ Traditional methods (e.g., weighted sum). ◦ Evolutionary algorithms (e.g., NSGA-II, SPEA2). • Decision Making: ◦ Produces a set of Pareto optimal solutions. ◦ Involves selecting the most appropriate solution from the Pareto front. • Significance: ◦ Aids in finding optimal trade-offs in complex systems. ◦ Enhances decision-making in multi-criteria environments.
  6. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Refactoring “the process of restructuring code, while not changing its original functionality” • Improving Code Quality: Refactoring improves the internal structure of software, making it easier to understand, maintain, and extend. • Non-behavioral Changes: It involves modifying the code without altering the software’s functionality or external behavior. • Reducing Technical Debt: Refactoring helps in reducing technical debt, which is a concept in software development that reflects the extra development work arising from choosing an easy solution over a better approach that would take longer. • Improving Maintainability and Extendability: By cleaning up the codebase, refactoring makes it easier for developers to maintain and add new features to the software. Common Refactoring Techniques: These include renaming variables for clarity, breaking large functions into smaller ones, removing redundant code, and changing the code structure to improve design patterns.
  7. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Outline • Background ◦ Refactoring ◦ Software Architecture ◦ Software Performance Engineering ◦ Multi-objective optimization • Our solution • Some Results • Conclusion
  8. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Software Architecture: UML multi-views models We exploit UML models as our software architectures Our models are made up of 3 views (aka diagrams) We augment UML with profiles (MARTE and DAM)
  9. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Software Architecture: UML multi-views models static dynamic deployment
  10. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Multi-objective optimization: an MDE framework We built an MDE framework on top of JMetal The framework exploits the refactoring engine Supports several Evolutionary Algorithms (NSGA-II, SPEA2, PESA2) Supports multi architectural languages (UML, AEmilia)
  11. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Multi-objective optimization: an MDE framework Conflicting Objectives Performance antipattern: the number of antipatterns occurrences Refactoring effort: the effort to apply refactoring actions Reliability: the probability of a software system functioning without failure under specified conditions Performance quality: an index that summarizes the performance improvement / detriment
  12. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Model-Driven Refactoring We introduced automation on refactoring of UML models The engine is written in Java and support refactoring written in EPSILON scripts. The proposed engine is aimed at applying refactoring actions to UML software models.
  13. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Model-Driven Refactoring We introduce a feasibility engine that verifies in advance whether a sequence of refactoring actions is feasible or not. Each refactoring action is equipped with a pre/post-conditions, which describe the state of the subject model before and after the application of the action. The engine reduces a sequence of refactoring actions to a single refactoring action condition
  14. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Model-driven Refactoring: Move an operation to a new Component
  15. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Model-driven Refactoring: Move an operation to a new Component
  16. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Model-driven Refactoring: Move an operation to a new Component
  17. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Model-Driven Refactoring Chromosome
  18. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Software Performance Engineering We exploit the Layered Queueing Network as performance models We implemented an M2M transformation UML2LQN We obtain performance indices by solving LQN models
  19. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering M2M transformation UML2LQN
  20. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Outline • Background ◦ Refactoring ◦ Software Architecture ◦ Software Performance Engineering ◦ Multi-objective optimization • Our solution • Some Results
  21. Find optimal solution The ability of our framework in finding

    optimal solution while changing initial parameters
  22. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Can we reach a desired solution independently of the search starting point within the solution space?
  23. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Does antipattern detection contribute to find better solutions compared to the case where antipatterns are not considered at all?
  24. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering A way of measuring the quality of EA: Hypervolume Purpose: The hypervolume indicator measures the volume (in objective space) covered by members of a Pareto front Reference Point: requires a reference point, which is typically worse than the worst possible values for each objective Use in Comparison: commonly used to compare the performance of different multi-objective optimization algorithms https://lopez-ibanez.eu/hypervolume
  25. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Which algorithm performs better when limited by a time budget?
  26. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering To what extent does the time budget penalize the quality of Pareto fronts?
  27. D. Di Pompeo Advancing Software Quality through Many-Objective Optimization and

    Model-Driven Performance Engineering Performance of Genetic Algorithms in the Context of Software Model Refactoring time memory