software model