620 likes | 921 Vues
كارگاه آموزشي معماري نرمافزار www.esoa.ir. دكتر فريدون شمس سيد شروين استادزاده. جلسه دوم. فهرست مطالب. پيچيدگي در نرمافزار آشنايي با OMG معماري مدلرانه مفاهيم و اصول بنيادين توسعه مبتني بر MDA فرصتها و تهديدها. پيچيدگي در نرمافزار.
E N D
كارگاه آموزشي معماري نرمافزارwww.esoa.ir دكتر فريدون شمس سيد شروين استادزاده جلسه دوم
فهرست مطالب • پيچيدگي در نرمافزار • آشنايي با OMG • معماري مدلرانه • مفاهيم و اصول بنيادين • توسعه مبتني بر MDA • فرصتها و تهديدها
پيچيدگي در نرمافزار چگونه ميتوان بر پيچيدگي حاكم بر نرمافزار غلبه كرد؟
يك واقعيت امروزه تمدن ما بر روي نرمافزار بنا شده است.
عوامل پيچيدگي در نرمافزار • پيچيدگی دامنه مساله • انعطافپذيري نرمافزار و عدم استاندارد بودن آن • پيچيدگي فرآيند توسعه نرمافزار • پيچيدگي توصيف رفتار سيستمهاي گسسته
يك واقعيت توسعه نرمافزار يك فرآيند پيچيده و سخت بوده، هست، و خواهد بود.
يك واقعيت اگر به كل تاريخ مهندسي نرمافزار نگاه كنيم درمييابيم كه سير تكاملي اين تاريخ در يك واقعيت خلاصه شده است: افزايش سطح تجريد Languages: Platforms: Processes: Architecture: Tools: Enablement: Assembly -> Fortran/COBOL -> Simula -> C++ -> Java Naked HW -> BIOS -> OS -> Middleware -> Domain-specific Waterfall -> Spiral -> Iterative -> Agile Procedural -> Object Oriented -> Service Oriented Early tools -> CLE -> IDE -> XDE -> CDE Individual -> Workgroup -> Organization
سطح تجريد • ما بايد سطح تجريد را افزايش دهيم، چون با افزايش سطح تجريد ميتوان ... • با سكوهاي مختلف كار كرد. • توسعه نرمافزار را سادهتر و كارآمدتر كرد. • به دنياي واقعي نزديكتر شد.
گام بعدي ... گام بعدي در افزايش سطح تجريد چيست؟
OMG(Object Management Group) OMG چيست و چه نقشي در توسعه نرمافزار دارد؟
OMG چيست؟ Alcatel AT&T BEA Borland Boeing CA Codagen DaimlerChrysler Ericsson France Telecom Fujitsu Glaxo SmithKline Hewlett Packard Hitachi Hyperion IBM IONA io Software Kabira Kennedy Carter John Deere LION Bioscience Metanology MITRE MSC.Software NASA NEC Nokia NTT DoCoMo OASIS Oracle Pfizer Rockwell SAP SAS Institute Sprint Sun Telefonica Unisys Vitria
موفقيتهاي بزرگ OMG • Common Object Request Broker Architecture (CORBA) • Unified Modeling Language (UML) • Common Warehouse Metamodel (CWM) • Meta-Object Facility (MOF) • XML Metadata Interchange (XMI)
ناهمگونيهاي صنعت نرمافزار • زبانهاي برنامهسازي • C ، C++ ، C# ، Java • VB ، Delphi ، COBOL ، ... • سيستمهاي عامل • Windows (نگارشهاي مختلف) ، Unix ، Linux ، VMS ، MacOS ، PalmOS ، ... • سيستمهاي تعبيهشده • پروتكلهاي شبكهاي و ارتباطي • Ethernet ، ATM ، IP ، SS7 ، Firewire ، USB • Bluetooth ، 802.11b ، HomeRF
ناهمگونيهاي صنعت نرمافزار (ادامه) • ناهمگوني باعث به تاخير افتادن توسعه سيستمهاي سازماني توزيعشده ميشود. • هيچ توافقي بر روي ... • سخت افزار وجود ندارد. • زبانهاي برنامهسازي وجود ندارد. • سيستمهاي عامل وجود ندارد. • پروتكلهاي شبكهاي و ارتباطي وجود ندارد. • ميتوان بر روي يك سطح بالاتر تجريد توافق كرد. • ميانافزارها
ناهمگونيهاي صنعت نرمافزار (ادامه) • امروزه ميانافزارها نيز بسيار افزايش پيدا كردند ... • CORBA • COM / DCOM / MTS • Java / EJB • XML / SOAP • C# / .Net • نميتوان هيچ يك از آنها را برتر از ديگران در نظر گرفت. • توافقي بر روي ميانافزار نيز وجود ندارد. مشكل همچنان باقي است.
ناهمگونيهاي صنعت نرمافزار (ادامه) بايد توافقي بر روي واسطها و تبادلات بين آنها وجود داشته باشد.
معماري مدلرانه • معماري مدلرانه محاسبات هزاره سوم است. • معماري مدلرانه سير تكاملي تجزيه و تحليل شيءگرا، و UML است. • معماري مدلرانه يك روش ساده و فراگير است كه استانداردهاي مورد نياز جهت ساخت، يكپارچه سازي، و نگهداري داراييهاي نرمافزاري را تعيين ميكند. • معماري مدلرانه سعي ميكند از زبانهاي مدلسازي نه تنها به عنوان زبان طراحي بلكه به عنوان يك زبان برنامهسازي نيز استفاده كند. • افزايش سطح تجريد برنامهسازي • بهبود قابليت توليد، كيفيت، و ماندگاري محصولات نرمافزاري
معماري مدلرانه (ادامه) • معماري مدلرانه يك روش نوين براي تعريف و ساخت سيستمهاي نرمافزاري است كه در آن ... • مدلسازي بر اساس UML ، MOF ، و XMI انجام ميشود. • از چرخه حيات كامل نرمافزار (تحليل، طراحي، پيادهسازي، استقرار، نگهداري، تكامل، و يكپارچهسازي) پشتيباني ميشود. • بر روي تعاملپذيري و قابليت حمل بالا تاكيد ميشود. • هزينه ابتدايي آغاز پروژه پايين است.
معماري مدلرانه (ادامه) • روشي را براي مشخصه سيستمهاي نرمافزاري معرفي ميكند كه در آن، وظايف سيستم از مشخصه پيادهسازي آن وظايف بر روي يك سكوي خاص فنآوري، جدا شده است. • اين كار با تعريف سطوح مختلفي از مدلها انجام ميشود... • ... و همزمان سازگاري و هماهنگي بين تمام سطوح مدلها حفظ ميشود.
سيستم • مفاهيم MDA در قالب سيستمها بيان ميشود. • يك سيستم ميتواند هر موجوديتي باشد: • يك برنامه • يك سيستم كامپيوتري • يك تركيب از قسمتهاي مختلف سيستمها • سيستمي از سيستمها
مدل • مدل تجريدي از يك يا چند بخش از سيستم است. • مدل به ما كمك ميكند بر روي قسمتهاي اساسي يك مساله متمركز شويم تا بهتر آن را درك كنيم. • مدل به ما كمك ميكند در مسير رسيدن به يك راهحل موثر و كارآمد حركت كنيم. • مدل معمولاً به شكل تركيبي از متن و تصوير بيان ميشود. • سنت رايج اين است كه مدلها يك پيادهسازي را ايجاد نميكنند.
توسعه مدلرانه (MDD) • پارادايمي كه در آن از روي مدل، يك خانه ساخته ميشود. • روشي براي توسعه سيستم كه در آن مدلها وظيفه هدايت و راهبري جريان درك، تحليل، طراحي، ساخت، استقرار، بهرهبرداري، نگهداشت، و تكامل را بر عهده دارند. • اين روش ميتواند بسياري از محصولات توسعه نرمافزار را مكانيزه و خودكار توليد كند.
معماري مدلرانه • استانداردي براي توسعه مدلرانه • متعلق به OMG • بر روي استاندارد MOF بنا شده
ديدگاه (viewpoint) • يك روش تكنيكي براي تجريد است. • مجموعهاي از مفاهيم معماري و قوانين سازماندهي را به خدمت ميگيرد تا بر روي مفاهيمي خاصي از سيستم تمركز كند. • در اين جا تجريد يعني فرآيند حذف جزييات انتخابي و ايجاد يك مدل ساده شده • سه ديدگاه از سيستم در معماري مدلرانه وجود دارد: • ديدگاه مستقل از محاسبه • ديدگاه مستقل از سكو • ديدگاه خاص سكو
ديدگاه مستقل از محاسبه • اين ديدگاه بر روي محيط سيستم و نيازمنديهاي آن تاكيد دارد. • در اين ديدگاه جزييات ساختارها و فرآيندهاي سيستم يا پنهان هستند و يا هنوز مشخص نشدهاند.
ديدگاه مستقل از سكو • اين ديدگاه بر روي عملكرد يك سيستم تاكيد ميكند. • در آن جزييات لازم براي پياده سازي روي يك سكو خاص مخفي شده است. • در واقع اين ديدگاه بخشي از مشخصه كامل سيستم را نشان ميدهد كه از يك سكو به سكو ديگر بدون تغيير باقي ميماند.
ديدگاه خاص سكو • اين ديدگاه، ديدگاه مستقل از سكو را به همراه جزييات پياده سازي بر روي يك سكو خاص نشان ميدهد.
ديد (View) • يك ديد (يا يك مدل ديدگاه)، نمايشي از يك سيستم بر پايه زاويه يك ديدگاه خاص است.
سكو (Platform) • مجموعهاي از فنآوريها و زيرسيستمها است. • هر سكو يك مجموعه همگن از وظايف است كه از طريق تعدادي واسط و الگوهاي خاص كاربرديميتوان آنها را به خدمت گرفت.
برنامه كاربردي (Application) • به يك وظيفهمندي در حال توسعه اشاره ميكند. • هر سيستم به شكل يك يا چند برنامه كاربردي بر روي يك يا چند سكو توصيف ميشود.
تغيير شكل (Transformation) • به فرآيند تبديل يك مدل به مدل ديگر گفته ميشود. • مدل مبدا و مدل مقصد بايد مربوط به يك سيستم باشند. • هم ميتواند بصورت دستي باشد و هم بصورت خودكار
سرويسهاي فراگير (Pervasive Services) • سرويسهايي هستند كه در يك سطح وسيعي از سكوها در دسترس هستند.
پياده سازي • يك پياده سازي يك مشخصه است كه در آن تمام اطلاعات مورد نياز براي ساخت يك سيستم و عملياتي كردن آن را در خود جاي داده است.
انواع مدلها • مدلهاي مستقل از محاسبه (CIM) • مدلهاي مستقل از سكو (PIM) • مدلهاي خاص سكو (PSM) • مدلهاي خاص پيادهسازي (PSI) • مدل سكو (PM)
مدل مستقل از محاسبه (CIM) • يك مدل مستقل از محاسبه ديدي از سيستم بر پايه ديدگاه مستقل از محاسبه است. • بر روي نيازمنديهاي سيستم تاكيد دارد. • جزييات ساختار سيستمها را نشان نميدهد. • مدل مستقل از محاسبه را گاهي مدل دامنه نيز مينامند. • نقش مهمي در ايجاد پلي بين خبرگان دامنه مساله و نيازمنديهاي آنها از يك طرف و متخصصان طراحي و پيادهسازي از طرف ديگر دارد.
مدل مستقل از سكو (PIM) • يك مدل مستقل از سكو ديدي از سيستم بر پايه ديدگاه مستقل از سكو است. • بر روي عملكرد يك سيستم تاكيد ميكند. • جزييات لازم براي پياده سازي روي يك سكو خاص مخفي شده است. • سيستم از منظر چگونگي پشتيباني از كسبوكار مدل ميشود. • مستقل از فنآوريهاي پيادهسازي است. • يك مدل مستقل از سكو درجه خاصي از استقلال را ارايه ميكند. • يكي از متداولترين روشها براي ايجاد اين مدل استفاده از يك ماشين مجازي است. • ماشين مجازي به شكل يك مجموعه از بخشها و سرويسهاي مستقل از يك سكو خاص تعريف ميشود.
مدل خاص سكو (PSM) • يك مدل خاص سكو ديدي از سيستم بر پايه ديدگاه خاص سكو است. • مدل مستقل از سكو را گسترش ميدهد. • جزييات لازم براي پياده سازي روي يك سكو خاص رانشان ميدهد. • يك PSM مشخصههاي داخل PIM را با جزييات مربوط به چگونگي استفاده سيستم بر روي يك سكو خاص تركيب ميكند. • امكان داشتن چندين مدل خاص سكو براي يك مدل مستقل از سكو وجود دارد.
مدل خاص پيادهسازي (PSI) • يك مدل خاص سكو را پيادهسازي ميكند. • كد اجرايي است كه بر روي سختافزار نهايي اجرا ميشود. • از روي Object Model توليد ميشود.
مدل سكو (PM) • مدل سكو مجموعه مفاهيم تكنيكي، بخشهاي مختلف يك سكو، و سرويسهاي ارائه شده توسط آن سكو را نشان ميدهد.
توسعه مبتني بر MDA معماري مدلرانه چگونه كار ميكند؟
كد اجرايي توسعه MDA در يك نگاه مدلهاي مستقل از محاسبه (CIMs) مدلهاي مستقل از سكو (PIMs) مدلهاي خاص سكو (PSMs)
گام اول: تهيه مدلهاي CIM • نيازمنديهاي سيستم در مدلهاي مستقل از محاسبه مدل ميشود. • اين كار ميتواند توسط خبرگان دامنه مساله انجام شود.
Pervasive Services Model PIM Calls Domain Facilities Model Calls گام دوم: ايجاد مدلهاي PIM • مدلهاي PIM با توجه به مدلهاي CIM ايجاد ميشوند. • مدلهاي PIM ميتوانند از سرويسهاي فراگير نيز استفاده كنند.
گام سوم: تهيه مدل سكو • معمار يك يا چند سكو را براي پيادهسازي سيستم برميگزيند. • اين كار با توجه به صفات كيفيتي و مصالحه بين آنها انجام ميشود.
PIM Marked PIM Transformation PSM گام چهارم: تهيه مدلهاي PIM نشانهگذاري شده • براي تبديل مدلهاي PIM به مدلهاي PSM بايد از نگاشت استفاده كنيم. • يك نگاشت مشخصههايي را براي تبديل فراهم ميكند. • در فرآيند نگاشت مدل سكو ماهيت نگاشت را مشخص ميكند. • براي انجام نگاشت ابتدا بايد مدلهاي PIM نشانه گذاري شوند. • يك نشانه تعيين ميكند يك موجوديت در PIM چگونه بايد به موجوديتي در PSM تبديل شود.
PIM Maps to Maps to Maps to CORBA Model Java/EJB Model … Other Model گام پنجم: تهيه مدلهاي PSM • گام بعدي اين است كه PIM نشانهگذاري شده به يك PSM تبديل شود. • ميتواند بصورت دستي، نيمهخودكار، يا تمام خودكار انجام شود. • ورودي به اين گام PIM نشانهگذاري شده و يك نگاشت است. • خروجي نيز PSM است.