بررسی کلی فرآیندهای توسعه نرم افزار Software Development Life Cycle

همانطور که در معرفی این دوره آموزشی گفتیم SDLC مخفف Software Development Life Cycle و یا چرخه حیات توسعه نرم افزار است. SDLC یک فرآیند است که توسط صنایع نرم افزاری برای طراحی، توسعه و تست نرم افزارهای با کیفیت مورد استفاده قرار می گیرد. هدف SDLC تولید کردن نرم افزارهای با کیفیت است که از سطح انتظارات مشتری فراتر می رود و می تواند در زمان و بودجه تعریف شده کامل بگردد.

اصطلاح SDLC چیست؟

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


یک SDLC معمولی شامل مراحل زیر خواهد بود.

مرحله اول: برنامه ریزی و تجزیه و تحلیل نیازمندی ها (Planning and Requirement Analysis)

تجزیه و تحلیل نیازمندی ها و یا requirement analysis یکی از مهمترین و اساسی ترین مراحل یک SDLC می باشد. این مرحله توسط اعضای خبره تیم توسعه نرم ‌افزار انجام می‌پذیرد و از داده هایی که از مشتری، بخش ‌های فروش و یا حتی domain expert های مربوط به صنعت دریافت می‌شود شکل می‌پذیرد.

منظور از domain expert خبره های حوزه کاری و یا فعالیت نرم افزار است که اگر کمی Domain Driven Design بدانید می‌توانید منظور ما از این واژه را بهتر درک کنید. در این رابطه توصیه می‌کنیم از بسته ی آموزش ویدئویی کاربردی طراحی نرم افزار Domain Driven Design استفاده کنید. از داده‌هایی که در قسمت و یا مرحله تجزیه و تحلیل نیازمندی ها کسب شده است، به منظور برنامه‌ریزی کردن روند اولیه توسعه پروژه و حتی انجام امکان پذیری در حوزه‌ های اقتصادی، عملیاتی و تکنیکی مورد استفاده قرار می‌گیرد.

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

پرووید: مرکز آموزش تخصصی برنامه نویسی و توسعه نرم افزار