سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

پیچیدگی

سه شنبه, ۸ مرداد ۱۳۹۲، ۰۵:۵۷ ب.ظ
«پیچیده (Complexy)» به معنی مطلبی است که فهمیدن آن دشوار است. دلیل این پیچیدگی، نبود یک روند سیستماتیک برای فهم آن است. با تعریف بیان شده باید در نظر داشت که پیچیدگی یک مفهوم ذهنی و نسبی است. بنابراین می‌توان نتیجه گرفت که یک سیستم نسبت به سیستم دیگر پیچیده تر است. برای فهم یک سیستم با توجه به پیچیدگی آن، از یک پزشکی استفاده می‌شود: «استفاده از مجموعه نشانه‌ها، برای تشخیص یک نتیجه پیچیده». در طراحی سیستم نیز باید از عوامل موجود برای تحلیل یک سیستم کلی استفاده کرد.

عوامل پیچیدگی را می‌توان موارد زیر عنوان کرد:

تعداد زیاد مؤلفه های موجود: تعداد مطلق مؤلفه های موجود یک طراحی، مشخص کننده پیچیده بودن یا نبودن یک سیستم کلی است.

تعداد زیاد روابط بین مؤلفه ها: یک سیستم ممکن است تعداد مؤلفه های یک سیستم نسبت به سیستم دیگر زیاد نباشد، اما به علت زیاد بودن روابط بین آن‌ها، تحلیل و فهم آن مشکل‌تر باشد.

عدم قاعده‌مندی زیاد: یک سیستم با تعداد مؤلفه های زیاد و روابط گسترده، باز هم می‌تواند دارای پیچیدگی کمی باشد. اگر یک سیستم دارای مؤلفه های تکرار شده باشد که بر طبق قواعد تعریف نظاممند و ساده با همدیگر ارتباط داشته باشد، می‌توان از آن به عنوان یک سیستم با پیچیدگی مناسب استفاده کرد. نبود قاعده‌مندی با تعداد استثناعات موجود در سیستم یا با تعداد روابط بین غیر تکرار شده، باعث بیشتر شدن پیچیدگی در سیستم می‌شود.

توصیف طولانی: توصیف سیستماتیک توصیف کننده تمامی جنبه های یک سیستم است. یک توصیف از سیستم را در نظر بگیریم که بسیار گسترده و طولانی است. نظریه تئوری موجود برای این مبحث، پیچیدگی کولموگروف است. خود اینکه یک توصیف تا چه اندازه باید گسترده باشد و مفاهیم مؤلفه را تا چه حد از جزئیات باید بیان کد، یک توازن نسبی است. توصیف ریاضی برای بسیاری از مؤلفه های یک سیستم باعث پیچیده تر شدن فهم آن می‌شود، اما در سوی دیگر، توصیف ریاضی برای مؤلفه ها، می‌تواند اثباتی بر درستی کارکرد وظیفه ای آن‌ها باشد.

یک تیم از طراحان، پیاده سازها یا نگهداری کنندگان (maintainers): چندین نفر ممکن است برای فهم، ساخت یا نگه داری یک سیستم مورد نیاز باشند. یک سؤال اصلی در طراحی سیستم این است که آیا یک سیستم به اندازه کافی ساده است که توسط یک نفر شناخته و تحلیل شود؟ اگر به تعداد نفرات بیشتر از یکی نیاز باشد، آنگاه یک سیستم پیچیده است. اگر سیستم به چند نفر برای فهم، ساخت یا نگه داری نیاز داشته باشد، آنگاه علاوه بر کارهای تکنیکی مورد نیاز، به هماهنگ.سازی و ارتباطات بین اعضای تیم نیاز داریم که باعث پیچیدگی بیشتر آن خواهد شد.

یک مثال: تفاوت پیچیدگی یک کتابخانه کوچک شهری با کتابخانه یک دانشگاه بزرگ در چه حد است؟

مورد یک، تفاوت در اندازه، کتابخانه دانشگاه دارای کتاب‌های زیادتری می‌باشد.

مورد دوم، تعداد ارتباطات بیشتر: کتابخانه دانشگاه کتاب‌های بیشتر و همچنین اعضای بیشتری دارد، در نتیجه ارتباطات بین افراد و کتاب‌ها بیشتر خواهد شد.

مورد سود، تعداد استثنائات بیشتر: کتابخانه کوچک شهری، دارای تعداد موضوعات محدودی به را کتاب‌ها است، شاید 5 یا 6 مورد کلی، اما در کتابخانه دانشگاه، مباحث بسیار تخصصی خود نیازمند یک مجموعه بندی از کتاب‌ها باشند.

مورد چهارم، توصیف طولانی: هر کسی در یک کتابخانه بزرگ می‌داند که خود اینکه بتوانیم اطلاعات مورد نیاز خود را از بین اطلاعات گسترده پیدا کنیم نیازمند یک اطلاعات اضافی دیگری می‌باشد. بنابراین نیاز به اطلاعات بیشتری می‌باشد که توصیف کامل‌تری از کتاب را ارائه دهد.

مورد پنجم، نیاز به یک تیم: یک کتابخانه کوچک را می‌تواند یک نفر اداره کند، اما یک کتابخانه دانشگاهی بزرگ نیازمند تیمی از افراد برای اداره است.

یک مسئله مهم در تحلیل مسائل برای یافت پیچیدگی آن‌ها وجود دارد: «پیچیدگی یک سیستم، هر اندازه جزئیات بیشتری را دخالت دهیم، بیشتر خواهد شد» ممکن است یک سیستم (همان سیستم کتابخانه کوچک شهری «آنقدر جزئیات زیاد برای آن مطرح شود که خود یک سیستم پیچیده شود. چه میزان از جزئیات باید در طراحی سیستم در نظر گرفته شود؟»).

میزان در نظر گرفتن جزئیات با تکنیکی به نام تجرید (abstraction) محدود می‌شود «».

در مطلب بعدی به شناخت منابع پیچیدگی خواهیم پرداخت.

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی