My view is that software has never been on a par with engineering. It lacks the scientific basis that physics gives to engineering.
Civil engineering has been with us since the pyramids and aquaducts; mechanical, chemical, and electrical engineering have been making rapid progress since the late 19th century. Software has only been around since the 50s. It hasn't had the same time to develop that engineering has.
Software development has more of the feel of writing or art or craft than engineering does. All the UML and false metrics like KLOC and code coverage won't make it so. I think the analogies with building ("architecture") and manufacturing ("widgets", "metrics") don't do it justice.
That isn't to say that software development isn't a wonderful activity with its own rigors and challenges. It's just not "engineering" yet and may never be. Tom DeMarco appears to have lost faith.
UPDATE: The fact that 27 years have passed since DeMarco's metric book came out, and we still don't have an agreed-upon way to measure quality or productivity or value in software says that it hasn't delivered on its initial promise.
I always laugh when I hear about applying Six Sigma techniques to software. The people who suggest that have never been on a shop floor, and have little idea of how a tolerance band for a given dimension figures into its success in that domain.
When I was practicing as a mechanical engineer I could count the number of people with "engineer" in their job description without a bachelor's degree in the field from an accredited institution on one hand. While I'd agree that a degree is no guarantee of quality or above average results for all, it's an important difference that separates it from computer science and software development. The barrier to entry in programming and software development is a lot lower than it is for professions like engineering, law, or medicine. Every person who wrote Basic on an early PC can be considered a programmer. Not so with other fields.