یکی از مباحث مهم در علم کامپیوتر بحث مهندسی نرم افزار می باشد که متاسفانه در ایران در وب سایت ها کمتر به آن پرداخته می شود . در حالیکه امروزه شرکت ها بدون داشتن اصول مشخص مهندسی نرم افزار هیچگاه تصمیم به ایجاد سیستم های نرم افزاری نمی گیرند . بنابراین من در این سایت قصد دارم تا در یک سری مقالات شما خوانندگان گرامی را با این مقوله تا آنجا که می توانم بیشتر آشنا کنم .
همانگونه که می دانید طراحی و تولید سیستم های نرم افزاری دارای یک چرخه حیات می باشد که در علم مهندسی نرم افزار به بررسی این چرخه حیات و عوامل مرتبط با آن پرداخته می شود . به طور کلی مراحل این چرخه به شرح زیر می باشد :
-
فعالیت جمع آوری نیازمندی های و مشخص کردن آنها . این نیازمندی ها کاری را که سیستم می بایست انجام دهد را مشخص می کنند .
-
فعالیت تحلیل نیازمندی ها برای درک بهتر آنها .
-
فعالیت طراحی برای اینکه مشخص شود که سیستم چگونه نیازمندی ها را برآورده می کند .
-
فعالیت ساخت سیستم .
-
آزمایش سیستم برای تایید اینکه آیا سیستم نیازمندی ها را برآورده کرده است یانه ؟
-
و در نهایت فعالیت تحویل سیستم .
حال متدلوژی های مختلفی برای انجام این فعالیت ها وجود دارد و هر کدام به نحوی به انجام این کار ها می پردازند .
متدولوژی
در ابتدا باید به تعریف متدلوژی و اینکه یک متدلوژی چه کاری انجام می دهد پرداخت .
تعریف : متدلوژی یا فراروش مجموعه ای است همگرا و هدف مدار از مفاهیم ، عقاید ، ارزش ها و اصولی که بوسیله منابعی در جهت حل مسایل گروهی بکار گرفته می شود و می خواهد تغییرات مطلوبی را در وضع موجود یک سیستم بطور غیر تصادفی ایجاد نماید .
یک متدلوژی در حقیقت سه وظیفه دارد .
-
فرموله کردن مسئله .
-
بیان نحوه حل مسئله
-
پیاده سازی مسئله .
هدف من در اینجا بررسی متدلوژی های شی گرا می باشد . دیدگاه شی گرایی از اواسط دهه ۷۰ میلادی در مباحث برنامه نویسی کامپیوتر متولد شد . پس از گذشت چند سال و در اوایل دهه ۹۰ به جهت ناکارآمدی روش های سنتی در مباحث تحلیل و طراحی سیستم های اطلاعاتی و کامپیوتری و نیز ظهور سیستم هایی که مدل سازی آنها به روش های سنتی بسیار ناقص بود ، تحلیل گران و طراحان سیستم را به این فکر انداخت تا از دیدگاه شی گرا علاوه بر برنامه نویسی در زمینه تحلیل و طراحی سیستم نیز استفاده کنند .
از جمله این متدلوژی های شی گرا که در طول سال ها ایجاد گردید می توان متدولوژی های 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 ) : مسئول تضمین فراهم نمودن سیستم مدیریت پروژه برای یک پروژه می باشد .
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن