arc42-এর সিদ্ধান্ত রেকর্ড টেমপ্লেট
1. ভূমিকা ও লক্ষ্য
প্রয়োজনীয়তা, চালিকাশক্তি এবং প্রয়োজনীয়তার সারাংশ (বা বিমূর্তকরণ)-এর সংক্ষিপ্ত বর্ণনা। আর্কিটেকচারের জন্য শীর্ষ তিনটি (সর্বোচ্চ পাঁচটি) গুণগত লক্ষ্য, যা প্রধান অংশীজনদের কাছে সর্বোচ্চ অগ্রাধিকারপ্রাপ্ত। আর্কিটেকচার সম্পর্কে গুরুত্বপূর্ণ অংশীজনদের প্রত্যাশাসহ তাঁদের একটি সারণি।
1.1 প্রয়োজনীয়তার সংক্ষিপ্ত বিবরণ
বিষয়বস্তু
কার্যকরী প্রয়োজনীয়তা, চালিকাশক্তি এবং প্রয়োজনীয়তার সারাংশ (বা বিমূর্তকরণ)-এর সংক্ষিপ্ত বর্ণনা। (আশা করি বিদ্যমান) প্রয়োজনীয়তা নথির লিংক, সেটি কোথায় পাওয়া যাবে তার তথ্যসহ।
প্রেরণা
শেষ ব্যবহারকারীদের দৃষ্টিকোণ থেকে, একটি সিস্টেম তৈরি বা পরিবর্তন করা হয় কোনো ব্যবসায়িক কার্যকলাপের সহায়তা উন্নত করতে এবং/অথবা গুণমান উন্নত করতে।
বিন্যাস
সংক্ষিপ্ত লিখিত বর্ণনা, সম্ভবত সারণিবদ্ধ ব্যবহার-ক্ষেত্র বিন্যাসে। প্রয়োজনীয়তা নথি থাকলে এই সংক্ষিপ্ত বিবরণে সেই নথিগুলোর উল্লেখ থাকা উচিত।
এই উদ্ধৃতাংশগুলো যতটা সম্ভব সংক্ষিপ্ত রাখুন। প্রয়োজনীয়তা নথির সাপেক্ষে সম্ভাব্য পুনরাবৃত্তির সঙ্গে এই নথির পাঠযোগ্যতার ভারসাম্য রাখুন।
1.2 গুণগত লক্ষ্য
বিষয়বস্তু
আর্কিটেকচারের শীর্ষ তিনটি (সর্বোচ্চ পাঁচটি) গুণগত লক্ষ্য, যেগুলোর পূরণ প্রধান অংশীজনদের কাছে সর্বোচ্চ গুরুত্বপূর্ণ। আমরা সত্যিই আর্কিটেকচারের গুণগত লক্ষ্য বোঝাচ্ছি। এগুলোকে প্রকল্পের লক্ষ্যের সঙ্গে গুলিয়ে ফেলবেন না। এগুলো অবশ্যম্ভাবীভাবে অভিন্ন নয়। ISO 25010 মান সম্ভাব্য আগ্রহের বিষয়গুলোর একটি চমৎকার সংক্ষিপ্ত বিবরণ দেয়।
প্রেরণা
আপনার সবচেয়ে গুরুত্বপূর্ণ অংশীজনদের গুণগত লক্ষ্য আপনার জানা উচিত, কারণ সেগুলো মৌলিক আর্কিটেকচার সিদ্ধান্তকে প্রভাবিত করবে। এই গুণগুলো সম্পর্কে অত্যন্ত সুনির্দিষ্ট হোন, চটকদার শব্দ এড়িয়ে চলুন। আপনি আর্কিটেক্ট হিসেবে যদি না জানেন আপনার কাজের গুণমান কীভাবে বিচার করা হবে …
বিন্যাস
সবচেয়ে গুরুত্বপূর্ণ গুণগত লক্ষ্য ও সুনির্দিষ্ট দৃশ্যকল্পসহ একটি সারণি, অগ্রাধিকার অনুযায়ী সাজানো।
1.3 অংশীজন
বিষয়বস্তু
সিস্টেমের অংশীজনদের স্পষ্ট সংক্ষিপ্ত বিবরণ, অর্থাৎ সব ব্যক্তি, ভূমিকা বা সংগঠন, যাঁরা
আর্কিটেকচার জানবেন
আর্কিটেকচার সম্পর্কে যাঁদের বোঝাতে হবে
আর্কিটেকচার বা কোড নিয়ে যাঁদের কাজ করতে হবে
যাঁদের কাজের জন্য আর্কিটেকচারের নথি প্রয়োজন
সিস্টেম বা তার উন্নয়ন সম্পর্কে যাঁদের সিদ্ধান্ত নিতে হবে
প্রেরণা
সিস্টেমের উন্নয়নে জড়িত বা সিস্টেম দ্বারা প্রভাবিত সব পক্ষকে আপনার জানা উচিত। নইলে উন্নয়ন প্রক্রিয়ার পরের দিকে অপ্রীতিকর বিস্ময়ের মুখে পড়তে পারেন। এই অংশীজনরা আপনার কাজ ও তার ফলাফলের পরিধি ও বিস্তারিত স্তর নির্ধারণ করেন।
বিন্যাস
ভূমিকার নাম, ব্যক্তির নাম, এবং আর্কিটেকচার ও তার নথি সম্পর্কে তাঁদের প্রত্যাশাসহ সারণি।
2. সীমাবদ্ধতা
নকশা ও বাস্তবায়ন সিদ্ধান্ত বা সম্পর্কিত প্রক্রিয়া সম্পর্কে সিদ্ধান্তে দলগুলোকে যা সীমাবদ্ধ করে। কখনো কখনো এটি পৃথক সিস্টেমের বাইরেও যেতে পারে এবং পুরো সংগঠন ও কোম্পানির জন্য বৈধ।
বিষয়বস্তু
নকশা ও বাস্তবায়ন সিদ্ধান্ত বা উন্নয়ন প্রক্রিয়া সম্পর্কিত সিদ্ধান্তে সফটওয়্যার আর্কিটেক্টদের স্বাধীনতাকে সীমিত করে এমন যেকোনো প্রয়োজনীয়তা। এই সীমাবদ্ধতাগুলো কখনো কখনো পৃথক সিস্টেমের বাইরেও যায় এবং পুরো সংগঠন ও কোম্পানির জন্য বৈধ।
প্রেরণা
আর্কিটেক্টদের ঠিক জানা উচিত নকশা সিদ্ধান্তে তাঁরা কোথায় স্বাধীন এবং কোথায় সীমাবদ্ধতা মেনে চলতে হবে। সীমাবদ্ধতা সব সময় সামলাতে হয়; তবে সেগুলো আলোচনাসাপেক্ষ হতে পারে।
বিন্যাস
ব্যাখ্যাসহ সীমাবদ্ধতার সাধারণ সারণি। প্রয়োজন হলে সেগুলোকে প্রযুক্তিগত সীমাবদ্ধতা, সাংগঠনিক ও রাজনৈতিক সীমাবদ্ধতা এবং রীতিনীতিতে (যেমন প্রোগ্রামিং বা সংস্করণ নির্দেশিকা, নথিভুক্তকরণ বা নামকরণ রীতি) ভাগ করতে পারেন
3. প্রেক্ষাপট ও পরিধি
আপনার সিস্টেমকে তার (বাহ্যিক) যোগাযোগ অংশীদারদের (প্রতিবেশী সিস্টেম ও ব্যবহারকারী) থেকে আলাদা করে। বাহ্যিক ইন্টারফেস নির্দিষ্ট করে। ব্যবসা/ক্ষেত্রের দৃষ্টিকোণ থেকে (সব সময়) বা প্রযুক্তিগত দৃষ্টিকোণ থেকে (ঐচ্ছিক) দেখানো হয়
বিষয়বস্তু
সিস্টেমের পরিধি ও প্রেক্ষাপট - নাম থেকেই বোঝা যায় - আপনার সিস্টেমকে (অর্থাৎ আপনার পরিধি) তার সব যোগাযোগ অংশীদার (প্রতিবেশী সিস্টেম ও ব্যবহারকারী, অর্থাৎ আপনার সিস্টেমের প্রেক্ষাপট) থেকে আলাদা করে। এভাবে এটি বাহ্যিক ইন্টারফেস নির্দিষ্ট করে।
প্রয়োজন হলে, ব্যবসায়িক প্রেক্ষাপট (ক্ষেত্র-নির্দিষ্ট ইনপুট ও আউটপুট) এবং প্রযুক্তিগত প্রেক্ষাপট (চ্যানেল, প্রোটোকল, হার্ডওয়্যার)-কে আলাদা করুন।
প্রেরণা
যোগাযোগ অংশীদারদের সঙ্গে ক্ষেত্রগত ইন্টারফেস এবং প্রযুক্তিগত ইন্টারফেস আপনার সিস্টেমের সবচেয়ে গুরুত্বপূর্ণ দিকগুলোর অন্যতম। নিশ্চিত করুন যে আপনি এগুলো সম্পূর্ণভাবে বুঝেছেন।
বিন্যাস
বিভিন্ন প্রেক্ষাপট ডায়াগ্রাম
যোগাযোগ অংশীদার ও তাদের ইন্টারফেসের তালিকা।
3.1 ব্যবসায়িক প্রেক্ষাপট
বিষয়বস্তু
ক্ষেত্র-নির্দিষ্ট ইনপুট ও আউটপুট বা ইন্টারফেসের ব্যাখ্যাসহ সব যোগাযোগ অংশীদারের (ব্যবহারকারী, IT-সিস্টেম, …) বিবরণ। ঐচ্ছিকভাবে আপনি ক্ষেত্র-নির্দিষ্ট বিন্যাস বা যোগাযোগ প্রোটোকল যোগ করতে পারেন।
প্রেরণা
সিস্টেমের পরিবেশের সঙ্গে কোন ডেটা আদান-প্রদান হয়, তা সব অংশীজনের বোঝা উচিত।
বিন্যাস
সব ধরনের ডায়াগ্রাম, যা সিস্টেমকে ব্ল্যাক বক্স হিসেবে দেখায় এবং যোগাযোগ অংশীদারদের সঙ্গে ক্ষেত্রগত ইন্টারফেস নির্দিষ্ট করে।
বিকল্পভাবে (বা অতিরিক্তভাবে) আপনি একটি সারণি ব্যবহার করতে পারেন। সারণির শিরোনাম আপনার সিস্টেমের নাম, তিনটি কলামে থাকে যোগাযোগ অংশীদারের নাম, ইনপুট এবং আউটপুট।
3.2 প্রযুক্তিগত প্রেক্ষাপট
বিষয়বস্তু
প্রযুক্তিগত ইন্টারফেস (চ্যানেল ও সঞ্চালন মাধ্যম), যা আপনার সিস্টেমকে তার পরিবেশের সঙ্গে যুক্ত করে। এর সঙ্গে ক্ষেত্র-নির্দিষ্ট ইনপুট/আউটপুটের চ্যানেলে ম্যাপিং, অর্থাৎ কোন I/O কোন চ্যানেল ব্যবহার করে তার ব্যাখ্যা।
প্রেরণা
অনেক অংশীজন সিস্টেম ও তার প্রেক্ষাপটের মধ্যকার প্রযুক্তিগত ইন্টারফেসের ভিত্তিতে আর্কিটেকচার সিদ্ধান্ত নেন। বিশেষ করে অবকাঠামো বা হার্ডওয়্যার নকশাকারীরা এই প্রযুক্তিগত ইন্টারফেস নির্ধারণ করেন।
বিন্যাস
যেমন প্রতিবেশী সিস্টেমের চ্যানেল বর্ণনাকারী UML ডিপ্লয়মেন্ট ডায়াগ্রাম, সঙ্গে চ্যানেল এবং ইনপুট/আউটপুটের সম্পর্ক দেখানো একটি ম্যাপিং সারণি।
4. সমাধান কৌশল
আর্কিটেকচারকে রূপ দেওয়া মৌলিক সিদ্ধান্ত ও সমাধান কৌশলের সারাংশ। এতে প্রযুক্তি, শীর্ষ-স্তরের বিভাজন, শীর্ষ গুণগত লক্ষ্য অর্জনের পদ্ধতি এবং প্রাসঙ্গিক সাংগঠনিক সিদ্ধান্ত থাকতে পারে।
বিষয়বস্তু
সিস্টেমের আর্কিটেকচারকে রূপ দেওয়া মৌলিক সিদ্ধান্ত ও সমাধান কৌশলের সংক্ষিপ্ত সারাংশ ও ব্যাখ্যা। এগুলোর মধ্যে রয়েছে
প্রযুক্তি সিদ্ধান্ত
সিস্টেমের শীর্ষ-স্তরের বিভাজন সম্পর্কিত সিদ্ধান্ত, যেমন কোনো আর্কিটেকচার প্যাটার্ন বা ডিজাইন প্যাটার্ন ব্যবহার
মূল গুণগত লক্ষ্য কীভাবে অর্জন করা হবে সে সম্পর্কিত সিদ্ধান্ত
প্রাসঙ্গিক সাংগঠনিক সিদ্ধান্ত, যেমন উন্নয়ন প্রক্রিয়া বেছে নেওয়া বা নির্দিষ্ট কাজ তৃতীয় পক্ষকে অর্পণ করা।
প্রেরণা
এই সিদ্ধান্তগুলো আপনার আর্কিটেকচারের ভিত্তিপ্রস্তর। এগুলো অন্যান্য অনেক বিস্তারিত সিদ্ধান্ত বা বাস্তবায়ন নিয়মের ভিত্তি।
বিন্যাস
এই মূল সিদ্ধান্তগুলোর ব্যাখ্যা সংক্ষিপ্ত রাখুন।
আপনার সমস্যার বিবৃতি, গুণগত লক্ষ্য ও মূল সীমাবদ্ধতার ভিত্তিতে আপনি কী সিদ্ধান্ত নিয়েছেন এবং কেন সেভাবে নিয়েছেন তার যুক্তি দিন। পরবর্তী অংশগুলোতে বিস্তারিত দেখুন (কাঠামোগত বিস্তারিতের জন্য ৫ম অংশ, আড়াআড়ি ধারণার জন্য ৮ম অংশ)।
আপনি সমাধান-পদ্ধতির তালিকা বা সারণি ব্যবহার করতে পারেন।
5. বিল্ডিং ব্লক দৃশ্য
সিস্টেমের স্থির বিভাজন, সোর্স-কোডের বিমূর্তকরণ, যথাযথ বিস্তারিত স্তর পর্যন্ত হোয়াইট বক্সের (যার মধ্যে ব্ল্যাক বক্স থাকে) শ্রেণিবিন্যাস হিসেবে দেখানো।
বিষয়বস্তু
বিল্ডিং ব্লক দৃশ্য সিস্টেমকে বিল্ডিং ব্লকে (মডিউল, কম্পোনেন্ট, সাবসিস্টেম, ক্লাস, ইন্টারফেস, প্যাকেজ, লাইব্রেরি, ফ্রেমওয়ার্ক, স্তর, পার্টিশন, টিয়ার, ফাংশন, ম্যাক্রো, অপারেশন, ডেটা কাঠামো, …) স্থিরভাবে বিভাজন করে দেখায়, পাশাপাশি তাদের নির্ভরতাও (সম্পর্ক, সংযোগ, …)
প্রতিটি আর্কিটেকচার নথিভুক্তকরণের জন্য এই দৃশ্য বাধ্যতামূলক। একটি বাড়ির সঙ্গে তুলনা করলে এটি হলো নকশার ছক।
প্রেরণা
বিমূর্তকরণের মাধ্যমে সোর্স কোডের কাঠামো বোধগম্য করে তুলে তার সংক্ষিপ্ত বিবরণ বজায় রাখুন।
এটি আপনাকে বাস্তবায়নের বিস্তারিত প্রকাশ না করে বিমূর্ত স্তরে অংশীজনদের সঙ্গে যোগাযোগ করতে দেয়।
বিন্যাস
বিল্ডিং ব্লক দৃশ্য হলো ব্ল্যাক বক্স ও হোয়াইট বক্সের (নিচের চিত্র দেখুন) একটি শ্রেণিবদ্ধ সংকলন এবং তাদের বর্ণনা।
5.1 হোয়াইটবক্স: সামগ্রিক সিস্টেম
এখানে আপনি নিচের হোয়াইট বক্স টেমপ্লেট ব্যবহার করে সামগ্রিক সিস্টেমের বিভাজন বর্ণনা করবেন। এতে আছে
একটি সংক্ষিপ্ত বিবরণ ডায়াগ্রাম
বিভাজনের একটি প্রেরণা
অন্তর্ভুক্ত বিল্ডিং ব্লকগুলোর ব্ল্যাক বক্স বর্ণনা। এর জন্য আমরা আপনাকে বিকল্প দিই:
সব অন্তর্ভুক্ত বিল্ডিং ব্লক ও তাদের ইন্টারফেসের একটি সংক্ষিপ্ত ও বাস্তবসম্মত সংক্ষিপ্ত বিবরণের জন্য একটি সারণি ব্যবহার করুন
ব্ল্যাক বক্স টেমপ্লেট (নিচে দেখুন) অনুযায়ী বিল্ডিং ব্লকগুলোর ব্ল্যাক বক্স বর্ণনার একটি তালিকা ব্যবহার করুন। আপনার টুলের পছন্দের ওপর নির্ভর করে এই তালিকা উপ-অধ্যায় (টেক্সট ফাইলে), উপ-পৃষ্ঠা (উইকিতে) বা নেস্টেড উপাদান (মডেলিং টুলে) হতে পারে।
(ঐচ্ছিক:) গুরুত্বপূর্ণ ইন্টারফেস, যা বিল্ডিং ব্লকের ব্ল্যাক বক্স টেমপ্লেটে ব্যাখ্যা করা হয়নি, কিন্তু হোয়াইট বক্স বোঝার জন্য খুবই গুরুত্বপূর্ণ।
যেহেতু ইন্টারফেস নির্দিষ্ট করার এত পথ আছে, তাই সেগুলোর জন্য আমরা আলাদা টেমপ্লেট দিই না।
সর্বোত্তম ক্ষেত্রে উদাহরণ বা সাধারণ স্বাক্ষর দিয়েই কাজ চলে যাবে।
5.2 স্তর ২
এখানে আপনি স্তর ১-এর (কিছু) বিল্ডিং ব্লকের অভ্যন্তরীণ কাঠামো হোয়াইট বক্স হিসেবে নির্দিষ্ট করতে পারেন।
আপনার সিস্টেমের কোন কোন বিল্ডিং ব্লক এমন বিস্তারিত বর্ণনার যোগ্য ততটা গুরুত্বপূর্ণ, তা আপনাকে ঠিক করতে হবে। অনুগ্রহ করে সম্পূর্ণতার চেয়ে প্রাসঙ্গিকতাকে প্রাধান্য দিন। গুরুত্বপূর্ণ, অপ্রত্যাশিত, ঝুঁকিপূর্ণ, জটিল বা পরিবর্তনশীল বিল্ডিং ব্লক নির্দিষ্ট করুন। আপনার সিস্টেমের সাধারণ, সরল, একঘেয়ে বা মানসম্মত অংশগুলো বাদ দিন
5.2.1 বিল্ডিং ব্লক ১-এর হোয়াইট বক্স
বিল্ডিং ব্লক ১-এর অভ্যন্তরীণ কাঠামো নির্দিষ্ট করে।
হোয়াইট বক্স টেমপ্লেট (উপরে দেখুন) ব্যবহার করুন।
6. রানটাইম দৃশ্য
দৃশ্যকল্প হিসেবে বিল্ডিং ব্লকগুলোর আচরণ, যা গুরুত্বপূর্ণ ব্যবহার-ক্ষেত্র বা বৈশিষ্ট্য, গুরুত্বপূর্ণ বাহ্যিক ইন্টারফেসে মিথস্ক্রিয়া, পরিচালনা ও প্রশাসন এবং ত্রুটি ও ব্যতিক্রম আচরণ কভার করে।
বিষয়বস্তু
রানটাইম দৃশ্য নিম্নলিখিত ক্ষেত্রগুলো থেকে দৃশ্যকল্পের আকারে সিস্টেমের বিল্ডিং ব্লকগুলোর সুনির্দিষ্ট আচরণ ও মিথস্ক্রিয়া বর্ণনা করে:
গুরুত্বপূর্ণ ব্যবহার-ক্ষেত্র বা বৈশিষ্ট্য: বিল্ডিং ব্লকগুলো সেগুলো কীভাবে সম্পাদন করে?
গুরুত্বপূর্ণ বাহ্যিক ইন্টারফেসে মিথস্ক্রিয়া: বিল্ডিং ব্লকগুলো ব্যবহারকারী ও প্রতিবেশী সিস্টেমের সঙ্গে কীভাবে সহযোগিতা করে?
পরিচালনা ও প্রশাসন: চালু করা, শুরু হওয়া, বন্ধ করা
ত্রুটি ও ব্যতিক্রম দৃশ্যকল্প
মন্তব্য: সম্ভাব্য দৃশ্যকল্প (ক্রম, কর্মপ্রবাহ) বেছে নেওয়ার প্রধান মানদণ্ড হলো তাদের আর্কিটেকচারগত প্রাসঙ্গিকতা। বহু সংখ্যক দৃশ্যকল্প বর্ণনা করা গুরুত্বপূর্ণ নয়। বরং একটি প্রতিনিধিত্বকারী নির্বাচন নথিভুক্ত করা উচিত।
প্রেরণা
আপনার সিস্টেমের বিল্ডিং ব্লকগুলো (এর ইনস্ট্যান্স) রানটাইমে কীভাবে তাদের কাজ করে ও যোগাযোগ করে তা আপনার বোঝা উচিত। স্থির মডেল (বিল্ডিং ব্লক দৃশ্য, ডিপ্লয়মেন্ট দৃশ্য) পড়তে ও বুঝতে কম আগ্রহী বা কম সক্ষম অংশীজনদের কাছে আপনার আর্কিটেকচার পৌঁছে দিতে আপনি মূলত আপনার নথিতে দৃশ্যকল্প লিপিবদ্ধ করবেন।
বিন্যাস
দৃশ্যকল্প বর্ণনার অনেক নোটেশন আছে, যেমন
ধাপের নম্বরযুক্ত তালিকা (স্বাভাবিক ভাষায়)
অ্যাক্টিভিটি ডায়াগ্রাম বা ফ্লো চার্ট
সিকোয়েন্স ডায়াগ্রাম
BPMN বা EPC (ইভেন্ট প্রসেস চেইন)
স্টেট মেশিন
ইত্যাদি
6.n রানটাইম দৃশ্যকল্প n (১, ২, ৩ ইত্যাদি)
রানটাইম ডায়াগ্রাম বা দৃশ্যকল্পের লিখিত বর্ণনা যোগ করুন।
এই ডায়াগ্রামে দেখানো বিল্ডিং ব্লক ইনস্ট্যান্সগুলোর মধ্যকার মিথস্ক্রিয়ার উল্লেখযোগ্য দিকগুলোর বর্ণনা যোগ করুন।
7. ডিপ্লয়মেন্ট দৃশ্য
পরিবেশ, কম্পিউটার, প্রসেসর ও টপোলজিসহ প্রযুক্তিগত অবকাঠামো। অবকাঠামো উপাদানের সঙ্গে (সফটওয়্যার) বিল্ডিং ব্লকের ম্যাপিং।
বিষয়বস্তু
ডিপ্লয়মেন্ট দৃশ্য বর্ণনা করে:
আপনার সিস্টেম চালাতে ব্যবহৃত প্রযুক্তিগত অবকাঠামো, যার উপাদান ভৌগোলিক অবস্থান, পরিবেশ, কম্পিউটার, প্রসেসর, চ্যানেল ও নেট টপোলজি এবং অন্যান্য অবকাঠামো উপাদান, এবং
সেই অবকাঠামো উপাদানগুলোর সঙ্গে (সফটওয়্যার) বিল্ডিং ব্লকের ম্যাপিং।
প্রায়ই সিস্টেম বিভিন্ন পরিবেশে চলে, যেমন উন্নয়ন পরিবেশ, পরীক্ষা পরিবেশ, প্রোডাকশন পরিবেশ। এমন ক্ষেত্রে আপনার সব প্রাসঙ্গিক পরিবেশ নথিভুক্ত করা উচিত।
বিশেষ করে ডিপ্লয়মেন্ট দৃশ্য নথিভুক্ত করুন যখন আপনার সফটওয়্যার একাধিক কম্পিউটার, প্রসেসর, সার্ভার বা কনটেইনারে বিতরণকৃত সিস্টেম হিসেবে চলে, অথবা যখন আপনি নিজস্ব হার্ডওয়্যার প্রসেসর ও চিপ নকশা ও নির্মাণ করেন।
সফটওয়্যারের দৃষ্টিকোণ থেকে, আপনার বিল্ডিং ব্লকের ডিপ্লয়মেন্ট দেখাতে যেসব অবকাঠামো উপাদান প্রয়োজন, কেবল সেগুলো লিপিবদ্ধ করাই যথেষ্ট। হার্ডওয়্যার আর্কিটেক্টরা এর বাইরে গিয়ে অবকাঠামো যত বিস্তারিত স্তর পর্যন্ত লিপিবদ্ধ করা দরকার তত বিস্তারিত বর্ণনা করতে পারেন।
প্রেরণা
হার্ডওয়্যার ছাড়া সফটওয়্যার চলে না। এই অন্তর্নিহিত অবকাঠামো আপনার সিস্টেম এবং/অথবা কিছু আড়াআড়ি ধারণাকে প্রভাবিত করতে পারে এবং করবে। তাই আপনার অবকাঠামো জানা প্রয়োজন।
বিন্যাস
সম্ভবত সর্বোচ্চ স্তরের ডিপ্লয়মেন্ট ডায়াগ্রাম ইতিমধ্যে ৩.২ অংশে প্রযুক্তিগত প্রেক্ষাপট হিসেবে রয়েছে, যেখানে আপনার নিজস্ব অবকাঠামো একটিমাত্র ব্ল্যাক বক্স। এই অংশে আপনি অতিরিক্ত ডিপ্লয়মেন্ট ডায়াগ্রাম ব্যবহার করে এই ব্ল্যাক বক্সে জুম করবেন।
UML সেই দৃশ্য প্রকাশের জন্য ডিপ্লয়মেন্ট ডায়াগ্রাম দেয়। আপনার অবকাঠামো আরও জটিল হলে সম্ভবত নেস্টেড ডায়াগ্রামসহ সেটি ব্যবহার করুন।
আপনার (হার্ডওয়্যার) অংশীজনরা UML ডিপ্লয়মেন্ট ডায়াগ্রামের বদলে অন্য ধরনের ডায়াগ্রাম পছন্দ করলে, অবকাঠামোর নোড ও চ্যানেল দেখাতে সক্ষম যেকোনো ধরন ব্যবহার করতে দিন।
7.1 অবকাঠামো স্তর ১
বর্ণনা করুন (সাধারণত ডায়াগ্রাম, সারণি ও লেখার সমন্বয়ে):
একাধিক অবস্থান, পরিবেশ, কম্পিউটার, প্রসেসর ইত্যাদিতে আপনার সিস্টেমের বিতরণ এবং সেগুলোর মধ্যকার ভৌত সংযোগ
এই ডিপ্লয়মেন্ট কাঠামোর গুরুত্বপূর্ণ যৌক্তিকতা বা প্রেরণা
অবকাঠামোর গুণগত এবং/অথবা কর্মক্ষমতা বৈশিষ্ট্য
অবকাঠামোর উপাদানের সঙ্গে সফটওয়্যার উপকরণের (বিল্ডিং ব্লক) ম্যাপিং
একাধিক পরিবেশ বা বিকল্প ডিপ্লয়মেন্টের জন্য অনুগ্রহ করে arc42-এর সেই অংশটি সব প্রাসঙ্গিক পরিবেশের জন্য অনুলিপি করুন। **
7.2 অবকাঠামো স্তর ২
এখানে আপনি অবকাঠামো স্তর ১-এর (কিছু) অবকাঠামো উপাদানের অভ্যন্তরীণ কাঠামো অন্তর্ভুক্ত করতে পারেন।
অনুগ্রহ করে প্রতিটি নির্বাচিত উপাদানের জন্য স্তর ১-এর কাঠামো অনুলিপি করুন।
8. আড়াআড়ি ধারণা
সামগ্রিক, মূল বিধি ও সমাধান পদ্ধতি, যা সিস্টেমের একাধিক অংশে প্রাসঙ্গিক (→ আড়াআড়ি)। ধারণাগুলো প্রায়ই একাধিক বিল্ডিং ব্লকের সঙ্গে সম্পর্কিত। ক্ষেত্র মডেল, আর্কিটেকচার প্যাটার্ন ও শৈলী, নির্দিষ্ট প্রযুক্তি ব্যবহারের নিয়ম এবং বাস্তবায়ন নিয়মের মতো বিভিন্ন বিষয় অন্তর্ভুক্ত করুন।
বিষয়বস্তু
এই অংশ আড়াআড়ি ধারণা (অনুশীলন, প্যাটার্ন, বিধি বা সমাধান ধারণা) বর্ণনা করে। এমন ধারণা প্রায়ই একাধিক বিল্ডিং ব্লকের সঙ্গে সম্পর্কিত। এতে অনেক ভিন্ন বিষয় থাকতে পারে।
প্রেরণা
ধারণাগুলো আর্কিটেকচারের ধারণাগত অখণ্ডতার (সামঞ্জস্য, সমরূপতা) ভিত্তি গঠন করে। তাই আপনার সিস্টেমের অভ্যন্তরীণ গুণাবলি অর্জনে এগুলো একটি গুরুত্বপূর্ণ অবদান।
এমন ধারণার সুসংহত বিবরণের জন্য আমরা টেমপ্লেটে এই স্থানটিই দিয়েছি।
এই ধারণাগুলোর অনেকগুলোই আপনার কয়েকটি বিল্ডিং ব্লকের সঙ্গে সম্পর্কিত বা সেগুলোকে প্রভাবিত করে।
বিন্যাস
বিন্যাস বিভিন্ন রকমের হতে পারে:
যেকোনো ধরনের কাঠামোসহ ধারণাপত্র
নমুনা বাস্তবায়ন, বিশেষত প্রযুক্তিগত ধারণার জন্য
আর্কিটেকচার দৃশ্যের নোটেশন ব্যবহার করে আড়াআড়ি মডেলের উদ্ধৃতাংশ বা দৃশ্যকল্প
এই অংশের কাঠামো
আপনার সিস্টেমের জন্য কেবল সবচেয়ে প্রয়োজনীয় বিষয়গুলো বেছে নিন এবং এই অংশে প্রতিটিকে স্তর-২ শিরোনাম দিন (যেমন ৮.১, ৮.২ ইত্যাদি)।
- আগে উল্লিখিত ডায়াগ্রামের সব বিষয় কভার করার চেষ্টা করবেন না।
পটভূমি
সিস্টেমের মধ্যে কিছু বিষয় প্রায়ই একাধিক বিল্ডিং ব্লক, হার্ডওয়্যার উপাদান বা উন্নয়ন প্রক্রিয়ার সঙ্গে সম্পর্কিত। এমন আড়াআড়ি বিষয়গুলো সংশ্লিষ্ট বিল্ডিং ব্লক, হার্ডওয়্যার উপাদান বা উন্নয়ন প্রক্রিয়ার বর্ণনায় পুনরাবৃত্তি করার বদলে কেন্দ্রীয় স্থানে জানানো বা নথিভুক্ত করা সহজ হতে পারে।
কিছু ধারণা সিস্টেমের সব উপাদানের সঙ্গে সম্পর্কিত হতে পারে, অন্যগুলো কেবল কয়েকটির জন্য প্রাসঙ্গিক হতে পারে।
9. আর্কিটেকচার সিদ্ধান্ত
যুক্তিসহ গুরুত্বপূর্ণ, ব্যয়বহুল, সংকটপূর্ণ, বৃহৎ-পরিসর বা ঝুঁকিপূর্ণ আর্কিটেকচার সিদ্ধান্ত।
বিষয়বস্তু
যুক্তিসহ গুরুত্বপূর্ণ, ব্যয়বহুল, বৃহৎ-পরিসর বা ঝুঁকিপূর্ণ আর্কিটেকচার সিদ্ধান্ত। “সিদ্ধান্ত” বলতে আমরা নির্দিষ্ট মানদণ্ডের ভিত্তিতে একটি বিকল্প বেছে নেওয়া বোঝাই।
কোনো আর্কিটেকচার সিদ্ধান্ত এই কেন্দ্রীয় অংশে নথিভুক্ত করা উচিত, নাকি স্থানীয়ভাবে (যেমন কোনো একটি বিল্ডিং ব্লকের হোয়াইট বক্স টেমপ্লেটের মধ্যে) নথিভুক্ত করাই ভালো, তা আপনার বিচারবুদ্ধি দিয়ে ঠিক করুন। পুনরাবৃত্ত লেখা এড়িয়ে চলুন। ৪র্থ অংশের উল্লেখ করুন, যেখানে আপনি আপনার আর্কিটেকচারের সবচেয়ে গুরুত্বপূর্ণ সিদ্ধান্তগুলো ইতিমধ্যে লিপিবদ্ধ করেছেন।
প্রেরণা
আপনার সিস্টেমের অংশীজনদের আপনার সিদ্ধান্তগুলো বুঝতে এবং অনুসরণ করতে পারা উচিত।
বিন্যাস
প্রতিটি গুরুত্বপূর্ণ সিদ্ধান্তের জন্য ADR (আর্কিটেকচার সিদ্ধান্ত রেকর্ড)
গুরুত্ব ও পরিণতি অনুসারে সাজানো তালিকা বা সারণি, অথবা
প্রতিটি সিদ্ধান্তের জন্য আলাদা অংশের আকারে আরও বিস্তারিত
পটভূমি (ADR সম্পর্কে)
নথিভুক্তির ছোট ছোট অংশ পড়া, তৈরি করা ও রক্ষণাবেক্ষণ করা সহজ। আর্কিটেকচার সিদ্ধান্তের ক্ষেত্রে উন্নয়ন দলগুলো প্রায়ই:
সিদ্ধান্তটি জানে, কারণ সোর্স কোডে এটি দৃশ্যমান, কিন্তু
সেই সিদ্ধান্তের পেছনের প্রেরণা জানে না (Nygard 2011 দেখুন)
তাই আপনার কয়েকটি গুরুত্বপূর্ণ সিদ্ধান্ত তাদের প্রেরণা ও যুক্তিসহ নথিভুক্ত করা উচিত
সিদ্ধান্ত সম্পর্কে আমাদের প্রস্তাব
আর্কিটেকচারগতভাবে গুরুত্বপূর্ণ সিদ্ধান্তের একটি সংকলন রাখুন, অর্থাৎ যেসব সিদ্ধান্ত কাঠামো, গুণগত বৈশিষ্ট্য, গুরুত্বপূর্ণ (বিশেষত বাহ্যিক) নির্ভরতা ও ইন্টারফেস, বা নির্মাণ কৌশলকে প্রভাবিত করে (এই প্রস্তাবের জন্য Michael Nygard-কে ধন্যবাদ)।
10. গুণগত প্রয়োজনীয়তা
দৃশ্যকল্প হিসেবে গুণগত প্রয়োজনীয়তা, উচ্চ-স্তরের সংক্ষিপ্ত বিবরণ দিতে গুণ বৃক্ষসহ। সবচেয়ে গুরুত্বপূর্ণ গুণগত লক্ষ্য ১.২ অংশে (গুণগত লক্ষ্য) বর্ণিত হওয়া উচিত ছিল।
বিষয়বস্তু
এই অংশে সব প্রাসঙ্গিক গুণগত প্রয়োজনীয়তা আছে।
এই প্রয়োজনীয়তাগুলোর মধ্যে সবচেয়ে গুরুত্বপূর্ণগুলো ইতিমধ্যে ১.২ অংশে (গুণগত লক্ষ্য) বর্ণিত হয়েছে, তাই এখানে কেবল সেগুলোর উল্লেখ করা উচিত। এই ১০ম অংশে আপনার কম গুরুত্বপূর্ণ গুণগত প্রয়োজনীয়তাও লিপিবদ্ধ করা উচিত, যেগুলো পুরোপুরি অর্জিত না হলে বড় ঝুঁকি তৈরি করবে না (তবে থাকলে ভালো)।
প্রেরণা
যেহেতু গুণগত প্রয়োজনীয়তা আর্কিটেকচার সিদ্ধান্তে অনেক প্রভাব ফেলবে, তাই আপনার অংশীজনদের কাছে কোন গুণগুলো সত্যিই গুরুত্বপূর্ণ তা সুনির্দিষ্ট ও পরিমাপযোগ্যভাবে আপনার জানা উচিত।
আরও তথ্য
https://quality.arc42.org-এ বিস্তৃত Q42 গুণমান মডেল দেখুন।
10.1 গুণগত প্রয়োজনীয়তার সংক্ষিপ্ত বিবরণ
বিষয়বস্তু
গুণগত প্রয়োজনীয়তার সংক্ষিপ্ত বিবরণ বা সারাংশ।
প্রেরণা
আমরা প্রায়ই কয়েক ডজন (এমনকি শত শত) বিস্তারিত গুণগত প্রয়োজনীয়তার মুখোমুখি হই। এই সংক্ষিপ্ত বিবরণ অংশে আপনার সারসংক্ষেপ করার চেষ্টা করা উচিত, যেমন শ্রেণি বা বিষয় বর্ণনা করে (ISO 25010:2023 বা Q42 যেমন প্রস্তাব করে)
এই সারসংক্ষেপ বর্ণনাগুলো যদি ইতিমধ্যে যথেষ্ট নির্ভুল, সুনির্দিষ্ট ও পরিমাপযোগ্য হয়, তাহলে আপনি ১০.২ অংশ বাদ দিতে পারেন।
বিন্যাস
একটি সাধারণ সারণি ব্যবহার করুন, যার প্রতিটি সারিতে একটি শ্রেণি বা বিষয় এবং গুণগত প্রয়োজনীয়তার সংক্ষিপ্ত বর্ণনা থাকে। বিকল্পভাবে আপনি এই গুণগত প্রয়োজনীয়তাগুলো কাঠামোবদ্ধ করতে মাইন্ডম্যাপ ব্যবহার করতে পারেন।
সাহিত্যে গুণ বৈশিষ্ট্য বৃক্ষের ধারণাও বর্ণিত হয়েছে, যা “গুণমান” এই সাধারণ পদকে মূল হিসেবে রাখে এবং “গুণমান” পদটিকে বৃক্ষের মতো পরিমার্জন করে। এই উদ্দেশ্যে [Bass+21] “Quality Attribute Utility Tree” পদটি চালু করেছে।
10.2 গুণগত দৃশ্যকল্প
বিষয়বস্তু
গুণগত দৃশ্যকল্প গুণগত প্রয়োজনীয়তাকে সুনির্দিষ্ট করে এবং সেগুলো পূরণ হয়েছে কি না (গ্রহণযোগ্যতার মানদণ্ড অর্থে) তা নির্ধারণ করতে দেয়। নিশ্চিত করুন যে আপনার দৃশ্যকল্পগুলো সুনির্দিষ্ট ও পরিমাপযোগ্য।
দুই ধরনের দৃশ্যকল্প বিশেষভাবে কার্যকর:
ব্যবহার দৃশ্যকল্প (অ্যাপ্লিকেশন দৃশ্যকল্প বা ব্যবহার-ক্ষেত্র দৃশ্যকল্পও বলা হয়) কোনো নির্দিষ্ট উদ্দীপকের প্রতি সিস্টেমের রানটাইম প্রতিক্রিয়া বর্ণনা করে। এর মধ্যে সিস্টেমের দক্ষতা বা কর্মক্ষমতা বর্ণনাকারী দৃশ্যকল্পও আছে। উদাহরণ: সিস্টেম ব্যবহারকারীর অনুরোধে এক সেকেন্ডের মধ্যে সাড়া দেয়।
পরিবর্তন দৃশ্যকল্প সিস্টেম বা তার আশু পরিবেশের পরিবর্তন বা সম্প্রসারণের কাঙ্ক্ষিত প্রভাব বর্ণনা করে। উদাহরণ: অতিরিক্ত কার্যকারিতা বাস্তবায়িত হয় বা কোনো গুণ বৈশিষ্ট্যের প্রয়োজনীয়তা বদলায়, এবং পরিবর্তনের প্রচেষ্টা বা সময়কাল পরিমাপ করা হয়।
বিন্যাস
বিস্তারিত দৃশ্যকল্পের সাধারণ তথ্যে নিম্নলিখিতগুলো অন্তর্ভুক্ত থাকে:
সংক্ষিপ্ত রূপে (Q42 মডেলে পছন্দের):
প্রেক্ষাপট/পটভূমি: কী ধরনের সিস্টেম বা কম্পোনেন্ট, পরিবেশ বা পরিস্থিতি কী?
উৎস/উদ্দীপক: কে বা কী কোনো আচরণ, প্রতিক্রিয়া বা কাজ শুরু বা ঘটায়।
মেট্রিক/গ্রহণযোগ্যতার মানদণ্ড: পরিমাপ বা মেট্রিকসহ একটি প্রতিক্রিয়া
দৃশ্যকল্পের দীর্ঘ রূপ (SEI এবং [Bass+21]-এর পছন্দের) আরও বিস্তারিত এবং এতে নিম্নলিখিত তথ্য অন্তর্ভুক্ত থাকে:
দৃশ্যকল্প ID: দৃশ্যকল্পের একটি অনন্য শনাক্তকারী।
দৃশ্যকল্পের নাম: দৃশ্যকল্পের একটি সংক্ষিপ্ত, বর্ণনামূলক নাম।
উৎস: যে সত্তা (ব্যবহারকারী, সিস্টেম বা ঘটনা) দৃশ্যকল্প শুরু করে।
উদ্দীপক: সিস্টেমকে যে ট্রিগারকারী ঘটনা বা শর্ত সামলাতে হবে।
পরিবেশ: যে পরিচালনা প্রেক্ষাপট বা শর্তে সিস্টেম উদ্দীপকের মুখোমুখি হয়।
উপকরণ: উদ্দীপক দ্বারা প্রভাবিত বিল্ডিং ব্লক বা সিস্টেমের অন্যান্য উপাদান।
প্রতিক্রিয়া: উদ্দীপকের প্রতিক্রিয়ায় সিস্টেম যে ফলাফল বা আচরণ প্রদর্শন করে।
প্রতিক্রিয়া পরিমাপ: যে মানদণ্ড বা মেট্রিক দ্বারা সিস্টেমের প্রতিক্রিয়া মূল্যায়ন করা হয়।
আরও দেখুন
২০২৩ সালের জানুয়ারি থেকে arc42 একটি বাস্তবসম্মত গুণমান মডেল দিচ্ছে, যা গুণগত প্রয়োজনীয়তাকে #flexible, #efficient, #usable, #operable, #testable, #secure, #safe, #reliable-এর মতো হ্যাশট্যাগ বা লেবেল দিয়ে চিহ্নিত করার প্রস্তাব করে।
11. ঝুঁকি ও প্রযুক্তিগত ঋণ
জানা প্রযুক্তিগত ঝুঁকি বা প্রযুক্তিগত ঋণ। সিস্টেমের ভেতরে বা চারপাশে কী কী সম্ভাব্য সমস্যা আছে? কোন বিষয়ে উন্নয়ন দল দুর্দশাগ্রস্ত বোধ করে?
বিষয়বস্তু
অগ্রাধিকার অনুযায়ী সাজানো শনাক্ত প্রযুক্তিগত ঝুঁকি বা প্রযুক্তিগত ঋণের একটি তালিকা
প্রেরণা
“ঝুঁকি ব্যবস্থাপনা হলো প্রাপ্তবয়স্কদের জন্য প্রকল্প ব্যবস্থাপনা” (Tim Lister, Atlantic Systems Guild।)
আর্কিটেকচারে ঝুঁকি ও প্রযুক্তিগত ঋণ পদ্ধতিগতভাবে শনাক্ত ও মূল্যায়নের জন্য এটি আপনার মূলমন্ত্র হওয়া উচিত, যা ব্যবস্থাপনা অংশীজনদের (যেমন প্রকল্প ব্যবস্থাপক, পণ্য মালিক) সামগ্রিক ঝুঁকি বিশ্লেষণ ও পরিমাপ পরিকল্পনার অংশ হিসেবে প্রয়োজন হবে।
বিন্যাস
ঝুঁকি এবং/অথবা প্রযুক্তিগত ঋণের তালিকা, সম্ভবত ঝুঁকি কমাতে, প্রশমিত করতে বা এড়াতে অথবা প্রযুক্তিগত ঋণ কমাতে প্রস্তাবিত ব্যবস্থাসহ।