Skip to content
Category

Software architecture

page 1
graphical user interface
user interface allowing interaction through graphical icons and visual indicators
web application
application that uses a web browser as a client
command-line interface
type of computer interface based on entering text commands and viewing text output
software framework
software that supports solution development via inversion of control
software design
process by which an agent creates a specification of a software artifact
software architecture
high-level structure of a software system defined by its components, their relationships, and the principles governing its design and evolution
Representational State Transfer
REST (Representational State Transfer) is a software architectural style that was created to describe the design and guide the development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of a distributed, Internet-scale hypermedia system, such as the Web, should behave. The REST architectural style emphasizes uniform interfaces, independent deployment of components, the scalability of interactions between them, and creating a layered architecture to promote caching to reduce user-perceived latency, enforce security, and encapsulate legacy
frontend and backend
layers of a piece of software
GraphQL
GraphQL is a data query and manipulation language that allows specifying what data is to be retrieved ("declarative data fetching") or modified. A GraphQL server can process a client query using data from separate sources and present the results in a unified graph. The language is not tied to any specific database or storage engine. There are several open-source runtime engines for GraphQL.
anti-pattern
An anti-pattern is a solution to a class of problem which may be commonly used but is likely to be ineffective or counterproductive. The term, coined in 1995 by Andrew Koenig, was inspired by the book Design Patterns which highlights software development design patterns that its authors consider to be reliable and effective. A paper in 1996 presented by Michael Ackroyd at the Object World West Conference described anti-patterns. It was, however, the 1998 book AntiPatterns that both popularized the idea and extended its scope beyond the field of software design to include software architecture
desktop metaphor
computer interface conceptual model
mashup
web application that combines content from more than one source in a single graphical interface
rich web application
Web application that has many of the characteristics of desktop application software
application server
software framework that provides both facilities to create web applications and a server environment to run them
cohesion
degree to which elements within a module belong together
Jakarta Messaging
Jakarta EE message oriented middleware API for sending messages between two or more clients
dependency injection
technique in software engineering
multitier architecture
computing system architecture that may typically have three tiers, composed of a presentation tier, a domain logic tier, and a data storage tier
coupling
in programming, the degree of interdependence between software modules
enterprise service bus
communication system in a service-oriented architecture
domain driven design
software development process
technical debt
metaphor coined by Ward Cunningham (1992) for the implied cost of future rework caused by choosing an expedient solution in software development instead of a better approach
model-driven architecture
software design approach that uses models to abstract away from platform-specific details so developers can focus on behavior before considering implementation details (separating functionality and technology)
inversion of control
software programming technique in which general framework code calls into business-logic subroutines
business logic
part of a program that encodes the real-world business rules that determine how data can be created, stored, and changed
component-based software engineering
branch of software engineering
C4 model
lean graphical notation technique for modelling architecture of software systems
systems architecture
conceptual model that defines the structure, behavior, and views of a system
OpenAPI
specification language for APIs
event-driven architecture
high-level system structure in software design
ArchiMate
thumb|Insurance claim process depicted in ArchiMate. Archimate enables modelling in different layers.
software stack
set of software subsystems or components needed to create a complete platform
software component
software package, web service, web resource, or module that encapsulates a set of related functions
AUTOSAR
AUTOSAR (AUTomotive Open System ARchitecture) is a global development partnership founded in 2003 by automotive manufacturers, suppliers and other companies from the electronics, semiconductor and software industries. Its purpose is to develop and establish an open and standardized software architecture for automotive electronic control units (ECUs).
software architect
profession
multitenancy
Software multitenancy is a software architecture in which a single instance of software runs on a server and serves multiple tenants. Systems designed in such manner are "shared" (rather than "dedicated" or "isolated"). A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a dedicated share of the instance—including its data, configuration, user management, tenant individual functionality and non-functional properties. Multitenancy contrasts with mult
web container
component of Java web server
open architecture
type of computer architecture or software architecture intended to make adding, upgrading, and swapping components easy
Artificial intelligence systems integration
aspect of system integration regarding artificial intelligence
monolithic application design
type of software architectural system design.
Scaffold
term that comes from the Ruby on Rails framework, which is a facility to construct most of the logic and views needed to do common data access operations, such as CRUD
ISO/IEC 42010
international standard
architecture description language
formal language for architecture description and representation
interface metaphor
metaphors in computer science, for example an icon of a filing cabinet for "filestore"
Monolithic system
System integrated into one whole
function model
structured representation of the functions (activities, actions, processes, operations) within the modeled system or subject area
extensibility
Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The principle provides for enhancements without impairing existing system functions.
web-oriented architecture
computer systems architectural style
subsumption architecture
reactive robotic architecture
anemic domain model
programming anti-pattern
Lambda architecture
data-processing architecture
Learning Tools Interoperability
education technology specification by IMS Global Learning Consortium
Apache UIMA
UIMA ( ), short for Unstructured Information Management Architecture, is an OASIS standard for content analytics, originally developed at IBM. It provides a component software architecture for the development, discovery, composition, and deployment of multi-modal analytics for the analysis of unstructured information and integration with search technologies.
transparency
term in human–computer interaction
4+1 architectural view model
type of view model in software architecture
service mesh
infrastructure layer for facilitating service-to-service communication
Model 2
design pattern for Java Web applications which separates the display of content from the logic used to obtain and manipulate the content, akin to the model–view–controller paradigm
rich client platform
type of programming framework
Presentation–abstraction–control
400px|thumb|right|The structure of an application with PAC. Presentation–abstraction–control (PAC) is a software architectural pattern. It is an interaction-oriented software architecture, and is somewhat similar to model–view–controller (MVC) in that it separates an interactive system into three types of components responsible for specific aspects of the application's functionality. The abstraction component retrieves and processes the data, the presentation component formats the visual and audio presentation of data, and the control component handles things such as the flow of control and co
Solution architecture
term used in information technology