软件工程的目标就是提高软件的质量与生产率,最终实现软件的工业化生产。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。
软件的质量因素有很多,比如正确性、性能、可靠性、容错性、易用性、灵活性、可扩展性、可理解性、可维护性等。
软件工程的主要环节有人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护等。
常见的软件工程模型有线性模型、渐增式模型、螺旋模型、快速原型模型、形式化描述模型等。
软件工程多年的发展已经积累了相当多的方法,但这些方法不是严密的理论,我们应该学会选择合适的方法和产生新的方法,“复用”和“分而治之”是两个行之有效的策略,也是在实验中代码编写的关键思想。
复用就是指“利用现成的东西“,文人称“拿来主义”。复用不是人类懒惰的表现而是智慧的表现,正是因为我们总是在继承前人的成果,不断加以利用、改进和创新才会进步。把复用的思想用于软件开发,就能避免重复造轮子。复用方法合理化并简化了软件开发过程,减少了总的开发工作量与维护代价,既降低了软件的成本又提高了生成率。
分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。把这个思想应用于软件开发时,我们要考虑复杂问题分解后的每个问题能否用程序实现?所有的程序最终能否集成为一个软件系统并有效地解决原始的复杂问题?
在现实情况中,由于条件的千差万别和技术的日新月异,没有哪一种软件标准能长盛不衰,所以我们要与时俱进,敢于创新,不能过分依赖和套用一些示例。
软件开发不同于传统的农业生产,人多不见得力量大。如果给落后于计划的项目增加新手,可能会延误项目。因为新手会产生很多新的错误,使项目混乱;老手向新手解释工作以及交流思想都要花费时间,使实际开发时间更少。所以科学的项目计划很重要,不在乎计划能提前多少,重在恰如其分。