Object Oriented Methodology - متدولوژی شی گرا

وراثت

وراثت یا ارث بری (Inheritance) از مفاهیم اساسی برنامه نویسی شیءگراست. هر شیء یک نمونه از یک کلاس است و هر کلاس می‌تواند از کلاس یا کلاسهای دیگری مشتق شده باشد (خواص متدها یا رویدادهای کلاس‌های دیگر را به ارث ببرد). در یک مثال ساده می‌توان اتومبیلی را در نظر گرفت که برای جلوگیری از بازنویسی خواص عمومی اتومبیل شامل: چهار چرخ، متدهای حرکت چرخ، متد چرخاندن فرمان، فرمان، بدنه، در و غیره، می‌توان یک کلاس پایه از اتومبیل ایجاد کرد سپس مثلاً برای اتومبیل زانتیا مدل C۵ یک کلاس جدید ایجاد کرده که خواص، متدها و رویدادهای عمومی اتومبیل را داشته باشد و فقط برای خواص، متدها و رویدادهای جدید این اتومبیل کد نوشته شود. این ویژگی باعث صرفه‌جویی در نوشتن کد و تا حدودی تضمین صحت کد موجود می‌شود. به عنوان مثال اگر کلاس پایه مشکلی داشته باشد فقط کافی است کلاس پایه تغییر داده شود و در تمامی کلاس‌هایی که از این کلاس پایه ویژگی‌ای ا به ارث برده‌اند این تغییر اعمال خواهد شد.

مخفی‌سازی

کپسوله سازی، مخفی‌سازی (Encapsulation)، یا لفافه‌بندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده می‌خواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را بر می‌دارید، استارت می‌زنید و با فشار آوردن به پدال‌های گاز و ترمز و چرخش فرمان و ... به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً لنت ترمز به دیسک چرخ برخورد می‌کرد و باعث کم شدن سرعت می‌شد یا شمع‌ها شروع به جرقه زدن در زمانی بخصوصی می‌کردند. حال فرض کنید که عمل مخفی سازی وجود نداشت و شما مجبور بودید که جرقه زدن شمعها را کنترل می‌کردید و به سیستم سوخت رسانی در موقع لزوم دستور می‌دادید که سوخت را بداخل سیلندرها ارسال کند و... یا هیچ‌گاه به مقصد نمی‌رسیدید! یا سالم نمی‌رسیدید!

عمل مخفی سازی باعث می‌شود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند.

چندریختی

چند ریختی(Polymorphism) چند ریختی،کمیتی است که به یک رابط امکان می‌دهد تا از عملیات یکسانی در قالب یک کلاس عمومی استفاده کند.عمل خاص کلاس را ذات حقیقی شیء تعیین می‌کند.مثال ساده‌ای از چند ریختی،فرمان اتومبیل است.عمل فرمان اتومبیل برای تمام اتومبیل‌ها بدون توجه به ساز و کاری که دارند،یکسان است.فرمان برای اتومبیل که به طور مکانیکی کار می‌کند یا با نیروی برق یا هر چیز دیگری،عمل یکسانی را انجام می‌دهد.بنابراین،پس از اینکه شما عملکرد فرمان را یاد گرفتید،می توانید فرمان هر اتومبیلی را کنترل کنید.همین هدف در برناهه نویسی نیز اعمال می‌شود. به طور کلی،مفهوم چند ریختی،اغلب با عبارت ((یک رابط،چندین روش))بیان می‌شود. این بدین معنی است که امکان طراحی رابط عمومی برای گروهی از عملیات مرتبط وجود دارد. چند ریختی یا چندشکلی (Polymorphism) به این معنا است که اشیاء می‌توانند در موقعیت‌های مختلف، رفتارهای متفاوتی بروز دهند. مثلاً یک تابع در صورتی که بر روی نمونه‌ای از کلاس آ فراخوانی شود، رفتار ب را بروز دهد در حالی که اگر بر روی کلاس ج (که فرزند کلاس آ است) فراخوانی شود، رفتاری متفاوت انجام دهد.

انتزاع / تجرید
به این معنا است که بخشی از یک موجودیّت یک مفهوم را که میان همهٔ وارثان مشترک است، پیش تعریف کنیم. این توانایی منجر به داشتن نگاه مشابه به موجودیّت‌های مشابه می‌گردد.
یک مثال کاربردی :
در اطراف ما اشیاء زیادی وجود دارد و می‌توان تمام مفاهیم موجود در طبیعت را با اشیاء تقلیل داد. مثلاً یک ماشین باربری. این ماشین یک سری خصوصیات دارد: چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن و.... این ماشین در صورتی که ما پدال گاز آن را فشار دهیم، حرکت می‌کند. در صورتی که فرمان آن را بچرخانیم تغییر مسیر می‌دهد. پس این شیء علاوه بر یک سری خصوصیات، یک سری رفتار مشخص هم به ما نشان می‌دهد. ولی فقط این یک ماشین نیست که این کار را انجام می‌دهد. تمامی ماشین‌ها این کارها را انجام می‌دهند. پس می‌توانیم این ماشین را 'تعریف' کنیم و بگوییم:

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

مفاهیم فوق در زبان‌های برنامه نویسی شیءگرا گنجانده شده‌اند. در این زبان‌ها، اشیاء زیادی از پیش وجود دارند که برنامه‌نویسان می‌توانند از آنها استفاده کنند.

ارتباط اشیاء :
مجدداً به مثال ماشین باربری بر می‌گردیم و این بار، یک ماشین سواری را تعریف می‌کنیم. ماشین سواری شیئی است که چهار چرخ، یک ترمز، یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین باربری بسیار شبیه‌است. به عبارت دیگر ما به یک تعریف جدید می‌رسیم: خودرو. خودرو وسیله‌ای است که چهار چرخ، یک ترمز، یک پدال گاز دارد. پس از این به بعد تعریف ماشین باربری و ماشین سواری خیلی ساده‌تر می‌شود.

ماشین باربری، خودرویی است که محلی برای قرار دادن بار داشته باشد و ماشین سواری خودروییاست که صندوق عقب داشته باشد.
اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' می‌خواهد، چیزی دریافت نمی‌کند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها می‌تواتند ماشین باربری یا ماشین سواری بخواهد.
کارواش را در نظر می‌گیریم. این کارواش خودرو را تمیز می‌کند و دیگر به طور جزئی عنوان نمی‌کند که کدام نوع خودرو را تمیز می‌کند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
وقتی شخصی قصد اجاره خودرویی دارد، و می‌خواهد جنسی را حمل کند در هنگام نماس با متصدی کرایه ماشین می‌گوید: «اگر خودرو شمااز نوع باربری است، برای من ارسال کنید»، ولی اگر قصد جابجا شدن را دارد می‌گوید : «برای من یک ماشین سواری بفرستید.»

در زبان‌های برنامه نویسی شیءگرا نیز اشیاء مختلفی وجود دارند که تعریف آنها تکمیل کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری می‌کنند. برخی از تعاریف کاملاً عام است و نمی‌توان از آنها نمونه شیئی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته می‌شود.

امکان جدید گوگل برای Index کردن سریع وبلاگهای فارسی

پنجشنبه، ۲ اردیبهشتماه ۱۳۸۹

google logo

ايتنا - گوگل با توجه به اهميت اين موضوع و نيز دسترسي مناسبي که به محتواي شبکه اينترنت دارد، بتازگي سرويس جديدي ارائه کرده که امکان جست‌وجو در ميان وبلاگ‌ها را براي هر دو گروه تسهيل مي‌کند.


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

گوگل با توجه به اهميت اين موضوع و نيز دسترسي مناسبي که به محتواي شبکه اينترنت دارد، بتازگي سرويس جديدي ارائه کرده که امکان جست‌وجو در ميان وبلاگ‌ها را براي هر دو گروه تسهيل مي‌کند.

مطابق اين امکان، دارندگان وبلاگ با به‌روز کردن نوشته‌هاي خود، همزمان موتور جست‌وجوي گوگل را Ping مي‌کنند تا گوگل از تازه شدن محتواي اين وبلاگ مطلع گردد.
براي اين منظور، گوگل کدهايي را آماده کزده تا وبلاگ‌نويسان آن را در داخل وبلاگ خود قرار دهند.

گفتني است اين سرويس براي وبلاگ‌هاي فارسي با توجه به شمار زياد و تنوع فراوان، ابزار مناسبي به منظور آگاه‌سازي مخاطبان و نيز جست‌وجو در ميان حجم انبوه محتواي توليد شده خواهد بود.

همچنين گوگل ليست وبلاگ‌هاي به‌روز شده را در يک فايل XML مخصوص ارائه مي‌کند.

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

منبع : http://www.itna.ir


پیش بینی کاهش بودجه IT در سال 2010

January 26th, 2010

به گفته مرکز محاسبات ملی (NCC) براساس پیش‌بینی‌های انجام گرفته بر روی ساختار برنامه‌های IT، این تجارت انتظار یک کاهش خاص در بودجه IT را در سال 2010  خواهد داشت.

این تحقیق که بر روی صد شرکت نمونه توسط NCC انجام گرفته است، نشان داده است که 28% از این شرکت‌ها اذعان داشته‌اند که مجبور به کاهش اساسی در هزینه های IT شرکت‌شان هستند و 32% دیگر اعلام کرده‌اند که بايد هزینه‌های IT شرکت‌شان را تعدیل كنند.

بر اساس تحقیق صورت گرفته توسط NCC بیش‌تر این شرکت‌ها سرمایه‌گذاری زیربنایی‌شان در زمینهIT  را به تاخیر انداخته‌اند، 38% با به تعویق انداختن به روز کردن سخت‌افزاری شرکت و33 % در زمینه تازه کردن نرم‌افزارهای شرکت دست نگه داشته‌اند و 29% نیز به روز کردن ساختار شبکه شرکت‌شان را به تعویق انداخته‌اند.

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

منبع: Computer Weekly

شکایت گوگل علیه نام domain شرکت کاناداییGroovle

شرکت کانادایی دارنده موتور جست‌وجوی Groovle در دادگاه  برنده پرونده‌ای شد که بر اساس شکایت غول جست‌وجوی online گوگل تشکیل شده بود.

گوگل گفته بود که نام استفاده شده توسط این شرکت کوچک، بسیار شبیه نام گوکل است ولی هیات داوری با این مورد موافقت نکردند.

در شکایت گوگل خواسته شده بود که این شرکت در نام domain خود از پیش‌وندی نیز استفاده كند. اما قاضی تقاضای گوکل را در این زمینه رد کرد و گفت که نام Groovle بیش‌تر با Groovy  و groove شباهت دارد تا گوگل بنابراین این تقاضا را مردور اعلام کرد.

وی همچنین ادعای گوگل را در این زمینه را که این نام‌گذاری  با سوء نیت همراه بوده است، رد کرد.

به گفته موسس این شرکت این شرکت در حدود 5/2 سال است که با نام Groovle.com در حال فعالیت است و تا کنون شکایتی در این زمینه از سوی گوگل نداشته است.

این دومین بار از 65 شکایت گوگل در زمینه نام  domain  از شرکت‌های مختلف است که از سوی دادگاه رد شده است و در دفعه قبل  در سال 2004ریچارد ولف دادگاه را قانع کرد که نام domain این شرکت با عنوان froogles.com قابل اشتباه شدن با نام گوگل نیست.

منبع: BBC

حمله به گوگل با استفاده از رخنه‌پذیری مرورگر مایکروسافت

شرکت Mc Afee در خبري كه بعدا مايكروسافت هم آن را تاييد كرده است، اعلام كرد: حمله ماهرانه سایبر به گوگل و سایر شرکت‌های تجاری، با استفاده از ضعف موجود در مرورگر مایکروسافت بوده است.

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

به گفته شرکت Mc Afee طراحی حمله به این صورت بوده است که کارکنان شرکت را ترغیب به کلیک کردن بر روی لینک وب سایتی کرده است که به صورت مخفیانه نرم‌افزار مخرب‌شان را بر روی سیستم آن‌ها نصب کرده و بدون اطلاع آن‌ها کنترل کامپیوترشان را دردست گرفته و حمله خود را به وسیله آن انجام داده‌اند. شرکت Mc Afee همچنین گفته است که این اولین بار است که چنین حمله‌ای در فضای تجاری انجام گرفته است و پیش از این، چنين حملاتي مختص فضاهای دولتی بوده است.
مایکروسافت پیش از این وجود این رخنه را تایید کرده بود و توصیه‌هایی برای کاهش مشکل به کاربران قبل ازآماده کردن پچ اصلاحی آن منتشر کرده بود و از کاربران خواسته برای کم‌تر شدن رخنه‌پذیری از حالت protected این مرورگر با تنظیم امنیت آن بر روی high استفاده کنند.

پیش از این احتمال می‌رفت که این حمله با استفاده از مشکلات برنامه  Adobe Acrobat  صورت گرفته باشد اما کارشناسانMc Afee این احتمال را رد کردند و گفتند که با استفاده از نقطه نفوذپذیری مرورگر مایکروسافت که قرار بود تنها محدود به نسخه IE6  باشد و تا نسخه‌های فعلی آن نیز ادامه یافته است، صورت گرفته است.

منبع: Reuters