The process of designing software systems (and subsystems) of all kinds
IT architecture
The name of a specific architecture typology, e.g., "client-server architecture"
IT architecture
The professional field of the information technology (IT) architect
IT architecture
The result for which an IT architect is responsible, i.e., the amount of artifacts they compose to create an architecture
IT architecture
The term for the science of designing IT systems, i.e., the teaching of IT architecture
Architecture
The "preliminary design" of a software system
Design
The "detailed design" of a software system
Architecture determines the basic structure, shape, type of roof, number of rooms, and the arrangement and shape of the windows
Design determines what the faucets look like, what color the tile joints are, and in which direction each door opens
In this unit, "architecture simplifying" refers to all specifications and decisions about the system that are made prior to implementation
IT Architecture in Software Processes
1. Requirements engineering
2. Architecture
3. Implementation
IT architect
Analyzes and understands the needs of the stakeholders
Weighs them against each other
Develops an architectural description through several decisions and design activities
Architecture definition activities
1. Analyzing the requirements and interests of the stakeholders
2. Designing an architecture that meets the requirements
3. Describing and documenting the architecture
Every system has an architecture, even if no software architect has created an architectural description
Architecture is inherent in the system
Architectural description
The result of the design activities of an IT architect
The actual architecture of the system does not manifest until the system is implemented
Simple sketches and presentation slide graphics are often created for initial architectural ideas, but they have no clear and agreed-upon semantics and often allow a dangerously large scope for interpretation
Architectural descriptions should always be documented with well-defined software models (e.g., unified modeling language [UML])
There is a divergence between the documented design decisions in the form of the architectural description and the actual system architecture
Software developers are neither physically nor logically bound by the architect's specifications
Application Scenarios for Architecture Documentation
A priori documentation
Ex post documentation
A priori documentation
The creation of an architecture description before the implementation of the system based on design activities and decisions
Ex post documentation
The creation of the architecture description after the implementation of the system, based on the implemented program code
IT Architecture Layers
Business architecture
Software architecture
IT enterprise architecture
The actual creation of the software system takes place through the implementation, i.e., the writing or generation of program code
The software architect can also be actively involved in the implementation, depending on the project organization
If software architects are actively involved in the implementation, they can make sure that the developers adhere to the specifications of the architectural description
A software system manifests itself in two ways: the source code and the executable program
Software architects
Overall responsibility for the entire system
Responsibility for individual components
Responsibility for individual interfaces
Software architect
First point of contact for the software developer for questions related to the business or technology, and if decisions will affect several parts of the system or important interfaces
Software architects are actively involved in the implementation
They can make sure that the developers adhere to the specifications of the architectural description
Developers adhere to the specifications of the architectural description
Reduces the risk that the architecture will develop away from the planned architecture during implementation (architectural erosion)
Ways a software system manifests itself
Source code and artifacts created by the development team
Executable that can be deployed and started on a computer
Programming
The activity of writing program code
When creating code
Writing program code
Reusing existing program code
Generating code automatically
Writing program code
The programmer creates structured text for the targeted solution of specific problems
Reusing existing code
Developers can fall back on already programmed solutions to the problem
Creation of complex information systems is inconceivable without reusing existing code in the form of frameworks or libraries
Generating program code automatically
Generating program code from elements of the architectural description