সফটওয়্যার আর্কিটেকচার
সফটওয়্যার আর্কিটেকচার বলতে বোঝায় একটি সফটওয়্যার সিস্টেমের উচ্চ স্তরের কাঠামো, এই ধরনের কাঠামো তৈরি নিয়মাবলি, এবং এই কাঠামোর নথিপত্র। এই কাঠামোগুলি সফটওয়্যার সিস্টেমের যৌক্তিকতা প্রকাশে প্রয়োজন হয়। প্রতিটি কাঠামো সফটওয়্যার উপাদান সমূহ, তাদের মধ্যে সম্পর্ক, এবং উপাদান ও সম্পর্ক উভয়ের বৈশিষ্ট্য গঠন করে। সফটওয়্যার সিস্টেমের আর্কিটেকচার একটি একটি রূপক, যেমনটি একটি ভবনের কাঠামো । সফটওয়্যার আর্কিটেকচার এর উদ্দেশ্য হচ্ছে মৌলিক কাঠামো নির্বাচন করা, একবার বাস্তবায়িত হওয়ার পর যার পরবর্তিতে ব্যয়বহুল হয়ে দাঁড়ায়। সম্ভাব্য সফটওয়্যার ডিজাইনের নির্দিষ্ট কাঠামোগত উপায় সফটওয়্যার আর্কিটেকচারের অন্তর্ভুক্ত। উদাহরণস্বরূপ, যে সিস্টেমটি স্পেস শাটল নিক্ষেপ যান নিয়ন্ত্রণ করে সেটি খুব দ্রুত এবং খুব নির্ভরযোগ্য হওয়ার প্রয়োজন। অতএব, একটি উপযুক্ত রিয়াল টাইম কম্পিউটিং ল্যংগুয়েজের করা প্রয়োজন হবে। উপরন্তু, নির্ভরযোগ্যতার প্রয়োজনীয়তা মেটাতে একাধিক অকার্যকর এবং স্বতন্ত্র সৃষ্ট প্রগ্রাম কপি রাখার সিদ্ধান্ত নিতে হতে পারে, এবং এই কপিগুলি স্বতন্ত্র হার্ডওয়্যারে ফলাফল ক্রস-চেকিং এর সময় রান করতে হবে।