Software architect

Software Architect is a term used to job description for people who - no matter what training - in the field of software engineering work on the software architecture and its implementation.

The term "Software Architect " arose from the perceived similarity between the technical planning software and the architectural design of buildings.

With the proliferation of object-oriented programming in the computer science in the late 1990s, the term established rapidly. The object orientation allowed much larger and more complex software architectures, which made an overview and necessary decisions on the architecture level. The advent of open source frameworks and the necessary decision between possible alternatives was another task that completed the job of a software architect.

Tasks

Despite the lack of a commonly accepted definition of the role of a software architect can be assumed that these are usually responsible for a part of the processes of Software Engineering:

Planning

In the planning of software development projects architects are usually in the preparation of specifications, in particular the discovery, description and justification of the chosen for the implementation of technical approaches involved. In addition, architects are often used in charge in the cost estimate and determine the process model.

Analysis

In the analysis of software architects can usually only when any war necessary creation of mock -ups are used. These serve certain techniques and technologies of architecture know precisely, in order to decide to what extent these are practical.

Design

Software architects are usually responsible for all the processes of the design. In particular, they are responsible for the creation, description and communication of the software architecture, for example, using the Unified Modeling Language and appropriate design patterns. Architects have usually still have a say in the runtime environment to be used, rarely also in the platform. In very few cases, but architects deal with the system architecture of the hardware.

Programming

When programming answer for architects usually the correct implementation of the defined architecture, as well as the appropriate use of program libraries and frameworks. In addition, they are often responsible for the information on coding style and give the tools to use for the development such as IDE, build management tool, version control tool before, or have in their selection an important say.

Test

As part of the test answer for architects usually the module test and rarely also the integration test. System and acceptance tests mostly they support only through design and implementation of test drivers and interfaces.

Support processes

With the support processes of software engineering architects are mostly responsible for individual technical tasks and never for all processes. Mostly architects responsible for the Static code analysis, as well as the software and technical documentation as well as the operating manual.

Types of Software Architects

Enterprise architects meet organization-wide, mostly software system -wide software decisions. These decisions usually involve several development teams and locations. Examples of such decisions are:

  • Introduction of cross-system architectures such as Service Oriented Architecture
  • Decision for the use of cross-system development environments or frameworks

Application architects make architectural decisions for a particular application and thus exactly one development team. Examples of such decisions are:

  • Decision for a particular OR - Mapper ( so this decision is not globally specified by the enterprise architect )
  • Definition of application architecture

Similar descriptions are in circulation, such as:

  • Solutions Architect, mostly describes the role of a person who looks after a specific business solution across multiple software systems away.
  • System architect, best used as a synonym for application architect.
  • Systems Architect (plural ) is most often used as a synonym for Enterprise Architect and Solution Architect.

The following table, most of the differences between the different types of software architects:

In practice, it is due to the unclear division of duties between the different architects often have different views on the goals of the architect.

Training

Software architects have usually completed in a computer science degree program at a university or a vocational academy study. A study in an engineering or science degree offers career opportunities in software development.

Furthermore, there is the opportunity to qualify on a training in an information technology education profession, for example, IT specialist for application development at a vocational school, a college of data processing and organization or a vocational school for software developers, software engineer or software architect.

The school or academic education alone usually are not prepared to exercise of the profession of a software architect. Most software architects have years or even decades of practical experience have before they can assume the role of the software architect in larger development projects.

Restrictions

In Germany the use of the term " software architect " is not allowed as job title. Under the provisions of state laws the title architect or linguistic variations thereof may only lead those who are entered in the list of architects of Architects.

In Austria, the professional title of architect may only be conducted by civil engineers. Civil engineers are persons provided with public faith under Section 292 of the Austrian Code of Civil Procedure.

In Switzerland, the use of the term " software architect " not subject to any restrictions and protected by any professional code or legislation.

Metaphor

The term software architect was the early 2000s, even outside the IT world known as Bill Gates, then president and CEO of Microsoft, retreated to the role of Chief Software Architect. This title reflected his new role as supervisor and consultant for many software development projects at Microsoft, otherwise a Chief Technical Officer fall tasks.

736496
de