ادامه راه وبلاگ UML

با تشکر از کلیه بازدیدکنندگان و دوستان و همکارانی که با ارائه نظرهای خود دراین سال ها همیشه مشوق بنده و وبلاگ UML بوده اند، تعداد زیادی از بازدید کنندگان تقاضا کرده بودند که وبلاگ به فعالیت خود ادامه بدهد و منابع و مطالب جدیدتری را منتشر کند و در تعامل مناسبتری با کاربران قرار گیرد. ولی در طی سال های گذشته و از سال 1384 که بنده نوشتن در خصوص تجزیه و تحلیل سیستم ها و بعدها در سال 1386 تحقیق و کار در خصوص مدلسازی فرآیندها با استفاده از BPMN را شروع کردم با مشکلات زیادی در حفظ و بروزرسانی وبلاگ و وبسایت پشتیبان آن www.sysadivser.com روبرو بوده ام:
در ابتدا به خاطر امکانات محدود وبلاگ بلاگفا مجبور به راه اندازی سایتی بر روی هاستینگ شدم، در مرحله بعد با تحریم های آمریکا روبرو شدیم و سایت بنده نیز با کلیه اطلاعات و زحماتی که کشیده بودیم در یک شب از بین رفت. نسخه پشتیبان سایت را در قالب یک وب هاست داخلی راه اندازی کردیم. وب هاست ها در آن زمان خدمات خوبی ارئه نمی دادند و در نهایت تصمیم گرفتیم که به وردپرس دات کام کوچ کنیم. در وردپرس اوضاع خوب بود و سایت www.sysadviser.com که قطعا شما دوستان تا کنون با آن آشنا شده اید محبوبیت خوبی پیدا کرد و کلیه خدمات و مطالب وبلاگ UML به این وبلاگ منتقل شد ولی با مشکل فیلترینگ روبرو شدیم. به طوریکه در ابتدا عکس ها و فایلها و بعدها کل سایت فیلتر شد. 

جدال با مشکلات پشتیبانی و هاستینگ هنوز نیز وجود دارد و به خاطر عدم پشتوانه شرکتی و مالی این وبلاگ در دوره های مختلف تأخیرهایی در بروزرسانی مطالب و پاسخ گویی به مشکلات شما دوستان ایجاد شده است.

ولی تشویق های مکرر خوانندگان و همچنین تقاضای آنها برای ادامه ارائه مطالب بنده را برآن داشت که ضمن بروزرسانی بهتر این وبلاگ، سایتی تخصصی و یک انجمن گفتگوی تخصصی در حوزه مدل سازی فرآیندهای کسب و کار با استفاده از BPMN نیز راه اندازی شود. در فضای انجمن گفتگو (اتاق گفتگو) فرصت بیشتری برای تعامل بهتر با جامعه نرم افزاری و تحلیلی پیش خواهد آمد و همگان در ارائه پرسش و پاسخ مشارکت خواهند کرد. 

لذا از کلیه بازدیدکنندگان وبلاگ www.UML.blogfa.com که علاقه به کسب دانش و یا به اشتراک گذاری دانش خود در حوزه تحلیل سیستم ها، UML، و مدلسازی فرآیندها با استفاده از BPMN دارند، تقاضا دارد در این انجمن عضو شوند.

www.BPMN.ir

روابط بین کلاسها

اشیاء برای اینکه کاری انجام بدهند نیاز دارند با هم کار کنند پس آنها نیاز به روشی دارند که با هم ارتباط برقرار کنند. وقتی که یک مشتری بلیط های را سفارش می دهد، مشتری باید یک سفارش ایجاد کند و بلیط مورد نظرش را به آن سفارش اضافه کند. اشیاء نرم افزاری که نماینده مشتری، سفارش، بلیط هستند نیاز دارند تا رابطه بین اشیاء دنیا واقعی را عینا تکرار کنند.

ادامه نوشته

Bridge Design Pattern

ِِDefinition

Decouple an abstraction from its implementation so that the two can vary independently.

ادامه نوشته

BPMN قسمت اول

یا Business process Management Notation ابزار و تواناساز اصلی در تکنولوژی مدیریت فرآیندهای کسب و کار (BPM) می باشد. در واقع می توان گفت مزیت اصلی استفاده از تکنولوژی BPM وجود زبان استانداردی به نام BPMN می باشد برای مدلسازی فرآیندها. ویژگی اصلی BPMN قابلیت تبدیل آن به زبانهایی است که قابل درک توسط سیستمهای نرم افزاری می باشد.

این آموزش تنها قابل استفاده توسط اعضاء گروه مدیریت فرآیند کسب و کار می باشد. جهت استفاده از این فایل شما احتیاج به نرم افزار Microsoft PowerPoint Viewer خواهید داشت.

ادامه نوشته

Design Patterns For Class Diagrams

Design patterns are recurring solutions to software design problems you find again and again in real-world application development. Patterns are about design and interaction of objects, as well as providing a communication platform concerning elegant, reusable solutions to commonly encountered programming challenges.

The Gang of Four (GoF) patterns are generally considered the foundation for all other patterns. They are categorized in three groups: Creational, Structural, and Behavioral. Here you will find information on these important patterns.

ادامه نوشته

engineering, software - applied object oriented analysis and design using the uml

با توجه به استقبال جالبي كه از فايلهاي Case Study موجود روي وبلاگ بعمل آمد، قصد دارم مثالها و كتابهاي ديگري رو بصورت فايل در اختيار شما دوستان عزيز قرار بدم.

 

كتاب UML Applied  يكي از بهترين كتابها در زمينه آموزش UML بصورت كاربردي است . شما در اين كتاب با مفاهيم RUP يا Rational Unified Process آشنا شده و ياد مي گيريد در فازهاي مختلف ايجاد يك نرم افزار چگونه از انواع مختلف نمودارهاي UML استفاده مي شود.

ادامه نوشته

UML 2.0

شايد براي شما هم اين سؤال پيش آمده باشد كه چه تغيير مهمي در UML رخ داده است كه پس از UML 1.5، UML 2.0 عرضه شد؟ آيا اضافه شدن دياگرام‌هاي جديد (مثل Timing Diagram) يا بهبود دياگرام‌هاي موجود (مانند افزودن امكانات بيشتر به Sequence Diagram ) موجب اين ارتقاء قابل توجه شده است؟ حقيقت اين است كه آنچه كه موجب اين ارتقاء‌ نسخه قابل توجه از 1 به 2 شده است، فراتر از اين جزئيات است.
ادامه نوشته

دوره آموزشي آشنایی با BPMN

BPMN یا Business Process Management Notation اصلی ترین ابزار و استانداردی است که در تکنولوژی BPM در اختیار شما گذاشته شده است. لازم بذکر است که طبق اعلاميه رسمي OMG ، استاندارد BPMN بعنوان يکي از نمودارهاي اصلي در نگارش بعدي UML معرفي خواهد شد.

ادامه نوشته

نمودار Use Case را در کجا استفاده کنیم ؟

از نمودارهاي Use Case مي توانيد به سه منظور استفاده کنيد :

  • براي نشان دادن امکانات (نيازمنديها) : جهت بيان نيازمنديهاي يک سيستم اغلب از نمودارهاي Use Case استفاده مي شود. اين امر بيشتر به اين خاطر است که هم تحليلگر نرم افزار و هم مشتري به درک واحدي از امکاناتي که يک سيستم در نهايت خواهد داشت ، برسند.
  • برقراري ارتباط با کاربران نرم افزار : به دليل سادگي درک نمودارهاي Use Case ، از آنها جهت برقراري ارتباط با کاربران نهايي سيستم استفاده مي شود.
  • جهت تست سيستم : سناريوهاي رسم شده براي يک سيستم مي توانند جهت تست سيستم بکار گرفته شوند.

سایت آموزشی مقدمات UML2

جهت آشنایی مقدماتی با مفاهیم UML حتما به اینجا سر بزنید. در این سایت آموزشی , می توانید با انواع نمودارها و مفاهیم UML همراه با مثال آشنا شوید. یکی از مشخصه های بارز این سایت بحث کاملی است که در مورد تفاوتهای UML1 و UML2 ارائه کرده است. همچنین  مقاله ای بسیار جالب در مورد مدلسازی کسب و کار(Business Modeling) در اینجا مطالعه کنید.

کیت آموزشی Rational Rose

آموزش Rational Rose همراه با مثال. شما در این کیت آموزشی باید با مفاهیم UML قبلا آشنا باشید. این کیت توسط خود شرکت Rational تهیه شده است.

ادامه نوشته

معرفي چند سايت

چند سايت بسيار مفيد آموزشي UML :

  • آموزش UML تهيه شده توسط شركت Sparx System ، اين شركت توليد كننده نرم افزار Enterprise Architecture  مي باشد. شما مي توانيد اين نرم افزار را بصورت رايگان دانلود كنيد. قابل استفاده براي 30 روز !    اين نرم افزار در نوع خود بي نظير بوده و قابليتهاي بسيار زيادي در توليد كد به انواع زبانهاي برنامه نويسي دارد.
  • يك مقاله بسيار جالب از Randy Miller در سايت بورلند. اين مقاله بصورت خلاصه و كاربردي شما را با انواع نمودارهاي UML آشنا مي كند. اين مقاله شامل توضيح نمودارهاي زير بصورت كاربردي مي باشد :
    • Use case diagrams
    • Class diagrams
    • Object diagrams
    • Sequence diagrams
    • Collaboration diagrams
    • Statechart diagrams
    • Activity diagrams
    • Component diagrams
    • Deployment diagrams

جهت دسترسي به اين مقاله اينجا را كليك كنيد.

روشهای پیاده سازی نرم افزار

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

 

موضوع اين وبلاگ UML مي باشد و من هم قصد داشتم بيشتر درمورد UML بنويسم. اما به نظر مي رسد كه تكنيكهاي مدلسازي بدون توصيف فرآيندي كه از اين تكنيكها استفاده خواهد كرد معنايي ندارد. روشي كه شما از UML استفاده خواهيد كرد به مقدار زيادي به فرآيندي بستگي دارد كه شما جهت پياده سازي نرم افزار خود استفاده مي كنيد.

 

بنابراين بهتر است ابتدا به فرآيندها و روشهاي پياده سازي نرم افزار بپردازيم. ولي بياد داشته باشيد كه ما در اين وبلاگ به جزئيات روشهاي پياده سازي نرم افزار نخواهيم پرداخت. سعي ما براين است در مورد هر كدام از روشهاي مطرح شده يك ديد كلي را مطرح و منابع كافي جهت مطالعات بيشتر را معرفي كنيم.

 

اغلب اوقات UML ، در رابطه با RUP يا Rational Unified Process مطرح مي شود. RUP در واقع يك فرآيند يا به عبارت ديگر يك چارچوب فرآيند توسعه نرم افزار مي باشد كه از UML استفاده مي كند. ولي بياد داشته باشيد كه مي توان UML را در روشهاي مختلف توسعه نرم افزار استفاده كرد و RUP تنها يكي از اين روشها مي باشد.

 

ساختار نمودارهای UML

شما می توانید نحوه گروهبندی نمودارهای UML را در اين شکل مشاهده کنید!

ادامه نوشته

نمودارهای UML

UML2 داراي 13 نمودار رسمي مي باشد. در جدول زير مي توانيد انواع اين نمودارها را همراه با نسخه اي از UML كه ارائه شده اند را ببينيد. علي رقم اينكه هر كدام از اين نمودارها بصورت مجزا قواعد و نمادهاي مخصوص به خود را دارند ولي در اصل نمودارهاي UML قابليت انعطاف زيادي داشته و مي توان از انواع نمادها و نمودارها در نمودارهاي ديگر استفاده كرد. استاندارد UML بيان مي كندكه از عناصر مخصوص به يك نمودار تنها مي توان در آن نوع نمودار خاص استفاده كرد ولي اين يك قانون كلي نيست.

 

نمودار

هدف نمودار

نسخه

Activity

نمايش نحوه رفتار و رويه اجراي يك كار

UML 1

Class

نمايش كلاس ، مشخصات كلاس و روابط بين كلاسها

UML 1

Communication

تراكنشهاي بين آبجكتها را نمايش مي دهد و تأكيد آن بر ارتباط بين اشياء مي باشد

UML 1

Component

ساختار و نحوه ارتباط بين مؤلفه ها

UML 1

Composite structure

تجزيه ساختاري يك كلاس در حال اجرا

New to UML 2

Deployment

نحوه استقرار فيزيكي سيستم

UML 1

Interaction overview

تركيب نمودار فعاليت و نمودار توالي

New to UML 2

Object

مثالي براي نحوه پيكربندي نمونه ها

Unofficially in UML 1

Package

ساختار سلسله مراتبي نحوه  كامپايل نرم افزار

Unofficially in UML 1

Sequence

تعامل بين اشياء ، تأكيد اين نمودار بر توالي انجام كارها است

In UML 1

State machine

چگونه رويدادها يك شيء را در طول دوره عمرش تغيير مي دهند

In UML 1

Timing

تعامل بين اشياء ، تأكيد اين نمودار بر زمان مي باشد

New to UML 2

Use case

نمايش نحوه تعامل كاربران با سيستم

In UML 1

 

در واقع UML داراي مجموعه اي از نمودارها مي باشد و استانداردي را تهيه نموده است كه تحليل گر را قادر مي سازد تا طرحي را ايجاد كند كه قابل درك براي مشتري ، برنامه نويس و همه افراد درگير فرآيند توسعه سيستم باشد. هر كدام از نمودارهاي UML در زمان خود و براي شخص مورد نظر خود بيان كننده يك ديد از سيستم مي باشند.

انواع نمودارهای موجود در UML

لیست کامل نمودارهای UML به همراه توضيحي ضمني در داخل اين نمودارها و همچنين به تفكيك ورژن UML .

اين نمودارها از كتاب زير اقتباس شده اند :

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition

By Martin Fowler

Publisher:Addison Wesley

Pub Date: September 15, 2003

ادامه نوشته

از كجا شروع كنيم ؟

بعضي اصطلاحات مورد استفاده و معادل لاتين آنها :

 

نمودار كلاس (class diagram)

نمودار شيء

نمودار مورد كاربرد (use case diagram)

نمودار حالت (state diagram)

نمودار توالي (sequence diagram)

نمودار فعاليت (activity diagram)

نمودار همكاري (collaboration diagram)

نمودار جزء (component diagram)

نمودار استقرار (deployment diagram)

بسته ها (packages)

كليشه ها (stereotypes)

يادداشتها (notes)

UML

پس از آشنايي با مفاهيم شيء گرايي، در اينجا زبان مدلسازي UML معرفي و خواهيم ديد چگونه اين زبان مفاهيم شيء گرايي را پشتيباني مي كند.

جهت آشنايي با تاريخچه پيدايش uml اينجا را كليك كنيد.

 

UML شامل تعدادي عنصر گرافيكي است كه از تركيب آنها نمودرارهاي UML شكل مي گيرند . هدف استفاده از نمودارهاي مختلف در UML ، ارائه ديدگاههاي گوناگون از سيستم است. همانطور كه مهندسين عمران جهت ساختن يك ساختمان پلانهاي مختلفي از ساختمان تهيه مي كنند ، ما با استفاده از نمودارهاي UML نماهاي مختلفي از نرم افزار مورد نظر را تهيه مي كنيم.

 

نكته اي كه بايد حتما به آن توجه كنيد اين است كه : مدل UML آنچه كه يك سيستم بايد انجام دهد را توضيح مي دهد، ولي چيزي درباره نحوه پياده سازي سيستم نمي گويد.

 

 

توجه : با توجه به رشد نرم افزارهاي پشتيباني كننده UML امروزه با استفاده از نرم افزارهايي مانند Visio ، Enterprise Architecture و rational rose  شما مي توانيد بعد از كشيدن نمودارهاي UML مستقيما نمودارهاي خود را به بانك اطلاعاتي و  كد تبديل كنيد (البته اين نرم افزارها ساختار كد شما را برايتان توليد مي كنند!). اين نرم افزارها همچنين كد برنامه شما را گرفته و نمودارهاي UML برنامه را توليد مي كنند.

ارسال پيام يا  Message Sending

در يك سيستم اشياء مختلف از طريق ارسال پيام با يكديگر كار مي كنند. فكر مي كنم يك تلويزيون و يك دستگاه كنترل از راه دور مثالي خوبي براي بيان اين مفهوم باشد. در واقع دستگاه كنترل پيامي  را به دستگاه تلويزيون مي فرستد مبني بر اينكه "خودت را روشن كن" . شيء تلوزيون اين پيام را دريفات مي كند و خودش مي داند كه چگونه بايد روشن شود.

تناظر يا Association

تناظر نشان مي دهد كه اشياء و يا كلاسها در بعضي حالات با هم ارتباط دارند. تناظر يك ارتباط ساختاري بين دو شيء است.

به طور مثال "روشن كردن" يك ارتباط بين شما و تلزيزيون است  ،اين تناظر يك طرفه است (هميشه شما تلويزيون را روشن مي كنيد) . ولي بعضي تناظرها دوطرفه هستند ، مانند تناظر "ازدواج كردن با".

در ضمن فراموش نكنيد كه امكان دارد دو شيء تناظرهاي مختلفي با هم داشته باشند! حتما خودتان يك مثال براي اين مورد پيدا كنيد.

يكي از تناظرهاي مهم كه در تحليل سيستم وجود دارد تناظر چندتايي يا Multiplicity مي باشد : در واقع چند تايي تعداد اشياي مرتبط از يك كلاس را با اشياء كلاس ديگر بيان مي كند. مثلا در يك دانشگاه يك درس تنها توسط يك استاد تدريس مي شود(تناظر يك به يك) و يا يك درس توسط چند استاد تدريس مي شود (يك تناظر يك به چند).

 

لازم به ذكر است كه نمودارها قديمي Database Diagram نيز از تناظر يا رابطه بين بانكها پشتيباني مي كردند. ولي نمودارهاي كلاس كه يكي از نمودارهاي اصلي بحث شيء گرايي مي باشد ، علاوه بر امكانات نمودارهاي قديمي ERD امكانات گسترده تري را در تمامي زمينه ها به تحليگر مي دهد.

تجمع ، تركيب ، تناظر يك به چند ، تناظر دو به يك و .... از جمله تناظرهايي هستند كه در بحث شيء گرايي وجود دارند.

پنهان سازي يا Encapsulation

مفهوم پنهان سازي يكي از مفاهيم اصلي و يكي از مزيتهاي برجسته روشهاي تحليل سيستم شيء گرا مي باشد.

عمل پنهان سازي به اين معني است كه هر شيء به طور مستقل داراي داده ها و فرآيندهاي مورد نياز خود است و بخشي از اين داده ها و فرآيندها ممكن است از ديد ساير اشياء مخفي بماند. در نتيجه شيء ماهيتي تقريبا مستقل از اصل و محيط اطرفا خود پيدا مي كند. در نتيجه پنهان سازي اين امكان را مي دهد كه اگر يكي از اشياء درست كار نكند و مهندس نرم افزار مجبور به تغيير اين شيء است ، نيازي به تغيير اشياء ديگر نيست.

درواقع يك شيء آنچه را كه انجام مي دهد از ساير اشياء و جهان واقعي دور نگه مي دارد. براي روشن شدن مطلب شما يك دستگاه تلويزيون را در نظر بگيريد ، عمليات پيچيده طراحي شده در داخل مدارها و لامپ دستگاه تلويزيون از ديد ما پنهان شده است !

در مثال بالا ، دستگاه تلويزيون مورد نظر ما احتياج به قسمتهايي دارد تا انسانها بتوانند از طريق آن دستوراتي از قبيل روشن شو ، خاموش شو و ... را به دستگاه بدهند ، به مجموعه عملياتي كه يك شيء در اختيار اشياء ديگر مي گذارد تا با آن رابطه برقرار كنند واسط مي گويند.

چندشکلی یا Polymorphism

به طور كلي مي توان گفت كه چند شكلي به معناي يك چيز بودن و چند شكل داشتن است.

به طور مثال در مورد "بازكردن" ! شما مي توانيد در را باز كنيد ، پنجره را باز كنيد ، يا يك حساب در بانك باز كنيد. در مدل شيء گرا كلاسهاي متفاوتي خواهيم داشت كه همگي متدي به نام "بازكردن" دارند، ولي هر كلاس خودش مي داند كه بايد چگونه عمليات "بازكردن" را انجام دهد.

چند شكلي به مدل سازان اين امكان را مي دهد تا با مشتريان با زبان و اصطلاحات خودشان صحبت كنند.

 

تاريخچه UML

مفاهيم شيء گرا مدت نسبتا زيادي است كه شناخته شده و به كار مي روند. تاريخه شيء گرايي به دهه 60 ميلادي بر مي گردد، زماني كه اولين زبان برنامه نويسي شيء گرا به نام Simula ابداع گرديد. به تدريج اين روش برنامه نويسي متداول گشت و در دهه زبان Smaltak موجب گسترش بيشتر اين نوع برنامه نويسي و جديد شد.

تاقبل از دهه ۹۰ افرادي از قبيل بوچ ، يوردان ، رامبا ، كد ، جانسن ، ملو ، مارتين ، اورل ، هندرسون و ... ديدگاههاي مختلف و راه حلهاي مختلفي را در اين خصوص ارائه كردند. در اوايل دهه ۹۰ ميلادي و در ادامه اين مباحث به نقاط مشترك خوبي نزديك شدند. در اين دهه روشهاي بوچ و رامبا متداولتر شدند و در نهايت در سال ۱۹۹۵ ميلادي بوچ و رامبا شروع به تركيب روشهاي خود نمودند و UML يا زبان مدل سازي يكپارچه (Unfied Modeling Languag e ) ايجاد شد. بعد از مدتي جاكبسن نيز به اين گروه پيوست و روشهاي آنها در كليه محافل شناخته شده و مشهور شد.

بالاخره در سال 1997 روايت 1.1 زبان UML به گروه مديريت شيء براي استانداردسازي ارائه شد و مورد قبول اين گروه قرار گرفت. در نهايت UML2.0 تحت بررسي OMG آخرين نسخه زبان مدلسازي يكپارچه ميباشد. جهت كسب اطلاعات بيشتر به www.omg.org/uml مراجعه كنيد.

مقدمه ای بر شی گرایی

شیء گرایی (Object-Oriented) لغتی است که امروزه در صنعت نرم افزار باب شده است. شرکتها به سرعت حرکت می کنند تا خود را با این تکنولوژی سازگار کنند و آن را در برنامه های موجود خود وارد نمایند. در حقیقت بیشتر برنامه ها امروزه با شی گرایی توسعه می یابند.

متد شیء گرایی یک راه متفاوت مشاهده برنامه هاست. با متد شیء گرایی شما یک برنامه را به قطعات بسیار کوچک یا آبجکتهایی تقسیم میکنید که تا اندازه ای مستقل از یکدیگر می باشند. به آن مانند ساختمانی از بلوکها نگاه کنید.به محض اینکه تعدادی آبجکتهای اساسی را در دنیای کامپیوتر ساختید یا بدست آوردید میتوانید به سادگی آنها را کنار هم بگذارید تا برنامه های جدید را ایجاد نمائید.

یکی از امتیازات اساسی متد شیء گرایی این است که می توانید یکبار اجزاء را ساخته و بارها و بارها استفاده کنید. یک بلاک ساختمان را می توانید در یک خانه یا یک قصر یا یک سفینه فضایی دوباره استفاده کنید. همچنین می توانید از یک قطعه طرح یا کد شیء گرایی در یک سیستم حاسبداری - یک سیستم بازرگانی یا یک سیستم پردازش سفارش استفاده مجدد نمائید.

حتما با خودتان می گوئید که شما تا کنون از کدهای قبلی نیز می توانستید در برنامه های مختلف استفاده کنید.

تفاوت متد شیء گرایی با روش سنتی توسعه چیست ؟ در روش سنتی روش توسعه به همراه اطلاعاتی که سیستم نگهداری خواهد کرد به خودمان وابسته است. در این روش ما از کاربربان می رسیم که چه اطلاعاتی را نیاز دارند. پایگاه داده ای را طراحی می کنیم که اطلاعات را نگه دارد. صفحاتی را تهیه می کنیم که اطلاعات را بگیرد و گزارشاتی را چاپ می کنیم تا اطلاعات را برای کاربران نمایش دهد. به عبارت دیگر ما بر روی اطلاعات متمرکز می شویم و کمتر توجه می کنیم که چه کاری با اطلاعات انجام شده است یا رفتار سیستم چگونه است (نمودارهای ERD را در روش تحلیل سیستم ساختیافته ببینید). این روش Data Senteric یا مبتنی بر داده نامیده شده است و برای ایجاد سیستمهای زیادی تا کنون استفاده شده است.

یک چالش بسیار بزرگ که روش مبتنی بر داده با آن روبرو می شود این است که درخواستهای سیستمها معمولا چندین بار تغییر مینماید. این سیستمها تغییرات در پایگاه داده را به آسانی پوشش میدهند ولی تغییرات در رفتار سیستم را به آسانی نمی توانند پوشش دهند. متد شیء گرایی در پاسخ به این مشکل ایجاد شده است. با متد شیء گرایی هم بر اطلاعات و هم بر رفتار متمرکز می شویم. در نتیجه اکنون می توانیم سیستم هایی را ایجاد نماییم که انعطاف پذیر شده اند تا اطلاعات یا رفتار را تغییر دهند.

مشاهده و درک این انعطاف  پذیری با شناخت تعدادی از اصول شیء گرایی نمایان خواهد شد: نهان سازی یا Encapsulation - وراثت يا Inheritance و چند ريختي يا Polymorphism.

با ما همراه باشيد!

منابع مورد استفاده

در تهيه مطالب اين وبلاگ بصورت گسترده اي از منابع ذيل استفاده شده است. به شما هم توصيه ميكنم درصورت امكان حتما كتابهاي ذيل را تهيه كنيد.

مرجع کامل UML with Rational Rose 
نوشته باگزبندی
ترجمه مهندس مهرداد توانا و مهندس عاطفه شیجوئی

مقايسه متدولوژي هاي ايجاد و توسعه سيستم هاي اطلاعاتي
گردآوري و تأليف : مهندس انوشيروان اخوان نياكي

تحليل و طراحي سيستمها
ايگور هوريس كيوويچ
ترجمه مهندس عين الله جعفرنژاد قمي

مهندسي نرم افزار با بهره گيري از UML
ترجمه و تأليف مهندس اميرمهدي هدايت فر

ما از منابع ذكر شده جهت بيان علامتها ، استانداردها و مفاهيم UML استفاده مي كنيم. ولي همانطور كه قبلا نيز ذكر شد هيچكدام از منابع موجود ترجمه شده و همچنين هيچكدام از سايتها بصورت Case Study يك پروژه كامل را بررسي نكرده اند!

همچنين نرم افزاري كه ما در طول پروژه ها جهت مدلسازي استفاده خواهيم كرد Enterprise Rational Rose 2003 خواهد بود. جهت تهيه اين نرم افزار با من تماس بگيريد.

UML را بصورت کاربردی بیاموزید

کتابهای آموزش UML موجود که اکثرا ترجمه می باشند تنها به معرفی  علائم و مفهومهای زبان مدلسازی UML پرداخته اند و هیچکدام از آنها یک مثال کاربردی و واقعی را بطور کامل بررسی و تحلیل نکرده اند.

این وبلاگ قصد دارد مفاهیم شیء گرایی و زبان مدلسازی UML را بصورت Case Study و در طول تحلیل یک سیستم واقعی آموزش دهد.

نظرات , پیشنهادات و کمکهای علمی شما قطعا روشنای راه ما خواهد بود.