320 likes | 599 Views
مقایسه ای بر متدولوژی های ساختیافته و شی گرا. مهندسی نرم افزار 2 ، دکتر کاویانی پویا روحی. درباره چه چیزی ؟. مقدمه – مشکل واژگان و مفاهیم تعریف متدولوژی یک دسته بندی متداول از متدولوژی ها نحوه انتخاب یک متدولوژی مناسب متدولوژی های ساختیافته متدولوژی های شی گرا
E N D
مقایسه ای بر متدولوژی های ساختیافته و شی گرا مهندسی نرم افزار 2 ، دکتر کاویانی پویا روحی
درباره چه چیزی ؟ • مقدمه – مشکل واژگان و مفاهیم • تعریف متدولوژی • یک دسته بندی متداول از متدولوژی ها • نحوه انتخاب یک متدولوژی مناسب • متدولوژی های ساختیافته • متدولوژی های شی گرا • آشنایی با متدولوژی شی گرای 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 : • امکان سنجی • تحلیل نیازمندیها • طراحی منطقی • طراحی فیزیکی
دیاگرام گردش داده ها ( DFD ) خلاصه ی عملکرد سیستم مشکلات و نیازمندیها دیاگرام متن منطقی دیاگرام منطقی گردش داده ها طراحی پایگاه داده طراحی منوی برنامه طراحی فرم ورود داده ها شرح پردازه های جزئی فعالیت های انجام شده در SSADM : جمع آوری فرم های پروژه تهیه ی سناریو تقاضای سیستم مکانیزه زمانبندی دیاگرام متن ( Context Diagram ) شرح موجودیت های خارجی شرح خطوط جریان داده دیاگرام گردش مستندات متدولوژی ساختیافته SSADM
مقایسه بین متدولوژی RUP و SSADM • - در متدولوژی SSADM سیستم از سه دیدگاه وظیفه ، ساختار و رفتار مورد بررسی قرار می گیرد - در متدولوژی RUP تمام اشیاء موجود در سیستم به صورت یکپارچه مدل می شوند • - در متدولوژی SSADM به کل سیستم نگاه می کنیم و بعد از روی نیازهای سیستم به تحلیل و طراحی سیستم می پردازیم ؛ در این روش تا رسیدن به نیازهای واقعی کاربر ، مسیر طولانی شناخت سیستم و تبدیل آن به نیازهای منطقی را طی می نماییم - در متدولوژی RUP توجه تحلیلگر به نیازهای کاربر می باشد و درخواست او از سیستم مورد بررسی قرار می گیرد • - در متدولوژی SSADM روش های تبدیل مرحله ی تحلیل نیازمندیها به طراحی منطقی دشوار و غیر استاندارد می باشد . در این متدولوژی ، اینکه هر موجودیت می تواند در چندین وظیفه نقش داشته باشد ، باعث پیچیدگی کار تحلیل و پایین آمدن قابلیت استفاده ی مجدد از سیستم می گردد - در متدولوژی RUP این مشکل با استفاده از قابلیت های برنامه نویسی Object Oriented تا حدود زیادی مرتفع گردیده است
مقایسه بین متدولوژی RUP و SSADM • - متدولوژی های ساختیافته از دیدگاه های وظایف ، ساختار ، و رفتار مسائل را مورد بررسی قرار می دهند - متدولوژی های شی گرا هر چند مبتنی بر شناخت اشیا هستند اما از سایر دیدگاه ها نیز بعضا به مسائل می پردازند • - با توجه به اینکه SSADM از دیدگاه داده ای ( Data-Centric ) سیستم را شناسایی می کند ، یشتر توجه خود را به توابعی از نوع به روزرسانی و پرس و جو در بانک اطلاعاتی متمرکز می نماید - در حالی که دیاگرام توابع پرس و جو و طراحی فیزیکی داده ها با توجه به وجود بانک های شناخته شده و قابلیت های زبان های ویژوال بیش از اینکه کمک یار برنامه نویس باشند باعث شلوغی کار طراحی می شوند • در SSADM مراحل اولیه ی چرخه حیات یعنی از مراحل امکان سنجی تا مرحله طراحی به طور کامل پشتیبانی شده ، اما مراحل ساخت ، تولید و نگهداری به طور جزئی پشتیبانی می گردد
مقایسه بین متدولوژی RUP و SSADM • در SSADM با توجه به عدم ارائه ی معیارهای مشخص برای دسته بندی توابع ، ماژول سازی برنامه سلیقه ای می شود • - درخواست های سیستم در طول پروژه چندین بار تغییر خواهد کرد ، لذا سیستمی که از روش Data-Centric استفاده می کند ، هر چند می تواند به آسانی تغییر در پایگاه داده ها را مدیریت نماید ، اما اجرای تغییرات در قوانین تجاری یا رفتار سیستم آنقدر آسان نیست - با متدهای شی گرا ، هم بر اطلاعات و هم بر رفتار متمرکز می شویم . با متدهای شی گرا ، برنامه را به قطعات بسیار کوچک یا آبجکت هایی تقسیم می کنیم که تا اندازه ای مستقل از یکدیگر باشند و به آنها به عنوان ساختمانی از بلوک ها نگاه می کنیم