As the application fields of small satellite are expanding, the functions become more complicated and the number grows rapidly, the scale and complexity of onboard software are increasing continuously. The technology trend makes the reusable design of software more important. This paper firstly analyzes the technology needs of satellite for system-oriented application, and then presents the layered and modular software architecture as well as the related key technologies. At last, the paper describes in detail the static and dynamic structure of the framework as well as the run modes of software components. The layered and modular software architecture and the software framework technology are critical to implement the rapid assembly, integration and test of small satellite.