A maioria das engenharias tem seus fundamentos em ciências. As engenharias civil, mecânica e elétrica, para citar as mais tradicionais, estão fundamentas nas leis da física. Estes fundamentos permitem a construção de artefatos que, obedecendo a estas leis, possuem a qualidade desejada pelas pessoas. Queremos qualidade em software. Queremos sistemas que funcionem corretamente e que atendam as necessidades das pessoas. Que sejam confiáveis, robustos, com bom desempenho e seguros. E quais são os fundamentos que garantem isso? Parte destes fundamentos estão na ciência da computação. Há modelos matemáticos que permitem identificar problemas de funcionamento em um software apenas pela análise do código fonte. Pode-se prever o desempenho de um programa que processa uma quantidade enorme de dados com análise matemática. Vários fundamentos já são conhecidos e devem ser usados pelos engenheiros para que seus produtos atendam os requisitos de qualidade. Mas esses fundamentos não podem negli