For most traditional software, the control logic is hardcoded into the program, which leads to closed production. Closed software can hardly be customized by users and reused by other developers, which is not conducive to its flexibility and reusability. From the perspective of the model-view-controller pattern, the controller, who expresses the control logic, is responsible for invoking the model and selecting/updating the view to perform the operations and display the results in reaction to user inputs. In practice, however, the complex and hardcoded controller is difficult to adapt; moreover, coupling with the view reduces its reusability. This paper introduces the conception of workflow into software control logic. Expressed by processes and activities in our workflow model, the control logic can be modified by users even in runtime and invoked by developers conveniently. Decoupled by the context, which transfers information in processes, the controller and the view no longer depend on each other and can be reused freely. A software control logic oriented workflow engine and its supporting tools are provided to support the workflow in software, and a use case demonstrates the improvement in enhancing software flexibility and reusability.