多项选择题

为了控制开发过程,保证开发工作的顺利完成,在系统设计阶段应完成( )工作。

A.系统硬件的准备
B.建立系统的物理模型
C.对企业人员进行培训
D.代码设计