Software architect

Software architect

Software architect is a general term with many accepted definitions, which refers to a broad range of roles. Generally accepted terminology and certifications began appearing in connection with this role near the beginning of the 21st century.

Contents

History

With the increasing popularity of multi-tier application development, the choices of how an application can be built have also increased. Given that expansion, the risk that a software development project may inadvertently create an end product that in essence already exists has grown markedly. A new 'Software architect' role became necessary during software development[citation needed] .

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)[citation needed] . OOP allowed ever-larger and more complex applications to be built, which in turn required increased high-level application and system oversight.

The main responsibilities of a software architect include:

  • Limiting choices available during development by
  • Recognizing potential reuse in the organization or in the application by

Software architects can also:

  • Subdivide a complex application, during the design phase, into smaller, more manageable pieces[citation needed]
  • Grasp the functions of each component within the application[citation needed]
  • Understand the interactions and dependencies among components[citation needed]
  • Communicate these concepts to developers[citation needed]

In order to perform these responsibilities effectively, software architects often use Unified Modeling Language[dubious ] and OOP[citation needed] . 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

Despite the lack of an accepted overall definition, the role of software architect generally has certain common traits:

Design

The architect makes 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, so as to advance business goals rather than to place arbitrary restrictions on the choices of developers[citation needed] . 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.

Communication

Architects also have to communicate effectively, not only to understand the business needs, but also to advance their own architectural vision. They can do so verbally, in writing, and through various software architectural models that specialize in communicating architecture.

Other types of IT-related Architects

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. Unfortunately 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. This may be a full- or a part-time role. The application architect is almost always an active software developer[citation needed] .

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

  • Solutions Architect, which may refer to a person directly involved in advancing a particular business solution needing interactions between multiple applications. May also refer to an Application Architect.
  • System Architect (singular), which is often used as a synonym for Application Architect. However, if one subscribes to Systems theory and the idea than an enterprise can be a system, then System Architect could also mean Enterprise Architect.
  • Systems Architect (plural), which is often used as a synonym for Enterprise Architect or Solutions Architect.

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]

Architect metaphor

The term "software architect" came into being because of the perceived similarities between the creation of software and the creation of buildings.[2] Although a simplified construction metaphor may be flawed,[3] the term is still meaningful in the sense that it describes the "design" aspect of the job.

The use of any form of the word 'architect' is regulated by 'title acts' in many states in the UK and the US, and a person must be licensed as a building architect to use it[citation needed]. Enforcement of these laws may be lax, if it is immediately clear that the title refers to the computer industry and not the building industry.

Ivory towers

When architects become too disconnected from the actual developers, they are often dismissively termed "architards", "architecture astronauts", or "Ivory Tower Architects"[citation needed] . Architects may think this term is often incorrectly used by developers who do not have the experience or knowledge to comprehend the architecture[citation needed] .

Application or solutions architects work at a level of detail that demands involvement in actual coding, and will function best with a substantial background in software development. A school of thought[which?] holds that enterprise architects should also have a development background, so as to avoid the issues that can arise from an ivory-tower approach[citation needed] .

See also

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • software architect — noun An architect (not to be confused with a designer) of software based on technology, who prepares plans and superintends construction of that software …   Wiktionary

  • IBM Rational Software Architect — Infobox Software name = IBM Rational Software Architect caption = Rational Software Architect with Design Model Diagram developer = IBM released = ? frequently updated = yes programming language = ? operating system = language = ? genre =… …   Wikipedia

  • Rational Software Architect — IBM Rational Software Architect Тип Среда разработки программного обеспечения Разработчик …   Википедия

  • Craig L. Russell (software architect) — Craig L. Russell (born January 6, 1949) is an American software architect.BiographyEarly life and educationCraig L. Russell was born January 6, 1949 in New York. He graduated from Harvard University in 1971 with a BA in Applied Mathematics.… …   Wikipedia

  • Rational Software Architect —  Ne doit pas être confondu avec Rivest Shamir Adleman. Rational Software Architect est une technique d IBM d ingénierie dirigée par les modèles basée sur UML. Cette technique est prévue pour être utilisée particulièrement avec Java EE et C++ …   Wikipédia en Français

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • Software architecture — The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them. The term also… …   Wikipedia

  • Software Architectural Model — An Architectural Model (in Software) is a rich and rigorous diagram, created using available standards, in which the primary concern is to illustrate a specific set of tradeoffs inherent in the structure and design of a system or ecosystem.… …   Wikipedia

  • Software blueprint — A software blueprint is the final product of a software blueprinting process. Its name derives from the analogy drawn with the popular use of the term blueprint (within traditional construction industry). Therefore, a true software blueprint… …   Wikipedia

  • Architect — For other uses, see Architect (disambiguation). Architect An architect at his drawing board, 1893. Occupation Names Architect Activity sectors Architecture …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”