مسائل و مشکلاتی که در یک طراحی سیستم ممکن است بوجود آید را میتوان در چهار فیلد اصلی تقسیم بندی کرد:
در ادامه به برسی هر کدام در طراحی سیستم و مثالهایی از آنها خواهیم پرداخت.
قبل از ادامه مطلب بهتر است تعریف خودمون رو از سیستم به یک تعریف واحد تبدیل کنیم: سیستم مجموعه ای است از اجرایی که یک رفتار مورد انتظار را از خود نشان داده و با محیط اطراف خود از طریق رابطها ارتباط دارد.
در تعریف بالا مواردی همچون محیط، رابط و رفتار مورد انتظار نیاز به تعریف دقیقتر دارد که در مطالبهای بعدی به آنها خواهیم پرداخت.
یک مثال جالب: مهندسان پل هزاره که بر روی رودخانه توماس در انگلیس تنها چند روز بعد از افتتاح پل، آن را بستند تا تغییراتی بر روی آن انجام دهند. دلیلی آن یک موضوع جالب بود، مردمی که از روی پل عبور میکردند، قدمهای خود را با نوسانات پل تنظیم میکردند، در نتیجه نوسانات بیشتر میشد و ممکن بود آسیب جدی به ساختار آن وارد کند.
یک مثال دیگر: وجود چندین تولید کننده برق و اتصال آنها به همدیگر، باعث پخش شدن بار بر روی تولید کنندگان مختلف است. مشکل زمانی به وجود میابد که یکی از تولید کنندگان از مدار خارج شود که ممکن است به دلیل اضافه بار بر روی تولید کنندگان دیگر، تمامی شبکه دچار مشکل شود.
به قول استاد خوبم، جبان آقای دکتر محمدی:"تجزیه شون خوبه، اما مرده شور ترکیب شون رو ببره"
یک مثال دیگر که شاید برای درک تاثیر تغییرات خوب باشد، در طراحی خودرو است. فرض کنید یک مهندس طراح خودرو برای افزایش سرعت، قطر چرخ ها را از 13 به 15 افزایش دهد، در این افزایش، تاثیراتی که باید در سیستم فرمان گیری، ترمز و حتی ظاهر خودرو به وجود میاید را باید در نظر داشت.
این مسئله در طراحی سیستم معمولاً خود را نشان میدهد و اندازه و سرعت قابل مدیریت برای سیستم واحد را محدود میکند.
بسیاری از محدودیتها خود را به صورت یک توازن بین اجزا یا عوامل موثر نشان میدهند. یک مدل عام از این توازن عبارت است از اینکه یک عامل خوب در فضای مسئله است و چالشهای مسئله عبارت است از حداکثر سازی این عوامل خوب و در مرحله دوم جلوگیری از هدر رفتن آنها و در مرحله سوم، تخصیص این عوامل به محلهایی که بیشترین سود را داشته باشد. این مفهوم تا حدی در این تعریف مشکل است. این مفهوم را معمولاً با عنوان «اثر تخت خواب آبی (waterbed effect)» مطرح میشود. اگر یک مسئله را در محلی فشار دهیم، ممکن است در محل دیگر یک مسئله دیگر به وجود آید یا خود را نشان دهد.
مثال بارز این مسئله در طراحی مدارات سخت افزار و توازن برقرار کردن بین سرعت پردازش، انرژی مصرفی و حرارت تولیدی است.
سؤال مهم این است که با وجود این مسائل و مشکلات، چگونه یک سیستم کامپیوتری را طراحی کنیم. در بهترین حالت، میخواهیم یک روش کامل طراحی داشته باشیم که بتوان در آن به صورت کامل همه اجزا را تحلیل کرد و نتیجه نهایی را به بهترین شکل بر اساس تجربیات گذشته بدست آورد. اما متأسفانه در بحث تحلیل و طراحی سیستم کامپیوتری نسبت به علوم مهندسی دیگر بسیار جوان تر هستیم.
- ویژگیهای اورژانسی (emergent properties).
- پخش شدن تأثیرها (propagation of effects).
- گسترش غیر متناسب (incommensurate scaling).
- توازن (trade-offs).
در ادامه به برسی هر کدام در طراحی سیستم و مثالهایی از آنها خواهیم پرداخت.
قبل از ادامه مطلب بهتر است تعریف خودمون رو از سیستم به یک تعریف واحد تبدیل کنیم: سیستم مجموعه ای است از اجرایی که یک رفتار مورد انتظار را از خود نشان داده و با محیط اطراف خود از طریق رابطها ارتباط دارد.
در تعریف بالا مواردی همچون محیط، رابط و رفتار مورد انتظار نیاز به تعریف دقیقتر دارد که در مطالبهای بعدی به آنها خواهیم پرداخت.
- ویژگی های اورژانسی
یک مثال جالب: مهندسان پل هزاره که بر روی رودخانه توماس در انگلیس تنها چند روز بعد از افتتاح پل، آن را بستند تا تغییراتی بر روی آن انجام دهند. دلیلی آن یک موضوع جالب بود، مردمی که از روی پل عبور میکردند، قدمهای خود را با نوسانات پل تنظیم میکردند، در نتیجه نوسانات بیشتر میشد و ممکن بود آسیب جدی به ساختار آن وارد کند.
یک مثال دیگر: وجود چندین تولید کننده برق و اتصال آنها به همدیگر، باعث پخش شدن بار بر روی تولید کنندگان مختلف است. مشکل زمانی به وجود میابد که یکی از تولید کنندگان از مدار خارج شود که ممکن است به دلیل اضافه بار بر روی تولید کنندگان دیگر، تمامی شبکه دچار مشکل شود.
به قول استاد خوبم، جبان آقای دکتر محمدی:"تجزیه شون خوبه، اما مرده شور ترکیب شون رو ببره"
- پخش شدن تاثیرات
یک مثال دیگر که شاید برای درک تاثیر تغییرات خوب باشد، در طراحی خودرو است. فرض کنید یک مهندس طراح خودرو برای افزایش سرعت، قطر چرخ ها را از 13 به 15 افزایش دهد، در این افزایش، تاثیراتی که باید در سیستم فرمان گیری، ترمز و حتی ظاهر خودرو به وجود میاید را باید در نظر داشت.
- گسترش غیر متناسب
این مسئله در طراحی سیستم معمولاً خود را نشان میدهد و اندازه و سرعت قابل مدیریت برای سیستم واحد را محدود میکند.
- توازن
مثال بارز این مسئله در طراحی مدارات سخت افزار و توازن برقرار کردن بین سرعت پردازش، انرژی مصرفی و حرارت تولیدی است.
سؤال مهم این است که با وجود این مسائل و مشکلات، چگونه یک سیستم کامپیوتری را طراحی کنیم. در بهترین حالت، میخواهیم یک روش کامل طراحی داشته باشیم که بتوان در آن به صورت کامل همه اجزا را تحلیل کرد و نتیجه نهایی را به بهترین شکل بر اساس تجربیات گذشته بدست آورد. اما متأسفانه در بحث تحلیل و طراحی سیستم کامپیوتری نسبت به علوم مهندسی دیگر بسیار جوان تر هستیم.