In today's environment it's becoming more and more difficult to develop
well-architectured software for two reasons: the size and complexity of
software keeps growing and the target environments are becoming more and more
complex. In other words, today's environments are distributed and highly
heterogeneous.
Applications are so large that one doesn't develop stand-alone systems
anymore - applications are developed from existing components and are likely
to use common services available in the target implementation environment.
Since networks - especially the Internet - facilitate interoperability,
today's applications need to interoperate with other applications and share
information with them.
Through modeling, architects attempt to manage the complexity of software
systems better. The model allows the software architect to separate design
from implementation: it... (more)