۵۸- نگرشی نو به شی گرایی

موضوع: معماری

دو هفته ای است که یک دوره آموزشی 30 ساعته UML و RUP برای آماده سازی تیم توسعه کاربردها به عنوان راهبران پروژه‌های نرم‌افزاری هماهنگ کردم. در انتخاب استاد و محتوی دوره خیلی دقت شد. نتیجه کار هم که از دو جلسه اخیر برمی‌آید کاملا مطلوب است. خودم هم از ابتدای دوره تا جایی که کارهای اضطراری اجازه داده شرکت کردم. قبلتر هم در دوره های UML و RUP حضور داشتم، اما نمی دانم به واسطه پرکتیکال بودن مدرس است یا این یک سالی که با مسایل توسعه نرم‌افزاری اینقدر از نزدیک روبرو بودم، که گفته های آقای مهرداد برایم درس نبود٬ کلمه به کلمه‌اش رو می تونستم در فضای موضوعاتی کاملا واقعی تجسم کنم. بگذریم از اصل مطلب دور شدم. در طول دوره تعریفی از یک سیستم شی‌گرا و تفاوت آن با نرم‌افزارهای ساخت‌یافته ارایه شد که برای خودم هم بسیار تازگی داشت.

«داستان از این قراره که روزی یک نفر از دهی به شهر میاد و از قضای روزگار به یک کنسرت موسیقی میره. در بازگشت از شهر در راه به مطرب ده میرسه که داشته با پسرش ساز و دهل میزده. همین که مطرب رو می بینه بهش میگه که من توی شهر رفتم یک جایی به اسم کنسرت و کلی از همکارات رو یک جا دیدم. مطرب هم که تا به اون روز کنسرت ندیده و نشنیده بوده، با بهت می پرسه که کنسرت چیه؟

مرد دهاتی میگه که کنسرت یه جایی که اولش که رفتیم تو یه عده روی یه بلندی با سازهاشون نشسته بودند و هر کی برای خودش هی ساز میزد (حواستون که هست داشتند سازهاشون رو کوک می کردند). بعد یکی که اصلا ساز نداشت از در اومد تو و همه براش دست زدند. بعد هم روشو کرد به مطربهای روی بلندی و شروع کرد به دستور دادن که تو بزن و تو نزن، تو بزن، تو نزن و الی آخر. آخرشم به همشون گفت دیگه نزنید. بعد هم مردم براش دوباره دست زدند و اون هی دولا و راست میشد می گفت من نبودم اینا بودن من نبودم اینا بودن.»

این دقیقا تعریف یک سیستم شی‌گراست. دقیقا هدف یک سیستم شی گرا ایجاد هارمونی معنادار (collaboration) میان اجزاء مستقل سیستم برای دست یابی به یک کارکرد مشخص است. در صورتی که در سیستمهای ساخت یافته رویکرد ما دقیقا رویکرد حل مساله بود. مساله تعریف می شد و برنامه نویس مساله را هدف گرفته و برای حل آن با استفاده از یک سری دستورات خطی شروع به حل مساله می‌کرد. در منطق شی گرا اجزا یک سیستم الزاما تعلقی به سیستم ندارند و می توانند به همان صورت که به سایر سیستم ها سرویس می دهند به سیستم مورد نظر ما نیز سرویسی را ارایه کنند. تنها مساله توان طراح سیستم در ایجاد تشریک مساعی و یا به تعبیری همکاری مناسب میان اجزاء مختلف سیستم است.

حرف آخر:

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

/ 4 نظر / 10 بازدید
علیرضا مجاهدی

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

محمدعلی

ای بابا محمد جان اگه مشتری داشتیم که پشت کامپیوتر نمی نشستیم وبلاگ نویسی کنیم...بماند...یک سری به Content Analysis بزن چیزهای جالبی پیدا می کنی...

اميرعلي

سرنوشت كتابي كه در پيشران ترجمه مي كردي به كجا رسيد؟ فكر مي كنم الان در جايگاه علمي قرار داري كه مي توني يك كتاب خوب در زمينه uml , rup تاليف كني. جايگاه كاريت هم جوري است كه مي توني چاپش كني. پس تنبلي نكن و اين كار را بكن. مي دوني تو بايد يه مدير برنامه تمام وقت بگيري. خيلي بي نظمي. اگه نبودي الان ۲-۳ تا بچه داشتي، دوره پست دكترات رو هم گذرونده بودي و ...... يا علي مدد!

محمدعلی

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