许多人都在编写程序,业务人员编写电子表格程序来简化工作,开发工程师编写数据来处理数据,满足用户业务功能需求,业务爱好者为了自己的兴趣爱好也编写程序。然而,绝大多数的软件开发是个专业化的活动,软件的开发室达到为了特定的业务目的,是为了植入到其他的设备、作为软件产品,例如信息系统、管理系统等。那些除了开发者外还有其他用户使用的专业化软件通常是由团队开发而不是个人独自完成。

软件工程的目的是支持专业化的软件开发,而不是个体编程。它包括支持程序描述、设计和进化的相关技术。以下我个人总结了几点,和大家共同学习:

1. 什么是软件?计算机程序、数据和相关文档

2. 好的软件应该具备什么?首先具备用户需求的功能和性能,还应该可维护、可靠、可用

3. 什么是软件工程?关于软件生产的各个方面的工程学科

4. 软件工程面临的主要挑战?不断增长的多样性、减少交付时间以及开发可靠地软件的需求
许多人把软件等同于计算机程序,其实这种理解是很狭隘的。软件应该包括程序和所有使程序正确运行所需要的相关文档和配置信息。一个专业化开发的软件系统通常不止一个程序。系统通常包含一些单独的程序、用于设置这些程序的配置文件,还可能包括描述系统结构的系统文档和解释如何使用系统的用户手册。

软件工程虽然是一门工程学科,但其在软件开发的整个过程中实际有着非常重要的位置,本人虽然做了测试工作多年,但对软件工程还是个初学者,希望以后大家可以一起学习这门非常重要的知识。