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

دستیابی به قابلیت تغییر در طراحی معماری سیستم های نرم افزاری

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

نویسنده

دانشکده مهندسی کامپیوتر، دانشگاه علم و صنعت، تهران، ایران

10.22034/apj.2022.253916
چکیده
امروزه موج رو به افزایش استفاده از نرم افزار در سازمانها، شرکتها و صنایع کوچک و
بزرگ توسعه دهندگان نرم افزار را دچار سردرگمی در چگونگی توسعه نرم افزار با روشهای
توسعه قدیمی نموده است. با گسترش روز افزون استفاده از مدل های فرایند مبتنی بر معماری
در توسعه نرم افزار، بهبود طراحی معماری نرم افزار اهمیت ویژه ای یافته است. معماری نرم افزار از کلیدی ترین بخشهای تولید نرم افزار مخصوصاً نوع تجاری آن است که البته در سالهای اخیر با ایجاد مدلهای کلاسیک تولید نرم افزار به نرم افزارهای عظیم تر توسعه یافته است . معماری نرم افزار یک سیستم ساختاری یا ساختارهایی از یک سیستم عملیاتی است که عناصر
نرم افزاری، خصوصیات قابل مشاهده از بیرون آن عناصر، و ارتباطات بین آنها را شامل میشود.
یک طراحی معماری کارامد، طراحی است که نیازهای کیفی مورد انتظار مشتری را برآورده
نماید. دستیابی به قابلیت تغییر در مشخصه های عملیاتی از مهم ترین ویژگی های کیفی در
طراحی معماری سیستم های نرم افزاری مدرن می باشد. در این مقاله ابتدا روش های گوناگون
طراحی معماری نرم افزار مورد بررسی قرار خواهد گرفت و سپس ویژگی کیفی قابلیت تغییر
به طور دقیق معرفی خواهد شد. در نهایت درخصوص طراحی معماری نرم افزار با تکیه بر
دستیابی به قابلیت تغییر بحث خواهد شد.

کلیدواژه‌ها


عنوان مقاله English

Achieve the Alterability in Design of Software System Architecture

نویسنده English

Alireza Mohammadi
School of Computer Engineering, Iran University of Science and Technology, Tehran, Iran
چکیده English

Today, the increasing use of software systems in organizations, companies and small and large industries has left software developers confused about how to develop software with old development methods. With the increasing use of architecture-based process models, software architecture design has become particularly important challenge. Software architecture is one of the key parts of software production, especially its commercial type, which, of course, has been developed in recent years by creating classic models of software production to larger software. Software architecture is a structural system or structures of an operating system that includes software elements, properties visible from outside those elements, and the relationships between them. A good architectural design is a design that meets the quality needs expected by the customer. Achieving the alterability ability is one of the most important quality features in the design of modern software systems. In this article, first the various methods of software architecture design will be examined and then the qualitative feature of alterability and changeability will be introduced in detail. Finally, software architecture design based on achieving the alterability will be discussed.

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

Software Systems
Alterability
Software Architecture
Modifications
Extensibility
     [1]          Ahmad, M.O., Markkula, J., Oivo, M.: Kanban in software development: a systematic literature review. In: 2013 39th Euromicro Conference on Software Engineering and Advanced Applications, pp. 9–16. IEEE (2013)
     [2]          Angelov, S., & de Beer, P. (2017). Designing and applying an approach to software architecting in agile projects in education. Journal of Systems and Software, 127, 78–90.
     [3]          Babar, M., Brown, A., & Mistrik, I. (2013). Making software architecture and agile approaches work together: Foundations and approaches. Agile software architecture: Aligning agile processes and software architectures.
     [4]          Kruchten, P. B. (1995). The 4 + 1 view model of architecture. IEEE Software, 12(6), 42–50.
     [5]          Abrahamsson, P., Babar, M. A., & Kruchten, P. (2010). Agility and architecture: Can they coexist? IEEE Software, 27(2).
     [6]          Buschmann, F., Henney, K., & Schmidt, D. C. (2007). Pattern-oriented software architecture, on patterns and pattern languages (Vol. 5). Wiley.
     [7]          Chauhan, M. A., Babar, M. A., & Benatallah, B. (2016). Architecting cloud-enabled systems: A systematic survey of challenges and solutions. Software: Practice and Experience.
     [8]          Matinlassi, M., Niemelä, E., & Dobrica, L. (2002). Quality-driven architecture design and quality analysis method. A revolutionary initiation approach to a product line architecture. Espoo: VTT Technical Research Centre of Finland.
     [9]          Kazman, R., Bass, L., Webb, M., & Abowd, G. (1994). SAAM: A method for analyzing the properties of software architectures. In Proceedings of the 16th International Conference on Software Engineering (pp. 81–90). IEEE Computer Society Press.
  [10]          Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R., Ivers, J., & Little, R. (2002). Documenting software architectures: Views and beyond. Pearson Education.
  [11]          Coplien, J. O. & Bjørnvig, G. (2011). Lean architecture: For agile software development. Wiley.
  [12]          Chauhan, M. A., Babar, M. A., & Probst, C. W. (2016). A process framework for designing software reference architectures for providing tools as a service. In Product-Focused Software Process Improvement: 17th International Conference, PROFES 2016, Trondheim, Norway, 22–24 November 2016, Proceedings 17 (pp. 111–126). Springer.
  [13]          Gorton, I. (2006). Essential software architecture. Springer Science & Business Media.
  [14]          Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., & Carriere, J. (1998). The architecture tradeoff analysis method. In Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998. ICECCS’98. Proceedings (pp. 68–78). IEEE.
  [15]          Kiv, S., Heng, S., Wautelet, Y., Poelmans, S., Kolp, M.: Using an ontology for systematic practice adoption in agile methods: expert system and practitioners-based validation. Expert Syst. Appl. 195, 116520 (2022)
  [16]          Wirsing, M., et al.: Software Engineering for Collective Autonomic Systems, 537 p. Springer, Heidelberg (2015)
  [17]          Silva, E., Batista, T., Oquendo, F.: A mission-oriented approach for designing system-of-systems. In: Proceedings of the 10th IEEE System-of-Systems Engineering Conference (SoSE), pp. 346–351, May 2015
  [18]          SAE Standard AS5506-2012: Architecture Analysis & Design Language (AADL), 398 p., September 2012
  [19]          Quilbeuf, J., Cavalcante, E., Traonouez, L.-M., Oquendo, F., Batista, T., Legay, A.: A logic for the statistical model checking of dynamic software architectures. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 806–820. Springer, Heidelberg (2016).
  [20]          Oquendo, F., et al.: Proceedings of the 1st ACM International Workshop on Software Engineering for Systems-of-Systems (SESoS), Montpellier, France, July 2013