Performance-driven software development: an incremental refinement approach for high-quality requirement engineering

Springer Science and Business Media LLC - Tập 25 - Trang 95-113 - 2019
Maryam Nooraei Abadeh1
1Department of Computer Engineering, Abadan Branch, Islamic Azad University, Abadan, Iran

Tóm tắt

By increasing the importance of the performance in industrial and business software systems, efficient approaches to model-based performance engineering are becoming an inherent part of the development life cycle. Performance engineering at abstract levels of the software development process has an important effect on concluding the success of the software by obtaining the knowledge of optimal alternative designs. This paper introduces the performance-driven software development approach and a prediction technique that regards performance quality attributes at the abstract levels of the software development in an incremental refinement manner. The approach provides Z-based specification formalism at the meta-model level in which its instance models are automatically transformed into the formal performance analytical model, called refinable state machine (RSM). This paper analyses the throughput of a RSM by performing an approximation algorithm on two experimental case studies to determine weights of subjective performance characteristics. The approach can use the inherent performance parameters according to product usage and derive an incremental probabilistic policy determination method under design decisions in the performance plan hierarchy. The results exhibit significant support of abstract level performance profiling in terms of the throughput values.

Tài liệu tham khảo

Chung L, Nixon BA, Yu E (1996) Dealing with change: an approach using non-functional requirements. Requir Eng 1:238–260 Balsamo S, Di Marco A, Inverardi P, Simeoni M (2004) Model-based performance prediction in software development: a survey. IEEE Trans Softw Eng 30:295–310 Happe J, Becker S, Rathfelder C, Friedrich H, Reussner RH (2010) Parametric performance completions for model-driven performance prediction. Perform Eval 67:694–716 Cortellessa V, Marco AD, Inverardi P (2011) Model-based software performance analysis. Springer, Berlin Koziolek H (2010) Performance evaluation of component-based software systems: a survey. Perform Eval 67:634–658 Arcelli D, Di Pompeo D (2017) Applying design patterns to remove software performance antipatterns: a preliminary approach. Proc Comput Sci 109:521–528 De Sanctis M, Trubiani C, Cortellessa V, Di Marco A, Flamminj M (2017) A model-driven approach to catch performance antipatterns in ADL specifications. Inf Softw Technol 83:35–54 Shoaib Y, Das O (2011) Web application performance modeling using layered queueing networks. Electron Notes Theor Comput Sci 275:123–142 Spivey JM (1992) The Z notation: a reference manual. Prentice Hall, Englewood Cliffs Model driven Architecture Specification (2006) Object Management Group. http://www.omg.org/mda/specs.htm Saaltink M (1997) The Z/EVES system. In: Bowen JP, Hinchey MG, Till D (eds) ZUM '97: the Z formal specification notation, vol 1212. Springer, Berlin, Heidelberg, pp 72–85 Petriu D, Alhaj M, Tawhid R (2012) Software performance modeling. In: Formal methods for model-driven engineering, pp 219–262 Nooraei Abadeh M, Mirian-Hosseinabadi SH (2015) Delta-based regression testing: a formal framework towards model-driven regression testing. J Softw Evol Process 27:913–952 Meta Object Facility Final Adopted Specification (2008) Object Management Group 2.0 query/view/transformation specification Arendt T, Taentzer G (2013) A tool environment for quality assurance based on the Eclipse Modeling Framework. Autom Softw Eng 20:141–184 Arcelli D, Cortellessa V, Di Pompeo D (2017) Performance-driven software model refactoring. Inf Softw Technol 95:366–397 Heckel R, Küster JM, Taentzer G (2002) Confluence of typed attributed graph transformation systems. In: ICGT, pp 161–176 Czyzowicz J, Fraczak W, Yazdani M (2008) Computing the throughput of concatenation state machines. J Discret Algorithms 6:28–36 Woodcock J, Davies J (1996) Using Z: specification, refinement, and proof, vol 39. Prentice Hall, Englewood Cliffs Yu E (2011) Modelling strategic relationships for process reengineering. Soc Model Requir Eng 11:2011 Yu ES (1997) Towards modelling and reasoning support for early-phase requirements engineering. In: Proceedings of the 3rd IEEE international symposium on requirements engineering, pp 226–235 Rolland C, Souveyet C, Achour CB (1998) Guiding goal modeling using scenarios. IEEE Trans Softw Eng 24:1055–1071 Van Lamsweerde A (2001) Goal-oriented requirements engineering: a guided tour. In: Proceedings of the 5th IEEE international symposium on requirements engineering. pp 249–262 Khlif I, Kacem MH, Kallel M, Drira K, Kacem AH (2017) Model consistency for multi-scale architectures applied to smart systems. Proc Comput Sci 109:400–407 Di Marco V, Inverardi P (2011) Model-based software performance analysis. Springer, Berlin Franks G, Al-Omari T, Woodside M, Das O, Derisavi S (2009) Enhanced modeling and solution of layered queueing networks. IEEE Trans Softw Eng 35:148–161 Balsamo S, Marzolla M (2003) Simulation modeling of UML software architectures. In: Proceedings of the European simulation multiconference, Nottingham, 9–11 June 2003 Bernardi S, Donatelli S, Merseguer J (2002) From UML sequence diagrams and statecharts to analysable petri net models. In: proceedings of the 3rd international workshop on software and performance, pp 35–45 Bernardi S, Merseguer J (2007) Performance evaluation of UML design with Stochastic Well-formed Nets. J Syst Softw 80:1843–1865 Cortellessa V, Mirandola R (2000) Deriving a queueing network based performance model from UML diagrams. In Proceedings of the 2nd international workshop on Software and performance, pp 58–70 Tribastone M, Gilmore S Automatic translation of UML sequence diagrams into PEPA models. In: 5th International conference on quantitative evaluation of systems. QEST’08, pp 205–214 Becker S, Koziolek H, Reussner R (2009) The Palladio component model for model-driven performance prediction. J Syst Softw 82:3–22 Distefano S, Scarpa M, Puliafito A (2011) From UML to Petri nets: the PCM-based methodology. IEEE Trans Softw Eng 37:65–79 Canevet C, Gilmore S, Hillston J, Kloul L, Stevens P (2004) Analysing UML 2.0 activity diagrams in the software performance engineering process. ACM SIGSOFT Softw Eng Notes 29:74–78 Grassi V, Mirandola R, Randazzo E, Sabetta A (2008) Klaper: an intermediate language for model-driven predictive analysis of performance and reliability. In: The common component modeling example. Springer, pp 327–356 Grassi V, Mirandola R, Sabetta A (2005) From design to analysis models: a kernel language for performance and reliability analysis of component-based systems. In: Proceedings of the 5th international workshop on Software and performance, pp 25–36 Petriu D, Woodside M (2004) A metamodel for generating performance models from UML designs. In: The Unified Modeling Language. Modelling Languages and Applications, pp 41–53 Woodside M, Petriu DC, Petriu DB, Shen H, Israr T, Merseguer J (2005) Performance by unified model analysis (PUMA). In: Proceedings of the 5th international workshop on Software and performance, pp 1–12 Smith CU, Williams LG (1999) A performance model interchange format. J Syst Softw 49:63–80 Smith CU, Lladó CM, Puigjaner R (2010) Performance Model Interchange Format (PMIF 2): a comprehensive approach to queueing network model interoperability. Perform Eval 67:548–568 Cortellessa V, Di Gregorio S, Di Marco A (2008) Using ATL for transformations in software performance engineering: a step ahead of java-based transformations? In: Proceedings of the 7th international workshop on Software and performance, pp 127–132 UML Profile for MARTE Specification (2011) Object Management Group. https://www.omg.org/spec/MARTE/About-MARTE/ Espinoza H, Dubois H, Gérard S, Medina J, Petriu DC, Woodside M (2005) Annotating UML models with non-functional properties for quantitative analysis. In: International conference on model driven engineering languages and systems, pp 79–90 Xu J (2012) Rule-based automatic software performance diagnosis and improvement. Perform Eval 69:525–550 Diaz-Pace A, Kim H, Bass L, Bianco P, Bachmann F (2008) Integrating quality-attribute reasoning frameworks in the ArchE design assistant. In: International conference on the quality of software architectures, pp 171–188 Mahmoud A, Niu N (2014) Supporting requirements to code traceability through refactoring. Requir Eng 19:309–329 Cleland-Huang J, Chang CK, Wise JC (2003) Automating performance-related impact analysis through event based traceability. Requir Eng 8:171–182 Moreno G, Merson P (2008) Model-driven performance analysis. In: Quality of software architectures. Models and architectures, pp 135–151 Kolovos D, Rose L, Garcia-Dominguez A, Paige R (2012) The epsilon book (2010)