В компьютерной науке и программной инженерии повторное использование — это использование существующих активов в той или иной форме в процессе разработки программного продукта ; эти активы являются продуктами и побочными продуктами жизненного цикла разработки программного обеспечения и включают код, программные компоненты, тестовые наборы, проекты и документацию. Противоположная концепция повторного использования — это рычаг , который изменяет существующие активы по мере необходимости для удовлетворения конкретных системных требований. Поскольку повторное использование подразумевает создание отдельно поддерживаемой версии активов [ необходимо разъяснение ] , оно предпочтительнее рычага. [1]
Подпрограммы или функции являются простейшей формой повторного использования. Кусок кода регулярно организуется с помощью модулей или пространств имен в слои . Сторонники утверждают, что объекты и программные компоненты предлагают более продвинутую форму повторного использования, хотя объективно измерить и определить уровни или оценки повторного использования было сложно.
Возможность повторного использования в значительной степени зависит от способности создавать более крупные вещи из более мелких частей и способности определять общность между этими частями. Повторное использование часто является обязательной характеристикой программного обеспечения платформы . Повторное использование привносит несколько аспектов в разработку программного обеспечения , которые не нужно учитывать, когда повторное использование не требуется.
Повторное использование подразумевает определенное явное управление проблемами сборки , упаковки , распространения , установки , конфигурации , развертывания , обслуживания и обновления . Если эти вопросы не учитывать, программное обеспечение может показаться пригодным для повторного использования с точки зрения дизайна , но не будет повторно использоваться на практике.
Под возможностью повторного использования программного обеспечения в частности понимаются конструктивные особенности программного элемента (или набора программных элементов), которые повышают его пригодность для повторного использования.
Многие принципы повторного использования дизайна были разработаны на семинарах WISR. [2]
Возможные конструктивные особенности для повторного использования программного обеспечения включают:
Пока еще не достигнут консенсус относительно относительной важности записей в этом списке, а также относительно факторов, которые делают каждую из них важной для определенного класса приложений.