مقایسه ای بر متدولوژی های ساختیافته و شی گرا
درباره چه چیزی ؟
مقدمه – مشکل واژگان و مفاهیم
تعریف متدولوژی
یک دسته بندی متداول از متدولوژی ها
نحوه انتخاب یک متدولوژی مناسب
متدولوژی های ساختیافته
متدولوژی های شی گرا
آشنایی با متدولوژی شی گرای RUP
آشنایی با متدولوژی ساختیافته SSADM
مقایسه بین متدولوژی RUP و متدولوژی SSADM
مشکل واژگان و مفاهیم !
معنای واژه های کلیدی نرم افزار ممکن است از متنی به متن دیگر متفاوت باشد
اکثرا این اشتباه پیش می آید که بعضی ها متدولوژی را به جای روش و یا روش را به جای ابزار و یا بالعکس به کار می برند
متدولوژی یعنی چه ؟
متدولوژی ، روش شناسی ، و فرا روش همه یک مفهوم یکسانند
متدولوژی : مجموعه ای از روش ها ، فنون و ابزارهای تحلیل و طراحی سیستم که در چهارچوب یک انگاره مدلسازی مبتنی بر یک الگوی مفهومی برای ساماندهی روند توسعه سیستم ها به روشی نظام مند به کار می رود
فرآیند نرم افزار : یکسری مراحل قابل پیش بینی و نقشه مسیری است که به ما کمک می کند تا نتایجی را در زمان معین و با کیفیت بالا ایجاد کنیم
آیا متدولوژی و فرآیند نرم افزار دو مفهوم یکسانند ؟
دسته بندی متدولوژی ها
یک دسته بندی متداول از متدولوژی ها به این صورت است :
متدولوژی های مبتنی بر پردازش
متدولوژی های مبتنی بر داده
روش های نمونه سازی
دسته بندی متدولوژی ها
متدولوژی های مبتنی بر پردازش
1- طراحی ساختیافته SD (روش Yourdon-Constantine )
2- تحلیل ساختیافته SA (روش DeMarco)
3- تحلیل ساختیافته SA (روش Gane-Sarson)
4- روش YSM (Yourdon System Method)
دسته بندی متدولوژی ها
متدولوژی های مبتنی بر داده
1- مهندسی اطلاعات Information Engineering (روش Martin)
2- روشهای تحلیل شی گرا OOD
3- روش جکسون JSD
4- روش وارنیر-اور Warnier-Orr
5- متدولوژی BSP (Business System Planning)
دسته بندی متدولوژی ها
روش های نمونه سازی
1- روش توسعه سریع RAD
2- روش توسعه مشارکتی JAD
دسته بندی متدولوژی ها
دسته بندی دیگری از متدولوژی ها به ای صورت است :
متدولوژی های سنتی
متدولوژی های ساختیافته
متدولوژی های شی گرا
آیا می توان دسته بندی های دیگری نیز از انواع متدولوژی ها ارائه کرد ؟
چطور یک متدولوژی مناسب پروژه مان انتخاب کنیم ؟
انتخاب یک متدولوژی مناسب برای پروژه نرم افزاری به فاکتورهای زیادی بستگی دارد از جمله :
هدف – نوع نرم افزار نهایی
اندازه نرم افزار نهایی
فعالیت هایی که در طول پروژه انجام خواهد گرفت
. . .
ولی در نهایت با توجه به فاکتورهای متفاوت می توان یکی از متدولوژی ها و یا ترکیبی از دو یا چند متدولوژی را مورد استفاده قرار داد .
متدولوژی های ساختیافته
رواج روش های ساختیافته از اواخر دهه 1960
در این متدولوژی ها هم تحلیل ها ساختمندند ، هم سیستم ها
استفاده از مفهوم سیستم های ماجولار – تفکیک یک سیستم به سیستم های کوچک تر و نسبتا مستقل از بالا به پایین
متدولوژی های ساختیافته
مشکلات اصلی متدولوژی های ساختیافته :
پیچیدگی گذر از تحلیل به طراحی
پیچیدگی گذر از طراحی به پیاده سازی (نگاشت به کد)
عدم تاکید بر قابلیت استفاده مجدد (ReUsability)
متدولوژی های شی گرا
ایده روش های شی گرا در سال 1980 مطرح شد
در روش های شی گرا ، از ابتدا اشیاء مشخصی ایجاد می شوند که عملیات مختلف در مراحل مختلف (تحلیل ، طراحی و …) بر روی این اشیا انجام می گیرند
متدولوژی های شی گرا مجموعه ای از تعامل اشیا هستند
در این روش ها مشکل پیچیدگی گذرها را نداریم
قابلیت استفاده مجدد از اشیا در پروژه ها و سیستم های دیگر
متدولوژی های شی گرا
یکی از دسته بندی های مرسوم متدولوژی های شی گرا :
متدولوژی های اولیه (Seminal Methodology)
Shlaer-Mellor ، Coad-Youdon ، RDD ، Booch ، OMT ، OSA ، OOSE ، BON ، Hodge-Mock ، Fusion ، Syntropy
متدولوژی های مجتمع شده (Integrated Methodology)
OPM ، Catalysis ، OPEN ، RUP/USDP ، EUP ، FOOM
متدولوژی های چابک (Agile Methodology)
DSDM ، SCRUM ، XP ، ASD ، Xd ، Crystal ، FDD
متدولوژی شی گرای RUP
ساختار کلی RUP دارای دو بعد است :
محور افقی – بیانگر زمان است . نشاندهنده جنبه پویای متدولوژی
محور عمودی – بیانگر ترتیب منطقی فعالیت ها است . نشاندهنده جنبه ایستای متدولوژی
متدولوژی شی گرای RUP
ویژگی های RUP :
توسعه ی نرم افزار مبتنی بر تکرار ( Iterative )
مدیریت نیازمندی ها
استفاده از معماری Component-Base
مدلسازی بصری نرم افزار ( Visual Modeling )
کنترل مستمر کیفیت
مدیریت تغییرات برای نرم افزار
متدولوژی شی گرای RUP
اهداف RUP :
فراهم آوردن زبان مدلسازی بصری و گویا
فراهم آوردن مکانیزم های توسعه ، برای بسط مفاهیم اساسی
استقلال از زبانهای برنامه نویسی خاص و فرآیندهای توسعه
فراهم آوردن پایه و اصولی رسمی برای درک زبان مدلسازی
تشویق به رشد بازار ابزار OO
حساسیت و پشتیبانی از مفاهیم توسعه ی سطح بالاتر نظیر : همکاری ها ، چهارچوب ها ، الگوها ، اجزا
مجتمع سازی بهترین تجربیات
متدولوژی شی گرای RUP
فازهای یک پروژه در RUP :
Inception ( آغازین ) : ایجاد شناخت اولیه از صورت مساله ، شناخت و مدل کردن کلیات سیستم موجود
Elaboration ( جزئیات ): تشخیص و مستند کردن جزئیات مدل سیستم موجود ، دقیق کردن نیازمندیها ، تحلیل و طراحی کلی سیستم جدید که معمولا در طی دو چرخه انجام می گیرد
Construction ( ساخت ): توسعه ی سیستم نرم افزاری بر اساس سیستم طراحی شده ی جدید در طی چرخه های متعدد
Transition ( انتقال ): انتقال از سیستم قدیم به جدید شامل انتقال اطلاعات و گردش کار ، نصب کامل سیستم ها و آموزش کارکنان
متدولوژی شی گرای RUP
طرح ریزی فازها
همه ی فازها در میزان تاثیر و زمان بندی مساوی نیستند . اگرچه این تفاوت ها به پروژه بستگی دارد ، یک چرخه توسعه ی ابتدایی برای یک پروژه با سایز متوسط باید بر طبق توزیع زمانبندی و تاثیر جدول زیر پیش رود :
متدولوژی شی گرای RUP
فعالیت های انجام شده در هر یک از فازها :
مهندسی امور Business Modeling
نیازها Requirements
تحلیل و طراحی Analysis & Design
پیاده سازی Implementation
آزمون Test
کنترل تغییرات
Configuration & Change Management
کنترل پروژه Project Management
محیط عملیاتی Environment
گسترش Deployment
متدولوژی ساختیافته SSADM
این متدولوژی دارای محدودیت هایی ( حداکثر موجودیت های خارجی ، 12 موجودیت ) می باشد و به همین دلیل برای تحلیل سیستم های بزرگ از این نوع متدولوژی استفاده نمی شود
مستندات این متدولوژی بسیار زیاد می باشد
متدولوژی ساختیافته SSADM
فازهای یک پروژه در SSADM :
امکان سنجی
تحلیل نیازمندیها
طراحی منطقی
طراحی فیزیکی
متدولوژی ساختیافته SSADM
دیاگرام گردش داده ها ( DFD )
خلاصه ی عملکرد سیستم
مشکلات و نیازمندیها
دیاگرام متن منطقی
دیاگرام منطقی گردش داده ها
طراحی پایگاه داده
طراحی منوی برنامه
طراحی فرم ورود داده ها
شرح پردازه های جزئی
فعالیت های انجام شده در SSADM :
جمع آوری فرم های پروژه
تهیه ی سناریو
تقاضای سیستم مکانیزه
زمانبندی
دیاگرام متن ( Context Diagram )
شرح موجودیت های خارجی
شرح خطوط جریان داده
دیاگرام گردش مستندات
مقایسه بین متدولوژی RUP و SSADM
– در متدولوژی SSADM سیستم از سه دیدگاه وظیفه ، ساختار و رفتار مورد بررسی قرار می گیرد
– در متدولوژی RUP تمام اشیاء موجود در سیستم به صورت یکپارچه مدل می شوند
– در متدولوژی SSADM به کل سیستم نگاه می کنیم و بعد از روی نیازهای سیستم به تحلیل و طراحی سیستم می پردازیم ؛ در این روش تا رسیدن به نیازهای واقعی کاربر ، مسیر طولانی شناخت سیستم و تبدیل آن به نیازهای منطقی را طی می نماییم
– در متدولوژی RUP توجه تحلیلگر به نیازهای کاربر می باشد و درخواست او از سیستم مورد بررسی قرار می گیرد
– در متدولوژی SSADM روش های تبدیل مرحله ی تحلیل نیازمندیها به طراحی منطقی دشوار و غیر استاندارد می باشد . در این متدولوژی ، اینکه هر موجودیت می تواند در چندین وظیفه نقش داشته باشد ، باعث پیچیدگی کار تحلیل و پایین آمدن قابلیت استفاده ی مجدد از سیستم می گردد
– در متدولوژی RUP این مشکل با استفاده از قابلیت های برنامه نویسی Object Oriented تا حدود زیادی مرتفع گردیده است
مقایسه بین متدولوژی RUP و SSADM
– متدولوژی های ساختیافته از دیدگاه های وظایف ، ساختار ، و رفتار مسائل را مورد بررسی قرار می دهند
– متدولوژی های شی گرا هر چند مبتنی بر شناخت اشیا هستند اما از سایر دیدگاه ها نیز بعضا به مسائل می پردازند
– با توجه به اینکه SSADM از دیدگاه داده ای ( Data-Centric ) سیستم را شناسایی می کند ، یشتر توجه خود را به توابعی از نوع به روزرسانی و پرس و جو در بانک اطلاعاتی متمرکز می نماید
– در حالی که دیاگرام توابع پرس و جو و طراحی فیزیکی داده ها با توجه به وجود بانک های شناخته شده و قابلیت های زبان های ویژوال بیش از اینکه کمک یار برنامه نویس باشند باعث شلوغی کار طراحی می شوند
در SSADM مراحل اولیه ی چرخه حیات یعنی از مراحل امکان سنجی تا مرحله طراحی به طور کامل پشتیبانی شده ، اما مراحل ساخت ، تولید و نگهداری به طور جزئی پشتیبانی می گردد
مقایسه بین متدولوژی RUP و SSADM
در SSADM با توجه به عدم ارائه ی معیارهای مشخص برای دسته بندی توابع ، ماژول سازی برنامه سلیقه ای می شود
– درخواست های سیستم در طول پروژه چندین بار تغییر خواهد کرد ، لذا سیستمی که از روش Data-Centric استفاده می کند ، هر چند می تواند به آسانی تغییر در پایگاه داده ها را مدیریت نماید ، اما اجرای تغییرات در قوانین تجاری یا رفتار سیستم آنقدر آسان نیست
– با متدهای شی گرا ، هم بر اطلاعات و هم بر رفتار متمرکز می شویم . با متدهای شی گرا ، برنامه را به قطعات بسیار کوچک یا آبجکت هایی تقسیم می کنیم که تا اندازه ای مستقل از یکدیگر باشند و به آنها به عنوان ساختمانی از بلوک ها نگاه می کنیم
پایان