Knowra Software architecture Software architecture Software architecture is the fundamental structure of a software system: its components, their relationships, and the principles guiding its design and evolution.
Layered architecture : A software structure that groups responsibilities into layers, each relying on services from layers beneath it. It separates concerns by assigning presentation, business logic, and data access to distinct layers.
Software component : A modular software unit that encapsulates responsibilities and exposes defined interfaces. Components are the structural units whose responsibilities and connections form an architecture.
Cloud computing : On-demand access to shared computing resources delivered over a network. Cloud platforms shape choices about deployment, scaling, and managed services.
Software architect : A practitioner responsible for making and communicating significant structural decisions about software systems. Architects balance system-wide constraints and coordinate decisions across implementation teams.
Software design : The process of specifying how software components, algorithms, and interfaces fulfill requirements. Design often addresses detailed implementation choices, while architecture emphasizes consequential system-wide structure.
Microservices : An approach that builds an application from small, independently deployable services organized around business capabilities. It trades a unified application structure for independently deployable components and explicit service communication.
Application programming interface : A defined interface through which software components or systems request one another’s services. Interfaces make architectural boundaries explicit and govern interactions across them.
Distributed computing : The use of multiple networked computers to perform coordinated computation. Distributed systems expose communication, coordination, and failure concerns that architecture must address.
Martin Fowler : A British software developer and author known for writing about refactoring, enterprise software, and software design. His writing shaped widely used discussions of architectural patterns and evolutionary design.
Software engineering : The systematic application of engineering principles to the development, operation, and maintenance of software. Architecture is one part of the broader discipline spanning a system’s lifecycle.
Show all 27