PDA

مشاهده نسخه کامل : چرا برنامه‌نویسان از ابزارهای ‌case استفاده نمی‌كنند؟



smh
29-11-07, 00:54
چرا از كامپیوتر برای كمك به مهندسان نرم‌افزار استفاده نكنیم؟ مشكلات منطقی بسیار كوچك در برنامه، می‌تواند مشكلات بزرگی را به همراه داشته باشد. computer aided software engineering)CASE) یا ابزارهای كمكی مهندسان نرم‌افزار، از آن جهت كه قادرند در كمترین زمان، در تهیه و مدیریت نرم‌افزار به مهندسان نرم‌افزار كمك كنند، قادرند نقش مهمی را در صنعت نرم‌افزار داشته باشند. ولی سؤال این است‌ كه چرا اغلب تهیه‌كنندگان نرم‌افزار، از این ابزارها استفاده نمی‌كنند؟ چرا برخی با ابزارهای CASE گران‌قیمت فقط پروژه‌های ساده طراحی می‌كنند؟ آیا واقعا مشكل از ابزار است یا از استفاده‌كنندگان آن؟
در جواب این پرسش می‌توان هر دو جواب را درست دانست. برخی از مشكلات موجود در ابزارهای تولیدكننده نرم‌افزار، از قبیل: سادگی یا دشواری بیش از حد، پشتیبانی نكردن آن‌ها از كنترل نسخه‌ها، دشواری یادگیری و... كاربران را از آن بیزار می‌سازد. از طرف دیگر، از آن جهت كه اكثر اوقات، مدیران، انتخاب‌كنندگان این ابزارها هستند نه مهندسان نرم‌افزار، این ابزارها نمی‌توانند نیازهای كاربران خود را تامین كنند. مشكل دیگر، عدم پشتیبانی و آموزش صحیح برنامه‌نویسان است كه می‌توان آن‌را به دلایل بالا اضافه كرد. اگرچه كاركردن با نرم افزارهای كمكی برای طراحی سیستم‌های تحت وب (نسبت به سیستم‌های بزگ‌تر) آسان‌تر است اما این ابزارها نیز معمولابا همین مشكلات روبه‌رو هستند. این مقاله در آغاز ‌‌CASE Tool‌ها را معرفی كرده و دلایل نیاز به آن را شرح می‌دهد. سپس دلایل عدم موفقیت كامل آن را از دو دید مورد بررسی قرار داده و در انتها تكنولوژی طراحی سیستم‌های تحت‌وب با استفاده از‌‌ ابزارهای كمكی را شرح می‌دهد.
● معرفی CASE Tool
آیا تا به حال شنیده‌اید كه كوزه‌گر از كوزه شكسته آب می‌خورد؟ قبل از دهه ۱۹۹۰، مهندسان نرم‌افزار (مانند كوزه‌گر) با این‌كه خود طراح و تولیدكننده نرم‌افزار بودند، هیچ ابزاری كمكی در اختیار نداشتند.
computer aided software engineering) CASE) یا ‌‌"مهندسی نرم‌افزار به كمك كامپیوتر‌"‌‌ از یك سری ابزار كمكی در تولید نرم‌افزار تشكیل شده است كه به مهندسان نرم‌افزار در تولید نرم‌افزار یاری می‌رساند. در واقع ‌‌CASE استفاده از ابزارهای نرم‌افزاری است برای كمك به تولید نرم‌افزارهای جدید. ابزارهایی كه در این راه استفاده می‌شوند، CASETool ‌نام دارند. تمامی مراحل تولید نرم‌افزار، از مدیریت پروژه‌های نرم‌افزاری گرفته تا طراحی و تحلیل سیستم‌ها، ذخیره كدها، كامپایل، انتقال و امتحان سیستم‌ها، می‌توانند توسط این ابزارها پشتیبانی گردد.
به‌عنوان مثال، ابزار كمكی بانك‌های اطلاعاتی، می‌تواند دارای مشخصات ذیر باشد:
- توانایی تعریف مدل‌های اطلاعاتی و جریان اطلاعات
- تبدیل مدل اطلاعاتی به طرح پایگاه داده
- تعریف ساختار و عملیات بانك اطلاعاتی
- تولید بانك اطلاعاتی با استفاده از SQL و ذخیره اطلاعات رویه‌ها‌
شایان ذكر است كه‌ ابزارهای ‌CASE فقط تولید كننده سورس كد نیستند، بلكه می‌توانند در تولید نمودارها و طرح‌های تحلیلی مثل SSADM، ساختار بانك‌های اطلاعاتی، جریان اطلاعات و طرح پایگاه اطلاعاتی، به مهندسان نرم‌افزار یاری برسانند.
▪ برخی دیگر از ابزارها كه می‌توانند نقش بسیار مهمی در تولید نرم‌افزارها ایفا كنند، عبارتند از:
- ابزارهای مدیریت پایگاه اطلاعاتی
- ابزارهای تحلیل و طراحی سیستم‌ها و تولید سورس كد
- ابزارهای مستند سازی سیستم‌ها
- ابزارهای طراحی وب
- ابزارهای مدیریت برنامه ریزی
- ابزارهای مدیریت آزمایش ‌
- مدیریت ‌UML و بازبینی كدها‌
این ابزارهای كمكی را می‌توان در سه گروه اصلی طبقه بندی نمود: ابزارهای ابتدایی (‌UCASE)، انتهایی ‌(‌LCASE)، و كامل (ICASE).
هر گروه ازاین ابزارها در قسمتی از فرایند تولید نرم‌افزار، فعالیت دارند. مثلا حوزه ابزارهای ابتدایی ‌(UCASE، در چهارمرحله اول فرایند تولید می‌باشد (ابزارهایی مثل طراحی نمودارهای سیستم و نیازهای كاربران) و ابزارهای انتهایی ‌(LCASE) در مراحل پایانی
تولید (مثل ابزارهای كامپایل و اشكال زدایی) به مهندسان نرم‌افزار یاری می‌رساند. به عنوان نمونه از این ابزارها می‌توان ‌‌rational rose را نام برد. این ابزار پیشرفته، قوی‌ترین امكانات
طراحی و تبدیل طرح به كد را دراختیار برنامه‌نویسان شی‌گرا‌ قرار می‌دهد.
● كاربران ‌‌‌ CASE
برای این كه بدانیم چرا ازابزارهای CASE كمتراستفاده می‌شود، قبل از آن باید بدانیم كه كاربران اصلی این ابزارها چه كسانی هستند؟ مدیران پروژه‌های نرم‌افزاری و مهندسان نرم‌افزار، دو استفاده‌كننده اصلی این ابزار هستند. از آن جهت كه مدیران پروژه، مسئول برنامه‌ریزی، زمانبندی، تخصیص منابع‌انسانی، مدیریت و ارزیابی پروژه‌های نرم‌افزاری هستند، به این ابزارها نیاز مبرم دارند. از طرف دیگر، مهندسان نرم‌افزار كه مسئول طراحی و اجرای سیستم‌ها بوده و نیازمند تولید نرم‌افزارهای بی‌اشكال یا كم اشكال در كمترین مدت می‌باشند، حتی بیشتر از مدیران پروژه به این ابزارها نیاز دارند.
● دلایل نیاز به ابزارهای كمكی
برای اطلا‌ع از این كه چرا از ابزارهای CASE كمتر استفاده می‌شود، باید دلایل استفاده و مزایای این ابزارها را بدانیم. همان‌طوركه اشاره شد، این ابزارها سعی در خودكاركردن فعالیت‌های مدیریتی پروژه، ازجمله تحلیل و آنالیز اطلاعات، طراحی و امتحان نرم‌افزار دارند و به مدیران پروژه در هدایت پروژه یاری می‌رسانند. از طرف دیگر، برای تهیه ‌‌‌‌نرم‌افزار باكیفیت، ‌مهندسان نرم‌افزار باید مراحل مختلف و دشواری را بپیمایند كه در انتها نیز هیچ تضمینی كه نرم‌افزار بدون‌اشكال (باكیفیت) باشد، وجود ندارد.
‌ابزارهای CASE می‌توانند مدت زمان و دشواری‌های مراحل تولید نرم‌افزار را به حداقل رسانده و به مدیران پروژه‌های نرم‌افزاری در تصمیم‌گیری و به‌دست‌آوردن كیفیت برتر نرم‌افزار كمك كنند. این ابزارها به كاربران خود اجازه تولید نرم‌افزارهای پرقدرت و با كیفیت بالا را می‌دهند. اگر استفاده از این ابزارها نبود، به‌دست آوردن این نرم‌افزارها غیرممكن می‌شد.
در واقع از آن جایی كه این ابزارها به‌صورت خودكار توانایی تولید سورس كد و آزمایش را دارند، بااستفاده از آن‌ها، تحلیل‌گر سیستم در مرحله تحلیل و طراحی برای آنالیز سیستم وقت بیشتر، و برای تولید كد و آزمایش آن‌ها به وقت كمتری نیاز خواهد داشت و هرچه وقت بیشتری دراختیار تحلیل‌گر سیستم قرار گیرد، به تبع آن كیفیت سیستم ارائه شده بالاتر می‌رود. در نتیجه به‌صورت خلاصه می‌توان مزایای زیر را برای این ابزارها نام برد:
- كاهش هزینه ها (با استفاده از خودكار نمودن مراحل تولیدی)
- افزایش سرعت تولید
- اطمینان از سازگاری و استاندارد‌‌بودن سورس كدها
- افزایش نیروی تولید
ولی سؤال این است ‌كه آیا استفاده از ‌‌CASE همیشه می‌تواند مفید است؟ این ابزار زمانی می‌تواند مفید باشد كه كاربر آن را برای كامل‌كردن مراحل نرم‌افزار و نه جابه‌جا كردن آن با كلیه مراحل تولید به كار ببرد. به‌علاوه، قبل‌از این‌كه این ابزار استفاده شود، گروه نرم‌افزاری باید از چهارچوب كلی نرم‌افزار، عوامل مؤثر در رسیدن به استاندارد كیفیت، و متدهای تولید نرم‌افزار مطلع باشد.

دلایل عدم موفقیت‌‌ CASE
می‌توان از میان جمله عوامل عدم موفقیت این ابزار به دو عامل اشاره كرد: یكی مشكلات ساختاری‌‌ ابزارهای CASE و دیگری منابع انسانی (كاربران).
‌‌۱- مشكلات ساختاری‌ ‌ابزارهای‌‌ CASE
- استفاده از این ابزارها یا خیلی آسان است یا خیلی مشكل
- دلیل اصلی تولید این ابزار، توانایی استفاده از آن در تمامی مراحل تولید نرم‌افزار است. ولی متاسفانه اكثر‌‌ ابزارهای CASE موجود در بازار، فقط قسمتی از فرایند تولید نرم‌افزار را پشتیبانی می‌كنند.
‌- بیشتر‌‌ ابزارهای CASE دارای سازوكار كنترل دسترسی ضعیفی هستند. (مثل ‌rational rose)
- بیشتر ‌ابزارهای CASE امروزی به حدی ساده هستند كه نمی‌توان از آن‌ها در پروژه‌های بزرگ استفاده كرد. اگرچه برخی از این ابزارها كارایی‌های بسیاری دارند، ولی اغلب از دید كاربران پنهان می‌مانند. ‌
- بیشتر این ابزارها، توانایی ذخیره اطلاعات نسخه‌های مختلف ( مثلا نسخه ۲ یا ۳ ) را ندارند.
- اكثر ابزارهای CASE آن چنان كه وعده می‌دهند، نمی‌توانند رضایت كاربران را كسب كنند.‌
‌۲‌‌- منابع انسانی (كاربران)
همان‌طوركه توضیح داده شد، اكثرا مدیران پروژه‌ها مسئول بررسی و انتخاب ‌ابزار CASE برای مهندسان نرم‌افزار زیردست خود می‌باشند. البته ممكن است ا‌ین مدیران مرتكب اشتباهات زیر شوند:
- توجه زیاد به قدرت و كارایی این ابزارها، باعث كم‌توجهی و انتخاب كاراترین ابزار، ولی با قابلیت استفاده كم برای كاربران آن خواهد شد. (این‌ اشتباه بیشتر در انتخاب ابزارهای UCASE پیش میآید.)‌
- انتخاب ابزاری ناكار آمد توسط مدیر كم‌اطلاع پروژه، بدون توجه به درخواست گروه و ملزم نمودن اعضای گروه به استفاده از این ابزار.
- انتخاب سریع و با عجله ابزارهای نرم‌افزاری.
مدیران پروژه‌ها، معمولا سعی می‌كنند استفاده از ابزارهای ابتدایی ‌‌‌(UCASE) را به گروه خود تحمیل كنند. ولی از آن جایی كه برنامه‌نویسان با سورس كد سروكار دارند، استفاده از ابزارهای سطح بالا یا انتهایی ‌‌‌(LCASE) را بیشتر می‌پسندند و از ابزارهای تهیه شده توسط مدیرانشان استفاده نمی‌كنند. از طرف دیگر، حتی درصورت استفاده از این ابزارها، مهندسان نرم‌افزار بیشتر به استفاده از ‌ابزار CASE توجه دارند تا تولید نرم‌افزار.
از طرفی نیز سازندگان این ابزارها رویه مناسبی برای معرفی، چگونگی عملكرد و آموزش این ابزارها ندارند. در آخر می‌توان با توجه به مطالب بالا، دلیل اصلی كاهش استفاده از‌‌ ابزارهای ‌‌CASEها را در عدم برآوردن انتظارات استفاده‌كنندگان این ابزارها (استفاده آسان و ساده) دانست كه در نتیجه، اعتماد كاربران به این ابزارها هر روزه كم و كمترمی شود.
● CASE و سیستم‌های تحت‌وب
از آن جایی كه امروزه وب سایت‌های بزرگ (مثل فروشگاه‌های الكترونیكی) ارتباط تنگاتنگی با كاربران خود و از طرف دیگر با پایگاه‌های اطلاعاتی مختلف دارند، نیاز به مهندسی وب، محسوس به نظر می‌رسد. به‌دلیل نیازهای طراحی وب، ابزاری كه باید در مهندسی وب استفاده شود، باید مراحل اولیه فرایند تولید نرم‌افزار را پشتیبانی‌كند. ابزارهای مختلفی در عرصه مهندسی/‌طراحی وب وجود دارند.
از آن جمله می‌توان از WEB CASE ‌محصول شركت IBM نام برد. این ابزار توانایی كار در تمامی مراحل تولید وب‌سایت، از جمله برنامه‌ریزی زمانی، طراحی، تولید، و نگهداری را دارد و تقریبا می‌توان آن را ابزاری مفید در تمامی مراحل تولید وب قلمداد كرد.
با وجود این‌كه ابزارهای گوناگونی در زمینه تولید وب‌سایت وجود دارد و تمامی این ابزارها خود را‌‌ ابزار CASE معرفی می‌كنند، تعداد اندكی از این ابزارها می‌توانند در برنامه‌ریزی و طراحی وب به كاربران خود كمك كنند و اكثر آن فقط امكان طراحی نقشه ابتدایی وب را به كاربران می‌دهند. اگرچه webCASE‌ها نیز مانند ابزارهای CASE مشكلاتی از قبیل پشتیبانی نكردن مراحل مختلف تولید و ارتباط با پایگاه‌های اطلاعاتی را دارند، اما این ابزارها از طرف كاربران، بیشتر موردتوجه قرارگرفته‌است. البته مثلا ابزاری مانند PHP edit را درنظر بگیرید.
این ابزار، مخصوص برنامه‌نویسان PHP تهیه شده است و با وعده آسان‌كردن و افزایش كارایی كار برنامه‌نویسان، به بازار آمد. ولی متاسفانه فقط امكان نمایش و اصلاح كدهای PHP ‌را فراهم می‌كند و امكان اجرا و امتحان كدها در دایركتوری مربوط به كاربران را میسر نمی‌سازد. كاربران بعد از نوشتن كدهای‌‌PHP ،‌ باید كدها را ذخیره نمایند وآن‌ها را بیرون از این نرم‌افزار امتحان كنند.
ابزار دیگری كه به برنامه‌نویسان و طراحان پایگاه‌های اطلاعاتی وب كمك‌‌‌می‌كند، ‌‌PHP myAdmin نام دارد. این ابزار رایگان و از طریق اینترنت قابل‌دسترسی است و به طراحان بانك‌های اطلاعاتی اجازه اجرا و نمایش اطلاعات را می‌دهد.
امروزه ابزارهای دیگری به نام‌‌ computer aided web developer) CAWD) كه بسیار به‌ ابزار CASE شبیه هستند، با ابزارهای قدیمی جایگزین شده‌اند. این ابزار با استفاده از طرح كلی وب‌سایت برای شما به‌صورت خودكار سورس كد مربوطه را می‌نویسد. مثلا‌ HTML editor یا Analyst Pro (نشانی: ‌Only the registered members can see the link (Only the registered members can see the link)) دو نمونه از ‌‌CAWD هستند كه در تمامی مراحل تولید وب‌سایت، حتی در مراحل اجرا و امتحان، به مهندسان وب كمك می‌كنند.
همان‌طوركه در این مقاله بحث شد، ‌ابزارهای CASE دارای مزایای فراوانی ازجمله افزایش كارایی، سرعت تولید نرم‌افزار و كمك به مهندسان نرم‌افزار در تولید و طراحی نرم‌افزارهایی با استاندارد كیفی بیشتر می‌باشند.
اما كارایی اكثر این نرم‌افزارها نیز چنان‌كه شركت‌های تولیدكننده آن وعده داده‌اند، نیست. از طرف دیگر همچنان كه بحث شد، كاربران این ابزارها گاهی انتظار زیادی از این ابزار دارند و تصور‌می‌كنند این ابزارها می‌توانند تمامی كارهای مربوط به تولید نرم‌افزار را انجام دهند. درصورتی كه این فكر كاملا اشتباه است. زیرا ابزارهای CASE تنها ابزاری كمكی هستند.
در ضمن یكی ازمشكلات بزرگ این ابزار را می‌توان پشتیبانی‌نكردن آن از تمامی مراحل فرایند تولید نرم‌افزار دانست. اما با توجه به تمامی مشكلاتی كه ابزارهای CASE دارند، امروزه با رواج روزافزون اینترنت، برنامه‌های اوپن سورس رایگان، و آموزش ابزارها به‌صورت آنلاین، به‌نظر می‌رسد استفاده از این ابزارها، روندی صعودی داشته باشد.

--------------------------------------------------------
ماهنامه شبکه