multi-layer system | contains - a separate layer at the very top to handle the user interface
- layers that provide the application functions determined by the use-cases
- layers at the bottom provide services such as data storage and transmission
|  |
contains layers with each layer communicating only with the layer immediately below it |  |
has part layer |  |
is a subtopic of 9.5 - Architectural Patterns |  |
is a kind of software system |  |
uses multi-layer architectural pattern |  |
software system | becomes complex because it is easy to add new features and because software engineers typically add features without fully understanding a system, which may not have been originally designed to accommodate the features |  |
can automate business process |  |
can be divided in many ways: |  |
is better at error handling if it effectively prevents the user from making errors, detects errors, and helps the user to correct errors |  |
is typically initially developed as a prototype |  |
must have well-described requirements if other systems or subsystems are going to use its services or communicate with it |  |
should be designed for flexibility right from the start |  |
undergoes evolution over its life-span |  |
system | can have specification which is then implemented by a collection of components |  |
exists even if its components change over the course of time, or are replaced by equivalent components |  |
has scope |  |
is divided up into subsystems |  |