لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 16
برنامه نویسی شیء گرا .NET
مقدمه ای بر برنامه نویسی شی گراء در دات نت
برنامه نویسی شی گراء، بدون شک مهمترین تحول در دنیای نرم افزار طی سالیان گذشته بوده که بیشترین تاثیر را در پیشبرد نرم افزار بدنبال داشته و ما امروز در صنعت گسترده نرم افزار از دستاوردهای وسیع آن بهره مند هستیم . در این مقاله قصد داریم ، به بررسی برنامه نویسی شی گراء پرداخته و از این زاویه نگاهی به دات نت داشته باشیم .
بمنظور شناخت برنامه نویسی شی گراء ، کافی است به اطراف خود نگاهی داشته باشیم .جارو برقی ، قهوه جوش ، پنکه سقفی و مجموعه بسیار گسترده ای از سایر اشیاء را پیرامون زندگی خود مشاهده می نمائیم . اشیاء ما را محاصره و یا در محاصره اشیاء می باشیم . برخی از این اشیاء نظیر دوربین ، مستقل عمل نموه و برخی دیگر نظیر تلفن و ماشین های پاسخگو با سایر اشیاء ارتباط دارند . برخی از اشیاء دارای داده ها ئی می باشند که بین کاربران استفاده می گردد(یک دفترچه تلقن) . برخی از اشیاء شامل اشیاء دیگری می باشند، یک دستگاه بستنی ساز درون فریزر ، نمونه ای در این زمینه است .
بسیاری از اشیاء از لحاظ عملکرد با یکدیگر مشابه ولی از لحاظ اهداف با یکدیگر متفاوت می باشند . مثلا" وان حمام و سینک آشبزخانه هر دو امکان استفاده از آب را فراهم می نمایند ،ولی این کار بندرت اتفاق خواهد افتاد که شما در سینک آشبزخانه دوش گرفته و یا ظروف آشبزخانه خود را در وان حمام بشوئید! بهرحال وان حمام و سینک آشبزخانه موجود در منزل ، احتمالا" از یک لوله آب مشترک در ساختمان استفاده و اینترفیس آنها در موارد متعددی مشترک است ( پیچ آب گرم وسرد ، یک شیر آب ، یک فاضلاب ) .
در صورت تامل در ارتباط با اشیاء فوق ، با سوالات متعددی مواجه خواهیم شد . چه تفاوت هائی بین یک وان حمام و سینک آشبزحانه ، وجود دارد ؟ آیا اختلاف موجود به محل آنها ، اندازه لگن و یا گودی آنها از سطح زمین برمی گردد. شباهت موجود بین اشیاء فوق چیست ؟در برخی موارد انجام عملات یکسان در ارتباط با یک شی ، رفتارهای متفاوتی را بدنبال خواهد داشت . یک شی قادر به انجام عملیات متفاوتی با توجه به ماهیت وضعیت بوجود آمده است . مثلا " زمانیکه دکمه Play یک دستگاه کنترل کننده DVD و یا VCD فعال می گردد ، دستگاه قوق ، یک فیلم را پخش و ما شاهد نمایش آن بر روی صفحه تلویزیون خواهیم بود. اما اگر یک CD در دستگاه Player باشد ، همزمان با فشردن دکمه Play ، دستگاه Player باعث پخش CD صوتی شده و ما شاهد نواختن موسیقی از بلندگوهای مربوطه خواهیم بود. همانگونه که مشاهده می گردد در چنین وضعیتی ، فعال نمودن دکمه ها ی مشابه ، عملیات یکسان ولی با نتایج متفاوت را بدنبال داشته است .
به بسیاری از اشیاء پیرامون خود، می توان بعنوان جعبه های سیاه ( black box ) ، نگاه نمود.در چنین حالتی نسبت به اصول اولیه عملکرد شی مورد نظر و پردازش های اولیه آن شناخت لازم وجود خواهد داشت ولی بسیاری از جزئیات عملیاتی که یک شی انجام می دهد برای ما ناشناخته خواهد بود. اکثرا" در زمان استفاده از یک شی علاقه مند به رویکرد فوق می باشند ( آشنائی با پتانسیل های شی و نحوه بالفعل نمودن آنان و پرهیز از درگیر شدن و آگاهی از جزئیات مربوطه ) . در چنین مواردی برای استفاده از اشیاء موجود در منزل ، ضرورتی به آگاهی از مکانیزم داخلی بعنوان شرط لازم وجود نخواهد داشت و می توان بدون درگیر شدن در جزئیات از شی موجود استفاده نمود.
بمنظور بررسی موضوع اشاره شده ، می توانیم نگاهی به عملکرد یک لامپ 100 وات ، داشته باشیم . سیم پیچ درون لامپ چیزی بیشتر از یک مقاومت ساده نیست . زمانیکه برق فعال ( سوئیج فعال گردد) شده باشد ، حرارت سیم پیچ درون لامپ در حدود 2500 درجه سلسیوس ، خواهد بود.وضعیت فوق ، باعث تشعش گرما ئی متناسب با طول رشته سیم درون لامپ ( قطر خیر ) و حدود 1750 لومن ( واحد پخش نور) می گردد .بدین ترتیب نور مرئی با طول موجی حدود 555 نانومنر را شاهد خواهیم بود. رشته موجود در لامپ از تنگستن تشکیل شده است . آیا به این حجم ازاطلاعات بهمراه جزئیات مربوطه در زمان استفاده از لامپ ، نیاز خواهیم داشت و یا صرفا" می خواهیم زمانیکه سوئیچ فعال می گردد، لامپ روشن و با سایر مسائل و نحوه انجام این کار ، کاری نداریم ؟ در این راستا ، استفاده کنندگان از لامپ آن را بمنزله یک جعبه سیاه در نظر گرفته و صرفا" تمایل به آگاهی از نحوه استفاده از اینترفیس مربوطه برای بخدمت گرفتن پتانسیل موجود را دارند .
هر شی دارای دو خصلت ذاتی است : وضعیت ( state ) و رفتار ( Behavior ) . مثلا" یک لامپ دارای اطلاعاتی نظیر : روشن/خاموش بودن ، نام تجاری ، طول عمر و موارد دیگر است که جملگی وضعیت شی فوق را مشخص می نمایند. رفتار لامپ ، شامل ارائه نور و روشنائی است . یک شی مسلما" نسبت به خود ، بمنزله یک جزیره است . بسیاری از اشیاء بصورت دسته جمعی و با تشریک مساعی در یک سیستم قرار خواهند گرفت . مثلا" تلویزیون و بلندگوهای آن بخشی از سیستمی می باشند که موسوم به تئاتر خانوادگی است . یخچال و اجاق گاز بخشی از سیستمی با نام آشپزخانه می باشند. این نوع سیستم ها خود متعلق به یک سیستم بزرگتر و با نام آپارتمان و یا خانه می باشند . مجموعه ای از آپارتمانها سیستم دیگری را با نام مجتمع ایجاد می نمایند.یک نرم افزار را می توان مشتمل بر مجموعه ای از اشیاء در نظر گرفت که هر یک پتانسیل های لازم را ارائه و با بخدمت گرفتن آنان و بهره گیری از پتانسیل های موجود زمینه نیل به اهداف مورد نظر فراهم خواهد شد. بمنظور طراحی و پیاده سازی یک برنامه شی گراء در اولین مرحله می بایست ، اقدام به طراحی و ایجاد اشیاء مورد نظر با توجه به اهداف نرم افزار نمود.مرحله فوق ، اولین گام و بدون شک مهمترین مرحله در فرآیند ایجاد یک سیستم است . در مرحله دوم که ارزش آن شاید بمراتب بالاتر از مرحله قبل باشد ، می بایست نحوه ارتباط اشیاء با یکدیگر بدرستی مشخص گردد. در زمان ایجاد یک سیستم بزرگ که دارای پیچیدگی های خاص خود است ، می بایست نسبت به دو مرحله فوق ، شناخت لازم وجود داشته و بدون آگاهی لازم ، امکان ایچاد اینچنین سیستم های بزرگی با رویکرد شی گراء ، چالش های خاص خود را بدنبال خواهند داشت . در چنین مواردی می توان فرآیند پیاده سازی یک سیستم را شامل دو مرحله مهم طراحی شی گراء و برنامه نویسی شی گراء در نظر گرفت . برنامه نویسی مبتنی بر عنصر ، پایه و اساس این نوع سیستم ها محسوب می گردد . برنامه نویسی اشیاء در نرم افزار ، نیازمند یک زبان برنامه نویسی شی گراء نمی باشد و اگر از یک زبان برنامه نویسی شی گراء استفاده می گردد ، بدین مفهوم نخواهد بود که کد نوشته شده ، شی گراء خواهد بود. زبان ها صرفا" می توانند کمکی در فرآیند فوق را ارائه و هیچگونه تضمینی در این رابطه را ارائه نخواهند داد. با استفاده از ویژوال بیسیک ، امکان نوشتن نرم افزار شی
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 53
آموزش توسعه نرم افزار های شیء گرا توسط UML
فصل اول: مفاهیم شیء گرایی
مقدمه
شئ گرایی برای توسعه نرم افزار اولین بار در سال 1960 پیشنهاد شد، این روش پس از 20 سال به طور گسترده مورد استفادة جامعه نرم افزاری قرار گرفت. توسعه دهندگان نرم افزار در دهه 1980 توجه جدی خو د را روی شئ گرایی معطوف کردند. تکنولوژی شئ، قابلیت استفاده مجدد را برای مؤلفه های نرم افزاری به ارمغان آورد و این نیز به نوبه خود در تسریع توسعه نرم افزار و تولید محصول با کارایی بالا تاثیر بسزایی دارد؛ بعلاوه سیستمهای شئ گرا، براحتی قابل توسعه و به سهولت با محیط سازگار- از نظر تعامل با سیستمهای موجود در محیط استفاده از نرم افزار- می شوند . دیدگاه شئ گرایی یک سیر تکاملی دارد؛ همچنانکه در بخشهای بعدی خواهیم دید، تعیین همه کلاسهای لازم برای یک سیستم دریک تکرار تا اندازه ای غیرممکن است و به محض تکمیل مدلهای تحلیل و طراحی نیاز به کلاسهای جدید در سیستم نمایان می شود.
درک سیستمهای پیچیده وتولید نرم افزار برای چنین سیستمهایی توسط افرادی که در این زمینه تجربه کافی ندارند، کاری بس مشکل است . همچنین محصولی که این افراد تولید می کنند کارایی لازم را نخواهد داشت، در اینجا مهندسی نرم افزار به کمک افراد آمده و با مطالعه روشها و فنون مختلف مسیر توسعه و تولید نرم افزار را هموار می- سازد. تجربیات بدست آمده در این زمینه، متدها و فرآیندهای متنوعی را برای توسعه نرم افزار در اختیار توسعه دهندگان قرار داده و ابزارهای مناسبی نیز این روشها را پشتیبانی می کنند.
درتوسعه یا ساخت نرم افزار برای یک سیستم، مشتری باید تعریف دقیقی از سیستم را در اختیار توسعه دهنده قرار دهد. در توصیف سیستم، زبان طبیعی تا آن اندازه دقیق نیست که بتوان همه نیازمندیها، ساختار و رفتار سیستم را با آن بیان کرد و کد نویسی نیز چنان وارد جزئیات می شود که به یکباره نمی توان سیستم را در این سطح تشریح کرد. لذا برای درک سیستم دست به مدل سازی می زنیم و مؤلفه های سیستم ، زیر سیستمها و رفتار سیستم را به صورت نمودارهای گرافیکی ترسیم می نماییم تا موارد قابل کاربرد و مهم به صورت برجسته به چشم بخورد و هیچ موردی در حوزة سیستم از قلم نیافتد .
در متد شئ گرا از زبان مدلسازی استانداردUML که در فصل چهارم به تفصیل خواهدآمد، استفاده می شود. این زبان به وسیله ابزارهای مختلفی نظیر Rational Rose ، visio و … پشتیبانی می شود، میتوان ازUML در فرآیندهای مختلف استفاده کرد.
مفاهیم اساسی
در این بخش مفاهیم اساسی توسعة نرم افزار شئ گرا را معرفی می کنیم. در بالا به متد و فرآیند اشاره شد اما هیچ تعریفی از آنها ارائه نشد، حال این دو مفهوم کلی را بصورت زیر تعریف می کنیم.
متد، متدلوژی و اشیاء
متد مجموعه ای از وظایف را جهت تعیین نیازمندیها، تحلیل، طراحی، برنامه ریزی، تست و پشتیبانی مشخص می کند. از نظر فنی فرآیند توسعه نرم افزار- متدلوژی- یک قالب کاری برای وظایف لازم جهت ساختن یک نرم افزار با کیفیت بالاست. در واقع متدلوژی، فرآیندی ساختارمند جهت توسعه نرم افزار است که به وسیله فنون و ابزارها حمایت می شود.
متد شئ گرا برپایه شئ استوار است، دیدگاه شئ گرا دنیای واقعی مسئله را بصورت مجموعه ای از اشیاء مرتبط به هم می بیند. شئ یک موجودیت است که در دامنة مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسة خاص خودش است. شئ می تواند یک ساختار ، نقش ، مکان و ... باشد؛ شئ داده و رفتار را در خود کپسوله میکند و از دسترسی اشیاء دیگر به داده های خود جلوگیری و همچنین تا ثیر تغییرات محیطی بر این داده ها را کاهش می دهد و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ می باشد. کلاس نوع اشیاء را نشان می دهد و شامل ویژگی های مشترک مجموعه ای از اشیاء می باشد، شئ نمونه ای از کلاس است . داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند. اعمال به دستکاری تعداد محدودی از صفات می پردازند و ارتباط بین کلاس ها و دیگر عناصرسیستم نیز از طریق همین سرویسها- اعمال – صورت می گیرد. به عبارت دیگر کلاس یک مشخصه کلی (قالب ، الگو یا طرح اولیه )است که مجموعه ای ازاشیاء مشابه را نشان می- دهد.نماد گرافیکی کلاس در شکل زیر نشان داده شده است، این نماد شامل سه قسمت است که بترتیب نام کلاس ، لیست صفات و لیست اعمال را نشان می دهند.
------------------------ نام کلاس
------------------------ لیست صفات
------------------------ لیست اعمال
------------------------
با تعریف کردن اشیاء موجود در سیستم از نوع یک کلاس خاص، این اشیاء همه صفات، اعمال و روابط کلاس مربوطه را به ارث می برند. یک فوق کلاس شامل ویژگی های مشترک صفات و اعمال جمعی از کلاسهاست و زیرکلاس یک حالت خاص ازفوق کلاس است که به آن تخصیص نیزگفته می شود. این تعاریف از وجود یک سلسله مراتب نشان می دهد که در آن کلاسهای تعمیم(فوق کلاس) توسط کلاسهای تخصیص به ارث برده می شوند، ممکن است که هر کدام ازکلاس های تخصیص دارای یکسری صفات و اعمال اختصاصی اضافی باشند. مجموعه مقادیر موجود برای یک صفت در یک کلاس، دامنه مقادیر آن صفت را نشان می دهد.
پیامها وسیله برقراری ارتباط و تعامل بین اشیاء می باشند ، این پیامها شئ مقصد را تحریک می کنند تا یک کار خاص را انجام دهد. سرویسی که در شیء فرستنده پیام تولید می کند، یک پیام با قالب message:[destination, operation, parameters] ارسال میکند که در آن destination شیء گیرنده و operation سرویسی از شیء گیرنده است که پیام را دریافت می کند و parameters شامل اطلاعات لازم جهت انجام موفق سرویس خواسته شده است. شکل 1-2 مثالی از کلاسهای تعمیم و تخصیص را نشان می دهد که در آن برای دانشجو یک فوق کلاس دانشجو داریم که شامل داده ها و اعمال مشترک بین دانشجویان دورة لیسانس و فوق لیسانس است، همچنین دو زیر کلاس تخصیص جداگانه برای دانشجویان لیسانس و فوق لیسانس نشان داده شده است که حالات خاصی از کلاس دانشجو هستند. در عمل ما شیئی از نوع فوق کلاس دانشجو نخواهیم داشت، در این حالت به کلاسstudent یک کلاس مجرد گفته می- شود . کلاس مجرد کلاسی است که هیچ شیئی از آن نوع نداشته باشیم.
کپسوله سازی، ارث بری و چند ریختی
با توجه به مطالب ذکر شده در بالا، شیء گرایی به واسطه سه خاصیت مهم کپسوله سازی، ارث بری و چند ریختی یک روش منحصر بفرد است . بطور کلی کپسوله سازی تکنیکی است که
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 16
برنامه نویسی شیء گرا .NET
مقدمه ای بر برنامه نویسی شی گراء در دات نت
برنامه نویسی شی گراء، بدون شک مهمترین تحول در دنیای نرم افزار طی سالیان گذشته بوده که بیشترین تاثیر را در پیشبرد نرم افزار بدنبال داشته و ما امروز در صنعت گسترده نرم افزار از دستاوردهای وسیع آن بهره مند هستیم . در این مقاله قصد داریم ، به بررسی برنامه نویسی شی گراء پرداخته و از این زاویه نگاهی به دات نت داشته باشیم .
بمنظور شناخت برنامه نویسی شی گراء ، کافی است به اطراف خود نگاهی داشته باشیم .جارو برقی ، قهوه جوش ، پنکه سقفی و مجموعه بسیار گسترده ای از سایر اشیاء را پیرامون زندگی خود مشاهده می نمائیم . اشیاء ما را محاصره و یا در محاصره اشیاء می باشیم . برخی از این اشیاء نظیر دوربین ، مستقل عمل نموه و برخی دیگر نظیر تلفن و ماشین های پاسخگو با سایر اشیاء ارتباط دارند . برخی از اشیاء دارای داده ها ئی می باشند که بین کاربران استفاده می گردد(یک دفترچه تلقن) . برخی از اشیاء شامل اشیاء دیگری می باشند، یک دستگاه بستنی ساز درون فریزر ، نمونه ای در این زمینه است .
بسیاری از اشیاء از لحاظ عملکرد با یکدیگر مشابه ولی از لحاظ اهداف با یکدیگر متفاوت می باشند . مثلا" وان حمام و سینک آشبزخانه هر دو امکان استفاده از آب را فراهم می نمایند ،ولی این کار بندرت اتفاق خواهد افتاد که شما در سینک آشبزخانه دوش گرفته و یا ظروف آشبزخانه خود را در وان حمام بشوئید! بهرحال وان حمام و سینک آشبزخانه موجود در منزل ، احتمالا" از یک لوله آب مشترک در ساختمان استفاده و اینترفیس آنها در موارد متعددی مشترک است ( پیچ آب گرم وسرد ، یک شیر آب ، یک فاضلاب ) .
در صورت تامل در ارتباط با اشیاء فوق ، با سوالات متعددی مواجه خواهیم شد . چه تفاوت هائی بین یک وان حمام و سینک آشبزحانه ، وجود دارد ؟ آیا اختلاف موجود به محل آنها ، اندازه لگن و یا گودی آنها از سطح زمین برمی گردد. شباهت موجود بین اشیاء فوق چیست ؟در برخی موارد انجام عملات یکسان در ارتباط با یک شی ، رفتارهای متفاوتی را بدنبال خواهد داشت . یک شی قادر به انجام عملیات متفاوتی با توجه به ماهیت وضعیت بوجود آمده است . مثلا " زمانیکه دکمه Play یک دستگاه کنترل کننده DVD و یا VCD فعال می گردد ، دستگاه قوق ، یک فیلم را پخش و ما شاهد نمایش آن بر روی صفحه تلویزیون خواهیم بود. اما اگر یک CD در دستگاه Player باشد ، همزمان با فشردن دکمه Play ، دستگاه Player باعث پخش CD صوتی شده و ما شاهد نواختن موسیقی از بلندگوهای مربوطه خواهیم بود. همانگونه که مشاهده می گردد در چنین وضعیتی ، فعال نمودن دکمه ها ی مشابه ، عملیات یکسان ولی با نتایج متفاوت را بدنبال داشته است .
به بسیاری از اشیاء پیرامون خود، می توان بعنوان جعبه های سیاه ( black box ) ، نگاه نمود.در چنین حالتی نسبت به اصول اولیه عملکرد شی مورد نظر و پردازش های اولیه آن شناخت لازم وجود خواهد داشت ولی بسیاری از جزئیات عملیاتی که یک شی انجام می دهد برای ما ناشناخته خواهد بود. اکثرا" در زمان استفاده از یک شی علاقه مند به رویکرد فوق می باشند ( آشنائی با پتانسیل های شی و نحوه بالفعل نمودن آنان و پرهیز از درگیر شدن و آگاهی از جزئیات مربوطه ) . در چنین مواردی برای استفاده از اشیاء موجود در منزل ، ضرورتی به آگاهی از مکانیزم داخلی بعنوان شرط لازم وجود نخواهد داشت و می توان بدون درگیر شدن در جزئیات از شی موجود استفاده نمود.
بمنظور بررسی موضوع اشاره شده ، می توانیم نگاهی به عملکرد یک لامپ 100 وات ، داشته باشیم . سیم پیچ درون لامپ چیزی بیشتر از یک مقاومت ساده نیست . زمانیکه برق فعال ( سوئیج فعال گردد) شده باشد ، حرارت سیم پیچ درون لامپ در حدود 2500 درجه سلسیوس ، خواهد بود.وضعیت فوق ، باعث تشعش گرما ئی متناسب با طول رشته سیم درون لامپ ( قطر خیر ) و حدود 1750 لومن ( واحد پخش نور) می گردد .بدین ترتیب نور مرئی با طول موجی حدود 555 نانومنر را شاهد خواهیم بود. رشته موجود در لامپ از تنگستن تشکیل شده است . آیا به این حجم ازاطلاعات بهمراه جزئیات مربوطه در زمان استفاده از لامپ ، نیاز خواهیم داشت و یا صرفا" می خواهیم زمانیکه سوئیچ فعال می گردد، لامپ روشن و با سایر مسائل و نحوه انجام این کار ، کاری نداریم ؟ در این راستا ، استفاده کنندگان از لامپ آن را بمنزله یک جعبه سیاه در نظر گرفته و صرفا" تمایل به آگاهی از نحوه استفاده از اینترفیس مربوطه برای بخدمت گرفتن پتانسیل موجود را دارند .
هر شی دارای دو خصلت ذاتی است : وضعیت ( state ) و رفتار ( Behavior ) . مثلا" یک لامپ دارای اطلاعاتی نظیر : روشن/خاموش بودن ، نام تجاری ، طول عمر و موارد دیگر است که جملگی وضعیت شی فوق را مشخص می نمایند. رفتار لامپ ، شامل ارائه نور و روشنائی است . یک شی مسلما" نسبت به خود ، بمنزله یک جزیره است . بسیاری از اشیاء بصورت دسته جمعی و با تشریک مساعی در یک سیستم قرار خواهند گرفت . مثلا" تلویزیون و بلندگوهای آن بخشی از سیستمی می باشند که موسوم به تئاتر خانوادگی است . یخچال و اجاق گاز بخشی از سیستمی با نام آشپزخانه می باشند. این نوع سیستم ها خود متعلق به یک سیستم بزرگتر و با نام آپارتمان و یا خانه می باشند . مجموعه ای از آپارتمانها سیستم دیگری را با نام مجتمع ایجاد می نمایند.یک نرم افزار را می توان مشتمل بر مجموعه ای از اشیاء در نظر گرفت که هر یک پتانسیل های لازم را ارائه و با بخدمت گرفتن آنان و بهره گیری از پتانسیل های موجود زمینه نیل به اهداف مورد نظر فراهم خواهد شد. بمنظور طراحی و پیاده سازی یک برنامه شی گراء در اولین مرحله می بایست ، اقدام به طراحی و ایجاد اشیاء مورد نظر با توجه به اهداف نرم افزار نمود.مرحله فوق ، اولین گام و بدون شک مهمترین مرحله در فرآیند ایجاد یک سیستم است . در مرحله دوم که ارزش آن شاید بمراتب بالاتر از مرحله قبل باشد ، می بایست نحوه ارتباط اشیاء با یکدیگر بدرستی مشخص گردد. در زمان ایجاد یک سیستم بزرگ که دارای پیچیدگی های خاص خود است ، می بایست نسبت به دو مرحله فوق ، شناخت لازم وجود داشته و بدون آگاهی لازم ، امکان ایچاد اینچنین سیستم های بزرگی با رویکرد شی گراء ، چالش های خاص خود را بدنبال خواهند داشت . در چنین مواردی می توان فرآیند پیاده سازی یک سیستم را شامل دو مرحله مهم طراحی شی گراء و برنامه نویسی شی گراء در نظر گرفت . برنامه نویسی مبتنی بر عنصر ، پایه و اساس این نوع سیستم ها محسوب می گردد . برنامه نویسی اشیاء در نرم افزار ، نیازمند یک زبان برنامه نویسی شی گراء نمی باشد و اگر از یک زبان برنامه نویسی شی گراء استفاده می گردد ، بدین مفهوم نخواهد بود که کد نوشته شده ، شی گراء خواهد بود. زبان ها صرفا" می توانند کمکی در فرآیند فوق را ارائه و هیچگونه تضمینی در این رابطه را ارائه نخواهند داد. با استفاده از ویژوال بیسیک ، امکان نوشتن نرم افزار شی
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 29
مقدمه ای بر برنامه نویسی شی گراء در دات نت
برنامه نویسی شی گراء، بدون شک مهمترین تحول در دنیای نرم افزار طی سالیان گذشته بوده که بیشترین تاثیر را در پیشبرد نرم افزار بدنبال داشته و ما امروز در صنعت گسترده نرم افزار از دستاوردهای وسیع آن بهره مند هستیم . در این مقاله قصد داریم ، به بررسی برنامه نویسی شی گراء پرداخته و از این زاویه نگاهی به دات نت داشته باشیم .
بمنظور شناخت برنامه نویسی شی گراء ، کافی است به اطراف خود نگاهی داشته باشیم .جارو برقی ، قهوه جوش ، پنکه سقفی و مجموعه بسیار گسترده ای از سایر اشیاء را پیرامون زندگی خود مشاهده می نمائیم . اشیاء ما را محاصره و یا در محاصره اشیاء می باشیم . برخی از این اشیاء نظیر دوربین ، مستقل عمل نموه و برخی دیگر نظیر تلفن و ماشین های پاسخگو با سایر اشیاء ارتباط دارند . برخی از اشیاء دارای داده ها ئی می باشند که بین کاربران استفاده می گردد(یک دفترچه تلقن) . برخی از اشیاء شامل اشیاء دیگری می باشند، یک دستگاه بستنی ساز درون فریزر ، نمونه ای در این زمینه است .
بسیاری از اشیاء از لحاظ عملکرد با یکدیگر مشابه ولی از لحاظ اهداف با یکدیگر متفاوت می باشند . مثلا" وان حمام و سینک آشبزخانه هر دو امکان استفاده از آب را فراهم می نمایند ،ولی این کار بندرت اتفاق خواهد افتاد که شما در سینک آشبزخانه دوش گرفته و یا ظروف آشبزخانه خود را در وان حمام بشوئید! بهرحال وان حمام و سینک آشبزخانه موجود در منزل ، احتمالا" از یک لوله آب مشترک در ساختمان استفاده و اینترفیس آنها در موارد متعددی مشترک است ( پیچ آب گرم وسرد ، یک شیر آب ، یک فاضلاب ) .
در صورت تامل در ارتباط با اشیاء فوق ، با سوالات متعددی مواجه خواهیم شد . چه تفاوت هائی بین یک وان حمام و سینک آشبزحانه ، وجود دارد ؟ آیا اختلاف موجود به محل آنها ، اندازه لگن و یا گودی آنها از سطح زمین برمی گردد. شباهت موجود بین اشیاء فوق چیست ؟در برخی موارد انجام عملات یکسان در ارتباط با یک شی ، رفتارهای متفاوتی را بدنبال خواهد داشت . یک شی قادر به انجام عملیات متفاوتی با توجه به ماهیت وضعیت بوجود آمده است . مثلا " زمانیکه دکمه Play یک دستگاه کنترل کننده DVD و یا VCD فعال می گردد ، دستگاه قوق ، یک فیلم را پخش و ما شاهد نمایش آن بر روی صفحه تلویزیون خواهیم بود. اما اگر یک CD در دستگاه Player باشد ، همزمان با فشردن دکمه Play ، دستگاه Player باعث پخش CD صوتی شده و ما شاهد نواختن موسیقی از بلندگوهای مربوطه خواهیم بود. همانگونه که مشاهده می گردد در چنین وضعیتی ، فعال نمودن دکمه ها ی مشابه ، عملیات یکسان ولی با نتایج متفاوت را بدنبال داشته است .
به بسیاری از اشیاء پیرامون خود، می توان بعنوان جعبه های سیاه ( black box ) ، نگاه نمود.در چنین حالتی نسبت به اصول اولیه عملکرد شی مورد نظر و پردازش های اولیه آن شناخت لازم وجود خواهد داشت ولی بسیاری از جزئیات عملیاتی که یک شی انجام می دهد برای ما ناشناخته خواهد بود. اکثرا" در زمان استفاده از یک شی علاقه مند به رویکرد فوق می باشند ( آشنائی با پتانسیل های شی و نحوه بالفعل نمودن آنان و پرهیز از درگیر شدن و آگاهی از جزئیات مربوطه ) . در چنین مواردی برای استفاده از اشیاء موجود در منزل ، ضرورتی به آگاهی از مکانیزم داخلی بعنوان شرط لازم وجود نخواهد داشت و می توان بدون درگیر شدن در جزئیات از شی موجود استفاده نمود.
بمنظور بررسی موضوع اشاره شده ، می توانیم نگاهی به عملکرد یک لامپ 100 وات ، داشته باشیم . سیم پیچ درون لامپ چیزی بیشتر از یک مقاومت ساده نیست . زمانیکه برق فعال ( سوئیج فعال گردد) شده باشد ، حرارت سیم پیچ درون لامپ در حدود 2500 درجه سلسیوس ، خواهد بود.وضعیت فوق ، باعث تشعش گرما ئی متناسب با طول
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 53
آموزش توسعه نرم افزار های شیء گرا توسط UML
فصل اول: مفاهیم شیء گرایی
مقدمه
شئ گرایی برای توسعه نرم افزار اولین بار در سال 1960 پیشنهاد شد، این روش پس از 20 سال به طور گسترده مورد استفادة جامعه نرم افزاری قرار گرفت. توسعه دهندگان نرم افزار در دهه 1980 توجه جدی خو د را روی شئ گرایی معطوف کردند. تکنولوژی شئ، قابلیت استفاده مجدد را برای مؤلفه های نرم افزاری به ارمغان آورد و این نیز به نوبه خود در تسریع توسعه نرم افزار و تولید محصول با کارایی بالا تاثیر بسزایی دارد؛ بعلاوه سیستمهای شئ گرا، براحتی قابل توسعه و به سهولت با محیط سازگار- از نظر تعامل با سیستمهای موجود در محیط استفاده از نرم افزار- می شوند . دیدگاه شئ گرایی یک سیر تکاملی دارد؛ همچنانکه در بخشهای بعدی خواهیم دید، تعیین همه کلاسهای لازم برای یک سیستم دریک تکرار تا اندازه ای غیرممکن است و به محض تکمیل مدلهای تحلیل و طراحی نیاز به کلاسهای جدید در سیستم نمایان می شود.
درک سیستمهای پیچیده وتولید نرم افزار برای چنین سیستمهایی توسط افرادی که در این زمینه تجربه کافی ندارند، کاری بس مشکل است . همچنین محصولی که این افراد تولید می کنند کارایی لازم را نخواهد داشت، در اینجا مهندسی نرم افزار به کمک افراد آمده و با مطالعه روشها و فنون مختلف مسیر توسعه و تولید نرم افزار را هموار می- سازد. تجربیات بدست آمده در این زمینه، متدها و فرآیندهای متنوعی را برای توسعه نرم افزار در اختیار توسعه دهندگان قرار داده و ابزارهای مناسبی نیز این روشها را پشتیبانی می کنند.
درتوسعه یا ساخت نرم افزار برای یک سیستم، مشتری باید تعریف دقیقی از سیستم را در اختیار توسعه دهنده قرار دهد. در توصیف سیستم، زبان طبیعی تا آن اندازه دقیق نیست که بتوان همه نیازمندیها، ساختار و رفتار سیستم را با آن بیان کرد و کد نویسی نیز چنان وارد جزئیات می شود که به یکباره نمی توان سیستم را در این سطح تشریح کرد. لذا برای درک سیستم دست به مدل سازی می زنیم و مؤلفه های سیستم ، زیر سیستمها و رفتار سیستم را به صورت نمودارهای گرافیکی ترسیم می نماییم تا موارد قابل کاربرد و مهم به صورت برجسته به چشم بخورد و هیچ موردی در حوزة سیستم از قلم نیافتد .
در متد شئ گرا از زبان مدلسازی استانداردUML که در فصل چهارم به تفصیل خواهدآمد، استفاده می شود. این زبان به وسیله ابزارهای مختلفی نظیر Rational Rose ، visio و … پشتیبانی می شود، میتوان ازUML در فرآیندهای مختلف استفاده کرد.
مفاهیم اساسی
در این بخش مفاهیم اساسی توسعة نرم افزار شئ گرا را معرفی می کنیم. در بالا به متد و فرآیند اشاره شد اما هیچ تعریفی از آنها ارائه نشد، حال این دو مفهوم کلی را بصورت زیر تعریف می کنیم.
متد، متدلوژی و اشیاء
متد مجموعه ای از وظایف را جهت تعیین نیازمندیها، تحلیل، طراحی، برنامه ریزی، تست و پشتیبانی مشخص می کند. از نظر فنی فرآیند توسعه نرم افزار- متدلوژی- یک قالب کاری برای وظایف لازم جهت ساختن یک نرم افزار با کیفیت بالاست. در واقع متدلوژی، فرآیندی ساختارمند جهت توسعه نرم افزار است که به وسیله فنون و ابزارها حمایت می شود.
متد شئ گرا برپایه شئ استوار است، دیدگاه شئ گرا دنیای واقعی مسئله را بصورت مجموعه ای از اشیاء مرتبط به هم می بیند. شئ یک موجودیت است که در دامنة مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسة خاص خودش است. شئ می تواند یک ساختار ، نقش ، مکان و ... باشد؛ شئ داده و رفتار را در خود کپسوله میکند و از دسترسی اشیاء دیگر به داده های خود جلوگیری و همچنین تا ثیر تغییرات محیطی بر این داده ها را کاهش می دهد و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ می باشد. کلاس نوع اشیاء را نشان می دهد و شامل ویژگی های مشترک مجموعه ای از اشیاء می باشد، شئ نمونه ای از کلاس است . داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند. اعمال به دستکاری تعداد محدودی از صفات می پردازند و ارتباط بین کلاس ها و دیگر عناصرسیستم نیز از طریق همین سرویسها- اعمال – صورت می گیرد. به عبارت دیگر کلاس یک مشخصه کلی (قالب ، الگو یا طرح اولیه )است که مجموعه ای ازاشیاء مشابه را نشان می- دهد.نماد گرافیکی کلاس در شکل زیر نشان داده شده است، این نماد شامل سه قسمت است که بترتیب نام کلاس ، لیست صفات و لیست اعمال را نشان می دهند.
------------------------ نام کلاس
------------------------ لیست صفات
------------------------ لیست اعمال
------------------------
با تعریف کردن اشیاء موجود در سیستم از نوع یک کلاس خاص، این اشیاء همه صفات، اعمال و روابط کلاس مربوطه را به ارث می برند. یک فوق کلاس شامل ویژگی های مشترک صفات و اعمال جمعی از کلاسهاست و زیرکلاس یک حالت خاص ازفوق کلاس است که به آن تخصیص نیزگفته می شود. این تعاریف از وجود یک سلسله مراتب نشان می دهد که در آن کلاسهای تعمیم(فوق کلاس) توسط کلاسهای تخصیص به ارث برده می شوند، ممکن است که هر کدام ازکلاس های تخصیص دارای یکسری صفات و اعمال اختصاصی اضافی باشند. مجموعه مقادیر موجود برای یک صفت در یک کلاس، دامنه مقادیر آن صفت را نشان می دهد.
پیامها وسیله برقراری ارتباط و تعامل بین اشیاء می باشند ، این پیامها شئ مقصد را تحریک می کنند تا یک کار خاص را انجام دهد. سرویسی که در شیء فرستنده پیام تولید می کند، یک پیام با قالب message:[destination, operation, parameters] ارسال میکند که در آن destination شیء گیرنده و operation سرویسی از شیء گیرنده است که پیام را دریافت می کند و parameters شامل اطلاعات لازم جهت انجام موفق سرویس خواسته شده است. شکل 1-2 مثالی از کلاسهای تعمیم و تخصیص را نشان می دهد که در آن برای دانشجو یک فوق کلاس دانشجو داریم که شامل داده ها و اعمال مشترک بین دانشجویان دورة لیسانس و فوق لیسانس است، همچنین دو زیر کلاس تخصیص جداگانه برای دانشجویان لیسانس و فوق لیسانس نشان داده شده است که حالات خاصی از کلاس دانشجو هستند. در عمل ما شیئی از نوع فوق کلاس دانشجو نخواهیم داشت، در این حالت به کلاسstudent یک کلاس مجرد گفته می- شود . کلاس مجرد کلاسی است که هیچ شیئی از آن نوع نداشته باشیم.
کپسوله سازی، ارث بری و چند ریختی
با توجه به مطالب ذکر شده در بالا، شیء گرایی به واسطه سه خاصیت مهم کپسوله سازی، ارث بری و چند ریختی یک روش منحصر بفرد است . بطور کلی کپسوله سازی تکنیکی است که