 This has the advantage that incorrect candidate system designs can be revised before a major investment has been made in actually implementing the design.An alternative approach is to use provably correct refinement steps to transform a specification into a design, and ultimately into an actual implementation, that is correct by construction.In (hardware, software, or enterprise) systems development, an architectural specification is the set of documentation that describes the structure, behavior, and more views of that system.