مراحل طراحی و تولید نرم افزار چیست؟

مراحل طراحی و تولید نرم افزار چیست؟

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

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

مراحل توسعه نرم افزار

مراحل تولید نرم افزار شامل موارد زیر است که برخی از این مراحل ممکن است هم زمان با بخشی دیگر انجام شود.

  • شناخت نیازمندی‌ها
  • تحلیل و طراحی
  • طراحی UI/UX
  • کدنویسی
  • تست و دیباگ
  • استقرار
  • نگهداری و پشتیبانی
6 فاز توسعه نرم افزار

1. شناخت نیازمندی ها

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

خروجی این مرحله از توسعه نرم افزار سند Product Backlog است که معمولاً بیشتر از 2 صفحه نیست و شامل امکانات کلی سامانه است که مشتری انتظار دارد پس از پایان پروژه دریافت نماید. پس از تأیید این سند از سمت مشتری، مرحله بعدی آغاز می شود.

2. تحلیل و طراحی

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

  • مدیران سازمان
  • کارمندان سازمان
  • افرادی خارج از سازمان (اگر قرار است کاربران سامانه خارج از سازمان باشند.)

هدف از این مرحله، کشف نیازهای واقعی کاربران سامانه است. معمولاً به این علت که کسانی که سفارش محصول نرم افزاری می دهند، دانش تخصصی در حوزه برنامه نویسی و IT ندارند، نمی توانند ایده خود را به خوبی پرورش دهند. تیم تحلیل و طراحی موظف است با مهارت هایی که دارد، نیاز واقعی کاربر را کشف نماید. در این مرحله تیم راه حل های ارائه شده توسط مشتری را با نیازهای او تطبیق می دهد و نسبت به آینده پروژه بعضاً راه حل سومی پیشنهاد می دهد که بهینه ترین روش برای مشتری باشد.

این تیم تحلیل و طراحی است که می تواند آینده محصول را با گسترش کاربران و افزایش حجم داده پیش بینی کند و با ارائه مشاوره های مناسب به شما، بهترین طراحی برای سامانه مورد نظر را پیشنهاد دهد.

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

خروجی این مرحله سند پروپوزال است که شامل تمام جزئیات فنی پروژه است. البته این سند بسته به توافق طرفین می تواند شامل موارد زیر باشد و ممکن است هزینه ای برای تولید داشته باشد و یا رایگان تولید شود:

  • اطلاعات کلی سامانه مثل: بهره برداران، مالک، ابعاد پروژه، هدف، خصوصیات کلیدی پروژه و…
  • بخش های سامانه
  • UI/UX (ظاهر فرم ها و گزارش ها)
  • نحوه کارکرد هر بخش
  • فرآیندها بر اساس مدل BPMN
  • ERD (ارتباطات میان موجودیت ها)
  • Class Diagram (طراحی زیرساخت اطلاعاتی سامانه)
  • Prototype (مدلی که عملکرد سامانه را شبیه سازی می کند)
نمونه BPMN فرآیند سفارش نرم افزار

3. طراحی UI/UX

این بخش شامل طراحی ظاهر رابط کاربری (User Interface) و تجربه کاربری (User experience) می باشد که توسط یک طراح گرافیست که در زمینه تجربه کاربری تخصص دارد انجام می شود.

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

4. کد نویسی

در این مرحله تمام مواردی که در بخش های «تحلیل و طراحی» و «طراحی UI/UX» انجام شده اند به کد تبدیل می شوند. این مرحله خود شامل 3 بخش اصلی است:

  • ساخت Database
    ساخت بانک اطلاعات بر اساس Class Diagram طراحی شده در بخش «تحلیل و طراحی»
  • طراحی Front
    یعنی ایجاد کدهایی که ظاهر نرم افزار را مطابق طراحی انجام شده ایجاد نماید.
  • طراحی Backend
    شامل کدهای هسته نرم افزار که وظیفه پردازش اطلاعات را بر عهده دارند.

امروزه با توجه به توسعه ابزارهای هوش مصنوعی و منابع خوب در اینترنت، به مرور از اهمیت بخش کد نویسی کاسته می شود. چرا که طراحی اصلی محصول در بخش های «تحلیل و طراحی» انجام می شود و تجربه کاربری هم در بخش «طراحی UI/UX».

5. تست و دیباگ

هم زمان با تولید اولین بخش از محصول که قابل تست باشد، کار تیم «تست و دیباگ» آغاز می شود. کار این تیم پیدا کردن اشکالات و نواقص موجود در بخش های مختلف نرم افزار است. معمولاً برنامه نویس از آنجایی که تمرکز بسیار بالایی بر روی توسعه کدها با بهترین شیوه دارد، نمی تواند بر بدون عیب بودن خروجی دقت خاصی داشته باشد. البته که مهارت برنامه نویس مستقیماً در کاهش باگ ها تأثیر دارد، ولی وجود این تیم یک ضرورت محسوب می شود تا این وظیفه به عهده مشتری محول نشود. این کار باعث می شود تا خروجی تحویلی به مشتری از کیفیت بسیار بالایی برخوردار باشد.

6. استقرار

تیم استقرار و در واقع کارشناس DevOps وظیفه بارگذاری سامانه را بر روی سرور(ها) بر عهده دارد. او با تخصصی که در زمینه سیستم عامل، شبکه و انواع روش های استقرار دارد، می تواند عملکرد صحیح سامانه را درون سیستم عامل مقصد تضمین نماید.

اگر سامانه مورد نظر تحت وب و در بستر اینترنت باشد، ممکن است کار این تیم از همان ابتدای شروع طراحی شروع شود و هر تغییری مستقیما بر روی سرور بارگذاری شود. ولی اگر سامانه تحت ویندوز باشد و یا قرارداد تحویل پس از تکمیل پروژه باشد، پس از تکمیل مراحل قبل، سامانه برای مشتری مستقر خواهد شد.

7. نگهداری و پشتیبانی

هر سامانه ای پس از تحویل نهایی نیازمند پشتیبانی و نگهداری است. ممکن است با تمام دقت ها، مواردی از نگاه تیم «تست و دیباگ» دور مانده باشد و یا امکاناتی حیاتی در سامانه گنجانده نشده باشد. در این مرحله شرکت برنامه نویس موظف است به پشتیبانی و نگهداری سامانه بپردازد.

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

در انتها

اگر برای شروع پروژه نرم افزاری خود هنوز شک دارید که به سراغ کدام شرکت بروید ما روش پیدا کردن بهترین شرکت برنامه نویسی را به شما یاد می دهیم.

2 دیدگاه در “مراحل طراحی و تولید نرم افزار چیست؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *