wait لطفا صبر کنید
01 بهمن 1395
صفحه اصلی  » مقالات
1394/01/17
7210
386

ابزار CASE (مهندسی نرم افزار به کمک کامپیوتر)

ابزار شی گرای نسل اول: ابزار نمودار سازی که امکان مدل سازی ایده ها (مفاهیم، تحلیل ها و ...) را می دهند. 
تاريخچه:
ابزار شي گراي نسل اول: ابزار نمودار سازي كه امكان مدل سازي ايده ها (مفاهيم، تحليل ها و ...) را مي دهند. ارتباطي با كدنويسي وجود ندارد و همه چيز به صورت دستي انجام مي گيرد.
ابزار شي گراي نسل دوم: ابزار مصورسازي كد (code visualization): اين ابزار نوعي از ابزار نمودارسازي مي باشند كه كد را بر مدل هاي كلاس و نمودارها نگاشت مي كنند(مهندسي معكوس). همچنين نمودارهاي كلاس را به كد تبديل مي كنند.
اين ابزار خيلي كارايي ندارند زيرا بايد مهارت زيادي را كسب كنيد تا بتوانيد با اين ابزار كار كنيد. راه سريعتر استفاده از ابزاري است كه بر هدف شما منطبق باشد. مثلا اگر مي خواهيد يك رابط ايجاد كنيد و ززبان برنامه نويسي هم مي دانيد پس با يك ويرايشگر كد، رابط مورد نظرتان را كد كنيد و اگر يك نمايش تصويري از آن مي خواهيد كه ارتباط آن با كلاس هاي ديگر را نشان دهد با روش مهندسي معكوس كد را به نمودارهاي كلاس تبديل كنيد ( در واقع به جاي طراحي مستقيم نمودارهاي كلاس ابتدا رابط را كد كرده و سپس كد را به نمودارهاي كلاس تبديل كنيد).
ابزار شي گراي نسل سوم: ابزار مدل سازي نرم افزار: ابزاري كمك كننده در زمينه معماري نرم افزار، مدل سازي داده و مدل سازي تجاري و ... است. تمام مسائل را حل نمي كنند اما در يافتن راه حل كمك كننده هستند. به عنوان مثلا مرور طراحي و يا ابزاري براي نرمال سازي و غيرنرمال سازي را شامل مي شوند.
مقايسه خصوصيات ابزار case قديمي و شي گراي امروزي:

خصوصيت

ابزار ساخت يافته قديمي

ابزار شي گرا

مخزن مركزي

X

غير متمركز

مخزن

پايگاه داده

فايل ساخت يافته

چندكاربره

پشتيباني كامل

پشتيباني محدود

مدل سازي لحظه اي (مدل سازي از snapshotهاي داده ها)

X
(با پركردن جداول راهنمايي مي كند)

ساپورت محدود (بدون هيچ رهنمودي)

نقد طراحي

X
(خصوصيت استاندارد)

فقط به صورت آزمايشي در Argo-UML

ابزار نرمال سازي داده ها

X

ساپورت نمي شود

Impact Analysis

X
(در بيشتر سطوح)

هيچ كدام

توليد كد

X
(تمام كد)

X
(تنها كد بدنه)

مدل سازي حالت

X
(شبيه سازي ممكن است)

تنها در نسخه زمان حقيقي rational rose پشتيباني مي شود

مهندسي معكوس: مصورسازي معماري

X

محدود و يا در سطح معماري ساپورت نمي شود

مخزن: مخزن محلي است كه تمام متاديتاي ابزار case در آن ذخيره مي گردد. در ابزار قديمي، مخزن يك پايگاه داده مركزي بوده است. استخراج متاديتا به راحتي با زبان sql (با كوئري دادن به پايگاه مركزي) ممكن مي گردد.
با معرفي xml به عنوان يك فرمت ذخيره در مخزن ابزار شي گرا، عمليات ذخيره دچار كاهش سرعت و كارايي شدند. يك مثال از سربار اين فرمت، فرمت IBM Rational XDE XML مي باشد كه فضاي مورد نياز براي يك مدل خالي چيزي حدود 800 كيلو بايت مي گردد.
تسهيل مدل سزاي نمودارهاي لحظه اي: بسياري از ابزارهاي شي گرا پشتيباني خوبي از نمودارهاي لحظه اي ندارند يك نمودار لحظه اي شي هاي زنده (live) را نمايش مي دهد. كه معمولا براي تشريح يك نمودار كلاس به افراد كمك كننده است. ابزار UML نمودار مجزايي براي اين كار ندارد و يك دياگرام شي مي تواند توسط يك دياگرام كلاس UML مدل گردد.
ابزار معمولا نمودار لحظه اي ندارند كه بتوان به راحتي كلاس ها را در آن قرار دارده و تنها مقادير شي ها را پر كرد.
توليد كد: در ابزار قديمي توليد كد تنها به توليد كد بدنه محدود نبود و بسياري از آنها زباني براي بيان قوانين تجاري را داشتند كه در مرحله توليد كد، قوانين را به زبان برنامه نويسي مورد نظر ترجمه كنند. بعضي معتقدند كه در آينده همه چيز را مي توان با UML به صورت تصويري مدل كرد. برخي نيز اصلا به مدل سازي تصويري اعتقادي به ندارند. واقعيت چيزي بين اين دو خواهد بود.
به نظر نويسنده بعضي چيزها مثل قانونهاي تجاري توسط يك زبان قانون خواناتر خواهد بود تا يك نمودار پيچيده يا يك زبان عملي مثل OCL.
مدل سازي حالت: ابزار uml از نمودارهاي حالت پشتيباني مي كنند. تعداد ابزار كمي هستند كه امكان شبيه سازي حالت ها و انتقال ها را فراهم مي كنند. مثل rational rose real time. همچنين تقريبا هيچ كدام توانايي برسي درستي يك ماشين حالت محدود را ندارند. بررسي دستي ماشين هاي حالت پيچيده خيلي مشكل است و نياز به ابزار كمكي دارند. اين ابزار بايد محدود بودن ماشين را نيز بررسي كنند و حالات و انتقالات مختلف را شبيه سازي كنند.
مصورسازي معماري: ابزار case بايد وابستگي انباشته (cumulative dependency تصويري كه نشان دهنده ميزان پيچيدگي آن بخش است) هر بخش را نشان دهد. همچنين بايد ميزان انحراف از لايه را نيز نشان دهد.(انحراف از مشخصات هر لايه تعريف شده). خيلي از ابزار به شما تنها اين امكان را مي دهند كه از كد شروع كنيد در حاليكه يك معمار (يا يك طراح يا توسعه دهنده و ..) تمايل دارند تا يك تصوير كلي از كار را داشته باشند و اينكه ايا اين تصويري با تصوير متداول منطبق است يا خير؟ آيا اجازه داده مي شود كه به بخش هاي y , z دسترسي داشت يا اين مخالف خصوصيت لايه اي است و حتي وابستگي هاي چرخه اي را معرفي كند. اگر بتوان معماري حقيقي (معماري اي كه در حال حاضر دارد ساخته مي شود) را با معماري طراحي شده اصلي مقايسه كرد و انحرافات معماري حقيقي از معماري طراحي شده را در شروع كار تشخيص داد مي توان آن را در آغاز كار اصلاح كرد.
براي پروژه هاي كوچكتر مي توان معماري را به صورت دستي تصوير كرد ولي براي پروژه هاي عظيم خير.