كارگاه آموزش معماري نرمافزار
Download
Report
Transcript كارگاه آموزش معماري نرمافزار
كارگاه آموزش ي
معماري نرمافزار
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
Fujitsu
AT&T
Glaxo SmithKline LION Bioscience Pfizer
BEA
Hewlett Packard
Metanology
Rockwell
Borland
Hitachi
MITRE
SAP
Boeing
Hyperion
MSC.Software
SAS Institute
CA
IBM
NASA
Sprint
Codagen
IONA
NEC
Sun
DaimlerChrysler io Software
Nokia
Telefonica
Ericsson
Kabira
NTT DoCoMo
Unisys
France Telecom
Kennedy Carter
OASIS
Vitria
John Deere
Oracle
OMG موفقيتهاي بزرگ
Common Object Request Broker Architecture (CORBA)
Unified Modeling Language (UML)
Common Warehouse Metamodel (CWM)
Meta-Object Facility (MOF)
XML Metadata Interchange (XMI)
ناهمگونيهاي صنعت نرمافزار
زبانهاي برنامهسازي
Java ، C# ، C++ ، C
... ، COBOL ، Delphi ، VB
سيستمهاي عامل
( Windowsنگارشهاي مختلف) ، MacOS ، VMS ، Linux ، Unix ،
... ، PalmOS
سيستمهاي تعبيهشده
پروتكلهاي شبكهاي و ارتباطي
USB ، Firewire ، SS7 ، IP ، ATM ، Ethernet
HomeRF ، 802.11b ، Bluetooth
ناهمگونيهاي صنعت نرمافزار
(ادامه)
ناهمگوني باعث به تاخير افتادن توسعه سيستمهاي سازماني
توزيعشده ميشود.
هيچ توافقي بر روي ...
سخت افزار وجود ندارد.
زبانهاي برنامهسازي وجود ندارد.
سيستمهاي عامل وجود ندارد.
پروتكلهاي شبكهاي و ارتباطي وجود ندارد.
ميتوان بر روي يك سطح باالتر تجريد توافق كرد.
ميانافزارها
ناهمگونيهاي صنعت نرمافزار
(ادامه)
امروزه ميانافزارها نيز بسيار افزايش پيدا كردند ...
CORBA
COM / DCOM / MTS
Java / EJB
XML / SOAP
C# / .Net
نميتوان هيچ يك از آنها را برتر از ديگران در نظر گرفت.
توافقي بر روي ميانافزار نيز وجود ندارد .مشكل همچنان باقي
است.
ناهمگونيهاي صنعت نرمافزار
(ادامه)
بايدتوافقيبررويواسطهاوتبادالت بين
آنهاوجودداشتهباشد.
راهحل OMG
معماري مدل رانه
Model Driven Architecure (MDA)
معماري مدلرانه
معماري مدلرانه محاسبات هزاره سوم است.
معماري مدلرانه سير تكاملي تجزيه و تحليل شيءگرا ،و UMLاست.
معماري مدلرانه يك روش ساده و فراگير است كه استانداردهاي مورد
نياز جهت ساخت ،يكپارچه سازي ،و نگهداري داراييهاي نرمافزاري را
تعيين ميكند.
معماري مدلرانه سعي ميكند از زبانهاي مدلسازي نه تنها به عنوان
زبان طراحي بلكه به عنوان يك زبان برنامهسازي نيز استفاده كند.
افزايش سطح تجريد برنامهسازي
بهبود قابليت توليد ،كيفيت ،و ماندگاري محصوالت نرمافزاري
معماري مدلرانه
(ادامه)
معماري مدلرانه يك روش نوين براي تعريف و ساخت
سيستمهاي نرمافزاري است كه در آن ...
مدلسازي بر اساس ، MOF ، UMLو 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
نيازمنديهاي سيستم در مدلهاي مستقل از محاسبه مدل ميشود.
اين كار ميتواند توسط خبرگان دامنه مساله انجام شود.
گام دوم :ايجاد مدلهاي PIM
مدلهاي PIMبا توجه به مدلهاي CIMايجاد ميشوند.
مدلهاي PIMميتوانند از سرويسهاي فراگير نيز استفاده
كنند.
Pervasive
Services
Model
Domain
Facilities
Model
Calls
Calls
PIM
گام سوم :تهيه مدل سكو
معمار يك يا چند سكو را براي پيادهسازي سيستم برميگزيند.
اين كار با توجه به صفات كيفيتي و مصالحه بين آنها انجام
ميشود.
گام چهارم :تهيه مدلهاي PIMنشانهگذاري شده
براي تبديل مدلهاي PIMبه مدلهاي
PSMبايد از نگاشت استفاده كنيم.
يك نگاشت مشخصههايي را براي تبديل
فراهم ميكند.
در فرآيند نگاشت مدل سكو ماهيت نگاشت
را مشخص ميكند.
براي انجام نگاشت ابتدا بايد مدلهاي PIM
نشانه گذاري شوند.
يك نشانه تعيين ميكند يك موجوديت در
PIMچگونه بايد به موجوديتي در PSM
تبديل شود.
PIM
Marked
PIM
Transformation
PSM
گام پنجم :تهيه مدلهاي PSM
گام بعدي اين است كه PIMنشانهگذاري شده به يك PSMتبديل شود.
ميتواند بصورت دستي ،نيمهخودكار ،يا تمام خودكار انجام شود.
ورودي به اين گام PIMنشانهگذاري شده و يك نگاشت است.
خروجي نيز PSMاست.
PIM
Maps to
Other
Model
…
Maps to
Java/EJB
Model
Maps to
CORBA
Model
گام ششم :تهيه مدلهاي PSMنشانهگذاري شده
بصورت مشابه براي تبديل مدلهاي
PSMبه PSIابتدا بايد PSMنشانه
گذاري شود.
PIM
Marked
PIM
Transformation
PSM
Marked
PSM
Specific
Implementation
توليد كد:گام هفتم
.در آخرين گام كدهاي اجرايي توليد ميشود
PIM.امكان انجام مهندسي معكوس نيز وجود دارد
Maps to
CORBA
Model
Maps to
CORBA
Maps to
Maps to
Java/EJB
Model
…
Maps to
Java/EJB
Other
Model
Maps to
…
Other
استانداردها و فرامدلها
استانداردها و فرامدلها
نگاشت
PIMبه PIM
نگاشت
PSMبه PSM
UML MOF CWM
Time
نگاشت
PIMبه PSM
(خاص يك سكو)
استانداردها و فرامدلها
MOF
references
described
by
Transformation
model
M1 model
Transformation
rules
M2 model
Instance
M1
Transformation
correspondences
Instance
M2
MDA چارچوب مفهومي
Meta language
Is written
in
Is written
in
Transformation
definition
Language
Is
written in
Source
Model
Language
Is used
by
Transformation
tool
Is
written in
Target
Model
فرصتها و تهديدها
مزاياي معماري مدلرانه
كد نويسي دستي رفتار يك مدل حذف ميشود.
تمركز بر روي مدلها باعث طراحي بهتر و دقيقتر ميشود.
انقالبي در افزايش سطح تجريد
جداسازي قواعد كاري از محيط پيادهسازي
تهديدات فراروي معماري مدلرانه
پشتيباني كامل از يكپارچگي مدلها
مديريت گسترش روزافزون فنآوريهاي مختلف
افزايش بلوغ ابزارهاي MDA
تبديل مدلها
هماهنگي بين نگاشت مدلها
ابزارهايي براي آزمون مدلرانه
كمپايلر مدل
... اطالعات بيشتر
http://www.omg.org/
http://www.omg.org/mda/