Skip to content
TaeyoungKim.dev

Software design vocabulary: Architecture, module, component, and abstraction

CSWritten 4 min readTaeyoungKim
LinkedInX

module and component both name parts of software, but the dividing line depends on context. architecture describes the larger arrangement; abstraction reveals a useful boundary while hiding irrelevant detail. Read API and middleware the same way: identify the responsibility and interaction boundary, not just a dictionary synonym.

Core words

The diagram compares levels of design: an overall structure, functional units, responsible parts, and the exposed boundaries between them.

English termMeaning and use
system architectureThe arrangement of a system's major parts, their responsibilities, and how they interact. It can describe structure and operating principles.
middlewareSoftware between other layers or components that mediates requests, data, or shared services; the exact placement depends on the platform.
EntityA distinguishable thing in a domain model or data model, such as a person, order, or vehicle. In a particular framework, “entity” may have a narrower persistence meaning.
dependencyA relationship in which one part needs another part, service, package, or condition to work.
semanticsThe meaning or behavior of a valid expression, in contrast with its syntax or grammatical form.
UML(Unified Modeling Language)A standardized visual modeling notation with diagram types used to communicate aspects of software structure and behavior.

Words to distinguish together

English termMeaning and use
moduleA cohesive unit of code or functionality with a defined boundary. A module may be a package or compilation unit depending on the language and system.
ModularityThe design property of dividing a system into such units so changes, tests, and reuse can be managed more locally. It does not guarantee performance by itself.
abstractionA model or interface that keeps relevant properties visible while hiding details unnecessary for the current task.
componentA part with a recognizable responsibility and interface. It may be a UI unit, deployable service, or larger subsystem depending on context.
couplingThe degree and kind of dependence between parts. Lower unnecessary coupling often makes change easier, but some dependence is essential.
cohesionHow closely a unit's responsibilities belong together. Higher functional cohesion usually makes a unit easier to understand.

Words encountered in code and designs

English termMeaning and use
reuseUsing an existing part in another context, sometimes after adapting it rather than copying it unchanged.
design patternA named, reusable solution structure for a recurring design problem, with context and tradeoffs.
SOAService-Oriented Architecture: an approach to organizing capabilities as interoperable services with defined contracts.
SingletonA pattern providing one instance within a defined scope and a way to access it; it does not automatically mean one instance across processes or machines.

A passage from technical documentation

A module and a component can overlap, but their names do not automatically make their deployment unit or responsibility boundary the same.

To read a design description, identify whether a word refers to the whole arrangement, a unit of code, a unit of responsibility, or the contract between units. Then ask what scope the author has chosen. A “component” in a UI library and a “component” in a distributed architecture may be different sizes.

Key takeaways

Look at the whole structure, the chosen units, and their dependencies together. system architecture names the arrangement; abstraction sets a useful view of a boundary; Singleton constrains instances only within its specified scope.

Author

TaeyoungKim

Connecting technical foundations with implementation, verification, and production decisions.

#Developer vocabulary#Software design#Architecture#Components

Read next