Architecture is:

  • the overall design of a building, structure, or system that unifies its components or elements into a coherent and functional whole,
  • a formal description of a system, or a detailed plan of the system at the component level, to guide its implementation (source: ISO/IEC 42010:2007)
  • the structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time

At a basic level, architecture is commonly defined as the process of planning, designing, and constructing buildings or structures. True architecture goes well beyond a mere building. Every architect seems to have a different definition of what architecture means to them. Architecture is not a natural phenomenon. It is a man-made phenomenon that stems from the thoughts and ideas of the human mind. Without the human mind, thoughts of the possibilities of what architecture could be would not exist.

Every piece of architecture is created by the universal language of architecture. Architecture as art may make you feel in awe, inspired, or excited. Or, shocked, repulsed, or uninspired. Architecture as a political statement may make you feel activated, confronted or disturbed. Or inflamed, passionate, or aroused. Architecture as a social statement may make you feel connected, accepted, or included. Or separated, isolated or outcast.[1]

Architecture is defined by Webster’s dictionary as the art or science of building or construction, or, the art and practice of designing and building structures, especially habitable ones. This simple definition explains some of the basic attributes of architecture. However, defining architecture simply as an art or science of building is inadequate; also, describing architecture from the point of human habitation, raises another question, what if the structure is not habitable, say, for example, a monument, or a memorial; do they not still fall into the category of architecture?

There is another definition by Webster that states, architecture is the formation or construction resulting from or as if from a conscious act. Of course, buildings are planned structures and therefore they are consciously constructed. However, when an architect designs or plans certain elements, it could arise from pure imagination or unconscious motives too. Although architects consciously construct buildings, there is a common belief among artists and other creative people to attribute their ingenious masterpieces to some flashes of thoughts, originating from nowhere, (not knowing the exact cause of origin), that inspired them to make it a reality, that they are not being fully conscious of the act. Architecture is generally viewed in a broader way, not restricted to the construction of buildings. It includes many more factors and aspects that are related to construction, structure or object, or collective structures like urban designs and landscape architecture. This description views architecture as a purposive manipulation and modification of shapes, forms, and spaces in a given environment. Therefore, not only the construction is highlighted as architecture, but the surrounding environment in which it stands also gets emphasized. A simple, yet slightly abstract definition every student of architecture would recall is the one made by French architect Le Corbusier1 architecture is the masterly, correct, and magnificent play of forms under the light.

Let us define architecture this way: Architecture is the art and science of designing as well as building space, structure, and surroundings with aesthetic features to accomplish some specific purpose that gives a sense of excitement to the viewers. This definition brings out a few fundamental facts in a multidisciplinary way. First, it is an art because an architect who creates is primarily an artist with a natural talent and aptitude for architecture, and expresses the creative ability in the artifact. Secondly, it is the science of designing and building space, structure,  or building. This process involves a combination of disciplines. It involves Math, Physics, and other related sciences and scientific methodologies. Thirdly, a structure or a building is not regarded as architecture if it does not pursue the processes of proper planning, diligent designing, making use of matching materials, displaying delicate decorations, and above all, being erected in an enticing environment. Fourthly, the structure should achieve its goal, that is, to serve the purpose for which it is built. This involves proper space management and functional utility. Finally, the constructed structure should have an aesthetic appeal to the senses to generate extra excitement. All of these involve a complex process; a good amount of cognition, research, and, planning on myriad levels. Thus, architecture points to the plan, process, pattern, and product. It is because architecture reveals not only a character or style of a particular construction but also tells the tale of the architect who designs and the stakeholder who commissions.[2]

Computer Architecture
In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. The architecture of a system refers to its structure in terms of separately specified components of that system and their interrelationships. Some definitions of architecture define it as describing the capabilities and programming model of a computer but not a particular implementation. In other definitions, computer architecture involves instruction set architecture design, microarchitecture design, logic design, and implementation.[3]

Computer Architecture

Computer architecture is a specification describing how hardware and software technologies interact to create a computer platform or system. When we think of the word architecture, we think of building a house or a building. Keeping that same principle in mind, computer architecture involves building a computer and all that goes into a computer system. Computer architecture consists of three main categories.

  • System design – This includes all the hardware parts, such as CPU, data processors, multiprocessors, memory controllers, and direct memory access. This part is the actual computer system.
  • Instruction set architecture – This includes the CPU’s functions and capabilities, the CPU’s programming language, data formats, processor register types, and instructions used by computer programmers. This part is the software that makes it run, such as Windows or Photoshop, or similar programs.
  • Microarchitecture – This defines the data processing and storage element or data paths and how they should be implemented into the instruction set architecture. These might include DVD storage devices or similar devices.

All these parts go together in a certain order and must be developed in a pattern so they will function correctly.[4]

Software Architecture
Software Architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. The architecture of a software system is a metaphor, analogous to the architecture of a building. It functions as a blueprint for the system and the developing project, which project management can later use to extrapolate the tasks necessary to be executed by the teams and people involved.

Software architecture is about making fundamental structural choices that are costly to change once implemented. Software architecture choices include specific structural options from possibilities in the design of the software. For example, the systems that controlled the Space Shuttle launch vehicle had the requirement of being very fast and very reliable. Therefore, an appropriate real-time computing language would need to be chosen. Additionally, to satisfy the need for reliability the choice could be made to have multiple redundant and independently produced copies of the program, and to run these copies on independent hardware while cross-checking results.[5]

software architecture

Software architecture supports the analysis of system qualities when teams are making decisions about the system rather than after implementation, integration, or deployment. Whether designing a new system, evolving a successful system, or modernizing a legacy system, this timely analysis enables teams to determine whether the approaches they’ve chosen will yield an acceptable solution. An effective architecture serves as the conceptual glue that holds every phase of the project together for all of its stakeholders, enabling agility, time and cost savings, and early identification of design risks.

Building an effective architecture that enables rapid product delivery for today’s needs while also addressing long-term goals can prove challenging. Failing to identify, prioritize, and manage trade-offs among architecturally significant qualities often leads to project delays, costly rework, or worse.

An effective software architecture supported by agile architecture practices enables effective continuous system evolution. Such practices include documenting the architectural elements and interrelationships intended to achieve key qualities; repeatedly evaluating the architecture for fitness with respect to an organization’s business and mission goals, and analyzing the deployed system for conformance to an architecture. When performed correctly, these practices enable predictable product quality, fewer downstream problems, time and cost savings in integration and testing, and cost-effective system evolution.[6]

Architecture in Programming
Architectural programming began when architecture began. Structures have always been based on programs: decisions were made, and something was designed, built, and occupied. In a way, archaeologists excavate buildings to try to determine their programs. Today, architectural programming is defined as the research and decision-making process that identifies the scope of work to be designed. Synonyms include "facility programming," "functional and operational requirements," and "scoping." In the early 1960s, William Peña, John Focke, and Bill Caudill of Caudill, Rowlett, and Scott (CRS) developed a process for organizing programming efforts. Their work was documented in Problem Seeking, the text that guided many architects and clients who sought to identify the scope of a design problem prior to beginning the design, which intended to solve the problem.[7]

Architectural programming involves research and decision-making that helps the architect and owner establish performance requirements and design criteria for the project. Programming can range broadly from identifying the project’s goals and objectives to particular elements, such as the precise characteristics of a space. It is an essential first step before the design phase and a critical communication tool throughout the project. A program guides participants from concept to construction documentation. The architect typically starts with a general draft at the beginning of the project, then expands and edits it into a final document.

Programming can be time-intensive, costly, and varies with each owner and project. As such, it is not easy to estimate these fees upfront to include in the architect’s basic services. On some projects, the owner may engage one architect for programming services and use that program to solicit a different architect for design services. On other projects, the owner may want the design architect to include programming as part of its design services.[8]

Enterprise Architecture
An enterprise architecture (EA) is a conceptual blueprint that defines the structure and operation of organizations. The intent of enterprise architecture is to determine how an organization can effectively achieve its current and future objectives. Enterprise architecture involves the practice of analyzing, planning, designing, and eventually implementing analysis on an enterprise.

Enterprise architecture helps businesses going through a digital transformation since EA focuses on bringing both legacy applications and processes together in an attempt to form a seamless environment. The use of EA frameworks rose in response to increases in business technologies during the 1980s when a need for a way to respond to rapid technology growth was integral to business strategy. This process later expanded to the entirety of a business, not just information technology (IT). This way, the rest of the business would be ensured to be aligned with digital transformation.

Concepts of enterprise architecture are variable, so it will not look the same for each organization. Different parts of an organization may also view EA differently. For example, programmers and other technical IT professionals regard enterprise architecture strategies in terms of the infrastructure, application, and management components under their control. However, enterprise architects are still responsible for enacting business structure analysis.[9]

Enterprise Architecture

The purpose of enterprise architecture is to create a map of IT assets and business processes and a set of governing principles that drive an ongoing discussion about business strategy and how it can be expressed through IT. There are many different enterprise architectural principles and frameworks that have been specifically developed since the 1980s, with the earliest origins of the concept of EA tracing back to the Business Systems Planning (BSP) methodology initiated by IBM in the 1960s. But in general, all EA frameworks facilitate the design and development of enterprise architecture with four basic domains in common:

  • Business architecture—defines business strategy and organization, key business processes, and governance and standards.
  • Data architecture—documents the structure of logical and physical data assets and any related data management resources.
  • Application systems architecture—provides a blueprint for deploying individual systems, including the interactions among application systems as well as their relationships to essential business processes.
  • Technology architecture—describes the hardware, software, and network infrastructure necessary to support the deployment of mission-critical applications.[10]

See Also