Content area
Genesis is a software-engineering-based programming environment developed to support big software projects. Studies have shown that reusability is a most important factor in improving software development productivity and quality. A reusability-driven development methodology is presented that advocates software development based on reusability considerations. Several tools and techniques found in Genesis support this methodology, and several techniques are suggested for improving retrievability, composability, and understandability of software resources. Retrievability is improved by the use of the Entity Specification Language for tying resources through attributes and relations. Genesis improves composability through a mechanism called functional composition that provides considerably more generality than UNIX pipes for composing programs. Understandability is enhanced by the use of program abstractors.