This report includes the motivation for using software prototyping in general and specifically in the context of requirements engineering. An overview of software prototyping covers life cycle models, approaches, pitfalls, and opportunities. The section on software requirements and specification establishes a basis for investigating techniques. The summary analyses of software requirements and specification techniques and tools for prototyping address twenty techniques across a variety of language models. Each technique summary analysis was developed to include the history, technique overview, method, supporting tools, language features, and strengths/weaknesses. The description of needed detailed analyses includes a summary of common aspects among the techniques to be developed in a repository. Software technology transfer is addressed in this report from the standpoint of past problems, avenues of opportunity, and actual experience in this area. The report ends with potential areas of future research and a summary.