Early design decisions in software projects profoundly affect both the
properties and the costs of the eventual implementation. It is much easier
and cheaper to change these decisions during design than after
implementation has yielded running code. As a result, early decisions about
architecture can profoundly affect dependability. The value of a system to
a given user depends on the needs of that user; different users have
different requirements for dependability, for example. Improvements in our
ability to predict properties of an implementation without actually
inspecting the code would enable software designers to better understand the
consequences of early decisions and would facilitate comparison of design
alternatives to a degree not currently possible. This talk will discuss
some code-free predictive evaluation techniques and the challenges of
harnessing them to provide a unified framework for reasoning about the
overall value that should arise from a design.