تکنولوژی شیء گرا

تکنولوژی شیء گرا یکی از نویسنده‌گان این کتاب، پورفسور H.M.Deitel شاهد یک فروپاشی در اواخر دهه ۱۹۶۰ توسط سازمان‌های توسعه نرم‌افزار، بویژه در شرکتهای بود که پروژه‌هائی در سطح کلان انجام می‌دادند. زمانیکه Deitel دانشجو بود، فرصت کار کردن در یک گروه توسعه دهنده در بخش اشتراک زمانی و حافظه مجازی سیستم‌های عامل را بدست آورد، که در نوع خود یک تجربه با ارزش محسوب می‌شد. اما در تابستان ۱۹۶۷، شرکت تصمیم به متوقف کردن پروژه بدلایل اقتصادی کرد، پروژهای که صدها نفر بمدت چندین سال بر روی آن کار کرده بودند. این موضوع نشان داد که نرم‌افزار محصول پیچیده‌ای است.


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

 

 

 

 

منبع : پی سی کد