Our experience to date with the kinds of systems we???ve built until now has shown us that the primary impediment to the realization of these new systems is our inadequate understanding of how to construct the software components of these systems so that they do what they???re supposed to do in a way that is secure and dependable.