This state-of-the-art review provides an analysis of the status of software design methods. The topic of software design is an extensive one with a rich history. Views of software design can range from very focused to those which cover the whole spectrum of software development. This report attempts to provide readers with a useful snapshot of software design technology that can be used as a tutorial for the uninitiated, a starting point for detailed research, or a guide for those who will be developing software in the future. The report includes coverage on the nature of design, its evolution, its status, and directions for the future.