Job titles like “Technical Architect” and “Chief Architect” nowadays abound in software industry, yet many people suspect that “architecture” is one of the most overused and least understood terms in professional software development.

Gorton’s book tries to resolve this dilemma. It concisely describes the essential elements of knowledge and key skills required to be a software architect. The explanations encompass the essentials of architecture thinking, practices, and supporting technologies. They range from a general understanding of structure and quality attributes through technical issues like middleware components and service-oriented architectures to recent technologies like model-driven architecture, software product lines, aspect-oriented design, and the Semantic Web, which will presumably influence future software systems. This second edition contains new material covering enterprise architecture, agile development, enterprise service bus technologies, RESTful Web services, and a case study on how to use the MeDICi integration framework.

All approaches are illustrated by an ongoing real-world example. So if you work as an architect or senior designer (or want to someday), or if you are a student in software engineering, here is a valuable and yet approachable knowledge source for you.

Ian Gorton

Ian Gorton joined Northeastern University in Seattle as the Director of the Computer Science Masters programs in 2015. Prior to this role, he worked at the Carnegie Mellon University Software Engineering Institute as a Senior Member of the Technical Staff. He worked on several projects focused on the principles of designing massively scalable software architectures for big data applications, and building knowledge bases both manually and using machine learning to support engineering tasks.

Before joining the SEI, Gorton was a Laboratory Fellow in Computational Sciences and Math at Pacific Northwest National Laboratory. He managed the Data Intensive Scientific Computing research group, and was the Chief Architect for PNNL’s Data Intensive Computing Initiative. He was also PI for multiple projects in environmental modeling, carbon capture and sequestration, and bioinformatics. This experience has led to a particular interest in the design of large scale, highly customizable cyber-infrastructures for scientific research.

Gorton has a PhD in Computer Science from Sheffield Hallam University and is a Senior Member of the IEEE Computer Society and a Fellow of the Australian Computer Society. Until July 2006, he led the software architecture R&D at National ICT Australia (NICTA) in Sydney, Australia, and previously worked at CSIRO, IBM, Microsoft and in academia in Australia. His passion is analyzing and designing complex, high performance distributed systems, and embodying design and architecture principles in methods and tools that can be exploited by architects in other projects.