软件开发都会经历以下生命周期。
1)软件分析:分析问题领域,了解用户的需求。
2)软件设计:确定软件的总体架构,把整个系统划分成大大小小的多个子系统,设计每个子系统的具体结构。
3)软件编码:用选定的编程语言来编写程序代码,实现在设计阶段勾画出来的软件蓝图。
4)软件测试:测试软件是否能实现特定的功能,以及测试软件的运行性能。
5)软件部署:为用户安装软件系统,帮助用户正确地使用使用软件。
6)软件维护:维护软件中存在的Bug,当用户需求发生变化时(增加新功能,或者修改已有功能的实现方式),修改相应的软件部分。
为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点。
1)可重用性:减少软件中的重复代码,避免重复编程。
2)可扩展性:当软件必须增加新的功能时,能够在现有系统结构的基础上,方便的创建新的子系统,二不需要改变软件系统现有的结构,也不会影响已经存在的子系统。
3)可维护性:当用户需求发生变化时,只需要修改局部的子系统的少量程序代码,而不会牵一发而动全身,修改软件系统中多个子系统的程序代码。