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

Slides:



Advertisements
Similar presentations
The role of OCL in the Model Driven Architecture Jos Warmer Klasse Objecten
Advertisements

1Model Driven Architecture – 3. März 2008 – Siegfried Nolte 1.UML – What is it and what is it good for ? 2.MDA – What is it and what is it good for ? 3.MDA.
1 Model-driven development of SOA with Web services – using QVT technology Master thesis by Berge Stillingen Department of Informatics, University of Oslo.
Model Driven Architecture: An Introduction Richard Mark Soley, Ph.D. Chairman and CEO.
OMG’s Model Driven Architecture Davide Buscaldi D.I.S.I.
OMG‘s MDA: An Overview copyright © 2001, MATHEMA AG OMG‘s MDA: An Overview OMG‘s MDA: An Overview Markus Völter
MDA > Model Driven Architecture > Orçun Dayıbaş > December, 2006 > METU, Ankara.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
Brandenburgische Technische Universität Cottbus Brandenburg Technical University Cottbus Chair of Computer Networks and Communication Systems BTU Cottbus,
7 July 2003 MDA presentation Dennis Wagelaar 1 Model-Driven Architecture The current state of affairs.
Modeling All the Way Up… Modeling All the Way Down.
CWM: A Model-based Architecture For Data Warehouse Interchange
MDA Model Driven Architecture Eduardo Scoz. Overview Different approach for SD: Models Different approach for SD: Models Automated tools can generate.
OMG Meeting, Helsinki Model Driven Architecture An Alternative Implementation Approach Werner Froidevaux
Andrew SuttonKent State University1 Software Modeling Andrew Sutton Department of Computer Science Kent State University.
HL7 UK 2003 (c) Abies Ltd Modelling Clinical Information Using UML Tim Benson Abies Ltd
Leveraging Model Driven Architecture ® for Model Driven Systems Engineering MARC 2004 Richard Mark Soley, Ph.D. Chairman and CEO.
OMG Update: SysML and Systems Engineering Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc. Photo courtesy of NASA Goddard Photo.
Model Driven Architecture: The Evolution of Object- Oriented Systems? Richard Mark Soley, Ph.D. Chairman and CEO.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
Väliohjelmistot - Lea Kutvonen 1 MDA Model driven architecture.
Enterprise Architecture is Evolution
Model Driven Architecture: Four Years On Richard Mark Soley, Ph.D. Chairman and CEO.
Better, Faster, Cheaper ACH: An MDA Approach Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc.
Software Quality Metrics Lower Costs Dr. Richard Mark Soley Chairman and CEO Object Management Group, Inc. 1.
Model Transformations
Model-Driven Architecture & OptimalJ Roland T. Craddolph.
Metadata Tools and Methods Chris Nelson Metanet Conference 2 April 2001.
Integrating the Next Best Thing Richard M. Soley Chairman & CEO, OMG.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Agenda 23 April, 2007 T Service-Oriented Architecture and Software Engineering 1 Service Oriented and Model Driven Architectures Pankaj Saharan.
Reliable Distributed Systems Transactions. The most important reliability technology for client-server systems Last time we saw the basic idea Now start.
OMG, Model Driven Architecture and SOA: Modeling All the Way Up Richard Mark Soley, Ph.D. Chairman and CEO.
October 15, 2003 Copyrights  StateSoft Inc., This information is protected by one or more patent or patent pending. 1 Janusz Dobrowolski StateSoft.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
3 April SOA: Services Oriented Architecture MDA: Model Driven Architecture.
Introduction to MDA (Model Driven Architecture) CYT.
Model Driven Architecture: What Next After the Transformation? Richard Mark Soley, Ph.D. Chairman and CEO.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
Who Integrates the Integrators? Richard Mark Soley, Ph.D. Chairman and CEO.
XASTRO Metamodel. CCSDS SAWG2 Presentation Outline XASTRO-1 Metamodel XASTRO-2 Metamodel Alignment with Model Driven Architecture.
MDA – Model Driven Architecture Olivier Riboux. Overview What is MDA? The Challenges MDA addresses Developing in the MDA Benefits / Conclusion Case Study:
Model Driven Architecture Model Driven Development Notes.
Model Driven Architecture: An Introduction. Heterogeneity is Permanent Programming languages –~3 million COBOL programmers –~1.6 million VB programmers.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
Model Driven Development (MDD) Devon M. Simmonds Computer Science Department UNCW simmondsd[at]uncw.edu _______________________________________________________.
Extensible Modeling and Simulation Framework Extensible 3D Graphics (X3D) Don Brutzman MOVES Institute, Naval Postgraduate School Andreas Tolk VMASC, Old.
4 th Workshop for TAO and CIAO July 16, 2004 MOF-Compliant Modeling of Middleware Jeff Parsons & Matt Emerson ISIS Vanderbilt University Nashville, TN.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Performance Analysis University College London James Skene –
Model Driven Architecture: Making Your Software Investment Last 20 Years Richard Mark Soley, Ph.D. Chairman and CEO.
Itntroduction to UML, page 1 Introduction to UML.
Model Driven Architecture MDA SE-548 Lale Doğan
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
OMG’s Model Driven Architecture
Model Driven Architecture: Three Years On Richard Mark Soley, Ph. D
Web-Sim 2003 and Beyond: Working Together Richard Mark Soley, Ph. D
Web Application Modeling
Model Driven Architecture: An Introduction Richard Mark Soley, Ph. D
Model Driven Development with the Emerging UML 2.0
Modelling Clinical Information Using UML
Inventory of Distributed Computing Concepts
Evaluating Compuware OptimalJ as an MDA tool
Modeling All the Way Up… Modeling All the Way Down
The Tropos visual modeling language A meta-model.
UML profiles.
Constructing MDA-based Application Using Rational XDE for .NET
Model Driven Software Development
The CWM Experience Implementing a UML-Based Data Warehouse Metamodel
Presentation 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 چيست؟ 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 نمي‌توان هيچ يك از آنها را برتر از ديگران در نظر گرفت. توافقي بر روي ميان‌افزار نيز وجود ندارد. مشكل همچنان باقي است.

ناهمگوني‌هاي صنعت نرم‌افزار (ادامه) بايد توافقي بر روي واسطها و تبادلات بين آنها وجود داشته باشد.

راه‌حل OMG

معماري مدل رانه Model Driven Architecure (MDA)

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

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

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

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

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

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

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

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

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

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

چارچوب مفهومي 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

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

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

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

اطلاعات بيشتر ... http://www.omg.org/ http://www.omg.org/mda/