توسعه یک نرمافزار موفق تنها به برنامهنویسی و تولید کد محدود نمیشود، بلکه مجموعهای از فعالیتهای منظم و هدفمند را شامل میشود که از تعریف مسئله و جمعآوری نیازمندیها آغاز شده و تا طراحی، پیادهسازی، آزمون، استقرار و نگهداری ادامه پیدا میکند.
برای مدیریت صحیح این مراحل، استفاده از یک مدل فرآیند مناسب ضروری است تا فعالیتها با ترتیب مشخص، هماهنگی کافی و بر اساس نیازهای واقعی پروژه انجام شوند. در این میان، شناسایی دقیق نیازمندیها، طراحی اصولی، مستندسازی و شناخت نقاط عملیاتی و عوامل انسانی، نقش مهمی در کاهش خطا و افزایش بهرهوری دارند. از سوی دیگر، آزمون نرمافزار، تصدیق و صحهگذاری، سنجش کیفیت و نگهداری، از فرآیندهای مهمی هستند که کیفیت محصول نهایی و میزان انطباق آن با انتظارات کاربران را تضمین میکنند.
بنابراین، بهرهگیری از روشها و فرآیندهای استاندارد در تمامی مراحل چرخه حیات نرمافزار، علاوه بر کاهش هزینههای توسعه و نگهداری، موجب افزایش قابلیت اطمینان، کیفیت، کارایی و رضایت کاربران خواهد شد.
نیاز به مدل فرآیند مناسب
همان طور که قبلا اشاره شده است، چرخه حیات نرم افزار از مراحلی تشکیل شده است که باید برای نحوه توالی این مراحل یک روش داشت و این یعنی همان مدل فرآیند نرم افزار که این نیاز ما را به مدل فرآیند نشان میدهد.
نیاز به روش مناسب جمع آوری نیازمندیها
در فاز نیازمندیها، تعریف دقیق مسئله با عملکرد نرم افزار مهم است. گردآوری اطلاعات با پرسیدن سؤالات مرتبط همه بخش های مربوطه باعث می شود چرخه توسعه در روند مهندسی نرم افزار هموار شود.
نیاز به روش مناسب طراحی
اهمیت طراحی نرم افزار را در حقیقت می توان با کیفیت طراحی مشخص نمود. هر چقدر طراحی در یک سیستم نرم افزاری کامل تر و بهتر انجام گیرد، مراحل بعدی با کیفیت بهتر و هزینه کمتر انجام می شود. به طور کلی می توان اهمیت طراحی را به صورت زیر بیان کرد: / طراحی به عنوان ابزار اولیه ای برای مهار و کنترل پیچیدگی محسوب می شود. طراحی باعث ایجاد ساختاری از سیستم می گردد که مفید تر است. / طراحی بر اساس یک اصولی صورت گرفته و باعث بهبود کیفیت سیستم می گردد. در سیستمی که با طراحی تولید می شود مراحل به صورت منظم و متوالی و سیستماتیک انجام میشود و هزینه نگهداری آن به مراتب پایین تر از سیستمی است که بدون طراحی تولید میشود.
نیاز به روش مناسب مستندسازی
مستندسازی از دیدگاه اغلب برنامه نویسان و توسعه دهندگان نرم افزار، کاری کسل کننده است تا جایی که با آن به عنوان کم ارزش ترین جزء چرخه توسعه نرم افزار برخورد می کنند. اما در واقع مستندسازان متبحر و دست به قلم نقشی بسیار مهم تر از اعتباری که به آن داده شده بازی می کنند. با توجه به پاسخ های متداول به سؤالات کاربران، پشتیبانی از مستنداتی همانند، راهنمای کاربران با فهرست تقلب های فنی، هم برای کاربران و هم برای توسعه دهندگان مزایایی را به همراه دارد؛ به کاربران فرصت دریافت کارآیی و خدمات بیشتر از آنچه خریداری کرده اند می دهد و همچنین هزینه های توسعه دهندگان را برای پشتیبانی بعد از فروش کاهش میدهد.
نیاز به شناخت نقاط عملیاتی
ضروری است که ابعاد یک پروژه را از طریق شمارش فرم های ورود و فرم های خروجی اطلاعات، پرس و جوها، فایل های مرتبط و واسطهای برنامه با سایر نرم افزارها بدست آوریم که این امر در برنامه ریزی های آینده بسیار مهم است.
نیاز به شناخت فاکتورهای انسانی
ما نیاز داریم که ظرفیت ها و توانمندی های انسان را بررسی نموده و سپس اطلاعات به دست آمده را در طراحی مشاغل، فرآورده ها، محیط کار و تجهیزات به کار بندیم.
نیاز به روش تست مناسب
تست نرم افزار از حلقه های مظلوم و مهجور فرآیند تولید نرم افزار است. بیشتر مدیران به آن علاقه ندارند چون هزینه زیادی می طلبد بدون آن که خروجی قابل تحویلی به کارفرما داشته باشد و بیشتر برنامه نویسان از آن فراری هستند چرا که آن را کاری تکراری و خسته کننده می دانند. هر چه اهمیت و گستردگی استفاده از نرم افزار بیشتر باشد، لزوم به کارگیری آزمون های مختلف بیشتر احساس می شود. تست نرم افزار یکی از حساس ترین و مهم ترین فعالیت هایی است که در جریان پروژه های نرم افزاری باید اجرا شود. صحت و دقت فعالیت های آزمون نرم افزار مستقیما در کیفیت نتایج این گونه پروژه ها مؤثر است. از این رو برنامه ریزی و اجرای صحیح آزمون نرم افزار می تواند نقش تعیین کننده ای در موفقیت یا شکست پروژه های نرم افزاری ایفا کند. مجریان و مدیران پروژه های نرم افزاری با بهره گیری از این استاندارد می توانند کیفیت برنامه ریزی و نتایج فعالیت های آزمون نرم افزار را در پروژه های خود ارتقا بخشند.
نیاز به روش های تصدیق و صحت کار آمد
در اجرای یک فعالیت نیاز است تعیین نماییم که آیا تولیدات هر فاز کامل، صحیح و برآورنده تمامی نیازها و شرایط تحلیل شده از فاز قبل است یا خیر که در نتیجه آن به عمل تصدیق نیازمندیم. همچنین نیاز داریم که محصول نهایی نرم افزار را کنترل نموده و اعتبار نهایی آن را تضمین کنیم پس به صحت سنجی نیازمندیم. بنابراین فرآیندهای تصدیق و صحه گذاری (V & V) از مهم ترین فرآیندهای پشتیبان توسعه نرم افزار است که اجرای صحیح و دقیق آنها نقش عمده ای در تضمین کیفیت پروژه های نرم افزاری ایفا می کند.
گام نخست در اجرای این فرآیندها، برنامه ریزی فعالیتهای V & V است که نتیجه آن به شکل طرح تصدیق و صحه گذاری تدوین و ارائه می گردد. طرح تصدیق و صحه گذاری (V & V) به منظور مشخص نمودن فعالیت های لازم در طول اجرای پروژه برای حصول اطمینان از سازگاری فرآورده های مرحله از توسعه نرم افزار با ورودی های آن مرحله و همچنین بررسی تطابق فرآورده های هر مرحله با نیازهای اولیه کاربران تهیه می شود.
همه طرحها، مستندات، برنامه های اجرایی و پایگاههای اطلاعاتی که در نتیجه انجام فعالیت های توسعه نرم افزار تولید شده و به کارفرما تحویل داده می شود، یا برای استفاده داخلی به عنوان فرآورده های میانی به کار می رود، مشمول فعالیتهای V & V می شوند.
نیاز به سنجش کیفیت نرم افزار
با فرض اینکه تمامی نرم افزارهای ایجاد شده بر اساس فرآیند مهندسی نرم افزار تولید شده باشند، باز هم با هم تفاوت هایی دارند. مسئله تفاوت بین نمونه ها برای تمام محصولات تولیدشده توسط انسان وجود دارد. تفاوت های بین نمونه ها ممکن است بدون کمک تجهیزات دقیق اندازه گیری ابعاد فنی و مهندسی آن امکان پذیر نباشد، اما حتی با دستگاه هایی که به اندازه کافی هم دقیق و حساس نیستند، باز هم به این نتیجه می رسیم هیچ دو نمونه نرم افزاری شبیه هم نیستند. آنچه در این میان اهمیت دارد و باعث وضوح این تفاوت ها می شود، کیفیت نرم افزارهاست.
نیاز به نگهداری مناسب از نرم افزار
در فاز نگهداری فرآیند مهندسی نرم افزار، کاربران ممکن است به آموزش بکارگیری نیاز داشته باشند. باید اسنادی ایجاد شود که کاربران بتوانند از برنامه استفاده صحیح داشته باشند. بعد از اینکه نرم افزار مستقر شد معمولا اصلاحات و تطابق برای برنامه ساخته میشود این فاز نگهداری است، بعضی اوقات در این فاز ابزار جدید در خواست و اضافه میشود.
سخن آخر
در مجموع، موفقیت یک پروژه نرمافزاری به اجرای منظم و اصولی تمامی مراحل چرخه حیات نرمافزار وابسته است و نمیتوان تنها با تمرکز بر برنامهنویسی، محصولی باکیفیت و قابل اعتماد تولید کرد. انتخاب مدل فرآیند مناسب، نخستین گام برای ایجاد نظم و هماهنگی میان فعالیتهای مختلف پروژه است و پس از آن، جمعآوری دقیق نیازمندیها و طراحی اصولی، زمینه را برای توسعه صحیح نرمافزار فراهم میکنند. مستندسازی نیز با ثبت اطلاعات و تصمیمات مراحل مختلف، نقش مهمی در کاهش وابستگی به افراد، تسهیل پشتیبانی و انتقال دانش دارد.
از سوی دیگر، شناخت نقاط عملیاتی و عوامل انسانی کمک میکند نرمافزار با شرایط واقعی محیط استفاده و تواناییهای کاربران هماهنگ باشد. در پروژههای امروزی، زیرساخت اجرای نرمافزار نیز اهمیت زیادی دارد و استفاده از سرور ابری میتواند با فراهم کردن منابع انعطافپذیر، مقیاسپذیری مناسب و دسترسی پایدار، به استقرار و بهرهبرداری بهتر از نرمافزار کمک کند. اجرای آزمونهای مناسب و استفاده از فرآیندهای تصدیق و صحهگذاری نیز امکان شناسایی خطاها و بررسی میزان انطباق محصول با نیازمندیهای اولیه را فراهم میکند.
در نهایت، سنجش کیفیت و نگهداری مستمر نرمافزار موجب حفظ کارایی، قابلیت اطمینان و ارزش آن در طول زمان خواهد شد. بنابراین، استفاده از یک رویکرد نظاممند در تمام مراحل توسعه، علاوه بر کاهش هزینه و ریسک، کیفیت نهایی نرمافزار و رضایت کاربران را افزایش میدهد.