- 复杂性
- 一致性
- 软件不能独立存在,需要依附于一定的环境(如硬件、网络以及其他软件)
- 软件必须遵从人为的惯性并适应已有的技术和系统
- 软件需要随接口不同而改变,随时间推移而变化,而这些变化是不同人设计的结果
- 可变性
- 不可见性
软件面临的挑战:
工程的含义:
- 工程是将理论和知识应用于实践的科学,以便经济有效地解决问题
- 大规模的设计与建造
- 复杂问题与目标分解
- 团队协作与过程控制
软件工程:
- 将系统化、规范化、可定量的方法应用于软件的开发、运行和维护,即工程化应用于软件上
- 对上诉过程中所述方法的研究
软件开发的过程
软件工程方法:
软件工具:
软件开发的基本策略:
高质量的软件产品
产品质量维度
ISO9126质量模型
高质量软件开发之道
- 高质量的设计
- 规范的编程
- 有效地测试
商品环境下的软件质量