از يك ديدگاه كلی، پروسه توليد نرمافزار را میتوان به دو بخش كلی شامل:
الف)تحليل و طراحی ب)پيادهسازی تقسيم كرد. از ديدگاه دسته اول، برنامهسازان، تحليل و طراحی صرفاً فهم ذهنی مساله میباشد كه دقيقا پس از آن بايستی اقدام به پيادهسازی كرد. در حاليكه در نظر دسته دوم، فاز تحليل و طراحی پر اهميتتر از فاز دوم میباشد كه بايستی برای انجام آن از متدولوژیها و روشهای استاندارد استفاده كرد. 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 را به عنوان قدرتمندترين زبان مدلسازی در دنيای نرمافزار مطرح ساخته است.