Since early in computing history and up to today, the development of software has been problematic. A central reason for this is that as software increases in size, reading and comprehending it becomes extremely complex. Another issue is that current methods for developing and maintaining software systems do not provide continual seamless threads of abstractions and their refinement throughout the software development life cycle.; A methodology is proposed whereby software complexity can be managed by supporting a continual seamless refinement of abstractions from specification analysis through design to algorithm development and code. The methodology, called WebBoX, integrates box structures with literate programming; two well known software engineering ideas whose union complements one another to form a single cohesive method for software development. W ebBoX is a language that an analyst can use to specify the stimulus, map, and response of a software system.; WebBoX builds upon box structures by supporting the continuation of its process to the code level. It introduces the decompostion of a black box in the analysis phase, opposed to the conventional box structure software development process where decomposition occurs at the design stage. And, WebBoX provides automation of the box structures development process. WebBoX elevates literate programing to include analysis and design. This is supported by the introduction of abstraction types: stimulus, map and response. It also enables the definition and use of interfaces between boxes.; WebBoX allows one to include the analysis leading to a specification. A designer, writing in WebBoX can seamless expand on the analyst's artifacts to produce a state machine description of the system and develop algorithmic templates for a coder. The code, writing in WebBoX and a programming language can continue the refinement of earlier abstractions into a concrete implementation. WebBoX encourages the analyst, designer and coder to explain why certain decisions have been made at various phases of the development life cycle.; WebBoX comes with two compilers: BoxWeave and BoxTangle which are used to produce documents for humans and computers. For human readers, multiple views of the software can be extracted from a WebB oX document. These views allow software engineers to concentrate on that portion of the software life cycle artifacts which are most important to them and helps to manage the complexity of a large system. The transition from one view to the next is transparent because of the common language used for development.; Significant examples are included to that one may learn to read and write in WebBoX with the goal of developing comprehensible, yet complex, software systems. |