با کمی اغماض می
توان ادعا کرد که در میان شاخه
های مختلف مهندسی در هرکدام که دارای قدمت بیشتری است، همگرایی بیشتری در اتخاذ روش و ابزار برای انجام اعمال نسبتاً مشابه از میان متخصصان و متولیان آن رشته وجود دارد. به طور مثال در حال حاضر برای اجرای یک سازه در هر نقطه از دنیا، مهندسین عمران از یک روند همسان با توالی مشابه شامل: الف)تولید طرح عمرانی ب)پیاده
سازی نقشه ج)محاسبات سازه
ای د)اجرا استفاده می
کنند. ولی در رشته نوپایی چون مهندسی نرم
افزار، گاه چنان روش
ها متفاوت است که از دید یک ناظر خارجی، دو تیم نرم
افزاری مختلف که هر دو قصد تولید محصولی مشابه را دارند، دو تیم در رشته
های متفاوت به نظر بیایند. یکی از علل وجود تمایز در تولید نرم
افزار میزان تخصص نیرو و زمان به پیاده
سازی می
باشد.بدین معنا که در نزد بسیاری از برنامه
نویسان تولید نرم
افزار معادل است با تولید کد. ولی از نظر بعضی دیگر تولید کد تنها بخشی از تولید نرم
افزار است که در بسیاری از موارد حتی منابع و زمان. اختصاص داده شده به آن در طول پروسه.تولید نرم
افزار کمتر از50% می
باشد.
از یک دیدگاه کلی، پروسه تولید نرمافزار را میتوان به دو بخش کلی شامل:الف)تحلیل و طراحی ب)پیاده
سازی تقسیم کرد. از دیدگاه دسته اول، برنامه
سازان، تحلیل و طراحی صرفاً فهم ذهنی مساله می
باشد که دقیقا پس از آن بایستی اقدام به پیاده
سازی کرد. در حالیکه در نظر دسته دوم، فاز تحلیل و طراحی پر اهمیت
تر از فاز دوم می
باشد که بایستی برای انجام آن از متدولوژی
ها و روش
های استاندارد استفاده کرد. UML یک زبان مدلسازی می
باشد که در فاز تحلیل و طراحی مورد استفاده قرار می
گیرد.
مدلسازی (Modelling) چیست؟ مدل
سازی یکی از تکنیک
های ذهنی بشر می
باشد که نه تنها برای اهداف علمی، بلکه برای انجام امور روزمره بشر به دفعات مورد استفاده قرار می
گیرد. مدل
سازی به طور کلی یعنی شبیه
سازی یک محیط با اندازه
های متفاوت و از محیط واقعی و احتمالا مواد و مصالحی متمایز از جنس مواد و مصالح محیط مدل شده. در مدل
سازی ابتدا اجزای محیط واقعی انتخاب شده و متناسب با هدف مورد نظر از مدل
سازی خصوصیاتی از هریک از اجزای واقعی انتزاع می
شود، یعنی به ازای هزیک از اجزای محیط واقعی یک موجودیت تجریدی ساخته می
شود و با برقراری ارتباطی مشابه با ارتباط اجزای واقعی، در میان موجودیت
های تجریدی، محیط واقعی مدل می
شود. برای روشن شدن مثالی می
زنیم:
فرض کنیم قصد داشته باشیم در فاز طراحی یک اتومبیل میزان موفقیت هوا در مقابل اتومبیل در حال حرکت را بسنجیم یکی از راه
ها برای انجام این آزمایش، ساخت یک اتومبیل واقعی، راندن و سپس اندازه
گیری مقاومت هوا می
باشد که انجام اینکار اگرچه ما را به هدف می
رساند، ولی دارای هزینه بالاییست چرا که بایستی ابتدا ماشین ساخته شود، سپس مورد آزمایش قرار گیرد.در این صورت اگر در آزمایش به نتیجه مورد نظر نرسیم، بایستی دوباره طراحی را تغییر داد، و پس از ساخت یک نمونه واقعی دیگر آزمایش را تکرار کنیم و این روند آنقدر ادامه پیدا کند تا طراحی مناسب برای اتومبیلی با خصوصیات مورد نظر شکل گیرد. می
بینیم که چنین روشی بسیار پرهزینه است و این هزینه هم شامل هزینه
های اقتصادی است و هم هزینه
های زمانی، چون علاوه بر این که در هر مرحله آزمایش بایستی اتومبیل با صرف هزینه بالا ساخته شود، زمان ساخت آن نیز طول خواهد کشید.
ولی متخصصان برای انجام چنین آزمایشی به مدل روی می
آورند. یعنی یک جسم فیزیکی کوچک با خصوصیات آئرودینامیکی لحاظ شده در طراحی اتومبیل، ساخته می
شود و با قرار دادن آن در یک تونل باد، حرکت اتومبیل در فضای واقعی را شبیه سازی می
کنند و بدین طریق میزان مقاومت هوا را می
سنجند.
نکات مورد توجه در این مدل
سازی، یکی اندازه مدل و دیگری خصوصیات آن می
باشد. مدل بسیار ساده و کوچک می
باشد و از طرفی تنها خصوصیت آئرودینامیکی اتومبیل در مدل لحاظ می
شود. چرا که هدف ما از مدل
سازی تنها بررسی خصوصیات آئرودینامیکی اتومبیل است و مدل الزاماً نبایستی از جنبه
های دیگر، شباهتی به اتومبیل واقعی داشته باشد. مثلا در ساخت چنین مدلی به هیچ
وجه به استحکام اجزا و یا زیبایی مدل توجه نمی
شود چون بررسی چنین خصوصیاتی خارج از هدف این مدلسازی خاص است.
مثال بالاتنها یک جنبه از مدل
سازی را بیان می
کند و آن جنبه شناختExploration می
باشد. یعنی در مدلسازی
های مشابه مدل
سازی فوق
الذکر، هدف از مدل
سازی تنها شناخت محیط مورد مدل می
باشد. یک جنبه دیگر از مدل
سازی تبیین (specitication) می
باشد. یعنی گاه برای معرفی و ارائه خصوصیات یک موجودیت واقعی یک مدل از آن ارائه می
شود. نقشه جغرافیایی مثال خوبی است که این جنبه از مدل
سازی را مورد نظر دارد.
پس می
توان گفت که هدف از مدل
سازی دو چیز می
باشد:
الف)شناخت(exploration)
ب)تبیین(specification) که بر اساس تعریف مسئله، مدل
سازی یکی یا هردو هدف را در نظر می
گیرد.
نکته دیگری که بایستی در مدل
سازی توجه کرد، روش (methodo logy) ساخت یک مدل می
باشد. در بعضی موارد مدل چیز بسیار ساده
ای است و به راحتی ساخته می
شود. ولی در بعضی از موارد مدل خود بسیار پیچیده می
باشد هر چند از نظر منطقی غیرممکن می
نماید ولی می
توان ادعا کرد که در بعضی موارد مدل پیچیده
تر از موجودیت واقعی است. زمینه
ای که این ادعا را در آن مصداق فراوان دارد، نرم
افزار می
باشد. بنابراین در شاخه
ای از مهندسی که مدل
سازی حائز اهمیت فراوان می
باشد قطعا روش
های استانداردی برای ساختن مدل وجود دارد. در نرم
افزار، روش
های تولید نرم
افزار مانند SSAPM ,RUP,USDP, در واقع روش
های مدل
سازی می
باشند. هر روش مدل
سازی طبیعتا نیازمند مصالحی برای ساخت مدل می
باشد که در روش
های مدل
سازی نرم
افزاری مصالح لازم برای تولید مدل، زبان
های مدل
سازی می
باشند.
UML چیست؟
Unified Modelling Language یک زبان مدلسازی است که درسال 1995 به وسیله شرکت Rational معرفی شد. UML یک زبان شیگراست یعنی اجزا این زبان متناسب با مفاهیم به کاررفته و پارادایم شیگرائی طراحی شدهاند.
پس از ارائه مفاهیم شیگرائی در ابتدای دهه 80 میلادی به تدریج روشهای شیگرائی تولید نرمافزار به وسیله افراد و سازمانهای مختلف ارائه گردید. این روشها در برگیرنده یک مجموعه علائم برای بیان مفاهیم و ایدهها از یک سو و یک طرح کاری برای تولید نرمافزار از سوی دیگر بود که از مهمترین این روشها میتوان به OMT,BOOCH,OOSE…. اشاره کرد.
اگرچه داشتن یک روش استاندارد امری مطلوب است ولی تفاوت روشها امریست طبیعی و با توجه به تفاوت فراوان در نوع مسائل میتوان گفت که حتی وجود روشهای مختلف الزامی است چرا که مثلا در یک پروژه بسیار بزرگ نمیتوان همان روشی را به کار برد که در یک پروژه کوچک. ولی زبان و مجموعه علائم از چنین قاعدهای پیروی نمیکند و داشتن یک زبان استاندارد امری بسیار مطلوب و از بعضی دیدگاهها حتی الزامی میباشد. یکی از الزامات مهم در داشتن یک زبان استاندارد همگانی ناشی از نقشی است که زبان در ارتباطات به عهده دارد. البته چندگونهبودن زبان خود مولد مشکلات متعددی است.
با هدف ارائه یک زبان استاندارد فراگیر شرکت Rational با گردآوری سه نفر از ارائهکنندگان معتبرترین روشهای شیگرا یعنی Irar jacobson مبدع روش OOSE ,BOOCH مبدع روشی با همین نام، Rambaugh مبدع روش OMT و با اخذ نقاط قدرت سه روش فوقالذکر، یک زبان استاندارد به نامUML ارائه کرد. این زبان پس از ارائه از سوی (Object Mamgement Group) که یکی از معتبرترین سازمان جهانی در زمینه شیگرائی میباشد بعنوان یک استاندارد پذیرفته شد. پس از ارائه این زبان و پذیرفته شدن آن به عنوان یک استاندارد جهانی در زمینه نرمافزار، علاوه پروسه این زبان و ارائه متولوژیهای مبتنی بر آن مانند usop و rup از سوی افراد و سازمانهای مختلف، متخصصین در پی یافتن کاربرد این زبان در زمینههای دیگر فنی و مخصوصی بر آمدند. برآیند این تلاشها در حال حاضر uml را به عنوان قدرتمندترین زبان مدلسازی در دنیای نرمافزار مطرح ساخته است.
CCW Magazine