Software architecture in practice


Part Two: Creating an Architecture
Part Four: Moving From One System to Many