多项选择题

A.提高软件质量和重用性。
B.加快软件开发速度。
C.简化软件开发和维护。
D.能够自动生成各类软件文档。