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 HiraGeneral purpose Anomaly detection and Alerting system
by Md Imran Hasan HiraBSADD – 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 HiraReading class diagram from http://en.wikipedia.org/wiki/Class_diagram & http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/index.html
- Class
- names
- attribute list
- operation list
- Interfaces
- Abstract classes & operations
- Inheritance / Class level relationship
- Generalization
- Realization
- Visibility
- + Public
- # Protected
- – Private
- ~ Package
- / Derived
- _ Static
- Scope
- Classifier member
- Instance member
- Packages
- Associations
- Bi-directional associations
- Uni-directional associations
- Aggregation
- Basic
- Composition
- Reflexive
- *Association Class
- Instances
- Internal Structures
Studying Sequence Diagrams
by Md Imran Hasan HiraReading 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