Presentation is loading. Please wait.

Presentation is loading. Please wait.

كارگاه آموزشي معماري نرم‌افزار

Similar presentations


Presentation on theme: "كارگاه آموزشي معماري نرم‌افزار"— Presentation transcript:

1 كارگاه آموزشي معماري نرم‌افزار www.esoa.ir
جلسه دوم دكتر فريدون شمس سيد شروين استادزاده

2 فهرست مطالب پيچيدگي در نرم‌افزار آشنايي با OMG معماري مدل‌رانه
مفاهيم و اصول بنيادين توسعه مبتني بر MDA فرصت‌ها و تهديدها

3 چگونه مي‌توان بر پيچيدگي حاكم بر نرم‌افزار غلبه كرد؟
پيچيدگي در نرم‌افزار چگونه مي‌توان بر پيچيدگي حاكم بر نرم‌افزار غلبه كرد؟

4 امروزه تمدن ما بر روي نرم‌افزار بنا شده است.
يك واقعيت امروزه تمدن ما بر روي نرم‌افزار بنا شده است.

5 مشكل اول نرم‌افزار: حل پيچيدگي

6 عوامل پيچيدگي در نرم‌افزار
پيچيدگی دامنه مساله انعطاف‌پذيري نرم‌افزار و عدم استاندارد بودن آن پيچيدگي فرآيند توسعه نرم‌افزار پيچيدگي توصيف رفتار سيستم‌هاي گسسته

7 توسعه نرم‌افزار يك فرآيند پيچيده و سخت
يك واقعيت توسعه نرم‌افزار يك فرآيند پيچيده و سخت بوده، هست، و خواهد بود.

8 افزايش سطح تجريد يك واقعيت اگر به كل تاريخ مهندسي نرم‌افزار نگاه كنيم
درمي‌يابيم كه سير تكاملي اين تاريخ در يك واقعيت خلاصه شده است: افزايش سطح تجريد 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

9 سطح تجريد ما بايد سطح تجريد را افزايش دهيم، چون با افزايش سطح تجريد مي‌توان ... با سكوهاي مختلف كار كرد. توسعه نرم‌افزار را ساده‌تر و كارآمدتر كرد. به دنياي واقعي نزديك‌تر شد.

10 گام بعدي در افزايش سطح تجريد چيست؟
گام بعدي ... گام بعدي در افزايش سطح تجريد چيست؟

11 OMG (Object Management Group)
چه نقشي در توسعه نرم‌افزار دارد؟

12 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

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# ، Java VB ، Delphi ، COBOL ، ... سيستم‌هاي عامل Windows (نگارشهاي مختلف) ، Unix ، Linux ، VMS ، MacOS ، PalmOS ، ... سيستم‌هاي تعبيه‌شده پروتكل‌هاي شبكه‌اي و ارتباطي Ethernet ، ATM ، IP ، SS7 ، Firewire ، USB Bluetooth ، b ، 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)
مدلهاي مستقل از سكو (PIMs) مدلهاي خاص سكو (PSMs) كد اجرايي

46 گام اول: تهيه مدل‌هاي CIM
نيازمنديهاي سيستم در مدل‌هاي مستقل از محاسبه مدل مي‌شود. اين كار مي‌تواند توسط خبرگان دامنه مساله انجام شود.

47 گام دوم: ايجاد مدل‌هاي PIM
مدل‌هاي PIM با توجه به مدل‌هاي CIM ايجاد مي‌شوند. مدل‌هاي PIM مي‌توانند از سرويس‌هاي فراگير نيز استفاده كنند. PIM Pervasive Services Model Calls Domain Facilities Model

48 گام سوم: تهيه مدل سكو معمار يك يا چند سكو را براي پياده‌سازي سيستم برمي‌گزيند. اين كار با توجه به صفات كيفيتي و مصالحه بين آنها انجام مي‌شود.

49 گام چهارم: تهيه مدل‌هاي PIM نشانه‌گذاري شده
براي تبديل مدل‌هاي PIM به مدل‌هاي PSM بايد از نگاشت استفاده كنيم. يك نگاشت مشخصه‌هايي را براي تبديل فراهم مي‌كند. در فرآيند نگاشت مدل سكو ماهيت نگاشت را مشخص مي‌كند. براي انجام نگاشت ابتدا بايد مدل‌هاي PIM نشانه گذاري شوند. يك نشانه تعيين مي‌كند يك موجوديت در PIM چگونه بايد به موجوديتي در PSM تبديل شود. PIM Transformation Marked PSM

50 گام پنجم: تهيه مدل‌هاي PSM
گام بعدي اين است كه PIM نشانه‌گذاري شده به يك PSM تبديل شود. مي‌تواند بصورت دستي، نيمه‌خودكار، يا تمام خودكار انجام شود. ورودي به اين گام PIM نشانه‌گذاري شده و يك نگاشت است. خروجي نيز PSM است. PIM CORBA Model Maps to Java/EJB Model Other Model

51 گام ششم: تهيه مدل‌هاي PSM نشانه‌گذاري شده
بصورت مشابه براي تبديل مدل‌هاي PSM به PSI ابتدا بايد PSM نشانه گذاري شود. PIM Specific Implementation Transformation Marked PSM

52 گام هفتم: توليد كد … در آخرين گام كدهاي اجرايي توليد مي‌شود.
امكان انجام مهندسي معكوس نيز وجود دارد. PIM CORBA Model Maps to Java/EJB Model Other Model CORBA Java/EJB Other

53 استانداردها و فرامدل‌ها

54 استانداردها و فرامدل‌ها
نگاشت PIM به PIM نگاشت PSM به PSM UML MOF CWM Time نگاشت PIM به PSM (خاص يك سكو)

55 استانداردها و فرامدل‌ها
MOF references described by Transformation model M1 model M2 model Transformation rules Instance M1 Transformation correspondences Instance M2

56 چارچوب مفهومي MDA Source Target Model Model Meta language Is written
in Is written in Language Language Transformation definition Is written in Is written in Is used by Source Model Transformation tool Target Model

57 فرصت‌ها و تهديدها

58 مزاياي معماري مدل‌رانه
كد نويسي دستي رفتار يك مدل حذف مي‌شود. تمركز بر روي مدل‌ها باعث طراحي بهتر و دقيقتر مي‌شود. انقلابي در افزايش سطح تجريد جداسازي قواعد كاري از محيط پياده‌سازي

59 تهديدات فراروي معماري مدل‌رانه
پشتيباني كامل از يكپارچگي مدل‌ها مديريت گسترش روزافزون فن‌آوريهاي مختلف افزايش بلوغ ابزارهاي MDA تبديل مدل‌ها هماهنگي بين نگاشت مدل‌ها ابزارهايي براي آزمون مدل‌رانه كمپايلر مدل

60 اطلاعات بيشتر ...


Download ppt "كارگاه آموزشي معماري نرم‌افزار"

Similar presentations


Ads by Google