Stratified Programming Integrated Development EnviRonment (SPIDER)
Team Members: Josh Woolever, Vivek Sharan, Eric Fritzinger.
Advisors: Sergiu Dascalu, Adrian Pasculescu.
Introduction: Abstraction is important at all levels of knowledge manipulation. In problem solving, abstraction is typically accompanied by refinement, their combination providing powerful means for dealing with complexity. In software development, abstraction and refinement (iterations) are omnipresent, practically incorporated in all software development techniques and tools. The Objective of Stratified Programming is to execute programs using a strata structure which, we believe, allows for both adjustable program design and adjustable program execution. This supports rapid and efficient development of flexible programs with layered functionality in which strata (program layers) can be easy created and manipulated.
The Program Stratum: There are several possible definitions for program strata. The one that we use describes a program stratum as a portion of a program module that adds a contribution to the functionality of the module provided by the previous, higher-level strata. For example, a new stratum added to an existing program module's strata structure uses a different subspace of the module's input space and/or refines the program's output space.
