Can you summarize the following document?
        
  在计算机技术发展的早期,软件开发主要就是程序设计。但随着技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如操作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的系统环境的一部分。这种情况下软件开发的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、通信协议设计和复杂的系统配置过程。  空间方面,在早期,由于机器资源比较昂贵,如何缩小储存空间往往是设计关心的首要重点;而随着硬件技术的飞速发展,电脑上资料储存媒体的价格降低,空间不再是考虑的第一要点,一些较耗时的运算也渐渐发展出以空间换取时间的模式。  时间方面,在早期,如何加强程序效率、缩短程序执行时间是程序员的共同目标;而在硬件效能进步、效率差距缩小,软件规模与复杂度却日益增加的现在,程序的结构、可维护性、重复使用性、弹性等因素更显得重要。在多人合作的程序设计专案里,程序员们会加上各种注解以协助其他参与者理解程序码,,但却因能达到较好的沟通并提高程序码的可维护性,而成为目前的主流。  然而,随着智能手机等携带装置的兴起,执行时间的缩短与储存空间的有效运用再次成为焦点,形成与主机服务器类型应用程序不同的重点考虑方向。
电脑程序设计(英语:Computer programming),或称程序设计(英语:programming),是给出解决特定问题程序的过程,软件开发过程中的重要步骤。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程一般包括分析、设计、编码、测试、除错等不同阶段。