Что означает артефакт?

57

Словарь определяет артефакт как:

артефакт, артефакт [ˈɑːtɪˌfækt] n

  1. что-то созданное человеком или придавшее ему форму, такое как инструмент или произведение искусства, особенно объект археологического интереса

  2. что-нибудь искусственное, например, ложный экспериментальный результат

  3. (Life Sciences & Allied Applications / Biology) Цитология - структура, наблюдаемая в ткани после смерти, фиксации, окрашивания и т. Д., Которая обычно не присутствует в живой ткани

Это слово artifactчасто встречается в разработке программного обеспечения, циклах разработки программного обеспечения, оценке усилий и т. Д. Но приведенное выше определение не имеет смысла для меня в этом контексте.

Может кто-нибудь объяснить это слово, приведя конкретные примеры из индустрии программного обеспечения?

хуг
источник
2
p2pnode явно не просит дать определение слову «артефакт». В конце концов, это вопрос. Вопрос о том, как слово используется в контексте программирования, может быть основным вопросом, но он все еще остается темой.
Адам Лир
Слово неуместно в разработке программного обеспечения - слишком широкое и неглубокое. Это вызывает в воображении изображения мест археологических раскопок; горшки и осколки.
@ Робстер, почему ты так говоришь? Я слышал, что он использовал ссылки для создания и тестирования артефактов (DLL и результаты испытаний). Это кажется довольно распространенным и довольно конкретным.
MetaFight
Что ж, кажется, вы можете назвать все, что было создано или создано во время программирования или при выполнении, артефактом.
TheLegendaryCopyCoder

Ответы:

66

В жизненном цикле разработки программного обеспечения (SDLC) под артефактом обычно понимаются «вещи», которые производятся людьми, вовлеченными в процесс. Примерами могут быть проектные документы, модели данных, диаграммы рабочих процессов, тестовые матрицы и планы, сценарии установки ... как археологический объект, любая созданная вещь может быть артефактом.

В большинстве циклов разработки программного обеспечения обычно существует список конкретных необходимых артефактов, которые кто-то должен создать и поместить на общий диск или в хранилище документов, чтобы другие люди могли просматривать и делиться ими.

FrustratedWithFormsDesigner
источник
2
На самом деле единственное, что я никогда не слышал, называл артефакт - это код, но я не понимаю, почему код не может быть артефактом.
Томас Оуэнс
2
@ Томас Оуэнс: Код также может быть артефактом, но обычно он рассматривается отдельно (как в «Убедитесь, что вы создаете резервную копию своего кода и артефактов!»), Потому что единственными людьми, заинтересованными в этом артефакте, являются кодеры, а иногда и архитекторы. Кроме того, код переходит в систему контроля версий, большинство других артефактов должны попадать в хранилище документов или в вики.
FrustratedWithFormsDesigner
9
Артефакты могут также включать скомпилированные двоичные файлы / пакеты программного обеспечения.
Энди
На самом деле в мире Java очень часто называют код артефактом, например, при использовании Maven: stackoverflow.com/questions/2487485/what-is-maven-artifact
raspacorp
Максимум, что я слышал, это что касается сгенерированных фрагментов кода или двоичных файлов.
Qix
23

Я думаю, что эта статья в Википедии освещает это довольно хорошо.

Артефакт является одним из многих видов ощутимых побочных продуктов, создаваемых при разработке программного обеспечения. Некоторые артефакты (например, сценарии использования, диаграммы классов и другие модели UML, требования и проектные документы) помогают описать функции, архитектуру и дизайн программного обеспечения. Другие артефакты связаны с самим процессом разработки, такие как планы проектов, бизнес-кейсы и оценки рисков.

yoozer8
источник
14

В графическом программировании его часто используют для ссылки на часть изображения, которая отображается неправильно. Например, если маленький фрагмент предыдущего кадра или вида все еще остается на экране после завершения рисования, это будет называться артефактом.

GrandmasterB
источник
1
Поскольку я занимаюсь графическим программированием, это значение, которое возникает у меня чаще всего, но это не связано со значением, о котором спрашивал ОП (что означает этот термин в контексте планирования программного обеспечения).
Джоккинг
4
ФП спросил: «Может ли кто-нибудь объяснить это слово, приведя конкретные примеры из индустрии программного обеспечения ?», Который, я думаю, включает в себя мой ответ.
GrandmasterB
Просто хотел добавить примечание, что слово «артефакт» в этом контексте используется более широко, чем просто в графическом программировании, для обозначения аномалий визуализации в любом типе сгенерированного изображения (например, рентген) - см .: en.wikipedia.org/ wiki / Visual_artifact
yoniLavi
5

Артефакт - это нечто, созданное прямо или косвенно как следствие чего-то еще созданного. Программные артефакты могут состоять из источника или ресурсов вашего проекта или могут быть представлены как непредвиденные проявления взаимодействия между вашими источниками или ресурсами.

Иордания
источник
4

Слово « артефакт» часто используется в отношении сертификатов управления качеством, таких как CMMI и ISO 9001 , и методологий, таких как Six Sigma . В этом контексте артефакт относится к продуктам и побочным продуктам процесса разработки программного обеспечения.

Артефакты собираются и архивируются на протяжении всего процесса для использования в качестве доказательства того, что задокументированный процесс выполняется. Такие артефакты в основном полезны во время сертификационного аудита, но их сбор и архивирование также упрощают выяснение того, как или почему процесс завершился неудачей в случае возникновения проблем.

Артефакты также могут быть измерены и проанализированы, чтобы найти способы улучшить процесс, измерить еще несколько, чтобы показать признаки улучшения, а затем непрерывно измерять после этого, чтобы показать, что процесс остается под контролем (т.е. рассматриваемые метрики остаются в определенных границах) ,

Калеб
источник
3

Я думаю, что есть и другие способы использования этого термина, которые означают скорее побочный эффект, но основное использование слова «артефакт» в индустрии программного обеспечения, которое я вижу, - это «продукт, который создается». Итак, программа, которую пишут разработчики, является «программным артефактом».

jhocking
источник
Я слышал, что раньше он ссылался на данные, которые больше не нужны, но когда-то были артефактом унаследованного приложения.
SoylentGray
3

Я слышал, что артефакт использовался только в одном проекте: мы использовали его для ссылки на файлы, которые выпускает наша сборка. Однако, читая другие ответы, кажется, что «Артефакт» - это переменный термин, используемый всякий раз, когда кому-то нужен термин для какого-то конкретного типа объекта.

отметка
источник