فرایند توسعه نرمافزار به یک سری از فعالیتهای مهندسی نرمافزار اطلاق میشود که با هدف مدیریت چرخه حیات (life) یک سیستم نرمافزاری برنامه ریزی و طراحی میشود.
در کل میتوان گفت مراحلی را که در طی توسعه و تولید نرمافزار سپری میشوند را چرخه حیات تولید وتوسعه نرم افزار (SDLC) میگویند.
چرخه حیات سیستم به دو نوع تقسیم میشود:
1. TLC یا چرخه حیات سیستمهای قدیمی
2. OODLC یا چرخه حیات سیستمهای شی گرا
:(TLC) Traditional Life Cycle
در گذشته از روش TLC استفاده میشد به دلیل اینکه اکثر برنامهها بر اساس روش فرایندگرا ساخته میشدند. در این روش تمرکز بر روی فعالیتهای سیستم است.
البته گفتی است که اکنون هم بسیاری از شرکتها از این روش استفاده میکنند که این موضوع دلایل مختلفی دارد که در بیشتر مواقع به دلیل کمبود دانش کارفرما و یا برنامهنویس است.
OODLC) Object-Oriented Development Life Cycle):
چرخه حیات سیستمهای شیگرا در مهندسی نرمافزار است. که بعد از به وجود آمدن سیستم برنامهنویسی شیگرا شکل گرفت.
روش شناسی (Methodology):
متدولوژی یا فارسی شده آن روش شناسی در چرخه توسعه نرمافزار یک سری روشهای انجام این روال است. متدولوژیها اصولا میتوانند تعریفهای مختلفی از گامهای انجام کار داشته باشند. یک سری از متدولوژیهایی که شاید اسم بعضی از آنها برای شما آشنا باشد در زیر آمده است.
Waterfall | آبشاری:
مدل آبشاری یک مدل ترتیبی توسعه نرمافزار است و درآن مراحل تولید به شکل یک جریان مداوم متمایل به سمت پايین است.
شامل فازهای تحلیل خواستهها، طراحی، پیادهسازی (Implementation)، آزمایش (Test) کردن، یکپارچه سازی (Integration)، و ارائه محصول به بازار است.
Agile | چابک:
توسعه نرمافزاری چابک مجموعهای از متدهای توسعهی نرمافزار مبتنی بر تکرار است که در آنها، راهحلها از طریق خودسازماندهی و همکاری بین تیمهای مختلف کاری، انجام میشوند
برخی اصول چابک: رضایت مشتری، استقبال از تغییرات، توسعهٔ پایدار، انطباق با تغییرات و تیمهای خودسازماندهی.
V-Shaped | وی شکل:
این مدل به جای اینکه مسیر تولید همانند روش آبشاری، یک مسیر شیب دار مستقیم به سمت پایین باشد، مسیر فرایندها پس از فاز برنامهنویسی به سمت بالا به شکل حرف وی انگلیسی خم میشود. اهداف زیر در هنگام اجرای پروژه توسط این مدل مد نظر است.
۱- حداقل میزان ریسک.
۲- تضمین بهبود کیفیت.
۳- کاهش هزینه در کل چرخه حیات.
۴- بهبود بخشیدن ارتباط بین همه اعضای پروژه
چند دلیل از دلایل شکست پروژههای نرم افزاری:
۱- زمان بندی غیر اصولی و غیر واقعی
۲- مشخص نشدن نیازهای پروژه در ابتدا
۳- مشتری درگیر پروژه نمیشود
۴- تست ناصحیح پروژه
۵- عدم مدیریت پروژه در اوایل انتشار
حال چگونه SDLC این مشکلات را بر طرف میکند:
با استفاده از تعریف کردن یک سری از مراحل برای انجام کار توسعه سیستم و بخشبندی مختلف برای انجام کار. که این مراحل در زیر آورده شده است.
برنامه ریزی:
در مرحله بر اساس درخواستها نیازها مشخص میشوند، هدف یا اهداف پروژه تعیین میشود و در نهایت یک سند از این اطلاعات جمع آوری میشود.
تجزیه و تحلیل:
بر اساس سندی که در مرحله برنامهریزی بدست آمده است. مسیری که باید طی شود بررسی میشود. کمبودها و وابستگیها تشخیص داده شده و مشکلات احتمالی بر سر راه پروژه شناسایی شده و با این کار شرایط انجام پروژه مشخص میشود و این اطلاعات به صورت سندی جمع آوری میشود.
طراحی:
بعد از بررسی هر دو سند به دست آمده. هدف کلی، مسیر، تیم و منابع مورد نیاز و چهارچوب اصلی پروژه طراحی میشود.
اجرا:
در مرحله اجرا بر اساس سند طراحی شده در مرحله طراحی پروژه تولید، آزمایش و پس از آن نصب، راهبری و نگاهداری خواهد شد.
سخن پایانی:
در مهندسی نرمافزار مهمترین شاخص، تولید(طراحی و پیاده سازی) نرمافزار با کیفیت متناسب با نیازهای مشتری است و با گسترش روزافزون دنیای تکنولوژی بیش از هر زمان دیگری نیاز به متخصصان و مهندسان رایانه احساس میشود. این رشته در ایران بازار کار خوبی ندارد طبق آمارها و بررسی ما بیش از ۶0 درصد از فارغالتحصیلان در سال ۹5 مشغول به کار در سایر مشاغل هستند و تنها دلیل خود ما هستیم زیرا به مهندسی نرمافزار توجه نشان نمیدهیم.