
تولید نرم افزار | مدیریت کیفیت
• فرآیند تولید نرم افزار
تولید نرمافزار فرآیندی که بر روی توسعه و تولید محصولات نرمافزاری معطوف است و در آن الگوهای مختلفی وجود دارد که هر کدام خط مشی مختص به فرایندها را برای انجام کارها و فعالیتهای متنوع مشخص میکنند. فرآیند تولید و توسعه نرمافزار، یک چارچوب عمومی به شمار میرود که امکاناتی را برای کلیه پروژهها صرف نظر از اندازه و میزان پیچیدگی آنها به وجود میآورد.
در این فرآیند، مرحلهبندی و تجزیه به مراحل کوچکتر مطابق با متدولوژی منتخب برای اجرای پروژه تشریح میشود که بسته به این متدولوژی و مدل فرآیند انتخابی متفاوت میباشد.
• مشکلات تولید نرم افزار در ایران
تولید نرم افزار در ایران با مشکلات عدیدهای مواجهه است از جمله:
۱- ناتوانیهای شرکتهای تولید نرمافزار؛ شرکتهای که به تولید نرم افزار میپردازند عمدتاً شرکتهای کوچک نرمافزاری با پشتوانههای مالی اندک هستند.
۲- تجربههای ناکافی تیم پروژه؛ در مقایسه با کشورهای صنعتی تیم تولید نرم افزار در ایران با کمبود نیروی متخصص مواجهه است.
۳- قراردادهای ناپخته؛ در ایران اکثر مشتریان مهم حوزه نرمافزار را سازمانهای دولتی و نیمه دولتی تشکیل میدهند. قراردادهایی که در این زمینه منعقد میشود، قراردادهایی ناپخته و یک طرفه میباشند که مجریان چنین پروژههایی، با وجود آگاهی نسبت به ضعفهای آن در بیشتر مواقع به دلایل اقتصادی مجبور به پذیرش آنها هستند.
۴- عدم صرف هزینه کافی برای تحقیق و پژوهش؛ عمده سرمایهها در ایران به سمت بخشهای سختافزاری سرازیر و در عمل سرمایهگذاری در عرصه تولید و به تناسب آن تحقیق و پژوهش کاربردی حوزه نرمافزار که در زمره سودآورترین عرصههای اقتصادی در دنیا شناخته میشود، بسیار محدود میباشد.
۵- مقاومتهای سازمانها و کاربران برای پذیرش سیستمهای جدید؛ به دلیل ضعف در بخشهای IT، امکان برقرار ارتباط با سازمانها و توانایی پاسخگویی به نیازهایی آنان به صورت منطقی وجود ندارد.
• متدولوژی تولید نرم افزار
متدولوژی یک فرآیند مهندسی نرمافزار است و به منظور آنالیز و تجزیه تحلیل، طراحی و پیادهسازی سیستم مورد نظر، استفاده میشود. این فرآیند یک روش نظاممند برای تقسیم بندی کارها و مسئولیتها در یک تیم توسعه نرمافزار است که هدف از آن تولید نرمافزار با کیفیت بالا میباشد و نیازهای کاربران نهایی را به وسیله یک برنامه و با بودجه قابل پیشبینی تأمین میکند.
به طور کلی متدولوژی شامل مجموعه روشها و خط مشیهای گام به گام است که برای تکمیل یک یا چند مرحله از مراحل یک چرخه تکاملی به کار برده میشود و در این میان روش، تکنیکها و استانداردهای خاص خود را به چرخه تکاملی تحمیل میکند. با کمک متدولوژی میتوان تولید نرم افزارها را در هر مرحله برنامهریزی، مدیریت، کنترل و ارزیابی نمود.
در گذشته متدولوژیهای مختلفی به صورت ساخت یافته و شئی گرا از جمله Oracle , CDM , SSADM ,RAD , RUP , XP برای فرآیند تولید نرمافزار استفاده میشد.
• انواع متدولوژی تولید نرم افزار
۱- متدولوژی آبشاری
این روش سنتی است که مراحل آن به شکل ترتیبی انجام میشود. در متدولوژی آبشاری ابتدا نیازها برآورد شده، سپس طراحی نرم افزار صورت میگیرد. پیاده سازی در این روش به وسیله زبانهای برنامه سازی انجام و نرم افزار تست میشود و در نهایت به دست مشتری میرسد. این روش میتواند برای نرم افزارهای کوچک مناسب باشد اما به دلیل پیشرفت سایر روشهای تولید، امروزه در پروژههای مهندسی کمتر از آن استفاده میشود.
۲- متدولوژی سریع
تولید محصول نرم افزاری در این روش در کمترین زمان انجام میشود اما ممکن است همین موضوع باعث بروز نقصهای فراوان در محصول گردد؛ بنابراین آشنایی قبلی از نیازهای کاربر، یک امر مهم در این روش محسوب میشود.
۳- متدولوژی افزایشی
نرم افزار در این روش با استفاده از روش آبشاری تهیه و در ادامه با توجه به نظرات مشتری، تکمیل میشود. در واقع تا کامل شدن محصول چند روش آبشاری کوچک بر روی نرم افزار اجرا میگردد.
۴- متدولوژی نمونهای
در روش نمونهای تلاش میشود تا ابتدا یک نسخه از نرم افزار تهیه و سپس با توجه به نیازمندیها نسخه اولیه اصلاح و ویرایش شود تا نسخههای کاملتر آن به دست آید. این متدولوژی به تنهایی قابل استفاده نیست و باید کار را با یکی از روشهای دیگر شروع نمود سپس وارد روش نمونهای شد. از دیگر ویژگیهای متدولوژی نمونهای، علاوه بر این که از نظرات کاربر استفاده میشود، پروژه به قسمتهای کوچکتر نیز تقسیم میشود که ریسک پروژه را کمتر مینماید.
۵- متدولوژیهای سنگین
شناخته شدهترین متدولوژی تولید نرم افزار، متدولوژی سنگین Rational Unified Process است. در حال حاضر روش شناسی RUP یکی از جدیدترینها به شمار میرود که بر پایه یک متدولوژی شئیگرا و تابع زبان UML از یک مدل چرخشی و تکاملی میباشد. مستند سازی در این شیوه شناسی به حدی دقیق است که در صورت انجام صحیح، کمتر به ایجاد تغییر نیاز است. در یک متدولوژی RUP تکراری برای متناسب نمودن کامل محصول بر اساس نیازها در هر تکرار، تمام مراحل انجام یک پروژه به صورت خطی صورت میگیرد که در هر تکرار میزان توجه به هر یک از این فعالیتها متفاوت میباشد. این شیوه شناسی در بسیاری از شرکتها و پروژههای نرم افزاری مورد استفاده قرار میگیرد زیرا از بهترین رویههای متدولوژیهای قبلی استفاده میکند. روش شناسی RUP توسط شرکتSoftware Rational تهیه شد و با حمایت شرکت IBM و مجموعه ابزارهای Rational Suite پشتیبانی میگردد.
۶- متدولوژیهای سبک
این متدولوژی سبک در مقابل روش شناسی های سنگین به وجود آمد و بر اساس تکرار و افزایش بنا نهاده شده است. ویژگی بارز متدولوژی سبک انعطافپذیری آن در برابر تغییرات، قابلیت بالای کار گروهی و همچنین مستندسازی کمتر نسبت به RUP میباشد.
• کیفیت نرم افزار
میزان انطباق نرم افزار با نیازمندیهای عملیاتی و کارایی، انطباق با استانداردها و خصایص ضمنی که از هر نرم افزاری که به صورت حرفه ای توسعه یافته، انتظار میرود، در زمره کیفیت نرم افزار میباشد. تضمین کیفیت نرم افزار بر عهده دو گروه، مهندسین نرم افزار که کار فنی انجام میدهند و گروه SQA که مسئول طرح ریزی تضمین کیفیت، تحلیل و گزارش دهی هستند، میباشد.
گروه اول کیفیت را هدف قرار داده و فعالیتهای کنترل و تضمین کیفیت را بر عهده دارند. این فعالیتها به وسیله اندازهها، متدهای فنی قوی، ایجاد بازنگری فنی رسمی و انجام تستهای نرم افزاری با برنامه صورت میگیرد. گروه دوم به طرحریزی تضمین کیفیت، تحلیل و گزارش دهی مشغول هستند و نقش نمایندگان مشتری را در تیم نرم افزای ایفا میکنند. به عبارت دیگر این افراد باید از دیدگاه مشتری به نرم افزار نگاه نمایند.