Co oznacza artefakt?

57

Słownik definiuje artefakt jako:

artefakt, artefakt [ˈɑːtɪˌfækt] n

  1. coś stworzonego lub nadanego przez człowieka kształtowi, takiego jak narzędzie lub dzieło sztuki, zwłaszcza przedmiot o znaczeniu archeologicznym

  2. wszystko, co stworzył człowiek, na przykład fałszywy eksperymentalny wynik

  3. (Life Sciences & Allied Applications / Biology) Cytologia struktura widoczna w tkance po śmierci, utrwaleniu, barwieniu itp., Która zwykle nie występuje w żywej tkance

Słowo to artifactczęsto pojawia się przy tworzeniu oprogramowania, cyklach tworzenia oprogramowania, szacowaniu nakładu pracy itp. Ale powyższa definicja nie ma dla mnie sensu w tym kontekście.

Czy ktoś mógłby wyjaśnić to słowo, podając konkretne przykłady z branży oprogramowania?

xyz
źródło
2
p2pnode wyraźnie nie pyta o definicję słowa „artefakt”. W końcu jest to pytanie. Pytanie o to, jak słowo jest używane w kontekście programowania, może być podstawowym pytaniem, ale wciąż dotyczy tematu.
Adam Lear
Słowo jest nie na miejscu w rozwoju oprogramowania - zbyt szerokie i płytkie. Przywołuje obrazy wykopalisk archeologicznych; garnki i odłamki.
@Robster, dlaczego tak mówisz? Słyszałem, że używa się go w odniesieniu do budowania i testowania artefaktów (bibliotek DLL i wyników testów). Wydaje się dość powszechne i dość specyficzne.
MetaFight,
Wygląda na to, że można nazwać artefaktem wszystko, co zostało wytworzone lub utworzone podczas programowania lub wykonania.
TheLegendaryCopyCoder

Odpowiedzi:

66

W cyklu życia oprogramowania (SDLC) artefakt zwykle odnosi się do „rzeczy” wytwarzanych przez osoby zaangażowane w proces. Przykładami mogą być dokumenty projektowe, modele danych, diagramy przepływu pracy, matryce testowe i plany, skrypty konfiguracyjne, ... podobnie jak stanowisko archeologiczne, każda stworzona rzecz może być artefaktem.

W większości cykli tworzenia oprogramowania zwykle znajduje się lista konkretnych wymaganych artefaktów, które ktoś musi stworzyć i umieścić na współdzielonym dysku lub repozytorium dokumentów, aby inni mogli je oglądać i udostępniać.

FrustratedWithFormsDesigner
źródło
2
Naprawdę jedyną rzeczą, o której nigdy nie słyszałem, że jest artefaktem, jest kod, ale nie rozumiem, dlaczego kod nie może być artefaktem.
Thomas Owens
2
@Thomas Owens: Kod może być również artefaktem, ale zwykle jest rozpatrywany osobno (jak w „upewnij się, że wykonałeś kopię zapasową kodu i artefaktów!”), Ponieważ jedynymi osobami zainteresowanymi tym artefaktem są koderzy, a czasem architekci. Ponadto kod przechodzi do kontroli źródła, większość innych artefaktów powinna przejść do repozytorium dokumentów lub Wiki.
FrustratedWithFormsDesigner
9
Artefakty mogą również obejmować skompilowane pliki binarne / pakiety oprogramowania.
Andy
Właściwie w świecie Java jest bardzo często odnosi się kod jako artefakt, na przykład przy użyciu Maven: stackoverflow.com/questions/2487485/what-is-maven-artifact
raspacorp
Najbardziej słyszałem, że był używany w odniesieniu do generowanych fragmentów kodu lub plików binarnych.
Qix
23

Myślę, że ten artykuł z Wikipedii całkiem dobrze to opisuje.

Artefakt jest jednym z wielu rodzajów namacalnych produktów ubocznych wytwarzanych podczas opracowywania oprogramowania. Niektóre artefakty (np. Przypadki użycia, diagramy klas i inne modele UML, wymagania i dokumenty projektowe) pomagają opisać funkcję, architekturę i projekt oprogramowania. Inne artefakty dotyczą samego procesu rozwoju - takie jak plany projektów, analizy biznesowe i oceny ryzyka.

yoozer8
źródło
14

W programowaniu graficznym jest często używany do odniesienia do części obrazu, która nie została poprawnie renderowana. Na przykład, jeśli po zakończeniu rysowania na ekranie pozostanie niewielki fragment poprzedniej ramki lub widoku, będzie to określane jako artefakt.

Grandmaster B.
źródło
1
Ponieważ zajmuję się programowaniem graficznym, jest to znaczenie, które pojawia się dla mnie najczęściej, ale nie jest to związane ze znaczeniem, o które pytał OP (co to określenie oznacza w kontekście planowania oprogramowania).
jhocking
4
OP zapytał: „Czy ktoś mógłby wyjaśnić to słowo, podając konkretne przykłady z branży oprogramowania ?”, Które, jak sądzę, zawiera moją odpowiedź.
GrandmasterB,
Chciałem tylko dodać notatkę, że słowo „artefakt” w tym kontekście jest używane bardziej ogólnie niż tylko w programowaniu graficznym w odniesieniu do anomalii obrazowania w dowolnym typie generowanego obrazu (np. Prześwietlenie) - patrz: en.wikipedia.org/ wiki / Visual_artifact
yoniLavi
5

Artefakt to coś, co powstaje bezpośrednio lub pośrednio w wyniku czegoś innego. Artefakty oprogramowania mogą składać się ze źródła lub zasobów projektu lub mogą być reprezentowane jako nieprzewidziane przejawy interakcji między źródłami lub zasobami.

Jordania
źródło
4

Słowo artefakt jest często używane w odniesieniu do certyfikatów zarządzania jakością, takich jak CMMI i ISO 9001 , oraz metodologii, takich jak Six Sigma . W tym kontekście artefakt odnosi się do produktów i produktów ubocznych procesu tworzenia oprogramowania.

Artefakty są gromadzone i archiwizowane w trakcie całego procesu, aby wykorzystać je jako dowód na przestrzeganie udokumentowanego procesu. Takie artefakty są przydatne głównie podczas audytu certyfikacyjnego, ale ich gromadzenie i archiwizacja ułatwia także ustalenie, w jaki sposób lub dlaczego proces się nie powiódł, jeśli pojawią się problemy.

Artefakty można również mierzyć i analizować w celu znalezienia sposobów na ulepszenie procesu, mierzyć jeszcze więcej, aby pokazać dowody poprawy, a następnie mierzyć w sposób ciągły, aby pokazać, że proces pozostaje pod kontrolą (tj. Dane miary mieszczą się w określonych granicach) .

Caleb
źródło
3

Sądzę, że istnieją inne sposoby użycia tego terminu, które bardziej przypominają efekt uboczny, ale głównym zastosowaniem słowa „artefakt” w branży oprogramowania jest „produkt, który został stworzony”. Tak więc program napisany przez programistów jest „artefaktem oprogramowania”.

jhocking
źródło
Słyszałem, że kiedyś odnosiło się do danych, które nie są już tak naprawdę potrzebne, ale kiedyś były artefaktem starej aplikacji.
SoylentGray,
3

Słyszałem, że artefakt został użyty tylko w jednym projekcie, w którym byłem: użyliśmy go w odniesieniu do plików, które wypuściła nasza kompilacja. Jednak po przeczytaniu innych odpowiedzi wydaje się, że „Artefakt” jest terminem zmiennym, używanym, gdy ktoś potrzebuje terminu dla określonego typu obiektu specyficznego dla projektu.

znak
źródło