Application Architecture

A software architecture delineates how a set of structural and behavioral artifacts, modeled at decreasing levels of abstraction (essentially: analysis, design, implementation) will realize the needs expressed by the business architecture.

Each notation suggested here (UML®, SoaML®, SOMF™ and ArchiMate®) for modeling a software architecture offers distinct advantages, depending on the desired end goal:

UMLBest used to define analysis and design artifacts with the intent (or possibility) to generate implementation artifacts such as code and schemas.
SoaMLBest suited for modeling services that will be implemented using a SOA based infrastructure.
SOMFMost appropriate for modeling enterprise functionality expressed as services (regardless of whether their implementation is realized by SOA services).
ArchiMateIdeal for describing an architecture at the business, application and technology level without the intent to generate implementation artifacts from the models.

These notations can of course be combined within the same Enterprise Architect repository and their constructs inter-related as appropriate!