- Unified Modeling Language™ (UML®)
- Service Oriented Architecture Modeling Language (SoaML®)
- Service Oriented Modeling Framework™ (SOMF™)
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:
UML Best used to define analysis and design artifacts with the intent (or possibility) to generate implementation artifacts such as code and schemas. SoaML Best suited for modeling services that will be implemented using a SOA based infrastructure. SOMF Most appropriate for modeling enterprise functionality expressed as services (regardless of whether their implementation is realized by SOA services). ArchiMate Ideal 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!