【发布时间】:2011-03-05 14:44:34
【问题描述】:
我最近读了一本关于设计模式的书:我在每一页都多次看到 Artifacts 这个词!它们实际上是什么?应该用在什么地方?
在 UP 中,工件非常重要,它们在面向对象分析中发挥着重要作用。 . . .
【问题讨论】:
-
你能从那本书中添加任何包含
artifact字的引文吗?
标签: design-patterns artifact rational-unified-process
我最近读了一本关于设计模式的书:我在每一页都多次看到 Artifacts 这个词!它们实际上是什么?应该用在什么地方?
在 UP 中,工件非常重要,它们在面向对象分析中发挥着重要作用。 . . .
【问题讨论】:
artifact字的引文吗?
标签: design-patterns artifact rational-unified-process
artifact (or artefact) 这个词似乎在 Booch、Rumbaugh 和 Jacobsen(3 amigos)描述Rational Unified Process 的时候流行起来。
RUP 软件工程中的词Artifact 是一个通用术语,指代软件开发生命周期中任何“角色”可以产生的任何“可交付成果”,包括:
可以将工件引入软件配置管理(识别、版本化、可以管理更改等)。
术语工件也出现在业务流程建模中,通常指由流程生成的物理或电子文档,例如索赔表、EDI 文件或报告输出。
如今,artifact 这个词可能与pretentious management speak 具有相同的意义,而且这个词通常过于模糊和通用,无法被实际的软件开发团队经常使用,例如如果您使用以下术语,您将得到空白的凝视:
“我已经完成了工件的检入”
“请你为我们的下一个测试用例写一个工件”
即您可能希望在软件开发的核心方面使用更具体的术语!
【讨论】:
他们通常指的是您创建的东西,通常作为副作用,以帮助您完成某事。也许一张图表、一份设计文档、一个 GUI 原型,http://en.wikipedia.org/wiki/Artifact_(software_development) 有更多的洞察力。
(请注意,在许多软件工具中,工件的含义要窄得多,即在构建/编译某些东西时生成的文件/库/可执行文件)
【讨论】:
通常,在当前的编程语言中,“工件”是指在构建过程之后留下的东西。在 .NET 中,这些是由构建生成的 DLL 和 EXE。
【讨论】:
@nonnb 给出的定义很好。正如他三位朋友所说,最初使用这个词时,我相信它是人工制品而不是人工制品。这是英文版而不是美国版,但确实包含美国版没有的细微差别。人工制品,就像人工制品一样,是在开发人造东西的过程中产生的东西。细微差别在于它是所采用过程的函数,而不是根据定义,最终产品的固有部分。例如,软件开发的重点是产生一个带有适当文档的工作软件系统。这些是软件开发过程所期望的最终结果(工件),但项目计划、版本、模型等都是该过程的工件。不是绝对必要的,并且可以被视为与最终产品无关。
这种细微差别可以在免费词典中的third definition of artefact 中看到:
虽然建议在技术的煤层使用更具体的术语是合适的,但它仍然是一个非常有用的术语,用于指代系统和软件开发的所有输出,无论是否最终。
【讨论】:
创建人工制品是为了描述企业的系统、解决方案或状态。 现在许多开发人员更喜欢软件架构这个术语而不是软件设计来表示设计活动产生的所有工件!
【讨论】: