فصلنامه تخصصی فناوری اطلاعات و ارتباطات

امکان سنجی و ارزیابی الزامات معماری نرم افزار

نوع مقاله : مقاله پژوهشی

نویسنده

گروه مهندسی کامپیوتر، دانشگاه آزاد اسلامی، واحد خدابنده، زنجان، ایران

10.22034/apj.2022.699802
چکیده
امروزه اکثر کاربردهای فناور محور، وابسته به سیستم های نرم افزاری بزرگ و پیچیده می باشند. معماری نرم افزار قادر است چارچوبی نظام مند جهت مدیریت پیچیدگی ها و وابستگی های نرم افزار ارائه نماید. معماری نرم‌افزار حاوی تصمیمات کلیدی راجع به ساختار یک سیستم نرم‌افزاری است که شامل انتخاب اجزای سازنده نرم‌افزار و روابط بین این اجزاء‌ است. همچنین معماری رفتار این اجزاء را براساس تعاملی که برای پیاده سازی یک سیستم نرم افزاری، انجام می‌دهند، تبیین می نماید. امروزه یکی از مسائل مورد توجه توسعه‌دهندگان نرم‌افزار، پیاده سازی صحیح و اصولی نیازمندی های معماری نرم‌افزار و به تبع آن، ارزیابی دقیق ابعاد معماری نرم افزار است. همچنین از نقشها و وظائف اصلی واحدهای فناوری اطلاعات در سازمان های مختلف، ایجاد اطمینان از لحاظ ساختار فنی و معماری نرم‌افزار می‌باشد. لازمه پیاده سازی اصولی معماری نرم افزار درک شفاف از اهداف و نیازمندی های معماری می باشد. لذا در این راستا ضروری است، نیازمندی ها و الزامات معماری بصورت اصولی امکان سنجی و ارزیابی شوند. با توجه به اهمیت این مساله، در این مقاله به امکان سنجی و ارزیابی نیازمندی ها و الزامات معماری نرم افزار می پردازیم.

کلیدواژه‌ها


عنوان مقاله English

Feasibility Checking and Assessment for Software Architecture Requirements

نویسنده English

Nafiseh Fareghzadeh
Department of Computer Science, Khodabandeh Branch, Islamic Azad University, Zanjan, Iran
چکیده English

Today, most technology-oriented applications are dependent on large and complex software systems. Software architecture provides a systematic framework for managing software complexities and dependencies. Software architecture contains key decisions about the structure of a target software system, which includes the selection of software components, modules and the relationships between these components. Moreover, the software architecture specifies the behavior of these components as the interaction they perform together to build a monolithic software system. Nowadays, one of the issues of concern to software developers is the correct and principled implementation of software architecture and accordingly, the accurate evaluation of architectural dimensions. Also, one of the main roles and functions of information technology units in different organizations is to provide assurance in terms of technical structure and software architecture. The requirement for the basic implementation of software architecture is a clear understanding of the goals and requirements of the architecture. Therefore, in order to make sure, architectural requirements should be fundamentally assessed and evaluated. Due to the importance of this issue, in this article we discuss the feasibility checking and assessment of software architecture requirements.

کلیدواژه‌ها English

Software Architecture
Feasibility
Assessment
architectural requirements
service quality
     [1]          Vogelsang, A., Eder, S., Hackenberg, G., Junker, M., & Teufl, S. (2014, January). Supporting concurrent development of requirements and architecture: A model-based approach. In 2014 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD) (pp. 587-595). IEEE.
     [2]          Obergfell, P., Kugele, S., & Sax, E. (2019, September). Model-based resource analysis and synthesis of service-oriented automotive software architectures. In 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS) (pp. 128-138). IEEE.
     [3]          Shahin, M., Liang, P., & Babar, M. A. (2014). A systematic review of software architecture visualization techniques. Journal of Systems and Software, 94, 161-185.
     [4]          do Carmo Machado, I., McGregor, J. D., Cavalcanti, Y. C., & De Almeida, E. S. (2014). On strategies for testing software product lines: A systematic literature review. Information and Software Technology, 56(10), 1183-1199.
     [5]          Heinrich, R., Van Hoorn, A., Knoche, H., Li, F., Lwakatare, L. E., Pahl, C., ... & Wettinger, J. (2017, April). Performance engineering for microservices: research challenges and directions. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (pp. 223-226).
     [6]          Faisal, M. A., Aung, Z., Williams, J. R., & Sanchez, A. (2014). Data-stream-based intrusion detection system for advanced metering infrastructure in smart grid: A feasibility study. IEEE Systems journal, 9(1), 31-44.
     [7]          Mahdavi-Hezavehi, S., Avgeriou, P., & Weyns, D. (2017). A classification framework of uncertainty in architecture-based self-adaptive systems with multiple quality requirements. In Managing Trade-Offs in Adaptable Software Architectures (pp. 45-77). Morgan Kaufmann.
     [8]          Brosch, F. (2014). Integrated software architecture-based reliability prediction for IT systems (Vol. 9). KIT Scientific Publishing.
     [9]          Capilla, R., Bosch, J., Trinidad, P., Ruiz-Cortés, A., & Hinchey, M. (2014). An overview of Dynamic Software Product Line architectures and techniques: Observations from research and industry. Journal of Systems and Software, 91, 3-23.
  [10]          Ding, W., Liang, P., Tang, A., & Van Vliet, H. (2014). Knowledge-based approaches in software documentation: A systematic literature review. Information and Software Technology, 56(6), 545-567.
  [11]          Alégroth, E., Feldt, R., & Kolström, P. (2016). Maintenance of automated test suites in industry: An empirical study on Visual GUI Testing. Information and Software Technology, 73, 66-80.
  [12]          Buede, D. M., & Miller, W. D. (2016). The engineering design of systems: models and methods.
  [13]          Guo, J., Jiang, Y., Zhao, Y., Chen, Q., & Sun, J. (2018, October). Dlfuzz: Differential fuzzing testing of deep learning systems. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (pp. 739-743).
  [14]          Ahmad, A., & Babar, M. A. (2016). Software architectures for robotic systems: A systematic mapping study. Journal of Systems and Software, 122, 16-39.
  [15]          Garcia, F., Pedreira, O., Piattini, M., Cerdeira-Pena, A., & Penabad, M. (2017). A framework for gamification in software engineering. Journal of Systems and Software, 132, 21-40.
  [16]          Capilla, R., Jansen, A., Tang, A., Avgeriou, P., & Babar, M. A. (2016). 10 years of software architecture knowledge management: Practice and future. Journal of Systems and Software, 116, 191-205.
  [17]          Yang, C., Liang, P., & Avgeriou, P. (2016). A systematic mapping study on the combination of software architecture and agile development. Journal of Systems and Software, 111, 157-184.
  [18]          Graham, D., Black, R., & Van Veenendaal, E. (2021). Foundations of software testing ISTQB Certification. Cengage Learning.
  [19]          Morschheuser, B., Hassan, L., Werder, K., & Hamari, J. (2018). How to design gamification? A method for engineering gamified software. Information and Software Technology, 95, 219-237.
  [20]          Huber, S., Wiemer, H., Schneider, D., & Ihlenfeldt, S. (2019). DMME: Data mining methodology for engineering applications–a holistic extension to the CRISP-DM model. Procedia Cirp, 79, 403-408.
  [21]          Fitzgerald, B., & Stol, K. J. (2017). Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, 176-189.