گزارش سمینار کارت های CRC در معماری نرم افزار

تعداد صفحات: 105 فرمت فایل: word کد فایل: 10002044
سال: 1384 مقطع: مشخص نشده دسته بندی: پایان نامه مهندسی کامپیوتر
قیمت قدیم:۱۷,۱۰۰ تومان
قیمت: ۱۵,۰۰۰ تومان
دانلود فایل
  • خلاصه
  • فهرست و منابع
  • خلاصه گزارش سمینار کارت های CRC در معماری نرم افزار

    کامپیوتر

    گزارش سمینار کارشناسی ارشد

    چکیده

    متنی که پیش روی شماست گزارش سمینار کارشناسی ارشدی است

    که به بررسی کاربرد کارتهای  CRC در معماری نرم افزار و وجود دارد که با ایجاد کارتهای  CRC اکثر طراحیها به سمت این نوع طراحی سوق داده شده است .

    در ادامه گزارش محیطهای پشتیبان ایجاد کارتهای  CRC را معرفی خواهیم کرد. چنین محیطهای نرم افزاری امکاناتی برای ایجاد کارتها , حذف و بهنگام سازی آنها را به سهولت در اختیار کاربر قرار می دهند. با داشتن محیطهای ایجاد خودکار کارتها, انگیزه استفاده از این کارتها بیشتر شده و استفاده از این کارتها از حالت خسته کنندگی خارج شده است .

    مطالب موجود در این نوشتار برداشتهای مستقیم یا گزینشی از متون از پیش نوشته شده هستند. نوشته های بخش معرفی محیطهای پشتیبان کارتهای  CRC نیز برداشتهای شخصی و از متون موجود در این زمینه و نتیجه کار عملی با این نرم افزارها بوده است .

    فصل اول

    مفاهیم اساسی

    در این فصل به معرفی کلیاتی در مورد معماری نرم افزار, عناصر معماری نرم افزار و زبانهای توصیف معماری خواهیم پرداخت . البته مطالب ذکر شده دارای جزئیات فراوانی بوده و هنوز هم صاحب نظران در مورد آنها بحث و بررسی انجام می دهند ولی ما به دلیل محدودیتهای خاص این گزارش از ذکر جزئیات بیشتر خودداری کرده و مطالب را بصورت خلاصه شده ارائه می نم ائیم .

    ١-١ معماری نرم افزار

    نرم افزارهای درخواستی با پیشرفت در سایر علوم روز به روز پیچیده تر می شوند و با افزایش پیچیدگی نم ی توان طراحیهای سنتی را در ساخت این نرم افزار ها استفاده کرد. بنابراین لازم است که نوع نگرش به طراحی نرم افزار ماوراء الگوریتم ها , ساختمان داده ها و محاسبات معمولی باشد.

    طراحی و تشریح ساختار کلی سیستم ، یک نوع جدید از مسئله را برای ما آشکار می سازد که به آن سطحی از طراحی , یا همان معماری نرم افزار گفته می شود.

    از طریق معماری می توان پیچیدگی نرم افزارها را که یک مسئله کلیدی است حل نم ود. [ ١]

     

     

    فصل اول – مفاهیم بنیادی                                                                                   3

    معماری تعیین می کند که اصول و سبکهای ما چیست ؟ در واقع نکات و مفاهیم کلیدی و سازوکارهایی که مورد نظر است را معین می کند و روی تصمیمات سطح بالا متمرکز می شود. در مورد ایجاد قواعد ساختاری و انتخاب ساختارهای قاعده مند موجود، تصمیم می گیرد و در صورت نیاز، روی مسائل موجود، سبک سنگین می نم اید و مصالح ه انجام می دهد. چون گاهی اوقات امکان وجود دو ویژگی کلیدی با هم وجود ندارد و باید یکی از آنها را انتخاب کرده و از دیگری صرفنظر نم ود که در این سطح تجرید، باید در مورد آن تصمیم گیری شود.

    پس معماری مجموعه ای از تصمیمات سطح بالا است که ساختار و جامعیت را تحت تاثیر قرار می دهد و باعث می شود روی کیفیتهای لازم برای سیستم تفکر بیشتر انجام شود. .[ ١]

    برای معماری تعاریف مختلفی وجود دارد که هر یک از آنها از دیدگاه خاصی معماری را تعریف می کنند.

    معماری نرم افزار یعنی بیان ساختار یا ساختارهای سیستم که مولفه ها ی نرم افزاری ,ویژگیهای قابل رویت از بیرون این مولفه ها و روابط بین آنها را نشان می دهد. در تعریف دیگری برای معماری که روی جنبه های داخلی سیستم متمرکز می شود بیان می دارد که معماری عبارت است از ساختار مولفه ها در یک سیستم , رابطه داخلی آنها و اصول و خطوط راهنمایی که طراحی و ارزیابی سیستم را در طی زمان کنترل می کند. اصولا تعریف معماری نرم افزار شامل دو قسمت ماکرو و میکرو می باشد که اولی روی محیط سیستم

     

     

    فصل اول – مفاهیم بنیادی                                                                                  4

    متمرکز می شود و دومی ساختار داخلی سیستم را مورد پوشش قرار می دهد.  [ ١]

    معماری نرم افزار شامل جامعیت مدلها و متدولوژیهای توسعه نرم افزار می باشد که این ویژگی آن را از متدولوژیهای طراحی و تحلیل ویژه جدا می کند. ساختار پیچیده راه حلهای نرم افزار, جدای از توصیف مسئله است که به پیچیدگی توسعه نرم افزار اضافه می شود. معماری نرم افزار بدنه متدها و تکنیکهایی است که به ما برای مدیریت پیچیدگی توسعه نرم افزار کمک می کند.  [ ٣]

    معماری نرم افزار یک توسعه طبیعی از نظم فرآیند کلان مهندسی نرم افزار است و یک دیدی از سیستم نرم افزاری را با عنوان مولفه ها و اتصال دهنده ها معرفی می کند. مولفه ها مجموعه های فشرده ای از وظیفه مندی هستند و اتصال دهنده ها تعامل زمان اجرای بین مولفه ها را به عینیت می رسانند. معماری یک سیستم نرم افزاری می تواند در یک مستندی که توصیف معماری نامیده می شود , تعیین شود. طراحی معماری کاملا متفاوت از متدولوژیهای طراحی موجود است و متدولوژیهای طراحی را با دیدهای خاص خود کامل می کند.  [ ٣]

    معماری نرم افزار مرحله ای از فرآیند کلان مهندسی نرم افزار می باشد که بین تحلیل و طراحی کلی قرار می گیرد و از طریق تجزیه مدل طراحی به زیر سیستمها ,واسطهای آنها و وابستگیهای میان آنها , تعیین کلاسهای کلیدی در طراحی و عینیت بخشیدن به

    فصل اول – مفاهیم بنیادی                                                                                   

    موارد کاربری اصلی انجام می شود و در این راه فردی بنام معمار این وظیفه را برعهده دارد.  [ ١]

    برای نم ایش خروجی های معماری و ایجاد ارتباط با سهامداران , ابزارهایی موجود است که می توان در این را از آنها بهره گرفت که از جمله آنها می توان به کارتهای   CRC و کارتهایی که ایده آنها برگرفته از کارتهای  CRC است اشاره نم ود که در ادامه گزارش آنها را بررسی خواهیم نم ود.

    معماری در مورد ساختارها و ارتباطات تصمیم گیری می کند و روی نگرش ایستا و پویا و فرضیه ها و دلایلی که برای این کار وجود دارد، متمرکز می شود، بر روی مسئله تجزیه سیستم و همچنین چگونگی تخصیص مولفه ها به افراد مختلف تیم ، طراحی واسط ها و تخصیص این مسئولیتها به فرآیندها تصمیم گیری انجام می دهد.

    وشامل سه دید یا سطح است :  [ ٢]

    • دید مفهومی

    • دید منطقی

    • دید اجرایی

    دید مفهومی : مولفه های سطح بالا و رابطه های آنها و مسئولیتهای آنها را شناسایی می کند و هدف آن توجه لازم به تجرید سیستم بدون در نظر گرفتن جزئیات است و در واقع تصمیمات معماری در آن اتفاق می افتد، و از آنجایی که تصمیمات معماری در آن اتفاق می افتد، پس باید در آن تجزیه مناسب سیستم بدون در نظر گرفتن جزئیات و همچنین ترکیب کردن سیستم را در نظر گرفت .

    علاوه بر آن ، وسیله ای فراهم می شود که معمار می

    فصل اول – مفاهیم بنیادی                                                                                

    تواند از طریق آن با افراد (صاحبان سهام ) غیر فنی و غیر تکنیکی مانند مدیران و بازاریابها و کاربران ، ارتباط برقرار می کند. این دید شامل نم ودار معماری بدون جزئیات و توصیف مولفه ها به صورت غیر رسمی برای هر مولفه است .  [ ٢]

    دید منطقی : صفات قابل رویت از بیرون مولفه ها، واسط کاربر آن سیستم ، مشخصات مولفه ها، و مکانیسم های کلیدی معماری از مواردی است که باید در این

    1 سطح به جزئیات به آن پرداخته شود. و یک نقشه کلی ، با همکاری توسعه دهندگان مولفه ها و کاربران مولفه ها فراهم می شود. این سطح به ، به روز رسانی نم ودارهای معماری و نم ایش تعامل آنها و تشریح ارتباطات مولفه ها با یکدیگر و توضیح دقیق تر مشخصات مولفه ها بر می گردد و تم رکز آن روی طراحی مولفه هایی است که تعاملی هستند و همچنین مشخص کردن تعامل بین مولفه ها و نم ودارهای همکاری و مکانیسم های ارتباطی و پروتکل های مورد نیاز برای طراحی واسط و تعیین مشخصات آن و فراهم کردن اطلاعات توصیفی برای کسانی که از این مولفه ها بهره برداری می کنند، می باشد.  [ ٢]

    دید اجرایی : در این سطح دیدهای اجرایی و نحوه اجرا شدن فرآیندهایی که در هر کدام از مولفه ها تعبیه شده اند، مشخص می شود و معین می شود که کار از کجا شروع می شود و به کجا خاتم ه می یابد (مانند نم ودار همکاری ) و برای گماردن زمان اجرا برای مولفه ها است و چگونگی هماهنگی رشته ها و فضاهای کاری ،

    فصل اول – مفاهیم بنیادی                                                                                 

    تخصیص امکانات و منابع فیزکی را مشخص می کند.یک دید فرآیندی برای نگاشت مولفه ها به فرآیندهای سیستم فیزیکی تهیه می شود و در این دید بیشترین توجه روی بعضی از موضوعات کلیدی مانند کارایی و قابلیت گسترش متمرکز می شود. شکل ١-١ سه دید معماری را بطور خلاصه نشان می دهد. [٢]

    معماری مفهومی

    - نم ودار معماری ، نوعی کارت های CRC

    - مرکز فعالیت : تشخیص مولفه ها و

    اختصاص مسئولیتها به مولفه ها

    معماری منطقی

    - نم ودار معماری به روز شده ( با نم ایش واسط )

    - مرکز فعالیت : طراحی تعامل بین مولفه ها، مکانیسم ها و پروتکل های ارتباطی ، طراحی واسط و مشخصات آن ، فراهم کردن اطلاعات زمینه برای کاربران مولفه ها

    معماری اجرایی

    - دید فرآیندی (روی نمودار همکاری نشان داده می شود)

    - مرکز فعالیت :تخصیص نم ونه های مولفه های زمان اجرا به فرآیندها، رشته ها و فضاها. مشخص کردن چگونگی ارتباط برقرار کردن و هماهنگ کردن آنها و چگونگی تخصیص منابع فیزیکی به آنها.

    شکل ١-١ : دیدگاه های معماری

    همانطور که از شکل ١-١ و توضیحات قبل مشخص است می

    توان در سطح معماری مفهومی از نوعی کارتهای

    فصل اول – مفاهیم بنیادی                                                                              

    CRC بعنوان یک ابزار مفید استفاده نم ود و یافتن مولفه های مناسب ومسئولیتهای آنها را با کارتها بطور مناسب انجام داد.

    ١-٢ معماری نرم افزار در مقابل روشهای طراحی

    معماری نرم افزار امروزه توسط تحلیل گران سیستم ,طراح و مهندس نرم افزار قابل انجام است . اما معماری فراتر از تخصیص مجدد وظایف به این نقشها است .

    مفهوم معماری در نرم افزار به معنی در طبقه خاصی درآوردن فعالیتهای تحلیل و طراحی در یک قالب طراحی منسجم و بزرگتر است . حال سوال اینستکه اگر معماری در طبقه خاصی در آوردن تحلیل و طراحی است پس چه چیزی آنها را از هم متفاوت می کند؟ برای مثال معماری در بسیاری از روشها مشابه تحلیل و طراحی شئ گرایی عمل می کند ولی به دلیل محدوده بزرگ تحلیل و طراحی در معماری , آن را از متدولوژیهای دیگر مانند شئ گرایی متفاوت می کند. [ ٣]

    مدلهای شئ مانند نم ودارهای کلاس هنوز به اندازه کافی برای تسخیر همه جنبه های سیستم پرمعنی نیست و ما نیاز داریم متدولوژیها و مدلها را در یک کل منسجم , یکپارچه کنیم . این جامعیت متدولوژیها و مدلها یکی از چیزهایی است که معماری نرم افزار را از تکنیکهای دیگر طراحی و تحلیل مجزا می کند. البته در سال  ١٩٩٤ بوچ طراحی شئ گرایی را معماری برنامه های کاربری در نظر گرفت ولی به مرور زمان و با پیچیده شدن برنامه ها این نظریه نیز جواب نداد. [٣]

     

    فصل اول – مفاهیم بنیادی                                                                                 

    پس بطور کلی می توان گفت دامنه دید در معماری باید فراتر و انتزاعی تر از دامنه دید متدولوژیهای مختلف طراحی و تحلیل باشد. به همین دلیل در تعریف دیگری از معماری در  [ ٣] گفته می شود که معماری دید عمومی یا مجموعه دیدهای سطح بالا است که معمولا در مدلهای مرجع معماری تعریف شده است . مانند دید  ١+٤ .

    ١-٣ عناصر٢معماری نرم افزار

    در معماری عناصری وجود دارند که یافتن و تشخیص صحیح آنها نتیجه درستی را می دهد که این عناصر شامل : [ ٣]

    • مولفه ها

    • اتصال دهنده ها

    • کیفیتها (ویژگیهای کیفیتی )

    بسیاری از صاحب نظران معماری را با ویژگیهای کیفیتی مانند قابلیت اطمینان و قابلیت اصلاح و چگونگی تاثیر پذیرفتن این ویژگیها بوسیله تجزیه فیزیکی سیستم نرم افزاری برحسب مولفه ها و ترتیب آنها یکسان فرض می کنند. ترتیب متفاوتی از مولفه ها روی ویژگیهای کیفیتی مانند قابلیت اطمینان و قابلیت اصلاح تاثیر می گذارد بدون اینکه ضرورتا در وظیفه مندی تاثیر داشته باشد. زبانهای توصیف معماری یا  ADL

    زبانهایی برای توصیف یک سیستم در این سطح تجرید است .

    یک ADL دیدی از معماری سیستم نرم افزاری است . لازم به ذکر است که برای بدست آوردن فهم کاملتر و جامع تر از معماری نیاز به چند دید می باشد. [ ٣]

    Shaw و  Garlan معماری نرم افزار را بطور انتزاعی چنین تعریف کردند:" معماری شامل توصیف عناصر تشکیل دهنده سیستم , تعاملاتشان , الگوها و اصولی است که ترکیب و طراحی و قید های روی این الگوها را راهنمایی می کند. یک سیستم بنابراین برحسب عناصر فیزیکی (پیاده سازی ) یا مولفه ها و تعاملاتشان تعریف می شود. یک سیستم خودش همچنین یک مولفه است و ممکن است از سیستمهای دیگر تشکیل یافته باشد. [ ٣]

    بر اساس مولفه های سیستم , IEEE تعریفی را برای معماری ارائه کرده و بیان داشته :" یک معماری سازمان بنیادی یک سیستم تجسم یافته در مولفه ها , روابط آنها باهم دیگر و با محیط است و خط راهنماهایی برای طراحی و تحول را تعیین می کند ."

    در معماری شناسایی عناصر و روابط درونی آنها و روابطشان با محیط از کارهای مهم و اساسی است که گفتیم در این زمینه زبانهای توصیف معماری موجود هستند. ولی می توان ابزار ساده ای مانند کارتهای CRC

    را نیز در این زمینه بکار گرفت و با انجام مقدماتی قبل از استفاده از زبانهای توصیف معماری راه را هموارتر نم ود. 

  • فهرست و منابع گزارش سمینار کارت های CRC در معماری نرم افزار

    فهرست:

    عنوان                                                                            صفحه

    ١ مفاهیم اساسی                                                                   ١

    ١-١ معماری نرم افزار                                                       ١

    ١-٢ معماری نرم افزار در مقابل روشهای طراحی ٧

    ١-٣ عناصر معماری نرم افزار                                             ٨

    ١-۴ زبانهای توصیف معماری                                               ٩

    ٢ شی گرایی                                                                           ١٢

    ٢-١ مفهوم شی                                                                ١٢

    ٢-٢ کلاس                                                                     ١۴

    ٣-٢نقش                                                                        ١۵

    ۴-٢ طراحی نرم افزار                                                       ١٧

    ١-۴-٢ طراحی مسئولیت محوری                                    ١٨

    ٣ کارتهای CRC                                                                      ٢٠

    ٣-١ CRC کارت چیست ؟                                                   ٢٠

    ٣-٢ مدلسازی CRC و مراحل آن                                          ٢۴

    ٣- ٣ مشکلات استفاده از کارتهای CRC       ٢٨

    ٣- ١-٣ راه حل                                                         ٣٠

    ۴-٣ نم ودار Role-Play                                                    ٣٢

    ۵-٣ جایگاه کارتهای CRC در مرحله تحلیل سیستم ٣۴

    ۶-٣ نقاط قوت و ضعف کارتهای CRC                                       ٣۵

    ٣ –٧ قابلیت رسمیت دادن به کارتهای CRC    ٣۶

    ١-٧-٣ بیان مسیر                                                      ٣۶

    ٢-٧-٣ کارتهای رسمیت یافته                                         ٣٨

    ۴ کارتهای CRC در معماری                                                        ۴٠

    ۴-١نقش مورد کاربری در معماری                                          ۴١

    ٢-۴کارتهای CRC و استفاده از ایده آن در مورد کاربری ۴٢

    ٣-۴نگاشت مورد کاربری (UCM)                                        ۴۵

    ۴-۴ استفاده از کارتهای برای مولفه های معماری  ۴٩

    ۵ محیطهای نرم افزاری پشتیبان کارتهای CRC    ۵٢

    ١-۵ ابزارهای پشتیبان روش طراحی CRC     ۵٢

                                                                                        CRC Design Assistant ۵-٢

    ٣-۵ نرم افزار Quick  CRC                                              ۶١

    ١-٣-۵ مفاهیم عمومی                                                 ۶٣

    ٢-٣-۵ ایجاد کارتهای CRC                                          ۶۴

    ۵ - ٣-٣انتساب مسئولیتها و همکاران    ۶۶

    ۴-٣-۵ اضافه کردن ویژگیها                                          ۶۶

    ۵-٣-۵ تعریف و شبیه سازی یک سناریو   ۶۶

    ۶-٣-۵ پارتیشن بندی طراحی                                         ۶٩

    ٧-٣-۵ گراف ارث بری                                               ٧١

    ٨-٣-۵ خلاصه ای از نرم افزار                                      ٧٢

    ۴-۵ نرم افزار Rational CRC                                                  ٧٣

    ١-۴-۵ ایجاد کارت کلاس                                                            ٧۴

    ٢-۴-۵ ایجاد زیر سیستم و نم ایش محتویات آن                                    ٧۵

    ٣-۴-۵ تعریف مسئولیتها                                                              ٧۶

    ۴-۴-۵ گراف ارث بری                                                              ٧٧

    ۶ نم ونه ای از متدولوژیهای توسعه نرم افزار   ٧٨

    ١-۶متدولوژی XP                                                           ٧٨

    ٢-۶متد شئ گرایی BON                                                    ٨٠

    ٧ نتیجه گیری                                                                          ٨۴

    کار آینده                                                                          ٨٧

    فهرست منابع                                                                     ٩١

     

    منبع:

     

    [1] Len Bass, Paul Clements, Rick Kazman, “Software Architecture in

    Practice”,second edition

    [2] Bredemeyer Consulting , “Architecture Resources for Enterprise

    Advantage” , white paper,2002

    [3] “Introduction to Software Architecture”, chapter 1

    [4] paul Clements, Felix Bachman ,Len Bass, David Garlan , James Ivers,

    Reed Little, Robert Nod , Judith Stafford ,”Documenting Softwae

    Architectures Views and Beyond”

    [5] Rebecca  j. Wirfs–Brock and Alan McKean , “ABreif Tour of

    Responsibility Driven Design”, Tutorial presented at OOPSLA 2002 ,

    the ACM SIGPLAN conference

     

     

    فصل هفتم – نتیجه گیری                                                                                   92

    [6] Fereidoon Shams Aliee ,”Modelling The Behaviour of Processes

    Using Collaborating Objects”, a thesis , may 1996

    [7]Jurgen Borstler , “Object-Oreinted Analysis and Design through

    Scenario  Role-Play  “,  UMINF  04.04,  ISSN-0348-0542,UMEDA

    University Department of Computing Science

     [8]  Grady  Booch  ,  “Object-Oreinted  Analysis  and  Design  with

    Applications “ , 2nd Edition

    [9]  Kathleen Arnold Gray ,Mark Guzdial ,Spencer Rugaber ,” extending

    CRC Cards into a Complete Design Process” , 2002

    [10] Jurgen Borstler Umea university , Sweden, “Classes or Objects?

    CRC-Cards Considered Harmfull”,2004

    [11] Mohamed Fayad , Haitham Hamza , and Huasca Sanchez ,”A

    Pattern  for an Effective  Class Responsibility  Collaborator(CRC)

    Cards”,2004

    [12] Steve Roach, Javier C Vasquez , “A Tool to Support the CRC

    Design Method “ October 21 , 2004, International Conference on

    Engineering Education

    [13] Robert Biddle , James Noble , Ewan Tempero, “Reflection on CRC

    Cards for OO Design” , Auguest 2001

    [14] Scott W.Ambler , “CRC Modeling Bridging the Communication

    Gap Between Developers and Users”, November 29 , 1998

     [15] Robert Biddle , James Noble, Ewan Tempero,”Essential and

    Active:Statement for Panel on Teaching Usage-Centred Design in the

    University & in the Workplace,

     [16] Owen Rees ,”Using Path Expressions as Concurrency Guards”,

    1993                                                                                  

    [17] Ronald A. Grace, Derek Coleman, Michael A. Ogush, Steve Rhodes,

    Hewlett-Packard  Product  Generation  Consulting,“Experience  with

    Documentation of Software Architectures”

    [18] http:..www.excelsoftware.com.quickcrcintro.html

    [19] F.Shams and B.C. Warboys. “Roles represent patterns”  In

    roceedings of  the Workshop on Pattern Languages of Object-Oriented

    Programs at ECOOP'95,1995

    [20] N.Guelfi , D.ammouche , P.Sterges , O.Biberstein , “Formal

    engineering of distributed java application” , Activities Report ,2001

    [21] Robert Biddle , James Noble ,Ewan Tempero , “From Essential use

    cases to objects” , 2002

    [22] R.J.A. Buhr , “Use Case Maps for  Object-Oriented Systems”,Trio

    Presentation.Workshop  15  Dec  95,  Department  of  Systems  &

    Computer EngineringCarleton University Ottawa, Canada

    [23] Daniel Amyot, “Who Uses Use Case Maps?” ,April 7, 2000

    [24] Russell R.Hurlbut, Expertech , Rtd. , “ A Survey of Approaches For

    Describing and Formalizing Use Cases”

    [25] Ricard F.paige & Jonathan S.Ostroff , “ A Comparison of the

    Business Object Notation and the Unified Modeling Language “ 

ثبت سفارش
عنوان محصول
قیمت