"We human being, always find a solution, maybe not today, but if you really want to solve a problem, there’s always a way" – Ma Yun @ Stanford, 2013
Category Archives: System Design

BUET Club Gamearena first mockup

by Md Imran Hasan Hira

We, few ex-university mates had a long cherish that we will have our own gamearena where students can submit their bots to play against certain games. This is the first mockup of the application. Needed to clear thoughts on my head. Will work on towards implementation.


সিস্টেম ডিজাইন বেসিক – পার্ট ২

by Md Imran Hasan Hira

সিস্টেম ডিজাইন বেসিক ২ ( টার্গেট অডিয়েন্স লেভেল ২+ )



সিস্টেম ডিজাইন বেসিক

by Md Imran Hasan Hira
কিছুদিন আগে আমাদের ডিপার্টমেন্টের এক গ্রুপে “এই ছবি দিয়ে কবি কি বুঝাতে চেয়েছেন?” টাইপ একটা পোষ্ট দিয়েছিলাম। আমি ভাবলাম বেশ কঠিন এক প্রশ্ন করে একটু ভাব নিব। লেভেল ২/৩ তে যারা আছ, তাদেরকে নাকানি-চুবানি খাওয়াব ভাবছিলাম। কিন্তু বেশ কিছু ত্যাঁদড় পোলাপানের কারণে পর্যাপ্ত পরিমাণে সুবিধা করে উঠতে পারলাম না। প্রশ্ন করার আগেই উত্তর নিয়ে রেডি ছিল তারা। অবশ্য যারা রেসপন্স করেছে, তাদের সবাইই বিভিন্ন সফটওয়ার কোম্পানিতে বেশ ভাল ভাল কাজ করতেছে।
 
যাই হোক, প্রথমে মাথায় আইডিয়া আসে একজন হবু ইঞ্জিনিয়ার কে Scalable System Design কিভাবে বুঝাব, এইটা থেকে। যারা অলরেডি C/C++/Java কোর্সগুলা করে ফেলছ, তারা এর মধ্যে মোটামুটি আইডিয়া পেয়ে গেছ যে কম্পিউটারে প্রোগ্রামগুলো কিভাবে বানানো হয়।
 
কিছু কিছু প্রোগ্রামে ইনপুট দেওয়া হয় কনসোল থেকে। কিছু কিছু প্রোগ্রামে সুন্দর User Interface থাকে। কিছু কিছু প্রোগ্রাম তোমাদের লোকাল মেশিনে চলে। যেমন ধর – Explorer, Games, Text Editors । আবার কিছু কিছু প্রোগ্রাম সার্ভার মেশিনে চলে, এবং তোমার ব্রাউজার থেকে HTTP দিয়ে ডাটা যায় আসে। এগুলোকে ওয়েব আপ্লিকেশন বলে। সাধারণত এই ধরনের ওয়েব আপ্লিকেশন বানানোর জন্য এখন অনেক ক্লাউড সার্ভিস পাওয়া যায়। তারপরও মনে হল স্ক্রাচ থেকে একটা প্রোজেক্ট ভেঙ্গে দেখালে ব্যাপারটা সবার কাছে পরিষ্কার হবে।
 

Read the rest of this entry »


General purpose Anomaly detection and Alerting system

by Md Imran Hasan Hira
এইটা একটা ফান প্রোজেক্ট হিসেবে চিন্তাভাবনা করার জন্যে বানানো। প্রোজেক্টের নাম General purpose Anomaly detection and Alerting system । লেভেল ২ বা এর উপরে যারা আছ মূলত তাদের জন্য 🙂
বিভিন্ন কোম্পানিতে সিস্টেম অটোমেটিক মেইন্টেইন করার জন্য মনিটরিং দরকার হয়। বিভিন্ন রকমের মনিটরিং হতে পারে। যেমন Dhaka Stock Exchange সিস্টেমে প্রতি মিনিটে কতগুলো Transaction হচ্ছে, কোন পেমেন্ট সিস্টেম যেমন iPay তে প্রতি সেকেন্ডে কোন কারেন্সিতে কত টাকা ট্রান্সফার হচ্ছে, কোন অনলাইন কলিং সিস্টেম যেমন IPVision এর RingID এ প্রতি মিনিটে কয়টা ফোনকল হচ্ছে, FieldBuzz এর সিস্টেমে প্রতিঘণ্টায় কতগুলো এন্ট্রি সাবমিট হচ্ছে, গ্রামীণফোনের মত সিস্টেমে প্রতি ঘণ্টায় কয়টা FnF update রিকোয়েস্ট হচ্ছে, …… এরকম অনেক রকমের মনিটরিং।
 
তো এই মনিটরিং সিষ্টেমের একটা বিরাট অংশ হচ্ছে, কোন রকম ঝামেলা হলে যথাযথ মানুষকে Alert করা। Automated Alerting ব্যাপারটা খুব একটা সহজ কাজ নয়। Anomaly Detection করতে হবে। একজন ইঞ্জিনিয়ার হিসেবে এই ব্যাপারটা Automate করতে পারার কাজটা বেশ মজার। Anomaly হইল, একটা ডাটা সাধারণভাবে যেমন হওয়ার কথা, তেমন না থাকা। যেমন, কোন ডাটাবেজে প্রতি মিনিটে হয়ত ২০,০০০ টা Select query হইত, কিন্তু হঠাত করে সেটা কমে মিনিটে ৩৫টা হচ্ছে। নিশ্চয়ই কোন একটা গণ্ডগোল বেধেছে।
 

Read the rest of this entry »


BSADD – BUET System Analysis, Design and Development group

by Md Imran Hasan Hira

বেশ কয়েক বছর আগে, ডিপার্টমেন্টে আমরা কয়েকজন মিলে সিস্টেম ডিজাইন নিয়ে কিছু কাজ শুরু করেছিলাম। আমরা বলতে আমরা ‘০৭ এর বেশ কয়েকজন আর ‘০৮ এর কয়েকজন। স্যাররা অবশ্য অনেক হেল্প করেছিলেন, যেমন সেশনগুলো অ্যারেঞ্জ করতে ডিপার্টমেন্টের পারমিশন এর জন্য দৌড়াদৌড়ি তো আছেই, সেটা ছাড়াও স্যাররা আমাদের ব্যপক উৎসাহ দিতেন সেশনগুলা নেওয়ার জন্য। লতিফ স্যারের একটা কথা এখনও মনে পরে, স্যারের কাছে BSADD এর কোন কিছু নিয়ে গেলেই উনি বলতেন “I appreciate”, কথাটা শুনতে খুবই সাধারণ শুনায়, কিন্তু আমাদের কাছে এই লাইনটা বেশ ইন্সপায়ারিং লাগত।

মজার ব্যাপার হচ্ছে, শুরুর সময়ে আমাদের লক্ষ্য ছিল সিস্টেম ডিজাইন এর কন্টেস্টগুলোতে বুয়েটের টীমরা যাতে ভাল করতে পারে, এইটা। তখন দেশে কেবলমাত্র SDDC (System Design and Development Contest) ব্যপারটা চালু হয়েছে, আমরা শুরুতে একটাতে পার্টিসিপেট করার পর মনে হল, এই দিকটাতে আমার শিখার অনেক কিছু বাকি আছে। তারপর ভাবলাম যে বুয়েটে এরকম একটা প্রাকটিস গ্রুপ থাকলে, সমস্যাগুলা নিয়ে অ্যাকাডেমিক এর বাইরেও বড় ভাইয়াদের সাথে আলোচনা করা যাবে।

তো আমরা লেভেল-৪ এ গিয়ে সেশন নেওয়া শুরু করলাম, সেশন নিতে গিয়ে মনে হল, সিস্টেম ডিজাইন শুরু করতে গেলে যে বেসিক লাগবে, সেগুলার জন্য আগে আরেকগাদা সেশন নিতে হবে ( অনেকটা chicken-egg সমস্যার মত :p )। যাই হোক, আমরা একটা ড্রাফট কোর্স প্লান করলাম। Git, Coding style, Code modularity, Class Diagram, Java basics, Web Framework, Database Connetions এইরকম বেসিক কিছু জিনিস নিয়ে।

প্রথম সেশনটা IAC’র একটা রুমে হয়েছিল। ওইটার জন্য আমরা খুব সিম্পল একটা ওয়েব আপ্লিকেশন বানিয়ে নিয়ে গেছিলাম। বাকিদের জন্য চ্যালেঞ্জ ছিল, ওই আপ্লিকেশন থেকে বাগ খুঁজে বের করতে হবে। যে সবচেয়ে বেশী বাগ খুঁজে বের করতে পারবে, সেই উইনার। এইরকম করে বাকি সেশনগুলো শেষে আমরা একটা ইন্ট্রা-ডিপার্টমেন্টাল সিস্টেম ডিজাইন কনটেস্টও অ্যারেঞ্জ করছিলাম। এরপর ‘০৮, ‘০৯, ‘১০ থেকে বেশ কয়েকজন সেশন গুলো কন্টিনিউ করছে।

আমাদের দরকার ছিল একটা প্লাটফর্ম, যেখানে জুনিয়ররা অন্তত সিস্টেম ডিজাইন / রেগুলার সফটওয়ার ডেভেলপমেন্ট নিয়ে যে কোন প্রশ্ন থাকলে জিজ্ঞেস করতে পারে। সেই হিসেবে আমরা চেষ্টা করছি জুনিয়রদের ভিতরে একটা চিন্তা করার স্কোপ তৈরী করার। একটা সফটওয়ার বানাতে গেলে হুট করে ধুপধাপ কোডে না গিয়ে, পসিবল মডিউল গুলা একটূ চিন্তা করে নেওয়া, ইন্ডাস্ট্রিতে কি কি ধরনের টুলস ব্যবহার করে সেগুলা সম্পর্কে আইডিয়া থাকা। একবার এই কমন জিনিশ গুলা মাথায় চলে আসলে তারপর ধুপধাপ কোডিং করলে সমস্যা নাই :p এখন অবশ্য অনেকের কাছেই এগুলা দু-আঙ্গুলের খেলা B| তারপরেও ইন্ডাস্ট্রিতে আমাদের বড় ভাইয়ারা যারা বিভিন্ন কোম্পানিতে কাজ করতেছেন, তাদের নলেজ গুলা আমাদের সাথে শেয়ার করলে অন্তত ট্রেণ্ডগুলা নিয়ে আইডিয়া থাকবে।

এতক্ষণ আলোচনার পর এবার একটু গ্রুপের ঢাকঢোল পিটাই। BSADD প্লাটফর্মের একটা পার্ট হিসেবে অনেকদিন ধরে আমাদের একটা ফেসবুক গ্রুপ আছে। এখন অবশ্য আমরা একটু অলস হয়ে গেছি, তাই খালি মাঝে মাঝে বিভিন্ন আর্টিকেলের লিঙ্ক শেয়ার করি :p সব বকবকানি তো এই ফর্মাল গ্রুপে করা যায়না। যেহেতু যারা পাস করে বিভিন্ন অফিসে কাজ করছে, তাই সবার পক্ষে কোন ইভেন্ট ছাড়া ক্যাম্পাসে আসা সবসময় সম্ভব হয়না। কিন্তু, কারও যদি সিস্টেম ডিজাইন নিয়ে কোন প্রশ্ন থাকে, যদি হঠাৎ করে মনে হয় “আরেহ এই রকম একটা সিস্টেমের জন্য কি কি class নিলে ভাল হবে?”, মোবাইল থেকে ওয়েবে ডাটা পাঠানোর জন্য মাঝখানে আরও কোন লেয়ার লাগবে কিনা, এইরকম প্রশ্নগুলো গ্রুপে করতে পারে। তাছাড়া নিজেরা ভাল কোন রিসোর্স/আর্টিকেল পড়ে থাকলে সেগুলার লিঙ্কও শেয়ার করতে পারে, অন্তত আরও অনেকে জানবে।


Studying Class Diagrams

by Md Imran Hasan Hira

Reading class diagram from http://en.wikipedia.org/wiki/Class_diagram & http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/index.html

  1. Class
    • names
    • attribute list
    • operation list
  2. Interfaces
  3. Abstract classes & operations
  4. Inheritance / Class level relationship
    • Generalization
    • Realization
  5. Visibility
    • + Public
    • # Protected
    • – Private
    • ~ Package
    • / Derived
    • _ Static
  6. Scope
    • Classifier member
    • Instance member
  7. Packages
  8. Associations
    • Bi-directional associations
    • Uni-directional associations
    • Aggregation
      • Basic
      • Composition
    • Reflexive
    • *Association Class
  9. Instances
  10. Internal Structures

Studying Sequence Diagrams

by Md Imran Hasan Hira

Reading sequence diagram from http://www.ibm.com/developerworks/rational/library/3101.html

1. Frame
2. Lifeline
3. Messages

  • Synchronus / Asynchronus
  • Returns / Not
  • Self message / Not

4. Guards
5. Combined Fragments

  • Alternatives
  • Options
  • Loop
  • Break
  • Parallel

6. Referencing Sequence Diagrams
7. Gates


Theme by Ali Han | Copyright 2025 Md Imran Hasan Hira | Powered by WordPress