In software engineering, a Library Oriented Architecture (LOA) is a set of principles and methodologies for designing and developing software in the form of reusable software libraries constrained in a specific ontology domain.
LOA provides one of the many alternate methodologies that enable the further exposure of software through a service-oriented architecture.
Library Oriented Architecture further promotes practices similar to Modular Programming, and encourages the maintenance of internal libraries and modules with independent internal open-source life-cycles.
This approach promotes good software engineering principles and patterns such as separation of concerns and designing to interfaces as opposed to implementations.
Three principles rule Library Oriented Architecture frameworks: Library Oriented Architecture may provide different process improvements to existing software engineering practices and software development life-cycle.