قانون بقاي پيچيدگي نرم‏افزار ( the first law of software complexity)

  • یوسف مهرداد بی‌بالان

قوانين بسيار زبادي حاكي از آن هستند كه موضوعات طبيعت مقادير ثابتي دارند و از شكلي به شكل ديگر تبديل مي‏شوند.

– قانون بقاي ماده و انرژي

– قانون P * V / T= Cte

– قانون بقاي پروژه در دانشگاه

– قانون بقاي دمپايي در خوابگاه

Matt Quail در نوشته‏اي با نام “قانون اول Matt در پیچیدگی نرم‏افزار” بحث جالبي را مطرح مي‏كند. اين نكته كه “پيچيدگي مسئله مقدار ثابتي است” و مي‏توانآن را مخفي كرد ولي هنوز وجود دارد. تجرید تنها كمك مي‏كند كه پيچيدگي را به جايي منتقل كنيد كه مديريت و كنترل آن آسان‏تر است. (تفرقه بنداز و حكومت كن).

هر چند با اين قانون كاملاً مؤافقم ولي اين مطلب، موضوع جديدي نيست.نگاهي به تاريخچه مهندسي نرم‏افزارمؤيد اين تلاش است. تلاش براي مقابله با پيچيدگي روزافزون مسائلي كه در حوزه نرم‏افزار با آن مواجه هستيم. اصلاً مهندسي نرم‏افزار زاييده بحران توليد نرم‏افزار است كه خود معلول افزايش پيچيدگي حوزه مسئله و حوزه راه حل است.

حركت به سمت تجريدهاي سطح بالاتر در حوزه راه حل (Solution Domain) – مانند زبانهاي خاص حوزه مسئله DSL يا چارچوبهايي مانند J2ee, .NET – در همين راستا هستند.

اما فراموش نكنيد: انسانها اكثراً در حال حل مسائلي هستند كه خود آنها را به وجود آورده‏اند.

برای خروج از جستجو کلید ESC را بفشارید