SMS: Component-based software development