2.7. Summary

Despite the huge number of people employed as practising software architects, there is still a lack of clarity about the definition of architecture in the theoretical architecture. Most people can agree that architecture is about the gross structure of a system and that architecture guides decisions on how to build systems, so that architecture is about requirements and constraints. Architecture is what remains when you cannot take away anything and still understand the system and explain how it works. A good architecture should promote reuse. I would add that architecture is about conceptual integrity and that there must be a coherent unifying rationale: an architectural vision. Thus we assert that: Software Architecture = Elements + Form + Rationale.

Architecture is also about the things that are difficult and expensive to change. Design is then about selecting an architecture, deciding on a design philosophy and asserting that 'this is the way we will do things around here'.

Service-oriented architecture mandates that systems are assembled from services. Well designed services are intended to be shared, so that applications can be built by combining and reusing them in multiple applications. To do this they must not only be correct in themselves but also autonomous, abstract, composable, discoverable, transactionally stateless, reusable black boxes defined by their contracts. Ideally, service oriented architecture is based on standards.

To help reduce the massive ...

Get Requirements Modelling and Specification for Service Oriented Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.