描述需要完成的功能目标(从用户使用角度出发)。分析参与功能实现的角色,输入项、输出项、资源(工具项)分别有哪些?把输入项、逻辑控制项分离,对于输入项仅暴露信息输入接口,将所有可影响控制逻辑的输入项记录起来。对于复杂的逻辑,尽量避免分离控制,即避免输入时即响应,这样需要控制的状态就比较多。这时考虑使用统一的触发接口,使用分支罗列所有逻辑处理情况,对逻辑处理集中到一个判断流程中进行控制。以此保证系统设计简介明了、逻辑清晰。