چرا برنامه نویسان از ابزارهای CASE استفاده نمی کنند؟
چرا از کامپیوتر برای کمک به مهندسان نرم افزار استفاده نکنیم؟ مشکلات منطقی بسیار کوچک در برنامه، می تواند مشکلات بزرگی را به همراه داشته باشد. computer aided software engineering)CASE) یا ابزارهای کمکی مهندسان نرم افزار، از آن جهت که قادرند در کمترین زمان، در تهیه و مدیریت نرم افزار به مهندسان نرم افزار کمک کنند، قادرند نقش مهمی را در صنعت نرم افزار داشته باشند. ولی سؤال این است که چرا اغلب تهیه کنندگان نرم افزار، از این ابزارها استفاده نمی کنند؟ چرا برخی با ابزارهای CASE گران قیمت فقط پروژه های ساده طراحی می کنند؟ آیا واقعا مشکل از ابزار است یا از استفاده کنندگان آن؟
در جواب این پرسش می توان هر دو جواب را درست دانست. برخی از مشکلات موجود در ابزارهای تولیدکننده نرم افزار، از قبیل: سادگی یا دشواری بیش از حد، پشتیبانی نکردن آن ها از کنترل نسخه ها، دشواری یادگیری و... کاربران را از آن بیزار می سازد. از طرف دیگر، از آن جهت که اکثر اوقات، مدیران، انتخاب کنندگان این ابزارها هستند نه مهندسان نرم افزار، این ابزارها نمی توانند نیازهای کاربران خود را تامین کنند. مشکل دیگر، عدم پشتیبانی و آموزش صحیح برنامه نویسان است که می توان آن را به دلایل بالا اضافه کرد. اگرچه کارکردن با نرم افزارهای کمکی برای طراحی سیستم های تحت وب (نسبت به سیستم های بزگ تر) آسان تر است اما این ابزارها نیز معمولابا همین مشکلات روبه رو هستند. این مقاله در آغاز CASE Tool ها را معرفی کرده و دلایل نیاز به آن را شرح می دهد. سپس دلایل عدم موفقیت کامل آن را از دو دید مورد بررسی قرار داده و در انتها تکنولوژی طراحی سیستم های تحت وب با استفاده از ابزارهای کمکی را شرح می دهد.
● معرفی CASE Tool
آیا تا به حال شنیده اید که کوزه گر از کوزه شکسته آب می خورد؟ قبل از دهه 1990، مهندسان نرم افزار (مانند کوزه گر) با این که خود طراح و تولیدکننده نرم افزار بودند، هیچ ابزاری کمکی در اختیار نداشتند.
computer aided software engineering) CASE) یا "مهندسی نرم افزار به کمک کامپیوتر " از یک سری ابزار کمکی در تولید نرم افزار تشکیل شده است که به مهندسان نرم افزار در تولید نرم افزار یاری می رساند. در واقع CASE استفاده از ابزارهای نرم افزاری است برای کمک به تولید نرم افزارهای جدید. ابزارهایی که در این راه استفاده می شوند، CASETool نام دارند. تمامی مراحل تولید نرم افزار، از مدیریت پروژه های نرم افزاری گرفته تا طراحی و تحلیل سیستم ها، ذخیره کدها، کامپایل، انتقال و امتحان سیستم ها، می توانند توسط این ابزارها پشتیبانی گردد.
به عنوان مثال، ابزار کمکی بانک های اطلاعاتی، می تواند دارای مشخصات ذیر باشد:
- توانایی تعریف مدل های اطلاعاتی و جریان اطلاعات
- تبدیل مدل اطلاعاتی به طرح پایگاه داده
- تعریف ساختار و عملیات بانک اطلاعاتی
- تولید بانک اطلاعاتی با استفاده از SQL و ذخیره اطلاعات رویه ها
شایان ذکر است که ابزارهای CASE فقط تولید کننده سورس کد نیستند، بلکه می توانند در تولید نمودارها و طرح های تحلیلی مثل SSADM، ساختار بانک های اطلاعاتی، جریان اطلاعات و طرح پایگاه اطلاعاتی، به مهندسان نرم افزار یاری برسانند.
▪ برخی دیگر از ابزارها که می توانند نقش بسیار مهمی در تولید نرم افزارها ایفا کنند، عبارتند از:
- ابزارهای مدیریت پایگاه اطلاعاتی
- ابزارهای تحلیل و طراحی سیستم ها و تولید سورس کد
- ابزارهای مستند سازی سیستم ها
- ابزارهای طراحی وب
- ابزارهای مدیریت برنامه ریزی
- ابزارهای مدیریت آزمایش
- مدیریت UML و بازبینی کدها
این ابزارهای کمکی را می توان در سه گروه اصلی طبقه بندی نمود: ابزارهای ابتدایی ( UCASE)، انتهایی ( LCASE)، و کامل (ICASE).
هر گروه ازاین ابزارها در قسمتی از فرایند تولید نرم افزار، فعالیت دارند. مثلا حوزه ابزارهای ابتدایی (UCASE، در چهارمرحله اول فرایند تولید می باشد (ابزارهایی مثل طراحی نمودارهای سیستم و نیازهای کاربران) و ابزارهای انتهایی (LCASE) در مراحل پایانی
تولید (مثل ابزارهای کامپایل و اشکال زدایی) به مهندسان نرم افزار یاری می رساند. به عنوان نمونه از این ابزارها می توان rational rose را نام برد. این ابزار پیشرفته، قوی ترین امکانات
طراحی و تبدیل طرح به کد را دراختیار برنامه نویسان شی گرا قرار می دهد.
● کاربران CASE
برای این که بدانیم چرا ازابزارهای CASE کمتراستفاده می شود، قبل از آن باید بدانیم که کاربران اصلی این ابزارها چه کسانی هستند؟ مدیران پروژه های نرم افزاری و مهندسان نرم افزار، دو استفاده کننده اصلی این ابزار هستند. از آن جهت که مدیران پروژه، مسیول برنامه ریزی، زمانبندی، تخصیص منابع انسانی، مدیریت و ارزیابی پروژه های نرم افزاری هستند، به این ابزارها نیاز مبرم دارند. از طرف دیگر، مهندسان نرم افزار که مسیول طراحی و اجرای سیستم ها بوده و نیازمند تولید نرم افزارهای بی اشکال یا کم اشکال در کمترین مدت می باشند، حتی بیشتر از مدیران پروژه به این ابزارها نیاز دارند.
● دلایل نیاز به ابزارهای کمکی
برای اطلا ع از این که چرا از ابزارهای CASE کمتر استفاده می شود، باید دلایل استفاده و مزایای این ابزارها را بدانیم. همان طورکه اشاره شد، این ابزارها سعی در خودکارکردن فعالیت های مدیریتی پروژه، ازجمله تحلیل و آنالیز اطلاعات، طراحی و امتحان نرم افزار دارند و به مدیران پروژه در هدایت پروژه یاری می رسانند. از طرف دیگر، برای تهیه نرم افزار باکیفیت، مهندسان نرم افزار باید مراحل مختلف و دشواری را بپیمایند که در انتها نیز هیچ تضمینی که نرم افزار بدون اشکال (باکیفیت) باشد، وجود ندارد.
ابزارهای CASE می توانند مدت زمان و دشواری های مراحل تولید نرم افزار را به حداقل رسانده و به مدیران پروژه های نرم افزاری در تصمیم گیری و به دست آوردن کیفیت برتر نرم افزار کمک کنند. این ابزارها به کاربران خود اجازه تولید نرم افزارهای پرقدرت و با کیفیت بالا را می دهند. اگر استفاده از این ابزارها نبود، به دست آوردن این نرم افزارها غیرممکن می شد.
در واقع از آن جایی که این ابزارها به صورت خودکار توانایی تولید سورس کد و آزمایش را دارند، بااستفاده از آن ها، تحلیل گر سیستم در مرحله تحلیل و طراحی برای آنالیز سیستم وقت بیشتر، و برای تولید کد و آزمایش آن ها به وقت کمتری نیاز خواهد داشت و هرچه وقت بیشتری دراختیار تحلیل گر سیستم قرار گیرد، به تبع آن کیفیت سیستم ارایه شده بالاتر می رود. در نتیجه به صورت خلاصه می توان مزایای زیر را برای این ابزارها نام برد:
- کاهش هزینه ها (با استفاده از خودکار نمودن مراحل تولیدی)
- افزایش سرعت تولید
- اطمینان از سازگاری و استاندارد بودن سورس کدها
- افزایش نیروی تولید
ولی سؤال این است که آیا استفاده از CASE همیشه می تواند مفید است؟ این ابزار زمانی می تواند مفید باشد که کاربر آن را برای کامل کردن مراحل نرم افزار و نه جابه جا کردن آن با کلیه مراحل تولید به کار ببرد. به علاوه، قبل از این که این ابزار استفاده شود، گروه نرم افزاری باید از چهارچوب کلی نرم افزار، عوامل مؤثر در رسیدن به استاندارد کیفیت، و متدهای تولید نرم افزار مطلع باشد.