The document discusses several common software architectural styles, including:
1) Object-oriented style where components are objects that communicate via messages and method invocations.
2) Layered style which uses a hierarchical organization with each layer acting as a client or server to adjacent layers.
3) Client-server style where servers provide services to clients without knowing their identities or numbers.
4) Data-flow styles like pipe and filter where components are independent filters that transform input data streams.