UML در طراحي سايت چه کاربردي دارد | شرکت طراحي سايت بهپردازن
UML مخفف کلمه unified modeling language ميباشد. ايجاد يک مدل براي سيستمهاي نرم افزاري قبل از ساخت يا بازساخت آن، به اندازه داشتن نقشه براي ساختن يک ساختمان ضروري و حياتي است. بسياري از شاخه هاي مهندسي، توصيف چگونگي محصولاتي که بايد ساخته شوند را ترسيم مي کنند و همچنين دقت زيادي مي کنند که محصولاتشان طبق اين مدلها و توصيفها ساخته شوند. مدلهاي خوب و دقيق در برقراري يک ارتباط کامل بين افراد پروژه، نقش زيادي مي توانند داشته باشند. شايد علت مدل کردن سيستمهاي پيچيده اين باشد که تمامي آن را نمي توان يک باره مجسم کرد، بنابراين براي فهم کامل سيستم و يافتن و نمايش ارتباط بين قسمتهاي مختلف آن، به مدلسازي ميپردازيم. UML زباني است براي مدلسازي يا ايجاد نقشه توليد نرم افزار.
به عبارت ديگر، يک زبان، با ارائه يک فرهنگ لغات و يک مجموعه قواعد، امکان مي دهد که با ترکيب کلمات اين فرهنگ لغات و ساختن جملات، با يکديگر ارتباط برقرار کنيم. يک زبان مدلسازي، زباني است که فرهنگ لغات و قواعد آن بر نمايش فيزيکي و مفهومي آن سيستم متمرکزند. براي سيستمهاي نرم افزاري نياز به يک زبان مدلسازي داريم که بتواند ديدهاي مختلف معماري سيستم را در طول چرخه توليد آن، مدل کند.
فرهنگ واژگان و قواعد زباني مثل UML به شما مي گويند که چگونه يک مدل را بسازيد و يا چگونه يک مدل را بخوانيد. اما به شما نمي گويند که در چه زماني، چه مدلي را ايجاد کنيد. يعني UML فقط يک زبان نمادگذاري (Notation) است نه يک متدولوژي. (توضيحات بيشتر در ساير مقالات سايت ميکرو رايانه) يک زبان نمادگذاري شامل نحوه ايجاد و نحوه خواندن يک مدل مي باشد، اما يک متدولوژي بيان مي کند که چه محصولاتي بايد در چه زماني توليد شوند و چه کارهايي با چه ترتيبي توسط چه کساني، با چه هزينهاي، در چه مدتي و با چه ريسکي انجام شوند.
ويژگيهاي UML
UML داراي ويژگيهاي بارز فراواني است که در اين قسمت به آنها مي پردازيم. UML يک زبان مدلسازي است اما چيزي فراتر از چند نماد گرافيکي است. به طوريکه در وراي اين نمادها، يک سمانتيک (معناشناسي) قوي وجود دارد، به طوريکه يک توليدکننده ميتواند مدلهايي توليد کند که توليدکننده هاي ديگر و يا حتي يک ماشين آن را بخواند و بفهمد. بنابراين يکي ديگر از نقش هاي مهم UML "تسهيل ارتباط" بين اعضاي پروژه و يا بين توليدکنندگان مختلف مي باشد. اين ارتباط بسيار مهم است. شايد دليل اصلي اينکه توليد نرم افزار به صورت فريبنده اي دشوار است، همين عدم ارتباط مناسب بين اعضاي پروژه باشد و اگر در توليد نرم افزار، بين اعضاي پروژه گزارشهاي هفتگي و مداوم وجود داشته باشد، بسياري از اين دشواريها برطرف خواهد شد.
البته اين را هم بايد در نظر گرفت که UML کمي پيچيده است و اين به خاطر آن است که سعي شده است نمودارهايي فراهم شود که در هر موقعيتي و با هر ترتيبي قابل استفاده باشند. دليل ديگر پيچيدگي از آنجا ناشي مي شود که UML ترکيبي است از زبانهاي مختلف، که براي حفظ سازگاري و جمع کردن خصوصيات مثبت آنها، ناگزير از پذيرش اين پيچيدگي مي باشد.
UML موفقيت طرح را تضمين نمي کند، اما در عين حال خيلي چيزها را بهبود ميبخشد. به عنوان مثال استفاده از UML، تا حد زيادي، هزينه هاي ثابتي نظير آموزش و استفاده مجدد از ابزارها را در هنگام ايجاد تغيير در سازمان و طرحها کاهش مي دهد.
مساله ديگر اينکه، UML يک زبان برنامه نويسي بصري (visual) نيست، اما مدلهاي آن را ميتوان مستقيماً به انواع زبانهاي مختلف ارتباط داد. يعني امکان نگاشت از مدلهاي UML به کد زبانهاي برنامه نويسي مثل Java و ++C وجود دارد که به اين عمل "مهندسي رو به جلو" مي گويند.
عکس اين عمل نيز ممکن است؛ يعني اين امکان وجود دارد که شما بتوانيد از کد يک برنامه زباني شي گرا، مدلهاي UML معادل آن را به دست آوريد. به اين عمل "مهندسي معکوس" مي گويند. مهندسي رو به جلو و معکوس از مهمترين قابليت هاي UML به شمار مي روند، البته نياز به ابزار Case مناسبي داريد که از اين مفاهيم پشتيباني کنند.
اگر با زبانهاي مدلسازي ديگر کار کرده باشيد، براي کار با UML مشکل چنداني نخواهيد داشت. اما براي شروع کار با UML به عنوان اولين زبان مدلسازي، بهتر است فقط با نمودارهاي خاصي کار کنيد. براي اين کار بهتر است ابتدا با نمودارهاي مورد کاربرد و تعامل کار کنيد و پس از مدتي کار و آشنا شدن با ويژگيهاي اوليه آن، به يادگيري و استفاده از نمودارها و اجزاي ديگر بپردازيد. در مقايسه با زبانهاي مدلسازي ديگر مثل ER و زبان فلوچارتي DR، زبان UML نمودارهاي قوي تر و قابل فهم تري را ارائه مي دهد که شامل تمامي مراحل چرخه حيات توليد نرم افزار (تحليل، طراحي، پياده سازي و تست) ميشود.
تعريف کلمات کليدي و عناصر اصلي UML
مدل: علاوه بر تعريفي که در قسمت قبلي ارائه شد، مدل از تعدادي «شيء» تشکيل شده است.
شيء: هر يک از اجزاء نرم افزار يک «شيء» نام دارد.
کلاس: مشخصهها و تعاريف عمومي يک «شيء» در کلاس مربوط به آن تعريف ميشود. هر شيء نمونهي ساخته شده از يک کلاس است. کلاس، وظايف، قابليتها، خصوصيتهاي آن موجوديت نرم افزاري را تعريف ميکند و طراح با ساختن يک نمونه از کلاس (شيء) و ارائهي مقادير مرتبط با محل خاص استفاده آن يا قرار دادن آن در مسير وقايع لازم، محيط مورد نظر خود را طراحي ميکند. نمونههاي مختلفي از يک کلاس در قالب اشياء مختلف ساخته ميشوند، ضمن اينکه ميتوان يک شيء را بطور همزمان از دو يا تعداد بيشتري کلاس ساخت. يعني شي مذکور تمام مشخصههاي کلاسهاي فوق خود را به «ارث» خواهد برد.
در يک مدل شيء گرا، شيءها از طريق Message ها با يکيگر ارتباط برقرار ميکنند. يک نمونه Message، فشرده شدن کليد چپ ماوس وقتي اشاره گر آن روي يک Button، ميباشد. اينجا ماوس (به عنوان يکي از اشياء موجود در هر سيستم نرم افزاري) به شيء ديگري بنام Button (که مثلا از CButton يا TButton که کلاسهاي فوق آن هستند ساخته شده است) يک Message ارسال نموده است.
هر شيء داراي تعدادي مشخصه يا Attribute است. مشخصههاي يک شيء حاوي مقادير مختلف اجزاء آن شيء هستند. به عنوان يک مثال ساده وقتي مختصات يک کليد روي فرم 20 و 40 است، يعني مشخصههاي طول و ارتفاع آن 20 و 40 هستند. (مشخصه تعاريف پيچيدهتري هم داره که خواهيد ديد.)
اشياء «ميتوانند» کارهايي انجام دهند که به آنها اصطلاحا Behavior ميگويند. به عنوان مثال وقتي ماژول رمزنگاري نرم افزار شما ميتواند درهم سازي با متد MD5 هم انجام دهد، اين توانائي يکي از Behavior هاي اين شيء محسوب ميگردد.
- Use Case Diagram
- Class Diagram
- Object Diagram
- Sequence Diagram
- Collaboration Diagram
- StateChart Diagram
- Activity Diagram
- Component Diagram
- Deployment Diagram