هدف دوره ارزیابی کارایی سیستمها، معرفی چگونگی امکان پذیر کردن ارزیابی یک سیستم کامپیوتری مانند سختافزار، نرمافزار، شبکه و … با متریکها و تکنیکهای متنوع به صورت علمی و آکادمیک است. برای این مهم یعنی آنالیز علمی کارایی سیستم نیاز است ابزارهای و زیرساختهای لازم را در اختیار داشته باشیم.
وقتی سیستمی مانند سیستم بانکداری (یا حوزههای دیگری مانند انرژی، سلامت، حمل و نقل و …) میخواهد ساز و کار خود را از روش سنتی تغییر داده و به دنیای سیستم مدرن دیجیتال وارد شود، زیرساختهای دیجیتال مانند سختافزار، شبکه، نرمافزار و … باید از نظر کارایی دارای قابلیت اطمینان (Reliability) بالا باشد. برای اینکه بتوانیم به یک سیستم عظیم با زیرسیستمهای متنوع و مختلف اطمینان بالایی داشته باشیم، باید پیش از هر چیزی بدانیم کارایی آن سیستم را چگونه ارزیابی کنیم.
به عنوان مثال در بخش شیکههای کامپیوتری، یک مهندس شبکه از نقطه نظر علمی چگونه میتواند به این اطمینان برسد که زیرساخت یک شبکه از نظر up and running بودن، از نظر کارایی، از نظر امنیت و … قابل اطمینان است.
ابزارهایی که برای ارزیابی نیاز داریم:
- شبیهسازی – Simulation
- اندازهگیری – Measurements
- مدلسازی – Modeling
بررسی اجمالی ابزارها
مهمترین ابزار برای بررسی که در اختیارمان است اندازهگیری یا measurement است. فرض کنید میخواهید یک گوشی جدید خریداری کنید. پس از انتخاب گوشی با در نظر گرفتن قابلیتهای گوشی و برند مورد نظر، ویژگی های فنی مانند پردازش گرافیک، ویژگی های صوتی، قدرت دوربین و … را مورد بررسی قرار میدهیم. گزارشهای موجود بر این اساس شکل گرفته است که متخصصهای این حوزه با در اختیار داشتن گوشی، بررسیهای مختلفی مانند عکس برداری، انجام بازیهای مختلف با گوشی و … انجام میدهند. کارهایی که در این حوزه انجام میشود، اصطلاحا benchmark نامیده میشود.
برای موارد جدیدی که تست و بررسی انجام نشده است میتوان از طریق برنامههای شبیهساز، بررسیهای لازم را بروی این سختافزار یا نرمافزار جدید انجام داد. به همین دلیل شبیهسازی، ابزار دوم انجام بررسی کارایی است.
سومین حالت بررسی، مدلسازی (توصیف آنالیتیک) است. در این روش از طریق ریاضیات سیستم خود را توصیف میکنیم. این روش بیشتر در دانشگاهها و مراکز تحقیقاتی بیشتر اتفاق میافتد.
چگونگی پیشبرد درسی
در این درس، در ابتدا مقداری در خصوص مفاهیم پایه صحبت خواهیم کرد. سپس سه تکنیک اندازهگیری، شبیهسازی و مدلسازی را بیشتر بررسی میکنیم. سپس تمرکز بیشتری با انجام یک پروژه بروی تکنیک مدلسازی خواهیم داشت. بخاطر بحث مدلسازی نیز بایستی وارد ریاضیات و آمار مانند فرآیندهای تصادفی، زنجیره مارکوف و … خواهیم شویم.
در بحث ارزیابی کارایی تمام ردههایی که در یک پروژه مهندسی کامپیوتر اعم از نرمافزار، سختافزار و شبکه و تمام بازیگران این حوزه از برنامهنویس تا کاربر درگیر فرآیند تست و ارزیابی خواهند شد.
به عنوان مثال، زمانی که یک نرمافزار کد نویسی شود و میخواهد در اختیار مشتری قرار بگیرد، نرمافزار نوشته شده بایستی پیش از تحویل به مشتری تمام جوانب متدهای تست و ارزیابی را پاس کند. در نرمافزار نوشته شده بایستی از کوچکترین function های نوشته شده تست به عمل بیاید که به آن unit test میگوییم. پس از انجام این تستها تست تجمیع (integration test) انجام میشود. در نهایت نیز سیستم از طریق یک کاربر مورد بررسی قرار میگیرد.
ارزیابی باید با بالاترین کیفیت و کمترین قیمت (هزینههای ریالی و ساعت کار انجام شده) انجام شود. قرار نیست یک سیستمی یکسال نوشته و سه سال تست شود. برای تسریع در فرآیند تست در متدهای جدید برای کم کردن ساعت تست، کدهایی نوشته میشود تا کدهای اصلی برنامه را تست کنند. به عبارت دیگر قسمتی از فرآیند تست automate شده است.
حتی در مواردی مانند خرید تجهیزات مباحث ارزیابی با مفهومی به نام system selection وجود دارد. در این فرآیند امکان خرید مدلهای مختلفی از یک تجهیز یا محصول وجود دارد. در این حالت اگر بخواهیم به صورت صحیح عمل کنیم درگیر بحث ارزیابی کارایی سیستمها میشویم. برای خرید محصولات سختافزاری درگیری مستنداتی به مانند datasheet محصول، بروشورها و کاتولوگها خواهیم شد.
فرض کنید سازمانی احساس نیاز به افزایش ظرفیت پهنای باند و بالا بردن ظریب امنیت شبکه خود را داشته باشد. در این سناریو زمانی که میخواهیم در مورد آنالیز سیستم به زبان مورد قبول جامعه آکادمیک صحبت کنیم، بازهم در فیلد ارزیابی کارایی قرار میگیریم. با چه متدها و روشهایی ارزیابی باید انجام شود تا مورد قبول باشد.