Rekayasa perangkat lunak : pendekatan praktisi, Buku Satu