پیچیدگی نرم افزار چیست؟

 

هزینه‏های زیاد نرم‏افزار سازمانهای نرم‏افزاری را بر آن داشته تا دنبال راه‏حلی بر کاهش این هزینه‏ها باشند.

برای نیل به این مقصود محققان دنبال رابطه‏ای بین ویژگیهای نرم‏افزار و دشواریهای کار توسعه نرم‏افزار بودند

دشواری کار زمان بیشتری برای انجام آن طلب می‏کند در این زمان منابع بیشتری بکار گرفته می‏شوند و منابع

بیشتر یعنی تحمیل هزینه‏های بیشتر. یکی از دلایل پرداختن به موضوع پیچیدگی نرم‏افزار و اندازه‏گیری آن برای

کنترل هزینه‏ها در چرخه حیات نرم‏افزار است زیرا پیچیدگی نرم‏افزار از عوامل اصلی در افزایش سریع هزینه‏های

توسعه و نگهداری عنوان می‏شودپیچیدگی نرم‏افزار فاکتوری است که در فعالیت برنامه‏نویسی کمتر شناخته

شده و به راحتی قابل یا توصیف نیست و غالباً در طول فرایند برنامه‏ریزی پروژه نادیده گرفته می‏شود. بنابراین

به دنبال روشی کمی برای پیش‏بینی میزان دشواری نگهداری، تغییر و فهم نرم‏افزار هستیم. تا با اندازه‏گیری

و کنترل آن هزینه‏ها را در چرخه حیات نرم‏افزار کاهش دهیم. در حالت کلّی پیچیدگی نرم‏افزار، میزان کار فکری

مورد نیاز برای درک نرم‏افزار را مشخص می‏کند. پیچیدگی در فاز توسعه‏ی نرم‏افزار، تلاش مورد نیاز برای آزمون

و اشکال‏زدایی برنامه، پیمانه‏ها و زیر سیستم‏ها را به شدّت تحت تأثیر قرار می‏دهد. در فاز نگهداری نرم‏افزار

 پیچیدگی  دشواری مکان‏یابی و تصحیح  خطاهای کشف نشده  پیاده‏سازی و همچنین میزان تلاش موردنیاز

برای تغییر پیمانه‏هایی از برنامه که باید تصحیح شوند را مشخص می‏کند. کار زیادی در مورد منشأ و ماهیت

پیچیدگی نرم‏افزار انجام نشده است. بیشتر کارهای انجام شده دراین زمینه به تأثیر پیچیدگی بر پروژه‏های

 نرم‏افزاری پرداخته‏اند که در رأس آنها کیفیت و هزینه‏های محصول قرار می‏گیرد. توجه مدیران و مهندسان

پروژه‏های نرم‏افزاری به پیچیدگی نرم‏افزار برای کنترل و پیش‏بینی کیفیت و بهره‏وری  محصول است. گرچه

در مورد علل و ماهیت پیچیدگی نرم‏افزار مطالب  زیادی موجود نیست. امّا چندین تعریف برای پیچیدگی

ارائه شده است تحلیل، طراحی، کد، تست، نگهداری، تغییر و اصلاح نرم‏افزار است.