Project requirements. cost, delivery schedules, staffing, reporting procedures. Design solutions. partitioning of SW into modules, choosing data structures.