تكنولوژي شيء گرا

تكنولوژي شيء گرا يکي از نويسنده‌گان اين کتاب، پورفسور H.M.Deitel شاهد يک فروپاشي در اواخر دهه 1960 توسط سازمان‌هاي توسعه نرم‌افزار، بويژه در شرکتهاي بود که پروژه‌هائي در سطح کلان انجام مي‌دادند. زمانيکه Deitel دانشجو بود، فرصت کار کردن در يک گروه توسعه دهنده در بخش اشتراک زماني و حافظه مجازي سيستم‌هاي عامل را بدست آورد، که در نوع خود يک تجربه با ارزش محسوب مي‌شد. اما در تابستان 1967، شرکت تصميم به متوقف کردن پروژه بدلايل اقتصادي کرد، پروژهاي که صدها نفر بمدت چندين سال بر روي آن کار کرده بودند. اين موضوع نشان داد که نرم‌افزار محصول پيچيده‌اي است.


بهبود وضعيت نرم‌افزار از زماني آغاز شد که مزاياي برنامه‌نويسي ساخت‌يافته بر همگان هويدا گرديد (از دهه 970 ). اما تا دهه 1990 تکنولوژي برنامه‌نويسي شي‌‌گرا بطرز گسترده‌اي بکار گرفته نشد، تا اينکه برنامه‌نويسان به وجود ابزاري براي بهبود فرآيند توسعه نرم‌افزار، احساس نياز کردند.
در واقع، پيدايش تکنولوژي شي به ميانه دهه 1960 باز مي‌گردد. زبان برنامه‌نويسي C++ در AT&T و توسط Bjarne Stroustrup در اوايل دهه 1980 توسعه يافته که خود مبتني بر دو زبان C و Simula 67 است. زبان C در بدو کار در AT&T و براي پياده سازي سيستم عامل يونيکس در اوايل دهه 1970 ايجاد شد. زبان Simula 67، زبان برنامه‌نويسي شبيه سازي است که در سال 1967 و در اروپا توسعه يافته است. زبان C++ در برگيرنده قابليت‌ها و توانائي زبان‌هاي C و Simula در ايجاد و دستکاري شي‌ها است.
شي‌ها چيستند و چرا خاص مي‌باشند؟ در واقع، تکنولوژي شي، يک الگوي بسته (package) است که به ما در ايجاد واحدهاي نرم‌افزاري با معني کمک مي‌کند. شي‌ها تمرکز زيادي بر نواحي خاص برنامه‌ها دارند. شي‌ها مي‌توانند از جمله شي‌هاي تاريخ، زمان، پرداخت، فاکتور، صدا، ويدئو، فايل، رکورد و بسياري از موارد ديگر باشد. در حقيقت، مي‌توان هر چيزي را بفرم يک شي عرضه کرد.
ما در دنياي از شي‌ها زندگي مي‌کنيم. کافيست نگاهي به اطراف خود بياندازيم. اطراف ما پر است از اتومبيل‌ها، هواپيما، انسان‌ها، حيوانات، ساختمان‌ها، چراغ‌هاي ترافيگ، بالابرها، و بسياري از چيزهاي ديگر. قبل از اينکه زبان‌هاي برنامه‌نويسي شي‌‌گرا ابداع شوند، زبان‌هاي برنامه‌نويسي ( همانند FORTRAN، Pascal ، C و Basic ) بر روي اعمال يا actions بجاي چيزها يا شي‌ها (نام) تمرکز داشتند. با اينکه برنامه‌نويسان در دنيائي از شي‌ها زندگي مي‌کردند اما با فعل‌ها سرگرم بودند. خود همين تناقض باعث شد تا برنامه‌هاي نوشته شده از قدرت کافي برخوردار نباشند. هم اکنون که زبان‌هاي برنامه‌نويسي شي‌‌گرا همانند C و جاوا در دسترس هستند، برنامه‌نويسان به زندگي خود در يک دنياي شي‌‌گرا ادامه مي‌دهند و مي‌توانند برنامه‌هاي خود را با اسلوب شي‌‌گرا بنويسند. فرآيند برنامه‌نويسي شي‌‌گرا در مقايسه با برنامه‌نويسي روالي (procedural) ماهيت بسيار طبيعي‌تري دارد و نتيجه آن هم رضايت بخش‌تر است.
اصلي‌ترين مشکل برنامه‌نويسي روالي اين است که واحد‌هاي تشکيل دهنده برنامه نمي‌توانند به آساني نشاندهنده موجوديت‌هاي دنياي واقعي باشند. از اينرو، اين واحدها نمي‌توانند بطرز شايسته‌اي از قابليت استفاده مجدد برخوردار باشند. براي برنامه نويسان روالي، نوشتن دوباره و مجدد کدها در هر پروژه جديد و با وجود مشابه بودن اين کدها با نرم‌افزار پروژه‌هاي قبلي، چندان غير عادي نمي‌باشد. نتيجه اينکار تلف شدن زمان و هزينه‌ها است. با تکنولوژي شي، موجوديت‌هاي نرم‌افزاري (کلاس) ايجاد مي‌شوند و در صورتيکه بدرستي طراحي شده باشند، مي‌توان در آينده از آنها در پروژه‌هاي ديگر استفاده کرد.
استفاده از کتابخانه کامپونت‌ها با قابليت بکارگيري مجدد همانند MFC(Microsoft Foundation Classes) و کامپونت‌هاي توليد شده توسط Rogue Wave و ساير شرکتهاي نرم‌افزاري، مي‌تواند در کاهش هزينه‌ها و نيازهاي پياده‌سازي سيستم‌هاي خاص بسيار موثر باشد.
با بکارگيري برنامه‌نويسي شي‌‌گرا، نرم‌افزار توليد شده بسيار قابل فهم‌تر شده، نگهداري و سازماندهي آن اصولي‌تر و اصلاح و خطايابي آن ساده‌تر مي‌شود. اين موارد از اهميت خاصي برخوردار هستند چراکه تخمين زده مي‌شود که هشتاد در صد هزينه يک نرم‌افزار مربوط به دوره نگهداري و ارتقاء آن در چرخه طول عمرش است و ارتباطي با نوشتن و توسعه اوليه نرم‌افزار ندارد. با تمام اين اوصاف، مشخص است که برنامه‌نويسي شي‌‌گرا تبديل به يکي از کليدي‌ترين مفاهيم برنامه‌نويسي در چند دهه آينده خواهد شد.
يکي از دلايل نوشتن کدهاي متعلق بخود اين است که دقيقا مي‌دانيد که کد نوشته شده چگونه کار مي‌کند، و مي‌توانيد به بررسي آن بپردازيد. عيب اينکار هم در صرف زمان و پيچيد‌گي طراحي و پياده‌سازي کد جديد است.

 

 

 

 

منبع : پی سی کد