It lists 4 architecture patterns:
- Mutlti-Tier: distiguishes the user interface layer from the core class layer from the database later. GUI components are isolated within the user interface layer and database interactions are isloated within the database layer.
- Client-Server: separates the functionality of a typical user of the system from that of the server that hosts the database that all users access. The "client-side" code is that which resides on the user's computer, including GUI components. "Server-side" code resides on the server's computer, including the database components.
- Transaction Processing: useful for systems that accept a stream of transactions and process each transaction fully before moving on to the next.
- Model-View Controller (MVC): useful for systems that have substantially complex user interfaces. The idea here is to separate the functionality that underlies the user interface from the code that controls how the user sees and interacts with the system.
It also lists the 3 important software architecture development principles:
- Layering Principle: Every module belongs in a single layer. No module should skip over its neighbors in the layer immediately above or below it, in order to provide or obtain services from another layer.
- Maximum Cohesion Principle: All the functions that relate to a single concept are gathered into a single module or class. A software architecture is maximally cohesive if all its modules and classes are cohesive in this way.
- Minimum Coupling Principle: Two modules are coupled if either one shares information or receives services directly from the other. A software system is minimally coupled when the number of interactions between all pairs of modules is kept to a minimum.
No comments:
Post a Comment