7

我最近读了一本关于设计模式的书:我在每一页都多次看到 Artifacts 这个词!它们实际上是什么?应该用在什么地方?

在 UP 中,工件非常重要,它们在面向对象分析中发挥着重要作用。. . .

4

5 回答 5

5

在 Booch、Rumbaugh 和 Jacobsen(三位朋友)描述Rational Unified Process的时候,术语artifact(或artefact似乎已经普及。

RUP 软件工程中的Artifact一词是一个通用术语,指代软件开发生命周期中任何“角色”可以产生的任何“可交付成果”,包括:

  • 文件,如项目计划、需求文件、规范等
  • 在设计期间生成的模型,通常是 UML 可用图之一,例如类图或 ERD
  • 代码工件,包括源文件、二进制输出以及测试或支持代码。

可以将工件带入软件配置管理(识别、版本化、可以管理更改等)。

人工制品一词也出现在业务流程建模中,通常指由流程生成的物理或电子文档,例如索赔表、EDI 文档或报告输出。

如今,这个词artifact可能被视为与自命不凡的管理说话一样,而且这个词通常过于模糊和笼统,无法被实际的软件开发团队经常使用,例如,如果你使用以下术语,你会得到白眼:

  • “我已经完成了对神器的检查”

  • “请你为我们的下一个测试用例写一个工件”

即,您可能希望在软件开发的主要方面使用更具体的术语!

于 2011-03-05T14:52:33.517 回答
3

他们通常指的是您创建的东西,通常作为副作用,以帮助您完成某事。也许一个图表、一个设计文档、一个 GUI 原型,http ://en.wikipedia.org/wiki/Artifact_(software_development ) 有更多的洞察力。

(注意,在许多软件工具中,工件的含义要窄得多,即在构建/编译某些东西时生成的文件/库/可执行文件)

于 2011-03-05T14:54:32.467 回答
2

@nonnb 给出的定义很好。正如他三位朋友所说,最初使用这个词时,我相信它是人工制品而不是人工制品。这是英文版而不是美国版,但确实包含美国版没有的细微差别。人工制品,就像人工制品一样,是在开发人造东西的过程中产生的东西。细微差别在于它是所采用过程的函数,而不是根据定义,最终产品的固有部分。例如,软件开发的重点是产生一个带有适当文档的工作软件系统。这些是软件开发过程所期望的最终结果(工件),但项目计划、版本、模型等都是该过程的工件。不是绝对必要的,

这种细微差别可以从免费词典中的 artefact 的第三个定义中看出:

  1. (生命科学和相关应用/生物学)细胞学是在死亡、固定、染色等之后在组织中看到的一种结构,这种结构通常不存在于活体组织中[来自拉丁短语 arte factum,来自 ars Skill + facere to make]

虽然建议在技术的煤层使用更具体的术语是合适的,但它仍然是一个非常有用的术语,用于指代系统和软件开发的所有输出,无论是否最终。

于 2011-03-05T15:28:37.523 回答
2

通常,在当前的编程语言中,“工件”是指在构建过程之后留下的东西。在 .NET 中,这些是由构建生成的 DLL 和 EXE。

于 2011-03-05T14:52:46.747 回答
0

创建人工制品是为了描述企业的系统、解决方案或状态。现在许多开发人员更喜欢软件架构这个术语而不是软件设计来表示设计活动产生的所有工件!

于 2013-11-11T16:53:56.597 回答