( تعداد نمایش : 2845 )

مهندسی نرم افزار و معرفی UML (قسمت اول)

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

همانگونه که می دانید طراحی و تولید سیستم های نرم افزاری دارای یک چرخه حیات می باشد که در علم مهندسی نرم افزار به بررسی این چرخه حیات و عوامل مرتبط با آن پرداخته می شود . به طور کلی مراحل این چرخه به شرح زیر می باشد :

  • فعالیت جمع آوری نیازمندی های و مشخص کردن آنها . این نیازمندی ها کاری را که سیستم می بایست انجام دهد را مشخص می کنند .

  • فعالیت تحلیل نیازمندی ها برای درک بهتر آنها .

  • فعالیت طراحی برای اینکه مشخص شود که سیستم چگونه نیازمندی ها را برآورده می کند .

  • فعالیت ساخت سیستم .

  • آزمایش سیستم برای تایید اینکه آیا سیستم نیازمندی ها را برآورده کرده است یانه ؟

  • و در نهایت فعالیت تحویل سیستم .

حال متدلوژی های مختلفی برای انجام این فعالیت ها وجود دارد و هر کدام به نحوی به انجام این کار ها می پردازند .

متدولوژی

در ابتدا باید به تعریف متدلوژی و اینکه یک متدلوژی چه کاری انجام می دهد پرداخت .

تعریف : متدلوژی یا فراروش مجموعه ای است همگرا و هدف مدار از مفاهیم ، عقاید ، ارزش ها و اصولی که بوسیله منابعی در جهت حل مسایل گروهی بکار گرفته می شود و می خواهد تغییرات مطلوبی را در وضع موجود یک سیستم بطور غیر تصادفی ایجاد نماید .

یک متدلوژی در حقیقت سه وظیفه دارد .

  1. فرموله کردن مسئله .

  2. بیان نحوه حل مسئله

  3. پیاده سازی مسئله .

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

از جمله این متدلوژی های شی گرا که در طول سال ها ایجاد گردید می توان متدولوژی های Fusion و Booch و rumbaugh و متدواوژی Yourdon را نام برد . تا در نهایت در سال ۱۹۹۶ آقایان Boch,Rumbaugh و Jacobson در کنار هم گرد آمدهند و پایه های ” زبان مدل سازی یکپارچه “(Unified Modeling Language ) یا همان UML را ایجاد کردند . این زبان مدل سازی در سال ۹۷ توسط (OMG (Object Management Group در آمریکا به عنوان یک استاندارد پذیرفته شد و شرکت های مشهوری نظیر Oracle و Microsoft از آن پشتیبانی کردند .

ضرورت مدل سازی

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

تعریف کلی UML

UML زبانی است برای مشخص سازی ، مجسم سازی ، ساخت و مستندسازی دست آوردهای سیستم های نرم افزاری و مدل سازی کسب و کار و دیگر سیستم های غیر نرم افزاری .

در اینجا ابتدا چند مفهومی که امکان دارد با آن آشنا نباشید را معرفی خواهم کرد .

شی (Object ) : انسان ، مکان یا هر چیزی یک شی است .

مسئولیت (Responsibility ) : چیزی است که به شی اختصاص داده میشود و سه جنبه دارد .

  • آنچه که شی راجع به خودش می داند .

  • کسانی که شی را می شناسند و با هم ارتباط دارند .

  • کارهایی که شی انجام می دهد .

سناریو : یک مجموعه پشت سر هم  یا متوالی می باشد که منجر به انجام کار خاصی می گردد .

کلاس : مجموعه ای از اشیا که دارای صفات ، اعمال و ارتباطات یکسان هستند در یک کلاس قرار می گیرند و هر یک از این اشیا نمونه ای (Instance ) از آن کلاس به حساب می آیند .

در ادامه و مقالات آینده برای اینکه مفاهیم UML و عناصر آن را بهتر متوجه شوید کار را با بررسی یک مورد آموزشی ادامه خواهیم داد . این مورد یک سیستم مدیریت پروژه می باشد .

توجه : در اینجا هدف پیاده سازی و انجام یک پروژه کامل نمی باشد بلکه سعی می شود در خلال این مثال به بررسی UML بپردازیم .

یک سیستم مدیریت پروژه می بایست توانایی مدیریت پروژه ها و منابع و راهبری سیستم را داشته باشد .بنابراین نقش های زیر در آن تعریف می شود .

  • مدیر پروژه (Project Manager ) : این نقش مسئول تضمین تحویل محصولی با کیفیت در زمان و هزینه مشخص ، با توجه به محدودیت منابع می باشد .

  • مدیر منابع ( Resource manager ) : این نقش مسئول تضمین تامین منابع انسانی آموزش دیده و ماهر برای انجام پروژه ها می باشد .

  • مدیریت افراد (Human Manager ) : این نقش مسئول تضمین بروز بودن و کافی بودن مهارت های افراد و کامل بودن کیفیت انجام کار برای یک پروژه می باشد .

  • مدیر و راهبر سیستم (System Administrator ) : مسئول تضمین فراهم نمودن سیستم مدیریت پروژه برای یک پروژه می باشد .

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن