Computer Science Design Patterns/Development stages