Artifact (software development)

Artifact (software development)

The term artifact in connection with software development is largely associated with specific development methods or processes e.g., Unified Process. This usage of the term may have originated with those methods.

An artifact is one of many kinds of tangible byproduct produced during the development of software. Some artifacts (e.g., use cases, class diagrams, and other UML models, requirements and design documents) help describe the function, architecture, and design of software. Other artifacts are concerned with the process of development itself - such as project plans, business cases, and risk assessments.

Build tools often refer to source code compiled for testing as an artifact, because the executable is necessary to carrying out the testing plan. Without the executable to test, the testing plan artifact is limited to non-execution based testing (verification). In non-execution based testing, the artifacts are the walkthroughs, inspections and correctness proofs. On the other hand, execution based testing (validation) requires at minimum two artifacts: a test suite and the executable. An artifact occasionally may be used to refer to the released code (in the case of a code library) or released executable (in the case of a program) produced but the more common usage is in referring to the byproducts of software development rather than the product itself. Open source code libraries often contain a testing harness to allow contributors to ensure their changes do not cause regression bugs in the code library.

Much of what are considered artifacts is software documentation.

Artifacts vary in their maintainability. Maintainability is primarily effected by the role the artifact fulfills. The role can be either practical or symbolic. In the earliest stages of software development, artifacts may be created by the design team to serve a symbolic role to show the project sponsor how serious the contractor is about meeting the project's needs. Symbolic artifacts often convey information poorly, but are impressive-looking. Symbolic artifacts are sometimes referred to in the information architecture industry as Illuminated Scrolls, because the decorations do nothing to enhance understanding. Generally speaking, Illuminated Scrolls are also considered unmaintainable due to the diligence it requires to preserve the symbolic quality. For this reason, once Illuminated Scrolls are shown to the project sponsor and approved, they are replaced by artifacts which serve a practical role. Practical artifacts usually need to be maintained throughout the project lifecycle, and, as such, are generally highly maintainable.

Artifacts are significant from a project management perspective as deliverables. The deliverables of a software project are likely to be the same as its artifacts with the addition of the software itself.

The sense of artifacts as byproducts is similar to the use of the term "artifact" in science to refer to something that arises from the process in hand rather than the issue itself, i.e., concerned with the means rather than the end.

References

Kroll, Per; Kruchten, Philippe (2003). "The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP". ISBN 0-321-16609-4.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Software Development Folder — A software development folder or file is a physical or virtual container for software project artifacts, including: requirements, plans, designs, source code, test plans and results, problem reports, reviews, notes, and other artifacts of the… …   Wikipedia

  • Artifact — or artefact may refer to:* Artifact (archaeology), any object made or modified by a human culture, and later recovered by an archaeological endeavor * Artefact (band) black metal band from France * Artifact (band), a band from Norway * Artifact… …   Wikipedia

  • Development of The Elder Scrolls IV: Oblivion — An in game screenshot showing Oblivion s user interface, HDR lighting and long draw distance, improvements made as part of a goal to create advanced graphics. The development of video game The Elder Scrolls IV: Oblivion began in 2002, immediately …   Wikipedia

  • Data & Analysis Center for Software — The Data Analysis Center for Software (DACS) is one of several United States Department of Defense (DoD) sponsored Information Analysis Centers (IACs), administered by the Defense Technical Information Center (DTIC). It is technically managed by… …   Wikipedia

  • End-user development — (EUD) is a research topic within the field of computer science, describing activities or techniques that allow people who are not professional developers to create or modify a software artifact. A typical example of EUD is programming to extend… …   Wikipedia

  • System Architect (software) — Infobox Software caption = System Architect with BPMN and Network Diagrams Open and Browsed name = System Architect developer = Telelogic, An IBM Company latest release version = Version 11.1 with SP1 latest release date = Released Sept 25 2008… …   Wikipedia

  • Rosetta Stone (software) — Rosetta Stone Arabic language edition of Rosetta Stone Original author(s) …   Wikipedia

  • Design Rationale — In the survey on design rationale (DR) for software engineering [Jarczyk, Loffler Shipman, Design Rationale for Software Engineering: A Survey] the authors give a very clear definition to design rationale, it is “the explicit listing of decisions …   Wikipedia

  • Reverse semantic traceability — (RST) is a quality control method for verification improvement that helps to insure high quality of artifacts by backward translation at each stage of the software development process. Brief introduction Each stage of development process can be… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”