يشير مصطلح التعقيد إلى حالة الأحداث أو الأشياء، التي لها روابط متعددة مترابطة وهياكل معقدة للغاية. في برمجة البرمجيات، مع تحقيق تصميم البرمجيات، يصبح عدد العناصر وترابطاتها ضخمًا تدريجيًا، مما يجعل من الصعب جدًا فهمها في وقت واحد.