با كمی اغماض می ‌توان ادعا كرد كه در ميان شاخه ‌های مختلف مهندسی در هركدام كه دارای قدمت بيشتری است، همگرايی بيشتری در اتخاذ روش و ابزار برای انجام اعمال نسبتاً مشابه از ميان متخصصان و متوليان آن رشته وجود دارد. به طور مثال در حال حاضر برای اجرای يك سازه در هر نقطه از دنيا، مهندسين عمران از يك روند همسان با توالی مشابه شامل: الف)توليد طرح عمرانی ب)پياده ‌سازی نقشه ج)محاسبات سازه ‌ای د)اجرا استفاده می ‌كنند. ولی در رشته نوپايی چون مهندسی نرم ‌افزار، گاه چنان روش ‌ها متفاوت است كه از ديد يك ناظر خارجی، دو تيم نرم ‌افزاری مختلف كه هر دو قصد توليد محصولی مشابه را دارند، دو تيم در رشته ‌های متفاوت به نظر بيايند. يكی از علل وجود تمايز در توليد نرم ‌افزار ميزان تخصص نيرو و زمان به پياده ‌سازی می ‌باشد.بدين معنا كه در نزد بسياری از برنامه ‌نويسان توليد نرم ‌افزار معادل است با توليد كد. ولی از نظر بعضی ديگر توليد كد تنها بخشی از توليد نرم ‌افزار است كه در بسياری از موارد حتی منابع و زمان. اختصاص داده شده به آن در طول پروسه.توليد نرم ‌افزار كمتر از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 را به عنوان قدرتمندترين زبان مدل ‌سازی در دنيای نرم ‌افزار مطرح ساخته است
با هدف ارائه يك زبان استاندارد فراگير شركت Rational با گردآوری سه نفر از ارائه ‌كنندگان معتبرترين روش ‌های شی ‌گرا يعنی Irar jacobson مبدع روش OOSE ,BOOCH مبدع روشی با همين نام، Rambaugh مبدع روش OMT و با اخذ نقاط قدرت سه روش فوق ‌الذكر، يك زبان استاندارد به نامUML ارائه كرد. اين زبان پس از ارائه از سوی (Object Mamgement Group) كه يكی از معتبرترين سازمان جهانی در زمينه شی ‌گرائی می ‌باشد بعنوان يك استاندارد پذيرفته شد. پس از ارائه اين زبان و پذيرفته شدن آن به عنوان يك استاندارد جهانی در زمينه نرم ‌افزار، علاوه پروسه اين زبان و ارائه متولوژی ‌های مبتنی بر آن مانند usop و rup از سوی افراد و سازمان ‌های مختلف، متخصصين در پی يافتن كاربرد اين زبان در زمينه ‌های ديگر فنی و مخصوصی بر آمدند. برآيند اين تلاش ‌ها در حال حاضر uml را به عنوان قدرتمندترين زبان مدل ‌سازی در دنيای نرم ‌افزار مطرح ساخته است..