معماری نرم افزار (پیچیدگی در نرم افزار)
اسلاید 1: كارگاه آموزشي معماري نرمافزار www.esoa.irدكتر فريدون شمسسيد شروين استادزادهجلسه دوم
اسلاید 2: فهرست مطالب پيچيدگي در نرمافزار آشنايي با OMG معماري مدلرانه مفاهيم و اصول بنيادين توسعه مبتني بر MDA فرصتها و تهديدها
اسلاید 3: پيچيدگي در نرمافزارچگونه ميتوان بر پيچيدگي حاكم بر نرمافزار غلبه كرد؟
اسلاید 4: يك واقعيتامروزه تمدن ما بر روي نرمافزار بنا شده است.
اسلاید 5: مشكل اول نرمافزار: حل پيچيدگي
اسلاید 6: عوامل پيچيدگي در نرمافزار پيچيدگی دامنه مساله انعطافپذيري نرمافزار و عدم استاندارد بودن آن پيچيدگي فرآيند توسعه نرمافزار پيچيدگي توصيف رفتار سيستمهاي گسسته
اسلاید 7: يك واقعيتتوسعه نرمافزار يك فرآيند پيچيده و سختبوده، هست، و خواهد بود.
اسلاید 8: يك واقعيتاگر به كل تاريخ مهندسي نرمافزار نگاه كنيم درمييابيم كه سير تكاملي اين تاريخ در يك واقعيت خلاصه شده است:افزايش سطح تجريد Assembly -> Fortran/COBOL -> Simula -> C++ -> JavaNaked HW -> BIOS -> OS -> Middleware -> Domain-specificWaterfall -> Spiral -> Iterative -> AgileProcedural -> Object Oriented -> Service Oriented Early tools -> CLE -> IDE -> XDE -> CDEIndividual -> Workgroup -> OrganizationLanguages:Platforms:Processes:Architecture:Tools:Enablement:
اسلاید 9: سطح تجريد ما بايد سطح تجريد را افزايش دهيم، چون با افزايش سطح تجريد ميتوان ... با سكوهاي مختلف كار كرد. توسعه نرمافزار را سادهتر و كارآمدتر كرد. به دنياي واقعي نزديكتر شد.
اسلاید 10: گام بعدي ...گام بعدي در افزايش سطح تجريد چيست؟
اسلاید 11: OMG (Object Management Group)OMG چيست و چه نقشي در توسعه نرمافزار دارد؟
اسلاید 12: OMG چيست؟AlcatelAT&TBEABorlandBoeingCACodagenDaimlerChryslerEricssonFrance TelecomFujitsuGlaxo SmithKlineHewlett PackardHitachiHyperionIBMIONAio SoftwareKabiraKennedy CarterJohn DeereLION BioscienceMetanologyMITREMSC.SoftwareNASANECNokiaNTT DoCoMoOASISOraclePfizerRockwellSAPSAS InstituteSprintSunTelefonicaUnisysVitria
اسلاید 13: موفقيتهاي بزرگ OMG Common Object Request Broker Architecture (CORBA) Unified Modeling Language (UML) Common Warehouse Metamodel (CWM) Meta-Object Facility (MOF) XML Metadata Interchange (XMI)
اسلاید 14: ناهمگونيهاي صنعت نرمافزار زبانهاي برنامهسازيC ، C++ ، C# ، JavaVB ، Delphi ، COBOL ، ... سيستمهاي عاملWindows (نگارشهاي مختلف) ، Unix ، Linux ، VMS ، MacOS ، PalmOS ، ...سيستمهاي تعبيهشده پروتكلهاي شبكهاي و ارتباطيEthernet ، ATM ، IP ، SS7 ، Firewire ، USBBluetooth ، 802.11b ، HomeRF
اسلاید 15: ناهمگونيهاي صنعت نرمافزار (ادامه) ناهمگوني باعث به تاخير افتادن توسعه سيستمهاي سازماني توزيعشده ميشود. هيچ توافقي بر روي ... سخت افزار وجود ندارد. زبانهاي برنامهسازي وجود ندارد. سيستمهاي عامل وجود ندارد. پروتكلهاي شبكهاي و ارتباطي وجود ندارد. ميتوان بر روي يك سطح بالاتر تجريد توافق كرد. ميانافزارها
اسلاید 16: ناهمگونيهاي صنعت نرمافزار (ادامه)امروزه ميانافزارها نيز بسيار افزايش پيدا كردند ... CORBA COM / DCOM / MTS Java / EJB XML / SOAP C# / .Netنميتوان هيچ يك از آنها را برتر از ديگران در نظر گرفت. توافقي بر روي ميانافزار نيز وجود ندارد. مشكل همچنان باقي است.
اسلاید 17: ناهمگونيهاي صنعت نرمافزار (ادامه)بايد توافقي بر روي واسطها و تبادلات بين آنها وجود داشته باشد.
اسلاید 18: راهحل OMG
اسلاید 19: معماري مدل رانه Model Driven Architecure (MDA)
اسلاید 20: معماري مدلرانه معماري مدلرانه محاسبات هزاره سوم است. معماري مدلرانه سير تكاملي تجزيه و تحليل شيءگرا، و UML است. معماري مدلرانه يك روش ساده و فراگير است كه استانداردهاي مورد نياز جهت ساخت، يكپارچه سازي، و نگهداري داراييهاي نرمافزاري را تعيين ميكند. معماري مدلرانه سعي ميكند از زبانهاي مدلسازي نه تنها به عنوان زبان طراحي بلكه به عنوان يك زبان برنامهسازي نيز استفاده كند. افزايش سطح تجريد برنامهسازي بهبود قابليت توليد، كيفيت، و ماندگاري محصولات نرمافزاري
اسلاید 21: معماري مدلرانه (ادامه) معماري مدلرانه يك روش نوين براي تعريف و ساخت سيستمهاي نرمافزاري است كه در آن ... مدلسازي بر اساس UML ، MOF ، و XMI انجام ميشود. از چرخه حيات كامل نرمافزار (تحليل، طراحي، پيادهسازي، استقرار، نگهداري، تكامل، و يكپارچهسازي) پشتيباني ميشود. بر روي تعاملپذيري و قابليت حمل بالا تاكيد ميشود. هزينه ابتدايي آغاز پروژه پايين است.
اسلاید 22: معماري مدلرانه (ادامه) روشي را براي مشخصه سيستمهاي نرمافزاري معرفي ميكند كه در آن، وظايف سيستم از مشخصه پيادهسازي آن وظايف بر روي يك سكوي خاص فنآوري، جدا شده است. اين كار با تعريف سطوح مختلفي از مدلها انجام ميشود... ... و همزمان سازگاري و هماهنگي بين تمام سطوح مدلها حفظ ميشود.
اسلاید 23: مفاهيم و اصول بنيادين
اسلاید 24: سيستم مفاهيم MDA در قالب سيستمها بيان ميشود. يك سيستم ميتواند هر موجوديتي باشد: يك برنامه يك سيستم كامپيوتري يك تركيب از قسمتهاي مختلف سيستمها سيستمي از سيستمها
اسلاید 25: مدلمدل تجريدي از يك يا چند بخش از سيستم است. مدل به ما كمك ميكند بر روي قسمتهاي اساسي يك مساله متمركز شويم تا بهتر آن را درك كنيم. مدل به ما كمك ميكند در مسير رسيدن به يك راهحل موثر و كارآمد حركت كنيم. مدل معمولاً به شكل تركيبي از متن و تصوير بيان ميشود. سنت رايج اين است كه مدلها يك پيادهسازي را ايجاد نميكنند.
اسلاید 26: توسعه مدلرانه (MDD) پارادايمي كه در آن از روي مدل، يك خانه ساخته ميشود. روشي براي توسعه سيستم كه در آن مدلها وظيفه هدايت و راهبري جريان درك، تحليل، طراحي، ساخت، استقرار، بهرهبرداري، نگهداشت، و تكامل را بر عهده دارند. اين روش ميتواند بسياري از محصولات توسعه نرمافزار را مكانيزه و خودكار توليد كند.
اسلاید 27: معماري مدلرانه استانداردي براي توسعه مدلرانه متعلق به OMG بر روي استاندارد MOF بنا شده
اسلاید 28: ديدگاه (viewpoint) يك روش تكنيكي براي تجريد است. مجموعهاي از مفاهيم معماري و قوانين سازماندهي را به خدمت ميگيرد تا بر روي مفاهيمي خاصي از سيستم تمركز كند. در اين جا تجريد يعني فرآيند حذف جزييات انتخابي و ايجاد يك مدل ساده شده سه ديدگاه از سيستم در معماري مدلرانه وجود دارد: ديدگاه مستقل از محاسبه ديدگاه مستقل از سكو ديدگاه خاص سكو
اسلاید 29: ديدگاه مستقل از محاسبه اين ديدگاه بر روي محيط سيستم و نيازمنديهاي آن تاكيد دارد. در اين ديدگاه جزييات ساختارها و فرآيندهاي سيستم يا پنهان هستند و يا هنوز مشخص نشدهاند.
اسلاید 30: ديدگاه مستقل از سكو اين ديدگاه بر روي عملكرد يك سيستم تاكيد ميكند. در آن جزييات لازم براي پياده سازي روي يك سكو خاص مخفي شده است. در واقع اين ديدگاه بخشي از مشخصه كامل سيستم را نشان ميدهد كه از يك سكو به سكو ديگر بدون تغيير باقي ميماند.
اسلاید 31: ديدگاه خاص سكو اين ديدگاه، ديدگاه مستقل از سكو را به همراه جزييات پياده سازي بر روي يك سكو خاص نشان ميدهد.
اسلاید 32: ديد (View) يك ديد (يا يك مدل ديدگاه)، نمايشي از يك سيستم بر پايه زاويه يك ديدگاه خاص است.
اسلاید 33: سكو (Platform) مجموعهاي از فنآوريها و زيرسيستمها است. هر سكو يك مجموعه همگن از وظايف است كه از طريق تعدادي واسط و الگوهاي خاص كاربردي ميتوان آنها را به خدمت گرفت.
اسلاید 34: برنامه كاربردي (Application) به يك وظيفهمندي در حال توسعه اشاره ميكند. هر سيستم به شكل يك يا چند برنامه كاربردي بر روي يك يا چند سكو توصيف ميشود.
اسلاید 35: تغيير شكل (Transformation) به فرآيند تبديل يك مدل به مدل ديگر گفته ميشود. مدل مبدا و مدل مقصد بايد مربوط به يك سيستم باشند. هم ميتواند بصورت دستي باشد و هم بصورت خودكار
اسلاید 36: سرويسهاي فراگير (Pervasive Services) سرويسهايي هستند كه در يك سطح وسيعي از سكوها در دسترس هستند.
اسلاید 37: پياده سازي يك پياده سازي يك مشخصه است كه در آن تمام اطلاعات مورد نياز براي ساخت يك سيستم و عملياتي كردن آن را در خود جاي داده است.
اسلاید 38: انواع مدلها مدلهاي مستقل از محاسبه (CIM) مدلهاي مستقل از سكو (PIM) مدلهاي خاص سكو (PSM) مدلهاي خاص پيادهسازي (PSI) مدل سكو (PM)
اسلاید 39: مدل مستقل از محاسبه (CIM) يك مدل مستقل از محاسبه ديدي از سيستم بر پايه ديدگاه مستقل از محاسبه است. بر روي نيازمنديهاي سيستم تاكيد دارد. جزييات ساختار سيستمها را نشان نميدهد. مدل مستقل از محاسبه را گاهي مدل دامنه نيز مينامند. نقش مهمي در ايجاد پلي بين خبرگان دامنه مساله و نيازمنديهاي آنها از يك طرف و متخصصان طراحي و پيادهسازي از طرف ديگر دارد.
اسلاید 40: مدل مستقل از سكو (PIM) يك مدل مستقل از سكو ديدي از سيستم بر پايه ديدگاه مستقل از سكو است. بر روي عملكرد يك سيستم تاكيد ميكند. جزييات لازم براي پياده سازي روي يك سكو خاص مخفي شده است. سيستم از منظر چگونگي پشتيباني از كسبوكار مدل ميشود. مستقل از فنآوريهاي پيادهسازي است. يك مدل مستقل از سكو درجه خاصي از استقلال را ارايه ميكند. يكي از متداولترين روشها براي ايجاد اين مدل استفاده از يك ماشين مجازي است. ماشين مجازي به شكل يك مجموعه از بخشها و سرويسهاي مستقل از يك سكو خاص تعريف ميشود.
اسلاید 41: مدل خاص سكو (PSM) يك مدل خاص سكو ديدي از سيستم بر پايه ديدگاه خاص سكو است. مدل مستقل از سكو را گسترش ميدهد. جزييات لازم براي پياده سازي روي يك سكو خاص را نشان ميدهد. يك PSM مشخصههاي داخل PIM را با جزييات مربوط به چگونگي استفاده سيستم بر روي يك سكو خاص تركيب ميكند. امكان داشتن چندين مدل خاص سكو براي يك مدل مستقل از سكو وجود دارد.
اسلاید 42: مدل خاص پيادهسازي (PSI) يك مدل خاص سكو را پيادهسازي ميكند. كد اجرايي است كه بر روي سختافزار نهايي اجرا ميشود. از روي Object Model توليد ميشود.
اسلاید 43: مدل سكو (PM) مدل سكو مجموعه مفاهيم تكنيكي، بخشهاي مختلف يك سكو، و سرويسهاي ارائه شده توسط آن سكو را نشان ميدهد.
اسلاید 44: توسعه مبتني بر MDAمعماري مدلرانه چگونه كار ميكند؟
اسلاید 45: توسعه MDA در يك نگاهمدلهاي مستقل از محاسبه (CIMs)مدلهاي خاص سكو (PSMs)مدلهاي مستقل از سكو (PIMs)كد اجرايي
اسلاید 46: گام اول: تهيه مدلهاي CIM نيازمنديهاي سيستم در مدلهاي مستقل از محاسبه مدل ميشود. اين كار ميتواند توسط خبرگان دامنه مساله انجام شود.
اسلاید 47: گام دوم: ايجاد مدلهاي PIM مدلهاي PIM با توجه به مدلهاي CIM ايجاد ميشوند. مدلهاي PIM ميتوانند از سرويسهاي فراگير نيز استفاده كنند.PIMPervasive Services ModelCallsDomain Facilities ModelCalls
اسلاید 48: گام سوم: تهيه مدل سكو معمار يك يا چند سكو را براي پيادهسازي سيستم برميگزيند. اين كار با توجه به صفات كيفيتي و مصالحه بين آنها انجام ميشود.
اسلاید 49: PIMTransformationMarked PIMPSMگام چهارم: تهيه مدلهاي PIM نشانهگذاري شده براي تبديل مدلهاي PIM به مدلهاي PSM بايد از نگاشت استفاده كنيم. يك نگاشت مشخصههايي را براي تبديل فراهم ميكند. در فرآيند نگاشت مدل سكو ماهيت نگاشت را مشخص ميكند. براي انجام نگاشت ابتدا بايد مدلهاي PIM نشانه گذاري شوند. يك نشانه تعيين ميكند يك موجوديت در PIM چگونه بايد به موجوديتي در PSM تبديل شود.
اسلاید 50: گام پنجم: تهيه مدلهاي PSM گام بعدي اين است كه PIM نشانهگذاري شده به يك PSM تبديل شود. ميتواند بصورت دستي، نيمهخودكار، يا تمام خودكار انجام شود. ورودي به اين گام PIM نشانهگذاري شده و يك نگاشت است. خروجي نيز PSM است.PIMCORBA ModelMaps toJava/EJB ModelMaps toOther Model…Maps to
اسلاید 51: گام ششم: تهيه مدلهاي PSM نشانهگذاري شده بصورت مشابه براي تبديل مدلهاي PSM به PSI ابتدا بايد PSM نشانه گذاري شود.PIMSpecificImplementationTransformationMarked PIMPSMMarked PSM
اسلاید 52: PIMCORBA ModelMaps toJava/EJB ModelMaps toOther Model…Maps toCORBA Java/EJBOther…Maps toMaps toMaps toگام هفتم: توليد كد در آخرين گام كدهاي اجرايي توليد ميشود. امكان انجام مهندسي معكوس نيز وجود دارد.
اسلاید 53: استانداردها و فرامدلها
اسلاید 54: استانداردها و فرامدلهاUML MOF CWMTimeنگاشتPIM به PIMنگاشتPIM به PSM(خاص يك سكو)نگاشتPSM به PSM
اسلاید 55: استانداردها و فرامدلهاM1 modelInstance M1M2 modelInstance M2Transformation rulesTransformation correspondencesreferencesdescribed byMOFTransformation model
اسلاید 56: چارچوب مفهومي MDASourceModelTargetModelTransformationtoolTransformationdefinitionLanguageLanguageIswritten inIs usedbyIswritten inMeta languageIs writteninIs writtenin
اسلاید 57: فرصتها و تهديدها
اسلاید 58: مزاياي معماري مدلرانه كد نويسي دستي رفتار يك مدل حذف ميشود. تمركز بر روي مدلها باعث طراحي بهتر و دقيقتر ميشود. انقلابي در افزايش سطح تجريد جداسازي قواعد كاري از محيط پيادهسازي
اسلاید 59: تهديدات فراروي معماري مدلرانه پشتيباني كامل از يكپارچگي مدلها مديريت گسترش روزافزون فنآوريهاي مختلف افزايش بلوغ ابزارهاي MDA تبديل مدلها هماهنگي بين نگاشت مدلها ابزارهايي براي آزمون مدلرانه كمپايلر مدل
اسلاید 60: اطلاعات بيشتر ...http://www.omg.org/http://www.omg.org/mda/
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.