عاطفه افضلی

عاطفه افضلی

عنوان پایان‌نامه

رویکردی برای مستند سازی معماری نرم افزار در پروژه های چابک



    دانشجو
    عاطفه افضلی
    استاد راهنما
    حسن رشیدی
    استاد مشاور
    فرشته آزادی پرند
    رشته تحصیلی
    مقطع تحصیلی
    کارشناسی ارشد
    ساعت دفاع

    چکیده

    این تحقیق به مسئله‌ی مستندسازی معماری نرم‌افزار در پروژه‌های چابک می‌پردازد و نیاز به یک روش یکپارچه و موثر برای حل مشکلات مرتبط با آن را مورد بررسی قرار می‌دهد. در پروژه‌های چابک، تمرکز بر توسعه سریع نرم‌افزار و تغییرات مداوم، باعث کاهش توجه به مستندسازی معماری می‌شود که منجر به کاهش کیفیت و قابلیت نگهداری نرم‌افزار می‌گردد. این تحقیق به دنبال ارائه روش‌هایی است که بتواند این مشکلات را حل نماید.  

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

    در این تحقیق، پس از بررسیها و مطالعات انجام شده ، سه ابزار محبوب در این حوزه، یعنی StarUML، Enterprise Architecture و Visual Paradig، انتخاب گردید. جهت ارزیابی این ابزارها، انجام یک مطالعه موردی بر روی سیستم کنترل و فرمان پلیس، و با رویکردهای مختلف مستندسازی معماری در پروژه‌های چابک و به طور خاص این سه ابزار، در دستور کار قرار گرفتند. نتایج حاصل از این ارزیابی با استفاده از روش دلفی چند دوره‌ای و با مشارکت متخصصان حوزه، برتری ابزار StarUML را در مقایسه با دو ابزار دیگر نشان داد. StarUML به دلیل دارا بودن قابلیت‌های مدل‌سازی متنوع، انعطاف‌پذیری بالا، و جامعه کاربری فعال، به عنوان ابزاری مناسب برای مستندسازی معماری نرم‌افزار در محیط‌های چابک شناخته شد.

    روش پیشنهادی برای مستندسازی معماری نرم‌افزار در پروژه‌های چابک، با استفاده از یک مطالعه موردی بر روی سیستم کنترل و فرمان پلیس، مورد بررسی و ارزیابی قرار می‌گیرد. در ادامه، رویکرد پیشنهادی با استفاده از ابزار StarUML بر روی سیستم کنترل و فرمان پلیس پیاده‌سازی شد. نتایج این پیاده‌سازی نشان داد که رویکرد پیشنهادی می‌تواند به طور موثر در بهبود درک تیم توسعه از معماری نرم‌افزار، کاهش خطاها و افزایش کیفیت نرم‌افزار کمک کند.

      

    Abstract

    This research deals with the issue of software architecture documentation in agile projects and examines the need for an integrated and effective method to solve related problems. In agile projects, focusing on rapid software development and continuous changes reduces attention to architectural documentation, which leads to a decrease in software quality and maintainability. This research seeks to provide methods that can solve these problems.

    The proposed method for documenting software architecture in agile projects is investigated and evaluated using a case study on police command and control system. This study analyzes the current approaches of software architecture documentation and provides innovative solutions to improve them.

    In this research, after the investigations and with the supervisor's opinion and conducting a case study on police command and control system, different approaches of architectural documentation in agile projects, specifically three popular tools in this field, i.e. StarUML, Enterprise Architecture and Visual Paradig were evaluated.

    The results of this evaluation showed the superiority of the StarUML tool compared to the other two tools using the multi-cycle Delphi method and with the participation of experts in the field. StarUML was recognized as a suitable tool for documenting software architecture in agile environments due to its diverse modeling capabilities, high flexibility, and active user community.

    Next, the proposed approach was implemented using the StarUML tool on the police command and control system. The results of this implementation showed that the proposed approach can effectively help in improving the development team's understanding of software architecture, reducing errors and increasing software quality.

    The main goals of this research include providing an applicable and adaptable method for documentation, improving the understanding of the software structure, improving the quality and maintainability of the software, and improving the code development and integration process in agile projects.

    In this research, theoretical and experimental research methods are used to find effective and efficient solutions for documenting software architecture in agile projects.