..............................
            ..............................
            ..............................
            
Architecture Style Selection using Statistics of Quality Attributes to Reduce Production Costs
        
        As  time  goes  by  and  software  systems  grow  in  complexity  and  size,  there  is  an  increasing  need  for  software 
architecture as an important tool in software design. Designing an appropriate architecture is necessary in producing a high-
quality  software,  which  also  suits  stakeholders.  In  order  to  design  the  desired  high-quality  software  program,  style-based 
architectures  can  be  used.  That  is,  with  the  selection  of  appropriate  style  architecture,  we  will  get  an  ideal  architecture  for 
design.  With  the  same  attitude  in  this  research,  using  a  statistical  computational  algorithm,  we  have  attempted  to  select  the 
appropriate software architecture style to meet stakeholders’ requirements. In meeting Non-Functional Requirements (NFRs) of 
stakeholders, increase of one NFR does not increase the others necessarily, and they may be at odds with each other, thus the 
best quality for all cannot be achieved. In the designing stage of an ideal software, we must take into account the production and 
maintenance  costs  as  well  as  a  trade-off  between  stakeholders’  desired  needs.  The  proposed  algorithm  structure  involves  a 
method  using  Gamma Probability  Distribution  Function  (PDF).  In  a  way  that,  a  statistical  estimate  for  each  present  style  is 
created, and finally in the design of the software, the best style (based on the mentioned statistical estimate) is used for meeting 
the  stakeholder’s needs. The method not only  creates NFRs in the  software  program, but also gives importance to production 
and maintenance costs. This requires that the qualitative data of the problem be converted into quantitative data. It will be fully 
described in the introduction to the algorithm. In order to verify the validity of the proposed algorithm, the resulted architecture 
style  ranking  will  be  compared  with  the  results  of  alternative  methods  namely Analytic  Hierarchy Process  (AHP) and A 
Lightweight  Value-based  Software  Architecture Evaluation  (LiVASAE). The  results  confirm  the  applicability  of  the  proposed 
algorithm and moreover it has less time complexity with respect to other methods.    
            [1] Abowd G., Allen R., and Garlan D., “Formalizing Style to Understand Descriptions of Software Architecture,” ACM Transactions on Software Engineering and Methodology, vol. 4, no. 4, pp. 319-364, 1995.
[2] Admodisastro N. and Palaniappan S., “A Code Generator Tool for the Gamma Design Patterns,” Malaysian Journal of Computer Science, vol. 15, no. 2, pp. 94-101, 2002.
[3] Affleck A., Krishna A., and Achuthan N., “Non- Functional Requirements Framework: A Mathematical Programming Approach,” The Computer Journal, vol. 58, no. 5, pp. 1122-1139, 2015.
[4] Albin S., The Art of Software Architecture: Design Methods and Techniques, John Wiley and Sons, 2003.
[5] Arcelli D., Cortellessa V., and Di Pompeo D., “Performance-Driven Software Model Refactoring,” Information and Software Technology, vol. 95, pp. 366-397, 2018.
[6] Astudillo H., “Five Ontological Levels to Describe and Evaluate Software Architecture,” Revista Facultad de Ingeniería-Universidad de Tarapacá, vol. 13, no. 1, pp. 69-76, 2005.
[7] Babamir S. and Khabazian M., “Evaluation of Qualitative Requirement Analysis in Software Architecture,” in Proceedings of the International Conference of IT Knowledge, Mashhad, 2007.
[8] Bedi P. and Gaur V., “Trust Based Prioritization of Quality Attributes,” The International Arab Journal of Information Technology, vol. 5, no. 3, pp. 223-229, 2008.
[9] Bernardo M., Ciancarini P., and Donatiello L., “Architecting Families of Software Systems with Process Algebras,” ACM Transactions on Software Engineering and Methodology, vol. 11, no. 4, pp. 386- 426, 2002.
[10] Béjar R., Latre M., Nogueras-Iso J., Muro-Medrano P., and Zarazaga F., “An Architectural Style for Spatial Data Infrastructures,” International Journal of Geographical Information Science, vol. 23, no. 3, pp. 271-294, 2010.
[11] Binder R., “Testing Object Oriented Software: A Survey,” Software Testing, Verification and Reliability, vol. 6, no. 34, pp. 125-252, 1996.
[12] Bosch J. and Bengtsson P., “Assessing Optimal Software Architecture Maintainability,” in Proceedings of 5th European Conference on Software Maintenance and Reengineering, Lisbon, pp. 168-175, 2001.
[13] Busch A., Fuch D., and Koziolek A., “PerOpteryx: Automated Improvement of Software Architectures,” in Proceedings of IEEE International Conference on Software Architecture Companion, Hamburg, pp. 162- 165, 2019.
[14] Castelli V., Harper R., Heidelberger P., HunterS., Trivedi K., Vaidyanathan K., and Zeggert W., “Proactive Management of Software Aging,” IBM Journal of Research and Development, vol. 45, no. 2, pp. 311-332, 2001.
[15] Chong C., Lee P., and Ling C., “Prioritizing and Fulfilling Quality Attributes for Virtual Lab Development Through Application of Fuzzy Analytic Hierarchy Process and Software Development Guidelines,” Malaysian Journal of Computer Science, vol. 27, no. 1, pp. 1-19, 2014.
[16] Clements P., Bass L., Garlan D., Ivers J., Little R., Nord R., and Stafford J., Documenting Software Architectures, Addison Wesley, 2007.
[17] Ebad S., “Towards Measuring Software Requirements Volatility: A Retrospective Analysis,” Malaysian Journal of Computer Science, vol. 30, no. 2, pp. 99- 116, 2017.
[18] Fieberg J. and Conn P., “A hidden Markov Model to Identify and Adjust for Selection Bias: An Example Involving Mixed Migration Strategies,” Ecology and Evolution, vol. 4, no. 10, pp. 1903-1912, 2014.
[19] Fiondella L. and Gokhale S., “Importance Measures for Modular Software with Uncertain Parameters,” Software Testing, Verification and Reliability, vol. 20, no. 1, pp. 63-85, 2009.
[20] Garlan D. and Shaw M., Advances in Software Engineering and Knowledge Engineering, World Scientific Publishing Company, 1994.
[21] Hadizadeh A. and Tanghatari E., “Parallel Processor Architecture with a New Algorithm for Simultaneous Processing of MIPS-Based Series Instructions,” Emerging Science Journal, vol. 1, no. 4, pp. 226-232, 2018.
[22] Ivančić F., Yang Z., Ganai M., Gupta A., and Ashar P., “Efficient SAT-Based Bounded Model Checking for Software Verification,” Theoretical Computer Science, vol. 404, no. 3, pp. 256-274, 2008.
[23] Jabali F., Sharafi S., and Zamanifar K., “A Quantitative Algorithm to Select Software Architecture by Trade off between Quality Attributes,” Procedia Computer Science, no. 3, pp. 1480-1484, 2011.
[24] Jahanirad H. and Karam H., “BIST-based Testing and Diagnosis of LUTs in SRAM-based FPGAs,” Italian Journal of Science and Engineering, vol. 1, no. 4, pp. 216-225, 2017.
[25] Jegourel C., Legay A., and Sedwards S., “Command- Based Importance Sampling for Statistical Model Checking,” Theoretical Computer Science, vol. 649, pp. 1-24, 2016.
[26] Kalistratov D., “Wireless Video Monitoring of the Megacities Transport Infrastructure,” Civil Engineering Journal, vol. 5, no. 5, pp. 1033-1040, 2019.
[27] Kim C., Lee D., Ko I., and Baik J., “ALightweight Value-based Software Architecture Evaluation. Eighth,” in Proceedings of the International Conference on Software Engineering Artificial Intelligence, Networking, and Parallel Distributed Computing, Qingdao, pp. 646-649, 2007. Architecture Style Selection using Statistics of Quality Attributes to Reduce ... 521
[28] Kim J. and Garlan D., “Analyzing Architectural Styles with Alloy,” in Proceedings of Workshop on the Role of Software Architecture for Testing and Analysis, Portland, pp. 70-80, 2006.
[29] Lefranc G., “NETE Review of Architectural Patterns and Tactics for Micro Services in Academic and Industrial Literature,” IEEE Latin America Transactions, vol. 16, no. 9, pp. 2321-2327, 2018.
[30] Lian Y., Tang Y., and Wang Y., “Objective Bayesian Analysis of JM Model in Software Reliability,” Computational Statistics and Data Analysis, vol. 109, pp. 199-214, 2017.
[31] Lieberherr K. and Xiao C., “Customizing Adaptive Software to Object-Oriented Software Using Grammars,” International Journal of Foundations of Computer Science, vol. 5, no. 2, pp. 179-208, 1994.
[32] Mkaouar H., Zalila B., Hugues J., and Jmaiel M., “A Formal Approach to AADL Model-Based,” International Journal on Software Tools for Technology Transfer, vol. 22, no. 2, pp. 1-29, 2019.
[33] Pérez J., Ramos I., Carsí J., and Costa-Soria C., “Model-Driven Development of Aspect-Oriented Software Architectures,” Journal of Universal Computer Science, vol. 19, no. 10, pp. 1433-1473, 2013.
[34] Perry D. and Wolf A., “Foundations for the Study of Software Architectures,” ACM Software Engineering Notes, vol. 17, no. 4, pp. 40-52, 1999.
[35] Phillips D., Mazzuchi T., and Sarkani S., “An Architecture System Engineering and Acquisition Approach for Space System Software Resiliency,” Information and Software Technology, vol. 94, pp. 150-164, 2018.
[36] Pinto M. and Fuentes L., “Modelling Quality Attributes with Aspect-Oriented Architectural Templates,” Journal of Universal Computer Science, vol. 17, no. 5, pp. 639-669, 2011.
[37] Quaglia F., “Software Diversity-Based Active Replication as An Approach for Enhancing the Performance of Advanced Simulation Systems,” International Journal of Foundations of Computer Science, vol. 18, no. 3, pp. 495-515, 2007.
[38] Ravishanker N., Liu Z., and Ray B., “NHPP Models with Markov Switching for Software Reliability,” Computational Statistics and Data Analysis, vol. 52, no. 8, pp. 3988-3999, 2008.
[39] Ribeiro S., Schmitz E., Alencar A., and Silva M., “Literature Review on the Theory of Constraints Applied in the Software Development Process,” IEEE Latin America Transactions, vol. 16, no. 11, pp. 2747- 2756, 2018.
[40] Salama M. and Bahsoon R., “Analyzing And Modelling Runtime Architectural Stability for Self- Adaptive Software,” Journal of Systems and Software, vol. 133, pp. 95-112, 2017.
[41] Schaefer L., Rabiser R., Clarke D., Bettini L., Benavides D., Botterweck G., Pathak A., Trujillo S., and Villela K., “Software Diversity: State of the Art and Perspectives,” International Journal on Software Tools for Technology Transfer, vol. 14, no. 5, pp. 477- 495, 2012.
[42] Sharma A., Kumar M., and Agarwal S., “A Complete Survey on Software Architectural Styles and Patterns,” The International Conference on Eco-Friendly Computing and Communication Systems, vol. 70, pp. 16-25, 2015.
[43] Sharma T. and Spinellis D., “A Survey on Software Smells,” Journal of Systems and Software, vol. 138, pp. 158-173, 2018.
[44] Sievi-Korte O., Koskimies K., Mäkinen E., “Techniques for Genetic Software Architecture Design,” The Computer Journal, vol. 58, no. 11, pp. 3141-3170, 2015.
[45] Venters C., Capilla R., Betz S., Penzenstadler B., Crick T., Crouch S., Nakagawa E., Becker C., and Carrillo C., “Software Sustainability: Research and Practice from A Software Architecture Viewpoint,” Journal of Systems and Software, vol. 138, pp. 174-188, 2018.
[46] Wang Q. and Yang Zh., A Method of Selecting Appropriate Software Architecture Styles, Quality Attributes and Analytic Hierarchy Process. University of Gothenburg, 2012.
[47] Woodward E., Bowers R., Thio V., Johnson K., Srihari M., and Bracht C., “Agile Methods for Software Practice Transformation,” IBM Journal of Research and Development, vol. 54, no. 2, pp. 3-12, 2010. 522 The International Arab Journal of Information Technology, Vol. 18, No. 4, July 2021 Hamidreza Hasannejad Marzooni received B.S. degree in Mazandaran University of Science and Technology and M.S. degree in Computer Engineering- Software Engineering from Sari Islamic Azad University 2011 and 2013. Respectively. He is studying Computer Engineering- Software Engineering in Babol Islamic Azad University. His current research interests include Software Architecture Styles, Numerical Analysis, and Majority Voting. Homayun Motameni serves as an Professor at the Computer Department, Sari Branch, Islamic Azad University. He obtained his PhD in Computer Engineering- Software Engineering in the Department of Computer at the Islamic Azad University (Sciences and Research Branch), Tehran, Iran. He received his M.S. degree in Computer Engineering-Machine Intelligence from Islamic Azad University-Science and Research Branch and BS from the Shahid Beheshti of Tehran University in Computer Engineering-Software Engineering, Iran. He is on the editorial board of the Journal of Soft Computing and Information Technology (JSCIT) and Director-in-Charge of the journal of advances in computer research (JACR). His research interests include Software Engineering, https://scholar.google.com/citations?view_op=search_a uthors&hl=en&mauthors=label:formal_methods_petri _netModel Checking, Requirements Engineering, performance evaluation. Ali Ebrahimnejad serves as an Associate Professor at the Mathematics Department, Qaemshahr Branch, Islamic Azad University. He obtained his PhD in Applied Mathematics in the Department of Mathematics at the Islamic Azad University (Sciences and Research Branch), Tehran, Iran. He received his BS from the Mazandaran University, Iran. He is on the editorial board of the International Journal of Fuzzy System Applications (IJFSA), Annals of Fuzzy Mathematics and Informatics (AFMI), International Journal of Information and Decision Sciences (IJIDS), Iranian Journal of Optimization (IJO), International Journal of Strategic Decision Sciences (IJSDS) and International Journal of Enterprise information Systems (IJEIS). His research interests include operations research, network flow, data envelopment analysis and fuzzy optimization.
