لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 51
فصل اول : UML
مقدمه:
با کمی اغماض میتوان ادعا کرد که در میان شاخههای مختلف مهندسی در هرکدام که دارای قدمت بیشتری است، همگرایی بیشتری در اتخاذ روش و ابزار برای انجام اعمال نسبتاً مشابه از میان متخصصان و متولیان آن رشته وجود دارد. به طور مثال در حال حاضر برای اجرای یک سازه در هر نقطه از دنیا، مهندسین عمران از یک روند همسان با توالی مشابه شامل: الف)تولید طرح عمرانی ب)پیادهسازی نقشه ج)محاسبات سازهای د)اجرا استفاده میکنند. ولی در رشته نوپایی چون مهندسی نرمافزار، گاه چنان روشها متفاوت است که از دید یک ناظر خارجی، دو تیم نرمافزاری مختلف که هر دو قصد تولید محصولی مشابه را دارند، دو تیم در رشتههای متفاوت به نظر بیایند. یکی از علل وجود تمایز در تولید نرمافزار میزان تخصص نیرو و زمان به پیادهسازی میباشد.بدین معنا که در نزد بسیاری از برنامهنویسان تولید نرمافزار معادل است با تولید کد. ولی از نظر بعضی دیگر تولید کد تنها بخشی از تولید نرمافزار است که در بسیاری از موارد حتی منابع و زمان. اختصاص داده شده به آن در طول پروسه.تولید نرمافزار کمتر از50% میباشد.
از یک دیدگاه کلی، پروسه تولید نرمافزار را میتوان به دو بخش کلی شامل:
الف)تحلیل و طراحی ب)پیادهسازی تقسیم کرد. از دیدگاه دسته اول، برنامهسازان، تحلیل و طراحی صرفاً فهم ذهنی مساله میباشد که دقیقا پس از آن بایستی اقدام به پیادهسازی کرد. در حالیکه در نظر دسته دوم، فاز تحلیل و طراحی پر اهمیتتر از فاز دوم میباشد که بایستی برای انجام آن از متدولوژیها و روشهای استاندارد استفاده کرد. UML یک زبان مدلسازی میباشد که در فاز تحلیل و طراحی مورد استفاده قرار میگیرد.
مدلسازی (Modeling) چیست؟
مدلسازی یکی از تکنیکهای ذهنی بشر میباشد که نه تنها برای اهداف علمی، بلکه برای انجام امور روزمره بشر به دفعات مورد استفاده قرار میگیرد. مدلسازی به طور کلی یعنی شبیهسازی یک محیط با اندازههای متفاوت و از محیط واقعی و احتمالا مواد و مصالحی متمایز از جنس مواد و مصالح محیط مدل شده. در مدلسازی ابتدا اجزای محیط واقعی انتخاب شده و متناسب با هدف مورد نظر از مدلسازی خصوصیاتی از هریک از اجزای واقعی انتزاع میشود، یعنی به ازای هزیک از اجزای محیط واقعی یک موجودیت تجریدی ساخته میشود و با برقراری ارتباطی مشابه با ارتباط اجزای واقعی، در میان موجودیتهای تجریدی، محیط واقعی مدل میشود. برای روشن شدن مثالی میزنیم:
فرض کنیم قصد داشته باشیم در فاز طراحی یک اتومبیل میزان موفقیت هوا در مقابل اتومبیل در حال حرکت را بسنجیم یکی از راهها برای انجام این آزمایش، ساخت یک اتومبیل واقعی، راندن و سپس اندازهگیری مقاومت هوا میباشد که انجام اینکار اگرچه ما را به هدف میرساند، ولی دارای هزینه بالاییست چرا که بایستی ابتدا ماشین ساخته شود، سپس مورد آزمایش قرار گیرد.در این صورت اگر در آزمایش به نتیجه مورد نظر نرسیم، بایستی دوباره طراحی را تغییر داد، و پس از ساخت یک نمونه واقعی دیگر آزمایش را تکرار کنیم و این روند آنقدر ادامه پیدا کند تا طراحی مناسب برای اتومبیلی با خصوصیات مورد نظر شکل گیرد. میبینیم که چنین روشی بسیار پرهزینه است و این هزینه هم شامل هزینههای اقتصادی است و هم هزینههای زمانی، چون علاوه بر این که در هر مرحله آزمایش بایستی اتومبیل با صرف هزینه بالا ساخته شود، زمان ساخت آن نیز طول خواهد کشید.
ولی متخصصان برای انجام چنین آزمایشی به مدل روی میآورند. یعنی یک جسم فیزیکی کوچک با خصوصیات آئرودینامیکی لحاظ شده در طراحی اتومبیل، ساخته میشود و با قرار دادن آن در یک تونل باد، حرکت اتومبیل در فضای واقعی را شبیه سازی میکنند و بدین طریق میزان مقاومت هوا را میسنجند.
نکات مورد توجه در این مدلسازی، یکی اندازه مدل و دیگری خصوصیات آن میباشد. مدل بسیار ساده و کوچک میباشد و از طرفی تنها خصوصیت آئرودینامیکی اتومبیل در مدل لحاظ میشود. چرا که هدف ما از مدلسازی تنها بررسی خصوصیات آئرودینامیکی اتومبیل است و مدل الزاماً نبایستی از جنبههای دیگر، شباهتی به اتومبیل واقعی داشته باشد. مثلا در ساخت چنین مدلی به هیچوجه به استحکام اجزا و یا زیبایی مدل توجه نمیشود چون بررسی چنین خصوصیاتی خارج از هدف این مدلسازی خاص است.
مثال بالاتنها یک جنبه از مدلسازی را بیان میکند و آن جنبه شناختExploration میباشد. یعنی در مدلسازیهای مشابه مدلسازی فوقالذکر، هدف از مدلسازی تنها شناخت محیط مورد مدل میباشد. یک جنبه دیگر از مدلسازی تبیین (specification) میباشد. یعنی گاه برای معرفی و ارائه خصوصیات یک موجودیت واقعی یک مدل از آن ارائه میشود. نقشه جغرافیایی مثال خوبی است که این جنبه از مدلسازی را مورد نظر دارد.
پس میتوان گفت که هدف از مدلسازی دو چیز میباشد:
الف)شناخت(exploration) ب)تبیین(specification)
که بر اساس تعریف مسئله، مدلسازی یکی یا هردو هدف را در نظر میگیرد.
مهندسی نرم افزار و معرفی UML
یکی از مباحث مهم در علم کامپیوتر بحث مهندسی نرم افزار می باشد که متاسفانه در ایران در وب سایت ها کمتر به آن پرداخته می شود . در حالیکه امروزه شرکت ها بدون داشتن اصول مشخص مهندسی نرم افزار هیچگاه تصمیم به ایجاد سیستم های نرم افزاری نمی گیرند .
همانگونه که می دانید طراحی و تولید سیستم های نرم افزاری دارای یک چرخه حیات می باشد که در علم مهندسی نرم افزار به بررسی این چرخه حیات و عوامل مرتبط با آن پرداخته می شود . به طور کلی مراحل این چرخه به شرح زیر می باشد :
فعالیت جمع آوری نیازمندی های و مشخص کردن آنها . این نیازمندی ها کاری را که سیستم می بایست انجام دهد را مشخص می کنند .
فعالیت تحلیل نیازمندی ها برای درک بهتر آنها .
فعالیت طراحی برای اینکه مشخص شود که سیستم چگونه نیازمندی ها را برآورده می کند .
فعالیت ساخت سیستم .
آزمایش سیستم برای تایید اینکه آیا سیستم نیازمندی ها را برآورده کرده است یانه ؟
و در نهایت فعالیت تحویل سیستم .
حال متدلوژی های مختلفی برای انجام این فعالیت ها وجود دارد و هر کدام به نحوی به انجام این کار ها می پردازند .
متدولوژی
در ابتدا باید به تعریف متدلوژی و اینکه یک متدلوژی چه کاری انجام می دهد پرداخت .
تعریف : متدلوژی یا فراروش مجموعه ای است همگرا و هدف مدار از مفاهیم ، عقاید ، ارزش ها و اصولی که بوسیله منابعی در جهت حل مسایل گروهی بکار گرفته می شود و می خواهد تغییرات مطلوبی را در وضع موجود یک سیستم بطور غیر تصادفی ایجاد نماید .
یک متدلوژی در حقیقت سه وظیفه دارد .
فرموله کردن مسئله .
بیان نحوه حل مسئله
پیاده سازی مسئله .
هدف من در اینجا بررسی متدلوژی های شی گرا می باشد . دیدگاه شی گرایی از اواسط دهه 70 میلادی در مباحث برنامه نویسی کامپیوتر متولد شد . پس از گذشت چند