编制软件的程序有哪些方法呢