مهد شیءگرایی کجاست

  • یوسف مهرداد بی‌بالان

مطلبی از ایوار جیکابسون می‏خواندم که به نظرم خیلی جالب رسید و آن را با کمی دخل و تصرف در اینجا آوردم. مثل اینکه آقای جیکابسون مثل خیلی‏ها از اینکه همه آمریکا را با دویست سال تاریخ، مهد همه چیز می‏دانند و از جمله نرم‏افزار و شیءگرایی؛ کلی شاکی است.
جیکابسون نوشته بود که در سفرهایم خیلی‏ها از من در مورد تاریخچه برنامه‏نویسی شیءگرا و محل تولدش و اولین زبان برنامه‏نویسی شیءگرایی می‏پرسند.
“شاید قابل باور نباشد که اولین زبان شیءگرایی در کشور نروژ در سال 1967 با نام Simula توسط Ole-Johan Dahl و Kristen Nygaard ایجاد و ابداع شده است.سیمولا تمامی ويژگی‏های مهم شیءگرایی که امروزه در زبانهایی مانند جاوا وجود دارد؛ در خود داشت.
در همان زمان مؤلفه‏ها(Components) متولد شدند. تمامی چیزهایی که برای مؤلفه‏ها و توسعه مبتنی بر مؤلفه لازم و مهم است در سیستمهای Ericsson AXE در سوئد مورد استفاده قرار گرفته بود. از این رو اینکه مایکروسافت و بیل گیتس مؤلفه‏های نرم‏افزاری را اختراع کرده‏اند نادرست است.
آیا شما می‏دانید که پدر ++C کیست؟ بله Bjarne Stroustrop. وی دانمارکی است و پس از مطالعه و یادگیری Simula و پیوستنش به ATT در آمریکا زبان C را شبیه به Simula طراحی کرد و آن را ++C نامید.
آيا می‏دانید پدر لینوکس(Linux) کیست؟ Linus Torvalds فنلاندی مبدع لینوکس بود.
(نروژ سوئد فنلاند و دانمارک در شمال اروپا و همسایه یکدیگرند و آقای جیکابسون هم سوئدی است)

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

سینما پارادیزو

  • یوسف مهرداد بی‌بالان

فیلم سینما پارادیزو از تورناتوره به حق یکی از بهترین فیلمهای تمام دوران سینماست. دیالوگی از این فیلم را که به آن علاقه دارم در زیر آورده‏ام. به دوستانی که این فیلم را ندیده‏اند پیشنهاد می‏کنم حتماً این فیلم را ببینند، آنهم نه یک بار بلکه … بار. مثل خود من.

Alfredo: Living here day by day, you think it’s the center of the world. You believe nothing will ever change. Then you leave: a year, two years. When you come back, everything’s changed. The thread’s broken. What you came to find isn’t there. What was yours is gone. You have to go away for a long time… many years… before you can come back and find your people. The land where you were born. But now, no. It’s not possible. Right now you’re blinder than I am
Salvatore: Who said that? Gary Cooper? James Stewart? Henry Fonda? Eh
Alfredo: No, Toto. Nobody said it. This time it’s all me. Life isn’t like in the movies. Life… is much harder

http://en.wikipedia.org/wiki/Cinema_Paradiso

به پسرم درس بدهيد: نامه ی آبراهام لینکن به فرزندش

  • یوسف مهرداد بی‌بالان

مطلب زير از سايت http://tmc.blogfa.com برگرفته شده است و بسيار خواندني است. این متن نوشته آبراهام لینکلن رئیس جمهور فقید آمریکاست.

او بايد بداند كه همه مردم عادل و همه آن ها صادق نيستند ، اما به پسرم بياموزيد كه به ازاي هر شياد ، انسان صديقي هم وجود دارد . به او بگوييد ، به ازاي هر سياستمدار خودخواه ، رهبر جوانمردي هم يافت مي شود . به او بياموزيد ، كه در ازاي هر دشمن ، دوستي هم هست . مي دانم كه وقت مي گيرد ، اما به او بياموزيد اگر با كار و زحمت خويش ، يك دلار كاسبي كند بهتر از آن است كه جايي روي زمين پنج دلار بيابد . به او بياموزيد كه از باختن پند بگيرد . از پيروز شدن لذت ببرد . او را از غبطه خوردن بر حذر داريد . به او نقش و تاثير مهم خنديدن را يادآور شويد .
اگر مي توانيد ، به او نقش موثر كتاب در زندگي را آموزش دهيد . به او بگوييد تعمق كند ، به پرندگان در حال پرواز در دل آسمان دقيق شود . به گل هاي درون باغچه و زنبورها كه در هوا پرواز مي كنند ، دقيق شود .
به پسرم بياموزيد كه در مدرسه بهتر اين است كه مردود شود اما با تقلب به قبولي نرسد . به پسرم ياد بدهيد با ملايم ها ، ملايم و با گردن كش ها ، گردن كش باشد . به او بگوييد به عقايدش ايمان داشته باشد حتي اگر همه بر خلاف او حرف بزنند .
به پسرم ياد بدهيد كه همه حرف ها را بشنود و سخني را كه به نظرش درست مي رسد انتخاب كند .
ارزش هاي زندگي را به پسرم آموزش دهيد . اگر مي توانيد به پسرم ياد بدهيد كه در اوج اندوه تبسم كند . به او بياموزيد كه از اشك ريختن خجالت نكشد .
به او بياموزيد كه مي تواند براي فكر و شعورش مبلغي تعيين كند ، اما قيمت گذاري براي دل بي معناست .
به او بگوييد كه تسليم هياهو نشود و اگر خود را بر حق مي داند پاي سخنش بايستد و با تمام قوا بجنگد .
در كار تدريس به پسرم ملايمت به خرج دهيد اما از او يك نازپرورده نسازيد . بگذاريد كه او شجاع باشد ، به او بياموزيد كه به مردم اعتقاد داشته باشد توقع زيادي است اما ببينيد كه چه ميتوانيد بكنيد ، پسرم كودك كم سال بسيار خوبي است.

تمرین طراحی شی‏ءگرا

  • یوسف مهرداد بی‌بالان

آقاي محسن صبوريان تقبل زحمت نموده و در اين ترم كمك استاد (T.A) درس سيستمهاي شيءگرا خواهند بود. در كنار مباحث تحقيقي كه به دانشجويان محول خواهد گرديد، قرار بر آن است كه دانشجويان يك سري تكليف جهت تمرين و درك بهتر طراحي و پياده‏سازي سيستمهاي شيءگرا انجام دهند. اولين تمرين از اين سري تهيه و انجام آن به دانشجويان محول شده است. از آن جا كه تمرين نكات جالبي در خود دارد، صورت مسئله آن را در ادامه آورده‏ام. همين جا از آقاي صبوريان جهت تقبل اين زحمت كمال تشكر را دارم.

به نام خدا

تمرين شماره‌ي 2 (مشق عيد) – درس تحليل و طراحي شي‌گرا
عنوان:تحليل، ‌طراحي و پياده‌سازي مورد كاربرد امانت گرفتن كتاب از كتابخانه‌ي دانشكده

تاريخ تحويل: …

شرح:
در ادامه‌ي تمرينِ Domain Model Analysis، شما بايد مورد كاربرد فرايند امانت‌گيري كتاب از كتابخانه‌ي دانشکده را تحليل، طراحي و پياده‌سازي كنيد. مورد كاربرد امانت‌گيري (مسير اصلي و مسيرهاي جايگزين) در قسمت پاياني توضيح داده شده است. به عنوان تمرين تحليل، شما بايد مفاهيم موجود در محيط ، مشخصات هر يك و ارتباطات بين آن‌ها را بيابيد. براي اين کار استخراج مشخصه‌ها/صفات اصول تجريد و الگوهاي GRASP را به دقت رعايت كنيد و براي در نظر گرفتن هر صفت دليل منطقي داشته باشيد. علاوه بر اين، از روي مورد كاربرد، نمودار توالی سيستم (SSD) را (فقط براي مسير اصلي ) رسم كنيد. از آنجايي كه پيشتر در درس مهندسي نرم‌افزار رسم SSD‌ را ياد گرفته‌ايد، فقط اشاره مي‌شود كه:
SSD، نوعي نمودارِ توالي است كه در سطح تجريدِ بالا و به ازاي يك مورد كاربرد رسم مي‌شود. در اين نمودارِ توالي، سيستم به عنوان يك جعبه‌ي سياه در نظر گرفته مي‌شود و تأكيد بر ورودي‌هايي (درخواست‌ها، پيغام‌ها و …) است كه از كاربر (External Actor) به سيستم مي‌رسد، هر چند خروجي و پاسخ‌هاي سيستم هم لحاظ مي‌شود.
در فاز طراحي، بايد نمودارِ کلاسِ تهيه شده در بخش تحليل را (كه فاقد عمليات است)، با افزودن متودهاي لازم تكميل كنيد. به علاوه بايد SSD را به يك نمودارِ تواليِ مشروح، بسط دهيد.
در فاز پياده‌سازي هم بايد كليه‌ي كلاس‌ها و رابط ‌هايي را كه در دو مرحله‌ي قبل بازشناختيد، به كد تبديل كنيد. از آنجايي كه اين مورد كاربرد، يك قسمت از يك سيستم بزرگ كتابخانه مي‌باشد، براي اجرايي شدن كد پياده‌سازي شده، به دلخواه خود مي‌توانيد به‌عنوان لايه‌ي داده‌ها، از اشياء ساختگي ، پايگاه‌داده‌هاي جاسازي‌شده و يا فايل‌هاي متني ساده استفاده كنيد. به علاوه شما ملزم به پياده‌سازي رابط كاربر (UI) نيستيد و تمامي پيغام‌هاي سيستم را مي‌توانيد به صورت متن در خروجي نمايش دهيد، مورد کاربرد بايد کاملاً اجرايي شود. به عنوان مثال بايد تعدادي کتاب پيش‌فرض و همچنين اعضاي کتابخانه در مقاطع مختلف در سيستم کتابخانه داشته باشيد.

مواردي که در پايان اين تمرين بايد تحويل دهيد:
1. محصولات فاز تحليل: مستندات Domain Model و SSD. جزئيات: نمودار SSD بايد به فرمت استاندارد نمودار توالي در UML باشد. به عنوان Domain Model بايد مستندي از مفاهيم موجود در سيستم به همراه صفات و رابطه‌هاي آن‌ها تحويل داده شود. رابطه‌هاي بين مفاهيم، به عنوان نمودار کلاس در فاز طراحي تحويل داده مي‌شود.
2. محصولات فاز طراحي: نمودار کلاس و نمودار توالي. جزئيات: يک نمودار توالي و تعدادي نمودار کلاس به فرمت استاندارد UML.
3. محصولات فاز پياده‌سازي: کد اين مورد کاربرد به علاوه‌ي چندين (حداقل 10) Test Case براي آزمايش مسير اصلي و همه‌ي مسيرهاي فرعي (اعضاي کتابخانه در مقاطع مختلف و جريمه‌هاي مختلف). همان‌طور که گفته شد، شما فقط موظف به پياده‌سازي منطق صحيح اجرا شدن برنامه هستيد و نيازي به پياده‌سازي UI نيست. در عوض با اجرا کردن هر Test Case، بايد جريان عمل (و خطاهاي احتمالي) با پيغام‌هاي مناسب نمايش داده شود. در هنگام تحويل، Test Caseهاي شما اجرا و نتيجه‌ي کار مشاهده مي‌شود. يک نمونه Test Case:

mid1 = 1234; // sample member ID
showMemberfInfo(mid1); // print out member info
bid = {123, 234, 345}; // sample book IDs
addBook(mid1, bid[1]); // OK
addBook(mid1, bid[2]); // OK
addBook(mid1, bid[3]); // err! 1234 is undergraduate
mid2 = 1235; // another sample member ID.
showMemberfInfo(mid2); // print out member info
addBook(mid2, bid[1]); // err! bid[1] is already borrowed!

مورد كاربرد:
o پيش‌شرط‌ها:
1. کاربر براي ورود به سيستم بايد حساب (نام کاربري و کلمه‌ي عبور) داشته باشد.
2. متقاضي براي اخذ کتاب بايد کارت (شناسه) عضويت داشته باشد.
o مسير اصلي:
1. کاربر گزينه‌ي امانت را بر روي سيستم انتخاب مي‌کند؛
2. سيستم فرم پرسش شماره‌ي عضويت متقاضي امانت را نمايش مي‌دهد؛
3. کاربر شماره‌ي عضويت متقاضي امانت را وارد مي‌کند؛
4. سيستم مشخصاتِ عضو (شامل نام، نام خانوادگي، شماره‌ي عضويت، مقطع تحصيلي، ظرفيت مانده براي امانت و مجموع جريمه‌ي ديرکردِ تصفيه نشده) و مشخصات کتاب يا کتاب‌هاي پيشتر امانت گرفته‌شده (شامل نام کتاب، شناسه‌ي کتاب و همچنين تاريخ بازگشت آن) را نمايش مي‌دهد؛
5. کاربر شناسه‌ي کتاب را وارد مي‌کند و کليد ثبت فشار مي‌دهد. با اين کار: 1. شناسه‌ي کتاب و تاريخ امانت به همراه تاريخِ برگشتِ محاسبه شده براي عضو ذخيره مي‌شود. 2. وضعيت كتاب در سيستم به «امانت داده شده» تبديل مي‌شود.
6. در صورتي که عضو قصد دارد بيش از يک کتاب را امانت بگيرد مرحله‌ي 5 تکرار مي‌شود. پس از ثبت امانت اين مورد کاربرد به پايان مي‌رسد.
o مسيرهاي جايگزين:
[1] موجود نبودن کتاب
– در هنگام ثبت امانت، در صورتي که وضعيت کتاب، «امانت داده شده» بود، پيغام «کتاب امانت داده شده است» به کاربر نشان داده مي‌شود.
[2] پيدا نکردن کتاب
– در هنگام ثبت امانت، در صورتي که کتابي با شناسه‌ي وارد شده وجود نداشت، پيغام عدم وجود کتاب به کاربر نشان داده مي‌شود.
[3] پر بودن ظرفيت امانت عضو
– در صورت پر بودن ظرفيت امانت، در صفحه‌ي مشخصات عضو، پيغام پر بودن ظرفيت اخذ کتاب به کاربر نمايش داده مي‌شود و کليد/عمليات ثبت غير فعال مي‌گردد.
[4] منقضي شدن عضويت
– در صورتي که عضويت متقاضي امانت منقضي شده باشد، صفحه‌ي مشخصات عضو با پيغامِ منقضي شدن حساب، به کاربر نمايش داده مي‌شود و کليد/عمليات ثبت غير فعال مي‌گردد.
[5] غير فعال بودن (disabled) حساب عضو
– در صورتي که وضعيت عضويت متقاضيِ امانت «غير فعال» باشد، صفحه‌ي اطلاعات عضو با پيغام مشخصِ غير فعال بودن عضو به کاربر نمايش داده مي‌شود و کليد/عمليات ثبت غير فعال مي‌گردد.
[6] جريمه‌ي ديرکرد بيش از حد
– در صورتي كه به عضو کتابخانه جريمه‌اي بيش از 20.000 ريال تعلق گرفته‌باشد، در صفحه‌ي مشخصات عضو، پيغام جريمه‌ي بيش از 20.000 ريال نمايش داده مي‌شود و کليد/عمليات ثبت غير فعال مي‌گردد.
o قواعد کسب و کار :
دانشجويان كارشناسي، كارشناسي ارشد و دكترا، مشروط بر اينكه دانشجوي همان دانشكده باشند به ترتيب مي‌توانند 3، 4 و 5 كتاب به امانت بگيرند. دانشجويان ساير دانشكده‌ها (كه عضو كتابخانه هستند) بسته به مقطع تحصيلي‌شان، به ترتيب مجاز به امانت گرفتن 2، 3 و 4 كتاب هستند. مهلت بازگشت كتاب براي دانشجويان همان دانشكده به ترتيب 2، 3 و 4 هفته و براي دانشكده‌هاي ديگر 1، 2 و 3 هفته مي‌باشد.
جريمه‌ي ديرکرد بازگرداندن کتاب به ازاي هر روز، براي اعضاي همان دانشکده 500 ريال و براي ساير اعضا 1000 ريال مي‌باشد.

درگذشت خالق فرترن

  • یوسف مهرداد بی‌بالان

John Backus خالق زبان فرترن که اولین زبان برنامه‏نويسي سطح بالا كه در سال ۱۹۵۴ ارائه شد، از دنيا رفت.

http://www.thocp.net/biographies/backus_john.htm

موزه تاريخ كامپيوتر

  • یوسف مهرداد بی‌بالان

موزه تاريخ كامپيوتر را مي‏توانيد در آدرس زير ببينيد. ديدنش خالي از لطف نيست.

http://www.computerhistory.org

سال نو مبارک

  • یوسف مهرداد بی‌بالان

برای خروج از جستجو کلید ESC را بفشارید