structured application development usually involves