مدل افزایشی

‏مدل افزایشی (Incremental Model)، مراحل مدل آبشاری را با رویکرد تکرار و تکامل مکانیزم نمونه‌سازی تکاملی ترکیب نموده است. بنابراین مدل افزایشی مبتنی بر مدل آبشاری و مکانیزم نمونه‌سازی تکاملی است.

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

‏این مدل از یک سری فعالیت‌های چارچوبی تکراری تشکیل شده است که هر تکرار (افزایش) شبیه به مدل آبشاری است. با این تفاوت که روی قسمتی از نرم‌افزار انجام می‌شود. هر کدام از این قسمت‌ها یک «قطعه» قابل تحویل را ایجاد می‌کند. شکل زیر مدل افزایشی و مراحل هر افزایش را نشان می‌دهد:

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

‏مثال: نرم‌افزار واژه‌پرداز که با استفاده از مدل افزایشی توسعه یافته است، به صورت زیر تحویل داده  می‌شود:

افزایش اول: عملیاتی از قبیل مدیریت فایل، تولید و ویرایش مستندات ‏

افزایش دوم: قابلیتهای پیچیدهتر در ویرایش و تولید مستندات ‏

افزایش سوم: چک کردن املاء و دستور زبان ‏

افزایش چهارم: قابلیتهای پیشرفتهی صفحهبندی ‏

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

‏هنگامی که از یک مدل افزایشی استفاده می‌شود، افزایش نخست غالباً هسته‌ی اصلی محصول است، یعنی نیازهای اولیه رفع می‌شوند، اما بسیاری از ویژگی‌های مکمل (که برخی معلوم و برخی نامعلوم هستند) تحویل داده نمی‌شوند. هسته‌ی اصلی محصول، توسط مشتری مورد استفاده و ارزیابی قرار می‌گیرد. سپس در افزایش بعدی، قابلیت‌ها و ویژگی‌های دیگر مورد انتظار مشتری به هسته‌ی اصلی محصول اضافه می‌گردد. این فرآیند به دنبال تحویل هر قطعه تکرار می‌شود تا اینکه محصول کامل تولید شود.

‏توجه: مدل افزایشی، مانند مدل نمونه‌سازی و مدل‌های تکاملی دیگر، ماهیتی تکراری دارد. اما برخلاف مدل نمونه‌سازی، مدل افزایشی بر تحویل قطعه‌ای عملیاتی در هر افزایش تأکید دارد. قطعات اولیه، بخش‌هایی اولیه از محصول نهایی هستند، اما قابلیت ارائه خدمات به کاربر را دارند.

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

‏توجه: مدل افزایشی به واسطه‌ی استفاده از مکانیزم نمونه‌سازی تکاملی بر تولید تکاملی نرم‌افزار تأکید دارد. ‏اما مدل نمونه‌سازی به واسطه‌ی استفاده از مکانیزم نمونه‌سازی دورانداختنی بر شناسایی تکاملی نیازمندی‌ها تأکید دارد و نه تولید تکاملی نرم‌افزار. در واقع در مدل نمونه‌سازی پس از شناسایی نیازمندی‌ها توسط مکانیزم نمونه‌سازی دورانداختنی در ادامه نرم‌افزار به شیوه‌ی مدل آبشاری در قالب یک قطعه و یکجا ایجاد می‌گردد. تولید تکاملی بدین معنی است که نرم‌افزار قطعه، قطعه، و ذره ذره، و کم کم، کم کم تکامل می‌یابد و نه در قالب یک قطعه و یکجا. ‏بنابراین در مواقعی که تغییرات زیاد است و نیاز است نسخه‌هایی از نرم‌افزار ارائه گردد و در نسخه‌های بعدی نرم‌افزار تکامل یابد مدل نمونه‌سازی کارایی نخواهد داشت و مدل‌های تکاملی (افزایشی و پیچشی) مناسب خواهند بود. ‏

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

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

‏توجه: مدل افزایشی در مواقعی که نیازمندی‌های اولیه‌ی مشتری به خوبی تعریف شده‌اند ولی نیازمندی‌های دیگری باقی مانده‌اند و نیاز به تکرار و تکامل می‌باشد مناسب است.

‏توجه: مدل افزایشی علاوه بر مدیریت ریسک‌های تکنیکی، از مکانیزم نمونه‌سازی دورانداختنی به عنوان راهکاری برای کاهش ریسک مربوط به شناسایی نیازمندی‌ها در هر افزایش استفاده می‌کند و به ریسک‌های دیگر پروژه مانند از دست دادن مدیران و اطلاعات به دلیل عدم مدیریت ریسک (تحلیل ریسک) توجه ندارد.

ارسطو خلیلی‌فر

مولف کتاب مهندسی نرم افزار راهیان ارشد

0 پاسخ ها

دیدگاه خود را ثبت کنید

آیا می خواهید به بحث بپیوندید؟
در صورت تمایل از راهنمایی رایگان ما استفاده کنید!!

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

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