چگونگی شناسایی نیازمندیها برای ایجاد نرمافزار خودانطباق در شرایط عدم اطمینان نیازمندی
محورهای موضوعی : مهندسی برق و کامپیوتررایحه معینفر 1 , احمد عبدالهزاده بارفروش 2 , سیدمهدی تشکری هاشمی 3
1 - دانشگاه صنعتی امیرکبیر
2 - دانشگاه صنعتی امیرکبیر
3 - دانشگاه صنعتی امیرکبیر
کلید واژه: سیستمهای خودانطباقعدم اطمینان در نیازمندیمعماری نرمافزارمهندسی نیازمندی,
چکیده مقاله :
یکی از چالشهای اساسی در تولید سیستمهای نرمافزاری، به روز رسانی نیازمندیها در مرحله تولید و اجرا است که میتواند ناشی از عدم اطمینان از فهم و خواسته ذینفعان باشد. عدم اطمینان در نیازمندی، لزوم تولید یک معماری انعطافپذیر و قابل انطباق جهت مدیریتکردن ریسک سیستم در مرحله اجرا را ایجاد میکند. مدلکردن عدم اطمینان در فرایند تولید نرمافزار و انطباق معماری نرمافزار با تغییر نیازمندیها در زمان اجرا به صورت خودکار از جمله راه حلهایی هستند که در این زمینه مطرح میشوند. جهت پیادهسازی و اجرایینمودن سنجش و رفع عدم اطمینان نیازمندی در مراحل تولید و اجرا از طریق مدلسازی و خودکارسازی آن، نیازمند کمی و محاسباتینمودن نیازمندی هستیم. این مقاله ضمن تبیین منابع عدم اطمینان، به کمیکردن نیازمندیها و ویژگیهای توصیفی و کیفی میپردازد. به این ترتیب، تصمیمگیری در هر مرحله از فرایند تولید نرمافزار، مبتنی بر محاسبات عددی میباشد که راهی برای خودکارسازی تولید نرمافزار است.
One key challenge in software systems development is changing requirements at development phases or run-time. This might happen as the result of uncertainty in stakeholder requirements. Uncertain requirements drive a flexible and therefore adaptable architecture to manage risks at run-time. Modeling uncertainty to adapt architecture automatically is an effective solution when requirements change. In order to evaluate requirements and handle uncertainty by modeling and self-managing, it is advantageous to quantify requirements, computationally. This study besides understanding the sources of uncertainty, investigates how to quantify requirements and quality attributes. Subsequently, decision making at all software development phases will be based on numerical analysis that leads to autonomic software development.
[1] B. Chen, X. Peng, Y. Yu B. Nuseibeh, and W. Zhao, "Self-adaptation through incremental generative model transformations at runtime," in Proc. 36th ACM/IEEE Int. Conf. on Software Engineering, 12 pp., Hyderabad, India, 31 May-7 Jun. 2014.
[2] K. Welsh, R. Casallas, and P. Sawyer, "Understanding the scope of uncertainty in dynamically adaptive systems," In: R. Wieringa and A. Persson, eds., Requirements Engineering: Foundation for Software Quality, Lecture Notes in Computer Science, vol. 6182, pp. 2-16, 2010.
[3] N. M. Villegas, H. A. Muller, and G. Tamura, "Optimizing run-time SOA governance through context-driven SLAs and dynamic monitoring," in Proc. IEEE Int. Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems, MESOCA'11, 10 pp., Williamsburg, VA, USA, 26-26 Sept. 2011.
[4] J. O. Kephart and D. M. Chess, "The vision of autonomic computing," Computer, vol. 36, no. 1, pp. 41-50, Jan. 2003.
[5] H. Tajalli, J. Garcia, and G. Edwards, "PLASMA: a plan-based layered architecture for software model-driven adaptation," in Proc. of the IEEE/ACM Int. Conf. on Automated Software Engineering, ASE'10, pp. 467-476, Antwerp, Belgium, 20-24 Sept. 2010.
[6] A. Elkhodary, N. Esfahani, and S. Malek, "FUSION: a framework for engineering self-tuning self-adaptive software systems," ACM SIGSOFT Int. Symp. on Foundations of Software Engineering, FSE'10, pp. 7-16, Santa Fe, NM, USA, 7-11 Nov. 2010.
[7] B. Morin, O. Barais, G. Nain, and J. M. Jezequel, "Taming dynamically adaptive systems using models and aspects," in Proc. Int Conf. on Software Engineering, ICSE'09, pp. 122-132, Vancouver, BC, Canada, 16-24 May 2009.
[8] R. Lemos, et al., "Software engineering for self-adaptive systems: a second research roadmap," In R. de Lemos et al., eds., Self-Adaptive Systems, LNCS 7475, Springer-Verlag, Berlin, pp. 1-32, 2011.
[9] B. H. Cheng, et al., "Software engineering for self-adaptive systems: a research roadmap," In: B. H. C. Cheng, R. de Lemos, H. Giese, P. Inverardi, and J.Magee, eds., Software Engineering for Self-Adaptive Systems, LNCS 5525, p. 1-26, Springer-Verlag, 2009.
[10] N. Bencomo and A. Blaggoun, "A world full of surprise: bayesian theory of surprise to quantify degrees of uncertainty," in Companion Proc. of the 36th Int. Conf. on Software Engineering, pp. 460-463, Hyderabad, India, 31 May-7 Jun. 2014.
[11] M. Shaw, The Role of Design Spaces, IEEE Computer Society, 2012.
[12] N. Bencomo, A. Blaggoun, and V. Issarny, "Dynamic decision networks for decision-making in self-adaptive systems: a case study," in Proc. of the 8th Int. Symp. on Software Engineering for Adaptive and Self-Managing Systems, SEAMS'13, pp. 113-122, San Francisco, CA, USA, 20-21 May 2013.
[13] T. Preisler and W. Renz, "Structural adaptations for self-organizing multi-agent systems," International Journal on Advances in Intelligent Systems, vol. 8, no. 3-4, 8 pp., 2015.
[14] M. Ahmad, N. Belloir, and J. Brue, "Modeling and verification of functional and non-functional requirements of ambient self-adaptive systems," J. of Software and Systems, vol. 107, pp. 50-70, Sept. 2015.
[15] S. Hassan, N. Bencomo, and R. Bahsoon, "Minimizing nasty surprises with better informed decision-making in self-adaptive systems," in Proc. of the 10th Int. Symp. on Software Engineering for Adaptive and Self-Managing System,s SEAM'15, pp. 134-144, Florence, Italy, 16-24 May 2015.
[16] J. L. H. Garcia Paucar, N. Bencomo, and K. Kam Fung Yuen, "Runtime models based on dynamic decision networks: enhancing the decision-making in the domain of ambient assisted living applications," in Proc. of the 11th Int. Workshop on MoDELS, pp. 9-17, Saint Malo, France, 4-4 Oct. 2016.
[17] N. Bencomo and A. Blaggoun, "Supporting decision-making for self-adaptive systems: from goal models to dynamic decision networks," In J. Doerr, A. L. Opdahl, eds., Requirements Engineering: Foundation for Software Quality, LNC7830. Springer, Berlin, 2013.
[18] J. Kramer and J. Magee, "Self-managed systems: an architectural challenge," in Proc. of Future of Software Engineering, FOSE'07, pp. 259-268, 23-25 May 2007.
[19] K. Welsh, P. Sawyer, and N. Bencomo, "Towards requirements aware systems run-time resolution of design-time assumption," in Proc. of the 26th IEEE/ACM Int. Conf. on Automated Software Engineering, ASE'11, pp. 560-563, Washington, DC, USA, 6-10 Nov. 2011.
[20] A. J. Ramirez, et al., "Relaxing claims coping with uncertainty while evaluating assumptions at runtime," In R. B.: France, J. Kazmeier, R. Breu, C. Atkinson, eds., LNCS 7590, pp. 53-69, 30 Sept.-5 Oct. 2012.
[21] J. Whittle, P. Sawyer, N. Bencomo, B. H. C. Cheng, and J. Bruel, "RELAX: incorporating uncertainty into the specification of self-adaptive systems," in Proc. of the 2009 17th IEEE Int. Requirements Engineering Conf., RE'09, pp. 79-78, Atlanta, GA, USA, 31 Aug.-4 Sept. 2009.
[22] S. J. I. Herzig and C. J. J. Paredis, "Bayesian reasoning over models," in Proc. Workshop on Model-Driven Engineering, Verification, and Validation, pp. 69-80, Valencia, Spain, 30 Sept. 2014.
[23] L. Pimentel, D. Ros, and M. Seruffo, "Wired/wireless internet communications," in Proc. Int. Conf. on Wired/Wireless Internet Communication, Malaga, Spain, 25-27 May, 2015.
[24] T. L. Saaty, "Decision making for leaders: the analytic hierarchy process for decisions in a complex world," International J. of Services Sciences, vol. 1, no. 1, pp. 83-98, 2008.
[25] L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice (3rd Edition), SEI Series in Software Engineering, Addison-Wesley Professional, 2012.