Software architect

A software architect is a software expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. The leading expert is referred to as the chief architect.

History

The software architect concept began to take hold when object-oriented programming (OOP) was coming into more widespread use (in the late 1990s and early years of the 21st century). OOP allowed ever-larger and more complex applications to be built, which in turn required increased high-level application and system oversight.

Responsibilities

The main responsibilities of a software architect include:

  • observing and understanding the broader system environment
  • creating the component design
  • having knowledge of other applications in the organization

In order to perform these responsibilities effectively, software architects often use tools or standardized model and symbol sets such as Unified Modeling Language(UML) and OOP to represent systems or develop artifacts. UML has become an important tool for software architects to use in communicating the overall system design to developers and other team members, comparable to the drawings made by building architects.

Duties

The role of software architect generally has certain common traits:

Architects make high-level design choices much more often than low-level choices. In addition, the architect may sometimes dictate technical standards, including coding standards, tools, or platforms.

Software architects may also be engaged in the design of the architecture of the hardware environment, or may focus entirely on the design methodology of the code.

Architects can use various software architectural models that specialize in communicating architecture.

The enterprise architect handles the interaction between the business and IT sides of an organization and is principally involved with determining the AS-IS and TO-BE states from a business and IT process perspective. UnfortunatelyDubious - discuss. many organizations are bundling the software architect duties within the role of enterprise architecture. This is primarily done as an effort to "up-sell" the role of a software architect and/or to merge two disparate business-related disciplines to avoid overhead.

An application architect works with a single software application.

Other similar titles in use, but without consensus on their exact meaning, include:

The table below indicates many of the differences between various kinds of software architects:

Architect type Strategic thinking System interactions Communication Design
enterprise architect across projects highly abstracted across organization minimal, high level
solutions architect focused on solution very detailed multiple teams detailed
application architect component re-use, maintainability centered on single application single project very detailed

In the software industry, as the table above suggests, the various versions of architect do not always have the same goals.[1]

See also

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.