Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does `Artifacts` actually mean in Unified Process?

I read a book recently on Design patterns: I came across the word Artifacts in each pages many times! What are they actually? Where it should be used?

In UP, artifacts are really important and they play a major role in Object Oriented Analysis . . . .

like image 925
Ant's Avatar asked Mar 05 '11 14:03

Ant's


2 Answers

The term artifact (or artefact) seems to have been popularized around the time that Booch, Rumbaugh and Jacobsen (the 3 amigos) described the Rational Unified Process.

The word Artifact in RUP software engineering was a generic term to refer to any 'deliverable' which could be produced by any 'role' in the software development lifecycle, including:

  • Documents, such as Project Plan, Requirements Document, Specifications etc
  • A Model generated during design, usually one of the UML available diagrams, e.g. a Class Diagram, or ERD
  • Code artifacts, including source files, binary outputs, and test or support code.

Artifacts could be brought into Software Configuration Management (identified, versioned, change could be managed, etc).

The term artifact also crops up in business process modelling, usually referring to a physical or electronic document produced by a process, e.g. a claim form, an EDI document, or a report output.

Nowadays, the word artifact might be regarded in the same light as pretentious management speak, and the term is usually too vague and generic to be used frequently by the actual software development team, e.g. you'll get blank stares if you use terminology such as:

  • "I've finished checking in the artifact"

  • "Please could you write an artifact for our next test case"

i.e. You'll likely want to use more specific terminology at the coal face of software development!

like image 137
StuartLC Avatar answered Oct 27 '22 00:10

StuartLC


They're usaully referring to something you create, usually as a side effect, to help you accomplish something. Perhaps a diagram, a design document,a GUI prototype, http://en.wikipedia.org/wiki/Artifact_(software_development) has more insight.

(Note, In many software tools, an artifact have a much more narrow meaning, meaning a file/library/executable that's produced when you build/compile something)

like image 26
nos Avatar answered Oct 27 '22 01:10

nos