Artefak adalah salah satu dari banyak jenis produk sampingan nyata yang dihasilkan selama pengembangan perangkat lunak. Beberapa artefak (misalnya, kasus penggunaan, diagram kelas, dan model Unified Modeling Language (UML) lainnya, persyaratan dan dokumen desain) membantu menggambarkan fungsi, arsitektur, dan desain perangkat lunak.