Software architecture
সফ্টওয়্যার স্থাপত্য হল একটি সফ্টওয়্যার সিস্টেম এবং এই ধরনের কাঠামো এবং সিস্টেম তৈরির শৃঙ্খলা সম্পর্কে যুক্তি করার জন্য প্রয়োজনীয় কাঠামোর সেট। প্রতিটি কাঠামোতে সফ্টওয়্যার উপাদান, তাদের মধ্যে সম্পর্ক এবং উপাদান এবং সম্পর্ক উভয়ের বৈশিষ্ট্য রয়েছে। একটি সফ্টওয়্যার সিস্টেমের স্থাপত্য একটি রূপক, যা একটি বিল্ডিংয়ের স্থাপত্যের অনুরূপ। এটি সিস্টেম এবং উন্নয়ন প্রকল্পের জন্য নীলনকশা হিসাবে কাজ করে, যা প্রকল্প পরিচালনা পরে দল এবং জড়িত ব্যক্তিদের দ্বারা কার্যকর করার জন্য প্রয়োজনীয় কাজগুলি এক্সট্রপলেট করতে ব্যবহার করতে পারে। সফ্টওয়্যার স্থাপত্য হল মৌলিক কাঠামোগত পছন্দগুলি করা যা একবার বাস্তবায়িত হলে পরিবর্তন করা ব্যয়বহুল। সফ্টওয়্যার স্থাপত্য পছন্দগুলির মধ্যে সফ্টওয়্যারের নকশার সম্ভাবনাগুলি থেকে নির্দিষ্ট কাঠামোগত বিকল্পগুলি অন্তর্ভুক্ত রয়েছে। উদাহরণস্বরূপ, স্পেস শাটল উৎক্ষেপণ যান নিয়ন্ত্রণকারী ব্যবস্থাগুলির খুব দ্রুত এবং খুব নির্ভরযোগ্য হওয়ার প্রয়োজন ছিল। অতএব, একটি উপযুক্ত রিয়েল-টাইম কম্পিউটিং ভাষা বেছে নিতে হবে। উপরন্তু, নির্ভরযোগ্যতার প্রয়োজনীয়তা মেটানোর জন্য প্রোগ্রামের একাধিক অপ্রয়োজনীয় এবং স্বাধীনভাবে উত্পাদিত অনুলিপিগুলি বেছে নেওয়া যেতে পারে এবং ফলাফলগুলি ক্রস-চেক করার সময় এই অনুলিপিগুলি স্বাধীন হার্ডওয়্যারে চালানো যেতে পারে। নথিভুক্তকরণ সফ্টওয়্যার স্থাপত্য অংশীদারদের মধ্যে যোগাযোগকে সহজতর করে, উচ্চ-স্তরের নকশা সম্পর্কে প্রাথমিক সিদ্ধান্ত গ্রহণ করে এবং প্রকল্পগুলির মধ্যে নকশার উপাদানগুলির পুনঃব্যবহারের অনুমতি দেয়। সফ্টওয়্যার আর্কিটেকচারের পরিধি সম্পর্কে মতামতগুলি পরিবর্তিত হয়ঃ ম্যাক্রোস্কোপিক সিস্টেম কাঠামোঃ এটি একটি সফ্টওয়্যার সিস্টেমের উচ্চ-স্তরের বিমূর্ততা হিসাবে স্থাপত্যকে বোঝায় যা এই উপাদানগুলির মধ্যে মিথস্ক্রিয়া বর্ণনা করে এমন সংযোগকারীগুলির সাথে গণনামূলক উপাদানগুলির একটি সংগ্রহ নিয়ে গঠিত। গুরুত্বপূর্ণ বিষয়-তা যাই হোক না কেনঃ এটি এই সত্যকে বোঝায় যে সফ্টওয়্যার স্থপতিদের সেই সিদ্ধান্তগুলি নিয়ে চিন্তা করা উচিত যা সিস্টেম এবং এর অংশীদারদের উপর উচ্চ প্রভাব ফেলে। একটি সিস্টেমকে তার পরিবেশে বোঝার জন্য যা মৌলিক বিষয় যা মানুষ পরিবর্তন করা কঠিন বলে মনে করেঃ যেহেতু একটি সফ্টওয়্যার সিস্টেমের জীবনচক্রের শুরুতে স্থাপত্যের নকশা তৈরি করা হয়, তাই স্থপতির এমন সিদ্ধান্তগুলিতে মনোনিবেশ করা উচিত যা প্রথমবার সঠিক হতে হবে। এই চিন্তাধারা অনুসরণ করে, স্থাপত্য নকশার সমস্যাগুলি তাদের অপরিবর্তনীয়তাকে অতিক্রম করা গেলে অ-স্থাপত্যিক হয়ে উঠতে পারে। স্থাপত্য নকশার সিদ্ধান্তগুলির একটি সেটঃ সফ্টওয়্যার স্থাপত্যকে কেবল মডেল বা কাঠামোর একটি সেট হিসাবে বিবেচনা করা উচিত নয়, তবে এই নির্দিষ্ট কাঠামোগুলির দিকে পরিচালিত সিদ্ধান্তগুলি এবং তাদের পিছনে যুক্তি অন্তর্ভুক্ত করা উচিত। এই অন্তর্দৃষ্টি সফ্টওয়্যার স্থাপত্য জ্ঞান ব্যবস্থাপনায় যথেষ্ট গবেষণার দিকে পরিচালিত করেছে। সফ্টওয়্যার স্থাপত্য বনাম নকশা এবং প্রয়োজনীয়তা প্রকৌশলের মধ্যে কোনও স্পষ্ট পার্থক্য নেই (নীচের সম্পর্কিত ক্ষেত্রগুলি দেখুন)। এগুলি সবই উচ্চ-স্তরের উদ্দেশ্য থেকে শুরু করে নিম্ন-স্তরের বিবরণ পর্যন্ত "ইচ্ছাকৃততার শৃঙ্খল"-এর অংশ। বৈশিষ্ট্য সফ্টওয়্যার স্থাপত্য নিম্নলিখিতগুলি প্রদর্শন করেঃ বহু সংখ্যক অংশীদারঃ সফ্টওয়্যার সিস্টেমগুলিকে ব্যবসায়িক পরিচালক, মালিক, ব্যবহারকারী এবং অপারেটরদের মতো বিভিন্ন অংশীদারদের চাহিদা পূরণ করতে হয়। এই ব্যবস্থার ক্ষেত্রে এই সমস্ত অংশীদারদের নিজস্ব উদ্বেগ রয়েছে। এই উদ্বেগের ভারসাম্য বজায় রাখা এবং এগুলির সমাধান করা হয়েছে তা প্রদর্শন করা সিস্টেমটি ডিজাইন করার অংশ। এটি বোঝায় যে স্থাপত্য বিভিন্ন ধরনের উদ্বেগ এবং অংশীদারদের সাথে মোকাবিলা করে এবং এর একটি বহু-বিভাগীয় প্রকৃতি রয়েছে। উদ্বেগের পৃথকীকরণঃ স্থপতিদের জন্য জটিলতা হ্রাস করার প্রতিষ্ঠিত উপায় হল নকশাকে চালিত করে এমন উদ্বেগের পৃথকীকরণ। আর্কিটেকচার ডকুমেন্টেশন দেখায় যে সমস্ত স্টেকহোল্ডারদের উদ্বেগের সমাধান করা হয় মডেলিং এবং বিভিন্ন স্টেকহোল্ডারদের উদ্বেগের সাথে সম্পর্কিত পৃথক দৃষ্টিকোণ থেকে আর্কিটেকচার বর্ণনা করে। এই পৃথক বর্ণনাগুলিকে স্থাপত্য দর্শন বলা হয় (উদাহরণস্বরূপ 4 + 1 স্থাপত্য দর্শন মডেল দেখুন)। গুণমান-চালিত-ক্লাসিক সফ্টওয়্যার ডিজাইনের পদ্ধতি (যেমন। জ্যাকসন স্ট্রাকচার্ড প্রোগ্রামিং) প্রয়োজনীয় কার্যকারিতা এবং সিস্টেমের মাধ্যমে তথ্যের প্রবাহ দ্বারা চালিত হয়েছিল, তবে বর্তমান অন্তর্দৃষ্টি হল যে একটি সফ্টওয়্যার সিস্টেমের স্থাপত্য তার গুণমান বৈশিষ্ট্যগুলির সাথে আরও ঘনিষ্ঠভাবে সম্পর্কিত যেমন ত্রুটি-সহনশীলতা, পশ্চাৎ সামঞ্জস্য, সম্প্রসারণযোগ্যতা, নির্ভরযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা, প্রাপ্যতা, সুরক্ষা, ব্যবহারযোগ্যতা এবং এই জাতীয় অন্যান্য-ক্ষমতা। অংশীদারদের উদ্বেগগুলি প্রায়শই এই গুণগত বৈশিষ্ট্যগুলির প্রয়োজনীয়তায় রূপান্তরিত হয়, যাকে বিভিন্নভাবে অ-কার্যকরী প্রয়োজনীয়তা, অতিরিক্ত-কার্যকরী প্রয়োজনীয়তা, আচরণগত প্রয়োজনীয়তা বা গুণগত বৈশিষ্ট্যের প্রয়োজনীয়তা বলা হয়। পুনরাবৃত্তিমূলক শৈলীঃ বিল্ডিং আর্কিটেকচারের মতো, সফ্টওয়্যার আর্কিটেকচার শৃঙ্খলা পুনরাবৃত্তিমূলক উদ্বেগের সমাধানের জন্য আদর্শ উপায় তৈরি করেছে। এই "আদর্শ উপায়গুলি" বিমূর্ততার বিভিন্ন স্তরে বিভিন্ন নামে ডাকা হয়। পুনরাবৃত্তিমূলক সমাধানের জন্য সাধারণ শব্দগুলি হল স্থাপত্য শৈলী, কৌশল, রেফারেন্স স্থাপত্য এবং স্থাপত্য প্যাটার্ন। ধারণাগত অখণ্ডতাঃ ফ্রেড ব্রুকস তাঁর 1975 সালের বই দ্য মিথিকাল ম্যান-মান্থ-এ এই ধারণাটি বোঝানোর জন্য একটি শব্দ প্রবর্তন করেছিলেন যে একটি সফ্টওয়্যার সিস্টেমের স্থাপত্যটি কী করা উচিত এবং কীভাবে এটি করা উচিত তার সামগ্রিক দৃষ্টিভঙ্গির প্রতিনিধিত্ব করে। এই দৃষ্টিভঙ্গিকে এর বাস্তবায়ন থেকে আলাদা করতে হবে। স্থপতি "দর্শনের রক্ষক"-এর ভূমিকা গ্রহণ করেন, নিশ্চিত করেন যে সিস্টেমে সংযোজনগুলি স্থাপত্যের সাথে সামঞ্জস্যপূর্ণ, তাই ধারণাগত অখণ্ডতা সংরক্ষণ করে। জ্ঞানীয় সীমাবদ্ধতাঃ কম্পিউটার প্রোগ্রামার মেলভিন কনওয়ে 1967 সালের একটি গবেষণাপত্রে প্রথম একটি পর্যবেক্ষণ করেছিলেন যে যে সংস্থাগুলি সিস্টেমগুলি ডিজাইন করে সেগুলি ডিজাইন তৈরি করতে বাধ্য হয় যা এই সংস্থাগুলির যোগাযোগ কাঠামোর অনুলিপি। ধারণাগত অখণ্ডতার মতো, ফ্রেড ব্রুকস তাঁর মার্জিত ক্লাসিক দ্য মিথিকাল ম্যান-মান্থ-এ কাগজটি এবং ধারণাটি উদ্ধৃত করে এটিকে "কনওয়ের আইন" বলে অভিহিত করেছিলেন। অনুপ্রেরণা সফ্টওয়্যার স্থাপত্য একটি জটিল ব্যবস্থার একটি "বুদ্ধিবৃত্তিকভাবে বোধগম্য" বিমূর্ততা। এই বিমূর্ততা বেশ কয়েকটি সুবিধা প্রদান করেঃ এটি সিস্টেমটি তৈরি হওয়ার আগে সফ্টওয়্যার সিস্টেমের আচরণ বিশ্লেষণের জন্য একটি ভিত্তি প্রদান করে। ভবিষ্যতের একটি সফ্টওয়্যার সিস্টেম প্রকৃতপক্ষে এটি তৈরি না করেই তার অংশীদারদের চাহিদা পূরণ করে তা যাচাই করার ক্ষমতা যথেষ্ট ব্যয়-সাশ্রয় এবং ঝুঁকি-হ্রাসের প্রতিনিধিত্ব করে। এই ধরনের বিশ্লেষণ করার জন্য বেশ কয়েকটি কৌশল তৈরি করা হয়েছে, যেমন এটিএএম বা সফ্টওয়্যার সিস্টেমের একটি চাক্ষুষ উপস্থাপনা তৈরি করে। এটি উপাদান এবং সিদ্ধান্তগুলির পুনঃব্যবহারের জন্য একটি ভিত্তি প্রদান করে। একটি সম্পূর্ণ সফ্টওয়্যার স্থাপত্য বা এর কিছু অংশ, যেমন পৃথক স্থাপত্য কৌশল এবং সিদ্ধান্ত, একাধিক সিস্টেমে পুনরায় ব্যবহার করা যেতে পারে যার অংশীদারদের অনুরূপ মানের বৈশিষ্ট্য বা কার্যকারিতা প্রয়োজন, নকশা খরচ সাশ্রয় এবং নকশা ভুলের ঝুঁকি হ্রাস করা। এটি প্রাথমিক নকশার সিদ্ধান্তগুলিকে সমর্থন করে যা একটি সিস্টেমের উন্নয়ন, স্থাপনার এবং রক্ষণাবেক্ষণের জীবনকে প্রভাবিত করে। সময়সূচী এবং বাজেটের ঊর্ধ্বগতি রোধ করার জন্য দ্রুত, উচ্চ-প্রভাবের সিদ্ধান্তগুলি সঠিকভাবে নেওয়া গুরুত্বপূর্ণ। এটি অংশীদারদের সাথে যোগাযোগকে সহজতর করে, এমন একটি ব্যবস্থায় অবদান রাখে যা তাদের চাহিদা আরও ভালভাবে পূরণ করে। অংশীদারদের দৃষ্টিকোণ থেকে জটিল ব্যবস্থা সম্পর্কে যোগাযোগ করা তাদের বর্ণিত প্রয়োজনীয়তার পরিণতি এবং তাদের উপর ভিত্তি করে নকশার সিদ্ধান্তগুলি বুঝতে সহায়তা করে। স্থাপত্য ব্যবস্থাটি বাস্তবায়িত হওয়ার আগে নকশার সিদ্ধান্তগুলি সম্পর্কে যোগাযোগ করার ক্ষমতা দেয়, যখন সেগুলি মানিয়ে নেওয়া তুলনামূলকভাবে সহজ। এটি ঝুঁকি ব্যবস্থাপনায় সহায়তা করে। সফ্টওয়্যার স্থাপত্য ঝুঁকি এবং ব্যর্থতার সম্ভাবনা কমাতে সাহায্য করে। এতে খরচ কমবে। সফ্টওয়্যার স্থাপত্য জটিল আইটি প্রকল্পগুলিতে ঝুঁকি এবং খরচ পরিচালনা করার একটি মাধ্যম। সফ্টওয়্যার ডিজাইন এবং (সিভিল) স্থাপত্যের মধ্যে তুলনা প্রথম 1960-এর দশকের শেষের দিকে করা হয়েছিল, তবে "সফ্টওয়্যার স্থাপত্য" শব্দটি 1990-এর দশক পর্যন্ত ব্যাপকভাবে ব্যবহৃত হয়নি। কম্পিউটার বিজ্ঞানের ক্ষেত্রটি প্রতিষ্ঠার পর থেকেই জটিলতার সাথে সম্পর্কিত সমস্যার সম্মুখীন হয়েছিল। ডেভেলপাররা সঠিক তথ্য কাঠামো নির্বাচন করে, অ্যালগরিদম তৈরি করে এবং উদ্বেগের পৃথকীকরণের ধারণা প্রয়োগ করে জটিলতার পূর্ববর্তী সমস্যাগুলি সমাধান করেছিলেন। যদিও "সফ্টওয়্যার স্থাপত্য" শব্দটি এই শিল্পে তুলনামূলকভাবে নতুন, 1980-এর দশকের মাঝামাঝি থেকে সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের অগ্রগামীরা এই ক্ষেত্রের মৌলিক নীতিগুলি বিক্ষিপ্তভাবে প্রয়োগ করেছেন। একটি সিস্টেমের সফ্টওয়্যার স্থাপত্য ক্যাপচার এবং ব্যাখ্যা করার প্রাথমিক প্রচেষ্টা অস্পষ্ট এবং অসংগঠিত ছিল, যা প্রায়শই বক্স-এবং-লাইন চিত্রের একটি সেট দ্বারা চিহ্নিত করা হত। একটি ধারণা হিসাবে সফ্টওয়্যার স্থাপত্যের উৎপত্তি 1968 সালে এডসগার ডিজকস্ট্রা এবং 1970-এর দশকের গোড়ার দিকে ডেভিড পার্নাসের গবেষণায়। এই বিজ্ঞানীরা জোর দিয়েছিলেন যে একটি সফ্টওয়্যার সিস্টেমের কাঠামো গুরুত্বপূর্ণ এবং কাঠামোটি সঠিকভাবে পাওয়া গুরুত্বপূর্ণ। 1990-এর দশকে স্থাপত্য শৈলী (নিদর্শন), স্থাপত্য বর্ণনার ভাষা, স্থাপত্য ডকুমেন্টেশন এবং আনুষ্ঠানিক পদ্ধতির উপর মনোনিবেশ করে গবেষণার কাজ সহ শৃঙ্খলার মৌলিক দিকগুলি সংজ্ঞায়িত ও বিধিবদ্ধ করার একটি সমন্বিত প্রচেষ্টা ছিল। গবেষণা প্রতিষ্ঠানগুলি একটি শাখা হিসাবে সফ্টওয়্যার স্থাপত্যকে এগিয়ে নিয়ে যাওয়ার ক্ষেত্রে বিশিষ্ট ভূমিকা পালন করেছে। কার্নেগি মেলনের মেরি শ এবং ডেভিড গারলান 1996 সালে সফ্টওয়্যার আর্কিটেকচারঃ পার্সপেক্টিভস অন অ্যান ইমার্জিং ডিসিপ্লিন শিরোনামে একটি বই লিখেছিলেন, যা উপাদান, সংযোগকারী এবং শৈলীর মতো সফ্টওয়্যার স্থাপত্য ধারণাগুলিকে প্রচার করেছিল। সফ্টওয়্যার স্থাপত্য গবেষণায় ক্যালিফোর্নিয়া বিশ্ববিদ্যালয়, আরভিনের ইনস্টিটিউট ফর সফ্টওয়্যার রিসার্চের প্রচেষ্টা প্রাথমিকভাবে স্থাপত্য শৈলী, স্থাপত্য বর্ণনার ভাষা এবং গতিশীল স্থাপত্যগুলিতে পরিচালিত হয়। আই. ই. ই. <আই. ডি. 1>, "সফ্টওয়্যার-নিবিড় ব্যবস্থার স্থাপত্য বিবরণের জন্য প্রস্তাবিত অনুশীলন", ছিল সফ্টওয়্যার স্থাপত্যের ক্ষেত্রে প্রথম আনুষ্ঠানিক মান। এটি 2007 সালে আইএসও দ্বারা আইএসও/আইইসি 42010:2007 হিসাবে গৃহীত হয়েছিল। 2011 সালের নভেম্বরে, আই. ই. ই. ই. <আই. ডি. 1> কে আই. এস. ও./আই. ই. সি./আই. ই. ই. ই. <আই. ডি. 2>, "সিস্টেম এবং সফ্টওয়্যার ইঞ্জিনিয়ারিং-আর্কিটেকচার বর্ণনা" (আই. ই. ই. ই এবং আই. এস. ও দ্বারা যৌথভাবে প্রকাশিত) দ্বারা প্রতিস্থাপিত করা হয়। আই. ই. ই. ই 1471-এ, সফ্টওয়্যার স্থাপত্য "সফ্টওয়্যার-নিবিড় সিস্টেম"-এর স্থাপত্য সম্পর্কে ছিল, "যে কোনও সিস্টেম যেখানে সফ্টওয়্যার সামগ্রিকভাবে সিস্টেমের নকশা, নির্মাণ, স্থাপন এবং বিবর্তনে প্রয়োজনীয় প্রভাব অবদান রাখে" হিসাবে সংজ্ঞায়িত করা হয়েছে, 2011 সংস্করণটি আইএসও/আইইসি 15288 এবং আইএসও/আইইসি 12207 সংজ্ঞাগুলি অন্তর্ভুক্ত করে আরও এক ধাপ এগিয়ে যায়, যা কেবল হার্ডওয়্যার এবং সফ্টওয়্যারই নয়, "মানুষ, প্রক্রিয়া, পদ্ধতি, সুবিধা, উপকরণ এবং প্রাকৃতিকভাবে ঘটে যাওয়া সত্তা" কে অন্তর্ভুক্ত করে। এটি সফ্টওয়্যার স্থাপত্য, এন্টারপ্রাইজ স্থাপত্য এবং সমাধান স্থাপত্যের মধ্যে সম্পর্ককে প্রতিফলিত করে। স্থাপত্যের ক্রিয়াকলাপ এমন অনেক ক্রিয়াকলাপ রয়েছে যা একজন সফ্টওয়্যার স্থপতি সম্পাদন করেন। একজন সফ্টওয়্যার স্থপতি সাধারণত প্রকল্প পরিচালকদের সাথে কাজ করেন, অংশীদারদের সাথে স্থাপত্যগতভাবে গুরুত্বপূর্ণ প্রয়োজনীয়তা নিয়ে আলোচনা করেন, একটি সফ্টওয়্যার স্থাপত্য ডিজাইন করেন, একটি নকশার মূল্যায়ন করেন, ডিজাইনার এবং অংশীদারদের সাথে যোগাযোগ করেন, স্থাপত্য নকশা নথিভুক্ত করেন এবং আরও অনেক কিছু। সফ্টওয়্যার স্থাপত্য নকশায় চারটি মূল ক্রিয়াকলাপ রয়েছে। এই মূল স্থাপত্য ক্রিয়াকলাপগুলি পুনরাবৃত্তিমূলকভাবে এবং প্রাথমিক সফ্টওয়্যার বিকাশ জীবনচক্রের বিভিন্ন পর্যায়ে, পাশাপাশি একটি সিস্টেমের বিবর্তনের উপর সঞ্চালিত হয়। স্থাপত্য বিশ্লেষণ হল সেই পরিবেশকে বোঝার প্রক্রিয়া যেখানে একটি প্রস্তাবিত ব্যবস্থা কাজ করবে এবং ব্যবস্থাটির প্রয়োজনীয়তা নির্ধারণ করবে। বিশ্লেষণ ক্রিয়াকলাপের ইনপুট বা প্রয়োজনীয়তা যে কোনও সংখ্যক অংশীদারদের কাছ থেকে আসতে পারে এবং এর মধ্যে অন্তর্ভুক্ত রয়েছেঃ সিস্টেমটি যখন কার্যকরী (কার্যকরী প্রয়োজনীয়তা) তখন সিস্টেমটি কতটা ভালভাবে রানটাইম অ-কার্যকরী প্রয়োজনীয়তা যেমন নির্ভরযোগ্যতা, কার্যকারিতা, কর্মক্ষমতা দক্ষতা, সুরক্ষা, আইএসও/আইইসি 25010:2011 স্ট্যান্ডার্ড ডেভেলপমেন্ট-টাইমে সংজ্ঞায়িত সামঞ্জস্যতা যেমন আইএসও 25010:2011 স্ট্যান্ডার্ড ব্যবসায়িক প্রয়োজনীয়তা এবং একটি সিস্টেমের পরিবেশগত প্রেক্ষাপটে সংজ্ঞায়িত রক্ষণাবেক্ষণযোগ্যতা এবং স্থানান্তরযোগ্যতা যা সময়ের সাথে পরিবর্তিত হতে পারে, যেমন আইনী, সামাজিক, আর্থিক, প্রতিযোগিতামূলক এবং প্রযুক্তিগত উদ্বেগ বিশ্লেষণ ক্রিয়াকলাপের ফলাফলগুলি সেই প্রয়োজনীয়তাগুলি যা একটি সফ্টওয়্যার সিস্টেমের কাঠামোর উপর পরিমাপযোগ্য প্রভাব ফেলে, যাকে স্থাপত্যগতভাবে উল্লেখযোগ্য প্রয়োজনীয়তা বলা হয়। স্থাপত্য সংশ্লেষণ বা নকশা হল একটি স্থাপত্য তৈরির প্রক্রিয়া। বিশ্লেষণ দ্বারা নির্ধারিত স্থাপত্যগতভাবে উল্লেখযোগ্য প্রয়োজনীয়তা, নকশার বর্তমান অবস্থা এবং যে কোনও মূল্যায়ন কার্যক্রমের ফলাফলের পরিপ্রেক্ষিতে নকশাটি তৈরি এবং উন্নত করা হয়। স্থাপত্য মূল্যায়ন হল বর্তমান নকশা বা এর একটি অংশ বিশ্লেষণের সময় প্রাপ্ত প্রয়োজনীয়তাগুলি কতটা ভালভাবে সন্তুষ্ট করে তা নির্ধারণ করার প্রক্রিয়া। যখনই কোনও স্থপতি কোনও নকশার সিদ্ধান্ত বিবেচনা করছেন তখন একটি মূল্যায়ন ঘটতে পারে, এটি নকশার কিছু অংশ সম্পন্ন হওয়ার পরে ঘটতে পারে, এটি চূড়ান্ত নকশা সম্পন্ন হওয়ার পরে ঘটতে পারে বা সিস্টেমটি নির্মাণের পরে ঘটতে পারে। উপলব্ধ কিছু সফ্টওয়্যার স্থাপত্য মূল্যায়ন কৌশলের মধ্যে রয়েছে আর্কিটেকচার ট্রেডঅফ অ্যানালাইসিস মেথড (এটিএএম) এবং টারা। কৌশলগুলির তুলনা করার কাঠামোগুলি সারা রিপোর্ট এবং আর্কিটেকচার রিভিউঃ অনুশীলন এবং অভিজ্ঞতার মতো কাঠামোগুলিতে আলোচনা করা হয়েছে। স্থাপত্য বিবর্তন হল প্রয়োজনীয়তা এবং পরিবেশের পরিবর্তনগুলি পূরণ করার জন্য একটি বিদ্যমান সফ্টওয়্যার স্থাপত্য বজায় রাখা এবং মানিয়ে নেওয়ার প্রক্রিয়া। যেহেতু সফ্টওয়্যার স্থাপত্য একটি সফ্টওয়্যার সিস্টেমের একটি মৌলিক কাঠামো প্রদান করে, তাই এর বিবর্তন এবং রক্ষণাবেক্ষণ অবশ্যই এর মৌলিক কাঠামোকে প্রভাবিত করবে। যেমন, স্থাপত্য বিবর্তন নতুন কার্যকারিতা যোগ করার পাশাপাশি বিদ্যমান কার্যকারিতা এবং সিস্টেমের আচরণ বজায় রাখার সাথে সম্পর্কিত। স্থাপত্যের জন্য সমালোচনামূলক সহায়ক ক্রিয়াকলাপ প্রয়োজন। এই সহায়ক ক্রিয়াকলাপগুলি মূল সফ্টওয়্যার স্থাপত্য প্রক্রিয়া জুড়ে ঘটে। এগুলির মধ্যে রয়েছে জ্ঞান ব্যবস্থাপনা এবং যোগাযোগ, নকশা যুক্তি এবং সিদ্ধান্ত গ্রহণ এবং ডকুমেন্টেশন। স্থাপত্য সহায়ক ক্রিয়াকলাপ সফ্টওয়্যার স্থাপত্য সহায়ক ক্রিয়াকলাপগুলি মূল সফ্টওয়্যার স্থাপত্য ক্রিয়াকলাপের সময় পরিচালিত হয়। এই সহায়ক ক্রিয়াকলাপগুলি একজন সফ্টওয়্যার স্থপতি-কে বিশ্লেষণ, সংশ্লেষণ, মূল্যায়ন এবং বিবর্তন করতে সহায়তা করে। উদাহরণস্বরূপ, একজন স্থপতি-কে বিশ্লেষণ পর্যায়ে জ্ঞান সংগ্রহ করতে হয়, সিদ্ধান্ত নিতে হয় এবং নথিভুক্ত করতে হয়। জ্ঞান ব্যবস্থাপনা এবং যোগাযোগ হল জ্ঞান অন্বেষণ এবং পরিচালনার কাজ যা একটি সফ্টওয়্যার স্থাপত্য নকশা করার জন্য প্রয়োজনীয়। একজন সফ্টওয়্যার স্থপতি বিচ্ছিন্নভাবে কাজ করেন না। তারা বিভিন্ন অংশীদারদের কাছ থেকে ইনপুট, কার্যকরী এবং অ-কার্যকরী প্রয়োজনীয়তা এবং নকশা প্রসঙ্গ পায়; এবং অংশীদারদের আউটপুট প্রদান করে। সফ্টওয়্যার স্থাপত্যের জ্ঞান প্রায়শই নীরব থাকে এবং অংশীদারদের মাথায় রাখা হয়। সফ্টওয়্যার স্থাপত্য জ্ঞান ব্যবস্থাপনার কার্যকলাপ হল জ্ঞান খুঁজে বের করা, যোগাযোগ করা এবং ধরে রাখা। যেহেতু সফ্টওয়্যার স্থাপত্য নকশার সমস্যাগুলি জটিল এবং আন্তঃনির্ভরশীল, তাই নকশার যুক্তিতে জ্ঞানের ব্যবধান ভুল সফ্টওয়্যার স্থাপত্য নকশার দিকে নিয়ে যেতে পারে। জ্ঞান ব্যবস্থাপনা এবং যোগাযোগ ক্রিয়াকলাপের উদাহরণগুলির মধ্যে রয়েছে নকশার নিদর্শনগুলি অনুসন্ধান করা, প্রোটোটাইপিং, অভিজ্ঞ বিকাশকারী এবং স্থপতিদের জিজ্ঞাসা করা, অনুরূপ সিস্টেমের নকশাগুলির মূল্যায়ন করা, অন্যান্য ডিজাইনার এবং অংশীদারদের সাথে জ্ঞান ভাগ করে নেওয়া এবং উইকি পৃষ্ঠায় অভিজ্ঞতা নথিভুক্ত করা। নকশা যুক্তি এবং সিদ্ধান্ত গ্রহণ হল নকশা সিদ্ধান্তের মূল্যায়নের কার্যকলাপ। এই ক্রিয়াকলাপ তিনটি মূল সফ্টওয়্যার স্থাপত্য ক্রিয়াকলাপের জন্য মৌলিক। এর মধ্যে রয়েছে সিদ্ধান্তের প্রসঙ্গগুলি সংগ্রহ করা এবং সংযুক্ত করা, নকশা সিদ্ধান্তের সমস্যাগুলি প্রণয়ন করা, সমাধানের বিকল্পগুলি খুঁজে বের করা এবং সিদ্ধান্ত নেওয়ার আগে বিনিময়গুলি মূল্যায়ন করা। উল্লেখযোগ্য স্থাপত্যের প্রয়োজনীয়তা এবং সফ্টওয়্যার স্থাপত্যের সিদ্ধান্ত এবং সফ্টওয়্যার স্থাপত্য বিশ্লেষণ, সংশ্লেষণ এবং মূল্যায়নের সময় এই প্রক্রিয়াটি সিদ্ধান্তের গ্রানুলারিটির বিভিন্ন স্তরে ঘটে। যুক্তিসঙ্গত ক্রিয়াকলাপের উদাহরণগুলির মধ্যে রয়েছে একটি প্রয়োজনীয়তা বা মানের বৈশিষ্ট্যগুলির উপর একটি নকশার প্রভাবগুলি বোঝা, একটি নকশা যে সমস্যাগুলির কারণ হতে পারে তা নিয়ে প্রশ্ন করা, সম্ভাব্য সমাধানের বিকল্পগুলি মূল্যায়ন করা এবং সমাধানগুলির মধ্যে সমঝোতার মূল্যায়ন করা। ডকুমেন্টেশন হল সফ্টওয়্যার আর্কিটেকচার প্রক্রিয়া চলাকালীন তৈরি নকশা রেকর্ড করার কাজ। সিস্টেমের নকশাটি বেশ কয়েকটি ভিউ ব্যবহার করে বর্ণনা করা হয় যার মধ্যে প্রায়শই সিস্টেমের কোড কাঠামো দেখানো একটি স্থির ভিউ, কার্যকর করার সময় সিস্টেমের ক্রিয়া দেখানো একটি গতিশীল ভিউ এবং কার্যকর করার জন্য হার্ডওয়্যারে একটি সিস্টেম কীভাবে স্থাপন করা হয় তা দেখানো একটি স্থাপনার ভিউ অন্তর্ভুক্ত থাকে। ক্রাউচটেনের 4 + 1 ভিউ সফ্টওয়্যার আর্কিটেকচার নথিভুক্ত করার জন্য সাধারণভাবে ব্যবহৃত ভিউগুলির একটি বিবরণের পরামর্শ দেয়; ডকুমেন্টিং সফ্টওয়্যার আর্কিটেকচারসঃ ভিউস অ্যান্ড বিয়ন্ড-এ ভিউ বর্ণনার মধ্যে ব্যবহার করা যেতে পারে এমন ধরণের স্বরলিপির বিবরণ রয়েছে। ডকুমেন্টেশন ক্রিয়াকলাপের উদাহরণ হল একটি নির্দিষ্টকরণ লেখা, একটি সিস্টেম ডিজাইন মডেল রেকর্ড করা, একটি ডিজাইনের যৌক্তিকতা নথিভুক্ত করা, একটি দৃষ্টিভঙ্গি বিকাশ করা, মতামত নথিভুক্ত করা। সফ্টওয়্যার স্থাপত্যের বিষয় সফ্টওয়্যার স্থাপত্যের বর্ণনা সফ্টওয়্যার স্থাপত্যের বর্ণনায় স্থাপত্যের বর্ণনা ভাষা, স্থাপত্যের দৃষ্টিভঙ্গি এবং স্থাপত্য কাঠামোর মতো প্রক্রিয়া ব্যবহার করে স্থাপত্যের মডেলিং এবং প্রতিনিধিত্ব করার নীতি ও অনুশীলন জড়িত। একটি স্থাপত্য বর্ণনা ভাষা (এডিএল) হল একটি সফ্টওয়্যার স্থাপত্য (আইএসও/আইইসি/আইইইই 42010) বর্ণনা করতে ব্যবহৃত অভিব্যক্তির যে কোনও মাধ্যম। 1990-এর দশক থেকে অনেক বিশেষ উদ্দেশ্যের এ. ডি. এল তৈরি করা হয়েছে, যার মধ্যে রয়েছে এ. এ. ডি. এল (এস. এ. ই স্ট্যান্ডার্ড), রাইট (কার্নেগি মেলন দ্বারা বিকশিত), এ. সি. এম. ই (কার্নেগি মেলন দ্বারা উন্নত), এক্স. এ. ডি. এল (ইউ. সি. আই দ্বারা উন্নত), ডারউইন (ইম্পেরিয়াল কলেজ লন্ডন দ্বারা উন্নত), ডি. এ. ও. পি-এ. ডি. এল (মালাগা বিশ্ববিদ্যালয় দ্বারা উন্নত), এস. বি. সি-এ. ডি. এল (ন্যাশনাল সান ইয়াত-সেন বিশ্ববিদ্যালয় দ্বারা উন্নত), এবং বি. এ. ডি. এল (ল 'আকিলা বিশ্ববিদ্যালয়, ইতালি)। স্থাপত্যের দৃষ্টিভঙ্গি সফ্টওয়্যার স্থাপত্যের বিবরণগুলি সাধারণত দৃষ্টিভঙ্গিতে সংগঠিত হয়, যা বিল্ডিং আর্কিটেকচারে তৈরি বিভিন্ন ধরণের ব্লুপ্রিন্টের অনুরূপ। প্রতিটি দৃষ্টিভঙ্গি তার দৃষ্টিভঙ্গির নিয়মাবলী অনুসরণ করে সিস্টেমের উদ্বেগের একটি সেটকে সম্বোধন করে, যেখানে একটি দৃষ্টিভঙ্গি এমন একটি নির্দিষ্টকরণ যা একটি দৃষ্টিভঙ্গিতে ব্যবহার করার জন্য স্বরলিপি, মডেলিং এবং বিশ্লেষণ কৌশলগুলি বর্ণনা করে যা প্রদত্ত অংশীদারদের এবং তাদের উদ্বেগের (আইএসও/আইইসি/আইইইই 42010) দৃষ্টিকোণ থেকে প্রশ্নযুক্ত স্থাপত্যকে প্রকাশ করে। দৃষ্টিভঙ্গি শুধুমাত্র তৈরি করা উদ্বেগের বিষয়গুলি (অর্থাৎ, সমাধান করা হবে) নির্দিষ্ট করে না, বরং উপস্থাপনা, ব্যবহৃত মডেলের ধরন, ব্যবহৃত রীতিনীতি এবং অন্যান্য মতামতের সাথে সামঞ্জস্য রাখার জন্য যে কোনও সামঞ্জস্য (চিঠিপত্র) নিয়ম নির্দিষ্ট করে। স্থাপত্য কাঠামো একটি স্থাপত্য কাঠামো "প্রয়োগের একটি নির্দিষ্ট ক্ষেত্র এবং/অথবা অংশীদারদের সম্প্রদায়ের মধ্যে প্রতিষ্ঠিত স্থাপত্যের বর্ণনার জন্য কনভেনশন, নীতি এবং অনুশীলনগুলি" (আইএসও/আইইসি/আইইইই 42010) ধারণ করে। একটি কাঠামো সাধারণত এক বা একাধিক দৃষ্টিভঙ্গি বা এডিএল-এর পরিপ্রেক্ষিতে প্রয়োগ করা হয়। স্থাপত্য শৈলী এবং নিদর্শন একটি নির্দিষ্ট প্রেক্ষাপটে সফ্টওয়্যার আর্কিটেকচারে সাধারণভাবে ঘটে যাওয়া সমস্যার একটি সাধারণ, পুনঃব্যবহারযোগ্য সমাধান। স্থাপত্য নিদর্শনগুলি প্রায়শই সফ্টওয়্যার ডিজাইনের নিদর্শন হিসাবে নথিভুক্ত করা হয়। ঐতিহ্যবাহী বিল্ডিং স্থাপত্য অনুসরণ করে, একটি 'সফ্টওয়্যার স্থাপত্য শৈলী' নির্মাণের একটি নির্দিষ্ট পদ্ধতি, যা এটিকে উল্লেখযোগ্য করে তোলে এমন বৈশিষ্ট্য দ্বারা চিহ্নিত করা হয়। অনেক স্বীকৃত স্থাপত্য নিদর্শন এবং শৈলী রয়েছে, যার মধ্যে রয়েছেঃ ব্ল্যাকবোর্ড ক্লায়েন্ট-সার্ভার (2-স্তর, 3-স্তর, এন-স্তর, ক্লাউড কম্পিউটিং এই শৈলী প্রদর্শন করে) উপাদান-ভিত্তিক তথ্য-কেন্দ্রিক ইভেন্ট-চালিত (বা অন্তর্নিহিত আহ্বান) স্তরযুক্ত (বা বহু-স্তরযুক্ত স্থাপত্য) মাইক্রোসার্ভিসেস আর্কিটেকচার মনোলিথিক অ্যাপ্লিকেশন পিয়ার-টু-পিয়ার (পি2পি) পাইপ এবং ফিল্টার প্লাগ-ইন প্রতিক্রিয়াশীল স্থাপত্য প্রতিনিধিত্বমূলক রাজ্য স্থানান্তর (আরইএসটি) নিয়ম-ভিত্তিক পরিষেবা-ভিত্তিক শেয়ারড কিছুই স্থাপত্য স্থান-ভিত্তিক সার্ভারলেস স্থাপত্য কিছু স্থাপত্য নিদর্শন এবং স্থাপত্য শৈলীকে একই হিসাবে বিবেচনা করে, কিছু শৈলীকে নিদর্শনগুলির বিশেষীকরণ হিসাবে বিবেচনা করে। তাদের মধ্যে যা মিল রয়েছে তা হ 'ল নিদর্শন এবং শৈলী উভয়ই স্থপতিদের ব্যবহারের জন্য প্রবাদ, তারা "একটি সাধারণ ভাষা" বা "শব্দভান্ডার" সরবরাহ করে যার সাথে সিস্টেমের শ্রেণীগুলি বর্ণনা করা যায়। সফ্টওয়্যার স্থাপত্য এবং চটপটে উন্নয়ন আরও উদ্বেগ রয়েছে যে সফ্টওয়্যার স্থাপত্য খুব বেশি বিগ ডিজাইন আপ ফ্রন্টের দিকে পরিচালিত করে, বিশেষত চটপটে সফ্টওয়্যার বিকাশের প্রবক্তাদের মধ্যে। সামনের দিকের নকশা এবং চঞ্চলতার মধ্যে ভারসাম্য বজায় রাখার জন্য বেশ কয়েকটি পদ্ধতি তৈরি করা হয়েছে, যার মধ্যে রয়েছে চটপটে পদ্ধতি ডি. এস. ডি. এম যা একটি "ভিত্তি" পর্যায়কে বাধ্যতামূলক করে যার সময় "যথেষ্ট পরিমাণে" স্থাপত্যের ভিত্তি স্থাপন করা হয়। আই. ই. ই. ই সফ্টওয়্যার চঞ্চলতা এবং স্থাপত্যের মধ্যে মিথস্ক্রিয়ার জন্য একটি বিশেষ বিষয় উৎসর্গ করেছে। সফ্টওয়্যার স্থাপত্য ক্ষয় সফ্টওয়্যার স্থাপত্য ক্ষয় (বা "ক্ষয়") একটি সফ্টওয়্যার সিস্টেমের পরিকল্পিত এবং প্রকৃত স্থাপত্যের মধ্যে পর্যবেক্ষণ করা ব্যবধানকে বোঝায় যা তার বাস্তবায়নে উপলব্ধি করা হয়। সফ্টওয়্যার স্থাপত্যের ক্ষয় ঘটে যখন বাস্তবায়নের সিদ্ধান্তগুলি পরিকল্পিত স্থাপত্যটি সম্পূর্ণরূপে অর্জন করে না বা অন্যথায় সেই স্থাপত্যের সীমাবদ্ধতা বা নীতিগুলি লঙ্ঘন করে। উদাহরণস্বরূপ, একটি কঠোরভাবে স্তরযুক্ত ব্যবস্থা বিবেচনা করুন, যেখানে প্রতিটি স্তর কেবল তার ঠিক নীচের স্তর দ্বারা প্রদত্ত পরিষেবাগুলি ব্যবহার করতে পারে। যে কোনও সোর্স কোড উপাদান যা এই সীমাবদ্ধতা পালন করে না তা একটি স্থাপত্য লঙ্ঘনের প্রতিনিধিত্ব করে। যদি সংশোধন না করা হয়, তবে এই ধরনের লঙ্ঘন স্থাপত্যকে একটি একশিলা ব্লকে রূপান্তরিত করতে পারে, যা বোধগম্যতা, রক্ষণাবেক্ষণযোগ্যতা এবং বিবর্তনের উপর বিরূপ প্রভাব ফেলতে পারে। ক্ষয় রোধ করার জন্য বিভিন্ন পদ্ধতির প্রস্তাব দেওয়া হয়েছে। এই পদ্ধতিগুলি, যার মধ্যে রয়েছে সরঞ্জাম, কৌশল এবং প্রক্রিয়া, প্রাথমিকভাবে তিনটি সাধারণ বিভাগে শ্রেণীবদ্ধ করা হয় যা স্থাপত্যের ক্ষয় হ্রাস, প্রতিরোধ এবং মেরামত করার চেষ্টা করে। এই বিস্তৃত বিভাগগুলির মধ্যে, প্রতিটি পদ্ধতিকে আরও বিভক্ত করা হয়েছে যা ক্ষয় মোকাবেলায় গৃহীত উচ্চ-স্তরের কৌশলগুলিকে প্রতিফলিত করে। এগুলি হল প্রক্রিয়া-ভিত্তিক স্থাপত্য সামঞ্জস্য, স্থাপত্য বিবর্তন ব্যবস্থাপনা, স্থাপত্য নকশা প্রয়োগ, বাস্তবায়নের সংযোগের জন্য স্থাপত্য, স্ব-অভিযোজন এবং পুনরুদ্ধার, আবিষ্কার এবং পুনর্মিলনের সমন্বিত স্থাপত্য পুনরুদ্ধার কৌশল। স্থাপত্য লঙ্ঘন সনাক্ত করার জন্য দুটি প্রধান কৌশল রয়েছেঃ প্রতিফলন মডেল এবং ক্ষেত্র-নির্দিষ্ট ভাষা। রিফ্লেক্সিয়ন মডেল (আরএম) কৌশলগুলি সিস্টেমের স্থপতিদের দ্বারা প্রদত্ত একটি উচ্চ-স্তরের মডেলকে সোর্স কোড বাস্তবায়নের সাথে তুলনা করে। স্থাপত্যগত সীমাবদ্ধতাগুলি নির্দিষ্ট এবং পরীক্ষা করার উপর দৃষ্টি নিবদ্ধ করে ডোমেন-নির্দিষ্ট ভাষাগুলিও রয়েছে। সফ্টওয়্যার স্থাপত্য পুনরুদ্ধার সফ্টওয়্যার স্থাপত্য পুনরুদ্ধারের (বা পুনর্গঠন, বা বিপরীত প্রকৌশল) মধ্যে একটি সফ্টওয়্যার সিস্টেমের স্থাপত্যকে তার বাস্তবায়ন এবং ডকুমেন্টেশন সহ উপলব্ধ তথ্য থেকে উন্মোচন করার পদ্ধতি, কৌশল এবং প্রক্রিয়াগুলি অন্তর্ভুক্ত রয়েছে। অপ্রচলিত বা পুরনো ডকুমেন্টেশন এবং স্থাপত্য ক্ষয়ের মুখে অবহিত সিদ্ধান্ত নেওয়ার জন্য স্থাপত্য পুনরুদ্ধারের প্রায়শই প্রয়োজন হয়ঃ কল্পনা করা স্থাপত্য থেকে বিচ্ছিন্ন বাস্তবায়ন এবং রক্ষণাবেক্ষণের সিদ্ধান্ত। স্ট্যাটিক প্রোগ্রাম বিশ্লেষণ হিসাবে সফ্টওয়্যার স্থাপত্য পুনরুদ্ধারের জন্য অনুশীলন বিদ্যমান। এটি সফ্টওয়্যার বুদ্ধিমত্তা অনুশীলনের আওতায় থাকা বিষয়গুলির একটি অংশ। সংশ্লিষ্ট ক্ষেত্র নকশা স্থাপত্য নকশা কিন্তু সমস্ত নকশা স্থাপত্য নয়। বাস্তবে, স্থপতি হলেন সেই ব্যক্তি যিনি সফ্টওয়্যার স্থাপত্য (স্থাপত্য নকশা) এবং বিস্তারিত নকশার (অ-স্থাপত্য নকশা) মধ্যে রেখা আঁকেন। কোনও নিয়ম বা নির্দেশিকা নেই যা সমস্ত ক্ষেত্রে ফিট করে, যদিও পার্থক্যটি আনুষ্ঠানিক করার চেষ্টা করা হয়েছে। ইন্টেনশন/লোকালিটি হাইপোথিসিস অনুসারে, স্থাপত্য এবং বিশদ নকশার মধ্যে পার্থক্যটি লোকালিটি মানদণ্ড দ্বারা সংজ্ঞায়িত করা হয়, যা অনুসারে সফ্টওয়্যার ডিজাইন সম্পর্কে একটি বিবৃতি অ-স্থানীয় (স্থাপত্য) হয় যদি এবং শুধুমাত্র যদি কোনও প্রোগ্রাম যা এটি সন্তুষ্ট করে এমন একটি প্রোগ্রামে প্রসারিত করা যায় যা তা করে না। উদাহরণস্বরূপ, ক্লায়েন্ট-সার্ভার শৈলীটি স্থাপত্যগত (কৌশলগত) কারণ এই নীতির উপর নির্মিত একটি প্রোগ্রামকে এমন একটি প্রোগ্রামে প্রসারিত করা যেতে পারে যা ক্লায়েন্ট-সার্ভার নয়-উদাহরণস্বরূপ, পিয়ার-টু-পিয়ার নোড যোগ করে। প্রয়োজনীয়তা প্রকৌশল প্রয়োজনীয়তা প্রকৌশল এবং সফ্টওয়্যার স্থাপত্যকে পরিপূরক পদ্ধতি হিসাবে দেখা যেতে পারেঃ যেখানে সফ্টওয়্যার স্থাপত্য 'সমাধান স্থান' বা 'কীভাবে' লক্ষ্য করে, প্রয়োজনীয়তা প্রকৌশল 'সমস্যা স্থান' বা 'কী' সম্বোধন করে। প্রয়োজনীয়তা প্রকৌশলের মধ্যে রয়েছে প্রয়োজনীয়তার বিশ্লেষণ, আলোচনা, নির্দিষ্টকরণ, বৈধতা, ডকুমেন্টেশন এবং পরিচালনা। প্রয়োজনীয় প্রকৌশল এবং সফ্টওয়্যার স্থাপত্য উভয়ই অংশীদারদের উদ্বেগ, চাহিদা এবং ইচ্ছার চারপাশে ঘোরে। প্রয়োজনীয় ইঞ্জিনিয়ারিং এবং সফ্টওয়্যার আর্কিটেকচারের মধ্যে যথেষ্ট ওভারল্যাপ রয়েছে, যেমন উদাহরণস্বরূপ পাঁচটি শিল্প সফ্টওয়্যার আর্কিটেকচার পদ্ধতির একটি গবেষণা দ্বারা প্রমাণিত হয়েছে যা উপসংহারে পৌঁছেছে যে "ইনপুট (লক্ষ্য, সীমাবদ্ধতা ইত্যাদি)। এগুলি সাধারণত অ-সংজ্ঞায়িত হয় এবং স্থাপত্যের আবির্ভাব শুরু হওয়ার সাথে সাথে কেবল আবিষ্কৃত হয় বা আরও ভালভাবে বোঝা যায় এবং যদিও "বেশিরভাগ স্থাপত্য সংক্রান্ত উদ্বেগগুলি সিস্টেমের প্রয়োজনীয়তা হিসাবে প্রকাশ করা হয়, তবে এগুলি বাধ্যতামূলক নকশার সিদ্ধান্তগুলিও অন্তর্ভুক্ত করতে পারে।" সংক্ষেপে, প্রয়োজনীয় আচরণ সমাধান স্থাপত্যকে প্রভাবিত করে, যা পালাক্রমে নতুন প্রয়োজনীয়তা প্রবর্তন করতে পারে। টুইন পিকস মডেলের মতো পদ্ধতির লক্ষ্য হল প্রয়োজনীয়তা এবং স্থাপত্যের মধ্যে সমন্বয়মূলক সম্পর্ককে কাজে লাগানো। অন্যান্য ধরনের 'স্থাপত্য' কম্পিউটার স্থাপত্য কম্পিউটার সিস্টেমের অভ্যন্তরীণ কাঠামোকে লক্ষ্য করে, সিপিইউ-বা প্রসেসর-বাস এবং মেমরির মতো সহযোগী হার্ডওয়্যার উপাদানগুলির ক্ষেত্রে। সার্ভারহীন স্থাপত্য একটি ক্লাউড কম্পিউটিং দৃষ্টান্ত যা প্রায়শই সার্ভার-মুক্ত হিসাবে ভুল বোঝাবুঝি হয়। এটি মূলত সার্ভার পরিচালনার দায়িত্বগুলি ডেভেলপারদের থেকে ক্লাউড পরিষেবা প্রদানকারীদের কাছে স্থানান্তরিত করে। এটি ব্যবসাগুলিকে ক্লাউড পরিকাঠামোতে তাদের ব্যাকএন্ড কোড চালানোর অনুমতি দেয়, যা শারীরিক সার্ভার পরিচালনার প্রয়োজনীয়তা দূর করে। সার্ভারহীন স্থাপত্যের ইভেন্ট-চালিত পদ্ধতিটি ছোট, কাজ-নির্দিষ্ট ফাংশনের উপর নির্ভর করে যা চাহিদা অনুযায়ী কার্যকর করা হয়। এই ফাংশনগুলি ফাংশন অ্যাজ এ সার্ভিস (এফ. এ. এ. এস) নামে পরিচিত, এবং এগুলি প্রয়োগের চাহিদার উপর ভিত্তি করে পে-অ্যাজ-ইউ-গো বিলিং মডেল এবং ডাইনামিক রিসোর্স স্কেলিংয়ের মাধ্যমে ব্যয়-দক্ষতা প্রদান করে। সিস্টেম আর্কিটেকচার শব্দটি মূলত হার্ডওয়্যার এবং সফ্টওয়্যার উভয় সমন্বিত সিস্টেমের স্থাপত্যের ক্ষেত্রে প্রয়োগ করা হয়েছে। সিস্টেম আর্কিটেকচার দ্বারা সম্বোধন করা প্রধান উদ্বেগ হল একটি সম্পূর্ণ, সঠিকভাবে কাজ করা ডিভাইসে সফ্টওয়্যার এবং হার্ডওয়্যারের সংহতকরণ। আরেকটি সাধারণ-অনেক বিস্তৃত-অর্থে, এই শব্দটি যে কোনও জটিল ব্যবস্থার স্থাপত্যের ক্ষেত্রে প্রযোজ্য যা প্রযুক্তিগত, সামাজিক-প্রযুক্তিগত বা সামাজিক প্রকৃতির হতে পারে। এন্টারপ্রাইজ স্থাপত্য এন্টারপ্রাইজ স্থাপত্যের লক্ষ্য হল "ব্যবসায়িক দৃষ্টিভঙ্গি এবং কৌশলকে কার্যকর উদ্যোগে রূপান্তরিত করা"। এন্টারপ্রাইজ স্থাপত্য কাঠামো, যেমন টোগাফ এবং জ্যাকম্যান কাঠামো, সাধারণত বিভিন্ন এন্টারপ্রাইজ স্থাপত্য স্তরের মধ্যে পার্থক্য করে। যদিও পরিভাষা কাঠামো থেকে কাঠামোর মধ্যে পৃথক হয়, তবে অনেকের মধ্যে অন্তত একটি ব্যবসায়িক স্তর, একটি প্রয়োগ (বা তথ্য) স্তর এবং একটি প্রযুক্তি স্তরের মধ্যে পার্থক্য অন্তর্ভুক্ত থাকে। এন্টারপ্রাইজ আর্কিটেকচার অন্যদের মধ্যে এই স্তরগুলির মধ্যে সারিবদ্ধকরণকে সম্বোধন করে, সাধারণত একটি উপরে-নিচে পদ্ধতির মধ্যে। আরও পড়ুন-এই বইটি শৃঙ্খলার মৌলিক ধারণাগুলি অন্তর্ভুক্ত করে। থিমটি একটি সিস্টেমের গুণগত বৈশিষ্ট্য অর্জনের উপর কেন্দ্রীভূত। - এই বইটি সফ্টওয়্যার আর্কিটেকচার কী তা বর্ণনা করে এবং ইউ. এম. এল এবং অন্যান্য নোটেশন ব্যবহার করে কীভাবে এটি একাধিক ভিউতে নথিভুক্ত করা যায় তা দেখায়। এটি আরও ব্যাখ্যা করে যে কীভাবে আচরণ, সফ্টওয়্যার ইন্টারফেস এবং যুক্তিসঙ্গত ডকুমেন্টেশনের সাথে স্থাপত্যের দৃষ্টিভঙ্গির পরিপূরক হতে পারে। বইটির সঙ্গে একটি উইকি রয়েছে যেখানে সফ্টওয়্যার স্থাপত্য ডকুমেন্টেশনের একটি উদাহরণ রয়েছে। - স্থাপত্য নকশা এবং বিস্তারিত নকশার মধ্যে পার্থক্য সম্পর্কে। আইবিএম ডেভেলপারওয়ার্কস-এর উপর ব্যাখ্যা সফ্টওয়্যার ইঞ্জিনিয়ারিং ইনস্টিটিউট (এসইআই), কার্নেগি মেলন বিশ্ববিদ্যালয় (সিএমইউ)-এ সফ্টওয়্যার আর্কিটেকচারের সংজ্ঞাগুলির সংগ্রহ ইন্টারন্যাশনাল অ্যাসোসিয়েশন অফ আইটি আর্কিটেক্টস (আইএএসএ গ্লোবাল), যা পূর্বে ইন্টারন্যাশনাল অ্যাসোসিয়েশন ফর সফ্টওয়্যার আর্কিটেক্টস (আইএএসএ) নামে পরিচিত ছিল-সফ্টওয়্যার আর্কিটেকচারের উপর আইএফআইপি ওয়ার্কিং গ্রুপের ওয়েবসাইট 2.10 SoftwareArchitectures.com-সফ্টওয়্যার আর্কিটেকচারের উপর তথ্যের একটি স্বাধীন সংস্থান, রয় ফিল্ডিংয়ের আরইএসটি গবেষণাপত্রের 1ম অধ্যায় যখন ভাল আর্কিটেকচার খারাপ হয় সর্পিল আর্কিটেকচার চালিত বিকাশ-সর্পিল মডেলের উপর ভিত্তি করে এসডিএলসি-র লক্ষ্য অকার্যকর স্থাপত্য সফ্টওয়্যার আর্কিটেকচার রিয়েল লাইফ কেস স্টাডিজের ঝুঁকি হ্রাস করা।