Webservices. CBDI Service Oriented Architecture Practice Portal. Characteristics of a software architect. This is the second article in a four-part series on software architecture.
Last month, the first article in this series defined what we mean by architecture. We can now turn our attention to the role that is responsible for the creation of the architecture -- the architect. The role of the architect is arguably the most challenging within any software development project. The architect is the technical lead on the project and, from a technical perspective, ultimately carries the responsibility for the success or failure of the project. Here's how the IEEE defines the term "architect": Software Architecture Management - define software architecture, control architectural complexity. The influence of non-functional requirements. As technical people, it's really easy for us to think about software as a purely technical endeavour when we should always remember that software is really about solving business problems or providing some benefit to somebody.
Over the past few years, more and more emphasis has been placed on this, evident from concepts such as enhanced customer collaboration, BPMN and SOA. Clearly the functional requirements are important because they ultimately govern what the system does. But as I've said before, the non-functional requirements are equally as important and part of the software architect's role is to balance these often competing forces to come up with a solution that meets the needs. Sometimes, the non-functional requirements will have more of an influence on the solution definition than the functional requirements.
Software architecture. The word software architecture intuitively denotes the high level structures of a software system.
It can be defined as the set of structures needed to reason about the software system, which comprise the software elements, the relations between them, and the properties of both elements and relations. The term software architecture also denotes the set of practices used to select, define or design a software architecture. Concept Applying the term “architecture” to software systems is a metaphor that refers to the classical field of the architecture of buildings. The term “software architecture” is used to denote three concepts—the: High level structure of a software systemDiscipline of creating such a high level structureDocumentation of this high level structure.
Implementing REST Web Services: Best Practices and Guidelines.