Structured development techniques for user-developed systems