1. A control program generation device, comprising: a control module memory that stores a plurality of control modules that control the operation of hardware; a pattern information memory that stores a plurality of pattern information that indicates architecture patterns, which are the program structure that is common with the architecture of a control program that is composed of one or more of the plurality of control modules; a pattern selection information acquirer that acquires pattern selection information for selecting the stored pattern information; a constraint information acquirer that acquires constraint information that indicates a time constraint that is imposed on a control program including architecture patterns that are indicated by the pattern information selected according to the pattern selection information; a display controller that causes the architecture indicated by the selected pattern, the program structure of the control program including the architecture pattern, the execution time of the control modules of the control program, and the time constraints indicated by the acquired constraint information to be correlated and displayed on a display; a description information acquirer that acquires description information that describes changes to the program structure of the control program; a program editor that edits the program structure of the control program based on the acquired description information; and a program generator that generates a control program for controlling hardware by connecting control modules that are stored in the control module memory based on the edited program structure.