تجزیه ئت حلیل سیستم ها

تجزیه ئت حلیل سیستم ها 09367292276

تجزیه ئت حلیل سیستم ها

تجزیه ئت حلیل سیستم ها 09367292276

UML چیست ؟

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

تمامی اکوسیستم های عظیم مبتنی بر تکنولوژِی، باید به استانداردها پایبند باشند. چراکه وقتی نیاز شود که یک بخش از سیستم را تغییر دهیم یا بروز رسانی کنیم، این تغییرات نیازمند فرآیند تفکر استراتژیک(strategic thought process)  است. در ادامه به چند سوال کلیدی که باید قبل از تهیه کردن برنامه یا بروز رسانی برنامه، به این سوال ها پاسخ دهیم را اشاره می کنیم.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276


زبان مدلسازی یکنواخت یا UML چیست؟
UML شامل تعدادی عنصر گرافیکی است که از ترکیب آنها نمودارهای UML شکل می گیرند . هدف استفاده از نمودارهای مختلف در UML ، ارائه دیدگاه های گوناگون از سیستم است. همانطور که مهندسین عمران جهت ساختن یک ساختمان پلانهای مختلفی از ساختمان تهیه می کنند ، ما با استفاده از نمودارهای UML نماهای مختلفی از نرم افزار مورد نظر را تهیه می کنیم.
نکته ای که باید حتما به آن توجه کنید این است که : مدل UML آنچه که یک سیستم باید انجام دهد را توضیح می دهد، ولی چیزی درباره نحوه پیاده سازی سیستم نمی گوید.
با توجه به رشد نرم افزارهای پشتیبانی کننده UML امروزه با استفاده از نرم افزارهایی مانند Visio ، Enterprise Architecture و rational rose شما می توانید بعد از کشیدن نمودارهای UML مستقیما نمودارهای خود را به بانک اطلاعاتی و کد تبدیل کنید (البته این نرم افزارها ساختار کد شما را برایتان تولید می کنند!) این نرم افزارها همچنین کد برنامه شما را گرفته و نمودارهای UML برنامه را تولید می کنند. پس از آشنایی با مفاهیم شیء گرایی، (توضیحات بیشتر در سایر مقالات سایت میکرو رایانه) در اینجا زبان مدلسازی UML را معرفی کرده و خواهیم دید چگونه این زبان مفاهیم شیء گرایی را پشتیبانی می کند.
مقدمه

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276


زبان مدل سازی یکنواخت ( Unified Modeling Language ) یا UML یک زبان مدلسازی است که برای تحلیل و طراحی سیستم های شی گرا به کار می‌رود. UML اولین بار توسط شرکت Rational ارائه شد و پس از آن از طرف بسیاری از شرکت های کامپیوتری و مجامع صنعتی و نرم افزاری دنیا مورد حمایت قرار گرفت؛ به طوریکه تنها پس از یک سال، توسط گروه Object Management Group، به عنوان زبان مدلسازی استاندارد پذیرفته شد. UML توانایی ها و خصوصیات بارز فراوانی دارد که می‌تواند به طور گسترده‌ای در تولید نرم‌افزار استفاده گردد. در ادامه این مقاله ابتدا به تاریخچه UML و در ادامه به معرفی، ویژگی ها و نمودارهای آن پرداخته می شود.
تاریخچه UML :
دیدگاه شی گرایی (Object Oriented) از اواسط دهه ۱۹۷۰ تا اواخر دهه ۱۹۸۰ در حال مطرح شدن بود. در این دوران تلاش های زیادی برای ایجاد روش های تحلیل و طراحی شی گرا صورت پذیرفت. در نتیجه این تلاش ها بود که در طول ۵ سال یعنی ۱۹۸۹ تا ۱۹۹۴، تعداد متدولوژی های شی گرا از کمتر از ۱۰ متدولوژی به بیش از ۵۰ متدولوژی رسید. تکثر متدولوژی ها و زبانهای شی گرایی و رقابت بین اینها به حدی بود که این دوران به عنوان “دوران جنگ متدولوژیها” لقب گرفت.
از جمله متدولوژی های پرکاربرد آن زمان می توان ازBooch، OOSE، OMT، Fusion، Coad-Yourdan، Shlayer-Mellor و غیره نام برد. فراوانی و اشباع متدولوژیها و روشهای شی گرایی و نیز نبودن یک زبان مدلسازی استاندارد، باعث مشکلات فراوانی شده بود. از یک طرف کاربران از متدولوژیهای موجود خسته شده بودند، زیرا مجبور بودند از میان روشهای مختلف شبیه به هم که تفاوت کمی در قدرت و قابلیت داشتند یکی را انتخاب کنند. بسیاری از این روشها، مفاهیم مشترک شی گرایی را در قالب های مختلف بیان می کردند که این واگرایی و نبودن توافق میان این زبانها، کاربران تازه کار را از دنیای شی گرایی زده می‌ کرد و آنها را از این حیطه دور می‌ساخت. عدم وجود یک زبان استاندارد، برای فروشندگان محصولات نرم افزاری نیز مشکلات زیادی ایجاد کرده بود.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276


اولین تلاشهای استانداردسازی از اکتبر ۱۹۹۴ آغاز شد، زمانی که آقای Rumbaurgh صاحب متدولوژی OMT به آقای Booch در شرکت Rational پیوست و این دو با ترکیب متدولوژیهای خود، اولین محصول ترکیبی خود به نام “روش یکنواخت” را ارائه دادند. در سال ۱۹۹۵ بود که با اضافه شدن آقای Jacobson به این دو، روش یکنواخت ارائه شده با روش OOSE نیز ترکیب شد و این خود سبب ارائه UML نسخه ۰٫۹ در سال ۱۹۹۶ گردید. سپس این محصول به شرکتهای مختلفی در سراسر جهان به صورت رایگان ارائه شد و استقبال شدید شرکت ها از این محصول و تبلیغات گسترده شرکت Rational، سبب آن شد که گروه OMG، نسخه ۱٫۰ UML را به عنوان زبان مدلسازی استاندارد خود بپذیرد. تلاشهای تکمیلی UML استاندارد ادامه پیدا کرد و نسخه ۱٫۱ آن در سال ۱۹۹۷ و نسخه ۱٫۳ آن در سال ۱۹۹۹ ارائه گردید.

UML چیست ؟
UML یا زبان مدلسازی یکنواخت، زبانی است برای مشخص کردن (Specify)، مصورسازی (Visualize)، ساخت (Construction) و مستندسازی (Documenting) سیستم های نرم افزاری و غیر نرم افزاری و نیز برای مدلسازی سیستم های تجاری.
اما چرا مدل و مدلسازی ؟

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276


ایجاد یک مدل برای سیستمهای نرم افزاری قبل از ساخت یا بازساخت آن، به اندازه داشتن نقشه برای ساختن یک ساختمان ضروری و حیاتی است. بسیاری از شاخه های مهندسی، توصیف چگونگی محصولاتی که باید ساخته شوند را ترسیم می کنند و همچنین دقت زیادی می کنند که محصولاتشان طبق این مدلها و توصیفها ساخته شوند. مدلهای خوب و دقیق در برقراری یک ارتباط کامل بین افراد پروژه، نقش زیادی می توانند داشته باشند. شاید علت مدل کردن سیستمهای پیچیده این باشد که تمامی آن را نمی توان یک باره مجسم کرد، بنابراین برای فهم کامل سیستم و یافتن و نمایش ارتباط بین قسمتهای مختلف آن، به مدلسازی می‌پردازیم. UML زبانی است برای مدلسازی یا ایجاد نقشه تولید نرم افزار.
به عبارت دیگر، یک زبان، با ارائه یک فرهنگ لغات و یک مجموعه قواعد، امکان می دهد که با ترکیب کلمات این فرهنگ لغات و ساختن جملات، با یکدیگر ارتباط برقرار کنیم. یک زبان مدلسازی، زبانی است که فرهنگ لغات و قواعد آن بر نمایش فیزیکی و مفهومی آن سیستم متمرکزند. برای سیستمهای نرم افزاری نیاز به یک زبان مدلسازی داریم که بتواند دیدهای مختلف معماری سیستم را در طول چرخه تولید آن، مدل کند.
فرهنگ واژگان و قواعد زبانی مثل UML به شما می گویند که چگونه یک مدل را بسازید و یا چگونه یک مدل را بخوانید. اما به شما نمی گویند که در چه زمانی، چه مدلی را ایجاد کنید. یعنی UML فقط یک زبان نمادگذاری (Notation) است نه یک متدولوژی. (توضیحات بیشتر در سایر مقالات سایت میکرو رایانه) یک زبان نمادگذاری شامل نحوه ایجاد و نحوه خواندن یک مدل می باشد، اما یک متدولوژی بیان می کند که چه محصولاتی باید در چه زمانی تولید شوند و چه کارهایی با چه ترتیبی توسط چه کسانی، با چه هزینه‌ای، در چه مدتی و با چه ریسکی انجام شوند.
ویژگیهای UML
UML دارای ویژگیهای بارز فراوانی است که در این قسمت به آنها می پردازیم. UML یک زبان مدلسازی است اما چیزی فراتر از چند نماد گرافیکی است. به طوریکه در ورای این نمادها، یک سمانتیک (معناشناسی) قوی وجود دارد، به طوریکه یک تولیدکننده می‌تواند مدلهایی تولید کند که تولید‌کننده های دیگر و یا حتی یک ماشین آن را بخواند و بفهمد. بنابراین یکی دیگر از نقش های مهم UML “تسهیل ارتباط” بین اعضای پروژه و یا بین تولیدکنندگان مختلف می باشد. این ارتباط بسیار مهم است. شاید دلیل اصلی اینکه تولید نرم افزار به صورت فریبنده ای دشوار است، همین عدم ارتباط مناسب بین اعضای پروژه باشد و اگر در تولید نرم افزار، بین اعضای پروژه گزارشهای هفتگی و مداوم وجود داشته باشد، بسیاری از این دشواریها برطرف خواهد شد.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276

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

UML موفقیت طرح را تضمین نمی کند، اما در عین حال خیلی چیزها را بهبود می‌بخشد. به عنوان مثال استفاده از UML، تا حد زیادی، هزینه های ثابتی نظیر آموزش و استفاده مجدد از ابزارها را در هنگام ایجاد تغییر در سازمان و طرحها کاهش می دهد.
مساله دیگر اینکه، UML یک زبان برنامه نویسی بصری (visual) نیست، اما مدلهای آن را می‌توان مستقیماً به انواع زبانهای مختلف ارتباط داد. یعنی امکان نگاشت از مدلهای UML به کد زبانهای برنامه نویسی مثل Java و ++C وجود دارد که به این عمل “مهندسی رو به جلو” می گویند.
عکس این عمل نیز ممکن است؛ یعنی این امکان وجود دارد که شما بتوانید از کد یک برنامه زبانی شی گرا، مدلهای UML معادل آن را به دست آورید. به این عمل “مهندسی معکوس” می گویند. مهندسی رو به جلو و معکوس از مهمترین قابلیت های UML به شمار می روند، البته نیاز به ابزار Case مناسبی دارید که از این مفاهیم پشتیبانی کنند.
اگر با زبانهای مدلسازی دیگر کار کرده باشید، برای کار با UML مشکل چندانی نخواهید داشت. اما برای شروع کار با UML به عنوان اولین زبان مدلسازی، بهتر است فقط با نمودارهای خاصی کار کنید. برای این کار بهتر است ابتدا با نمودارهای مورد کاربرد و تعامل کار کنید و پس از مدتی کار و آشنا شدن با ویژگیهای اولیه آن، به یادگیری و استفاده از نمودارها و اجزای دیگر بپردازید. در مقایسه با زبانهای مدلسازی دیگر مثل ER و زبان فلوچارتی DR، زبان UML نمودارهای قوی تر و قابل فهم تری را ارائه می دهد که شامل تمامی مراحل چرخه حیات تولید نرم افزار (تحلیل، طراحی، پیاده سازی و تست) می‌شود.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276

یکی دیگر از ویژگی های مهم UML این است که مستقل از متدولوژی یا فرایند تولید نرم افزار می باشد و این بدان معنی است که شما برای استفاده از UML، نیاز به استفاده از یک متدولوژی خاص ندارید و می توانید طبق متدولوژی های قبلی خود عمل کنید با این تفاوت که مدلهایتان را با UML نمایش می دهید. البته مستقل بودن از متدولوژی و فرایند تولید، یک مزیت برای UML می‌باشد؛ زیرا بسیاری از انواع پروژه ها و سیستمها نیاز به متدولوژی خاص خود دارند. اگر UML در پی پیاده کردن همه اینها بر می آمد، یا بسیار پیچیده می شد و یا استفاده خود را محدود می کرد. البته متدولوژیهایی براساس UML در حال شکل گیری می باشند.

از دیگر ویژگیهای UML می توان به پشتیبانی از مفاهیم سطح بالای شی گرایی مثل Collaboration، Framework، Pattern و Component اشاره کرد. همچنین UML با استفاده از یک سری مکانیزم های گسترش پذیر امکان می دهد که بتوان زبانهای مدلسازی جدیدتری (با گسترش مفاهیم پایه ای موجود) ایجاد کرد.
نمودارهای UML :
در این بخش به معرفی نمودارهای UML می‌پردازیم:
نمودار کلاس (Class Diagram):
این نمودار، کلاس ها، واسط ها و همکاری و روابط بین آنها را نمایش می دهد. و نمودار اصلی و مرکزی UML می‌باشد. که بیان کننده ساختار ایستای سیستم نرم افزاری می باشد
نمودار اشیاء (Object Diagram):
این نمودار، اشیاء سیستم و روابط بین آنها را نمایش می دهد. در واقع یک تصویر لحظه‌ای از نمودار کلاس می باشد.
نمودار موردکاربرد (Usercase Diagram):
این نمودار، تعامل کاربران خارجی و سیستم را مدل می کند و از جهاتی شبیه نمودار سطح صفر DFD می باشد که جنبه های رفتاری سیستم را نمایش می دهد. این نمودار نقطه‌ ورودی برای تمامی نمودارهای دیگری است که به تشریح نیازمندیها و معماری و پیاده سازی سیستم می پردازند.
نمودارهای تعامل (Interaction Diagram):
این نمودارها، بیان کننده تعامل هستند که شامل اشیاء مختلف است و نیز روابط بین آنها و همچنین پیغام هایی که بین آنها رد و بدل می شود.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276

این نمودارها جنبه های پویای یک سیستم را مدل می کنند و خود بر دو نوعند: نمودار توالی (Sequence Diagram) که ترتیب زمانی تعامل ها را نشان می دهد و نمودار همکاری (Collaboration Diagram) که تاکید بر نمایش ساختاری تعامل ها دارد.

نمودارحالت (Statechart Diagram):
این نمودار، بیان کننده جنبه های رفتاری سیستم می باشد و در واقع توصیف رسمی یک کلاس بوده که شامل حالات، انتقال بین حالات، رخدادها و فعالیت ها می‌باشد. از این نمودارها برای نمایش دادن چرخه حیات اشیاء یک کلاس خاص نیز می توان استفاده کرد.
نمودار فعالیت (Activity Diagram):
این نمودار، نوع خاصی است از نمودار حالت، که انتقال جریان از یک فعالیت به فعالیت دیگر را نمایش می دهد. این نمودار جنبه های پویای یک سیستم را نمایش می دهد. در واقع حالات این نمودار، گام های ترتیبی انجام یک عمل را نمایش می دهند.
نمودار اجزاء(Component Diagram):
از جمله نمودارهای پیاده سازی می‌باشد و سازمان دهی و روابط بین مجموعه‌ای از اجزاء را نمایش می دهد. این نمودار، جنبه های ایستای پیاده سازی یک سیستم را مدل می کند.
نمودار به کارگماری(Deployment Diagram):
پیکربندی گره های پردازشی زمان اجرا را نمایش می دهد. که برای مدل کردن جنبه های ایستای به کار‌گماری یک معماری بکار می رود. همچنین نمایش دهنده اجزای استفاده شده زمان اجرا مثل کتابخانه های DLL، فایل‌های اجرایی، کدهای مبدا و روابط بین آنها می باشد.
البته این نمودارها تمام نمودارهای UML نیستند بلکه بسته به نیاز و با کمک ابزارهای Case می توان نمودارهای دیگری نیز تعریف و استفاده کرد.
روند حرکت به سمت UML در جهان:
قبل از ارائه UML، زبان مدلسازی استانداردی وجود نداشت و استفاده کنندگان مجبور بودند از میان زبانهای مختلف موجود ‌که تقریباً هیچ کدام کامل نبودند و تفاوتهایی با هم داشتند، یکی را انتخاب کنند. تفاوتهای زبانهای مدلسازی، چندان قدرت مدلسازی را افزایش نداده بود، اما در عوض باعث افول صنعت شی گرایی و سردرگمی کاربران شده بود. در چنین شرایطی طبیعی بود که استقبال زیادی از چنین زبان مدلسازی استانداردی بشود که ویژگیهای بارز زیادی داشت. بسیاری از شرکتها در همان اوایل کار به UML روی آوردند و تعداد دیگری نیز پس از تثبیت UML، آن را به عنوان استراتژی تولید و مستندسازی خود پذیرفتند.
OMG که کنسرسیومی است متشکل از ۷۰۰ شرکت معتبر آمریکا، از UML حمایت کرد و آن را به عنوان زبان مدلسازی استاندارد خود اعلام کرد. البته علاوه بر استاندارد شدن، حمایت جداگانه شرکت های بزرگ دنیا مثل Hewlett-Packard، I-Logix، Microsoft، IBM، Oracle و بسیاری دیگر، خود سبب افزایش کاربرد آن در محافل صنعتی و نرم افزاری دنیا گردید.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.