7 مدل تولید نرم افزار بخش اول (Iterative و Waterfall)
پنجشنبه 31/فروردین/1402 3256 برنامه نویسی

7 مدل تولید نرم افزار بخش اول (Iterative و Waterfall)

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

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

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

مراحل چرخه تولید نرم افزار

مرحله 1: برنامه ریزی و تجزیه و تحلیل نیازمندی ها
مرحله 2: تعریف نیازمندی ها
مرحله 3: طراحی معماری نرم افزار
مرحله 4: تولید نرم افزار
مرحله 5: آزمایش محصول
مرحله 6: پیاده سازی در بازار و نگهداری
است.

مدل های تولید نرم افزار

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

  1. مدل آبشاری Waterfall Model
  2. مدل تکراری Iterative Model
  3. مدل حلزونی یا مارپیچ Spiral Model
  4. مدل وی V Model
  5. مدل بینگ بنگ Big Bang Model
  6. مدل سریع Agile Model
  7. مدل تولید سریع برنامه کاربردی RAD-Rapid Application Development

1- مدل آبشاری Waterfall Model چرخه حیات تولید نرم افزار

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


مدل آبشاری نشانگر روند تهیه و تولید نرم افزار به شیوه خطی و پی در پی است و بدین لحاظ هر مرحله در این مدل زمانی آغاز می گردد که مرحله قبلی تکمیل شده باشد. بر این اساس تمامی مراحل مستقل از یکدیگر بوده و هیچ مرحله ای با مرحله دیگر هم پوشانی ندارد.

طرح مدل آبشاری

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

مدل آبشاری

مراحل پی در پی در مدل آبشاری عبارتند از:

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

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

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

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

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

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

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

کاربرد مدل آبشاری

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

  • نیازها کاملاً روشن و ثابت و مستند به عوامل شناخته شده می باشند.
  • تعریف محصول ثابت و پایدار است.
  • فن آوری کاملاً درک شده و تغییر پذیر نیست.
  • نیازها بصورت مبهم و غیر واضح نمی باشند.
  • منابع و کارشناسان مجرب فراوان جهت پشتیبانی از محصول وجود دارند.
  • طول عمر پروژه کوتاه است.

مزیت مدل آبشاری

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

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

ChatGPT نمی تواند جایگزین برنامه نویسان باشد

معایب مدل آبشاری

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

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

2- مدل تکراری Iterative Model چرخه حیات تولید نرم افزار

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

Itrative

طرح مدل تکراری

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

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

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

کلید کاربرد موفقیت آمیز چرخه حیات تولید نرم افزار شناخت کامل و صحیح نیازمندی ها تا تایید و تصدیق آن ها و تست و آزمون هر نسخه از نرم افزار با نیازمندی ها در هر چرخه از مدل می باشد. در هر مرحله که نرم افزار در چرخه های پی در پی پیش می رود آزمایش ها نیز جهت تایید هر نسخه از نرم افزار نیز می بایست تکرار شوند.

کاربرد مدل تکراری

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

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

معایب مدل تکراری

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

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

مزیت مدل تکراری

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

چرا نرم افزار سفارشی می خواهیم؟

3- مدل حلزونی Spiral Model چرخه حیات تولید نرم افزار

برای مشاهده کلیک کنید

4- مدل V در حلقه حیات تولید نرم افزار

برای مشاهده کلیک کنید

5- مدل بیگ بنگ Big Bang چرخه حیات تولید نرم افزار

برای مشاهده کلیک کنید

6- مدل چابک Agile Model چرخه حیات تولید نرم افزار

برای مشاهده کلیک کنید

7- مدل تولید سریع Rapid Application Development (RAD) چرخه حیات تولید نرم افزار

برای مشاهده کلیک کنید

درباره این مطلب دیدگاهی بنویسید...

آدرس پست الکترونیک شما منتشر نخواهد شد.

نظرات (0)