软件概要设计,可扩展性,可维护性,模块化设计,接口设计,设计原则,设计模式,文档注释,测试,版本控制