Ch. 5: Architecture and Implementation Flashcards

1
Q

Please describe what “IT Architecture” is.

A

In literature and practice, no generally recognized definition or concept formation for the terms architecture and design has prevailed up to now. Therefore, the term “architecture” is used differently depending on the organization, personal characteristics and preferences. The term IT architecture can be used to denote the following—similar to the classic architecture term:
- The process of designing software systems (and subsystems) of all kinds.
- The name of a specific architecture typology, for example, “client-server architecture.”
- The professional field of the IT architect.
- The result for which an IT architect is responsible, i.e., the amount of artifacts he composes to create an architecture.
- The term for the science of designing IT systems, i.e., the teaching of IT architecture.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

The (IT) architecture describes the transfer from …

A

… problem to solution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the relationship between requirements engineering, architecture, and implementation?

A

Starting with the RE, system requirements are analyzed and specified. During the implementation, the set of conditions and specifications for a given system is translated into executable program code. The architecture is located between RE/specification and implementation. The IT architect must analyze and understand the needs of the stakeholders, weigh them against each other, and develop an architectural description through several decisions and design activities. This description serves the development team as a template and framework for the following implementation activities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does implementation mean and what does it have to do with architecture?

A

The actual creation of the software system takes place through the implementation, i.e., the writing or generation of program code. Based on the documented business requirements, the technical specification, and the architecture description, several program code artifacts are created, which together make up the executable software system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Please describe the core activities of the architecture creation.

A
  1. Analyzing the requirements and interests of the stakeholders
    First, the architect analyzes what is important: the specified business requirements and the stakeholder from business, development, and operation of the system. Subsequently, the possibly restricted set of requirements must be documented and accepted by the stakeholders.
  2. Designing an architecture that meets the requirements
    The architect makes design decisions to meet the requirements. That is, they create a first version of the architectural description. The decisions must then be checked and evaluated against the requirements.
  3. Describing and documenting the architecture
    Finally, the decisions must be documented in the form of an architectural description using software models. The more detailed the decisions about the architecture, the more technically and precisely the results must be documented.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the architectural description?

A

The result of the design activities of an IT architect is the architectural description. However, the actual architecture of the system does not manifest until the system is implemented. Every system has an architecture, even if no software architect has created an architectural description. Architecture is therefore inherent in the system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is used to document the IT architecture and what challenges derive from the way it’s documented?

A

IT architectures can be documented in different ways. Simple sketches and presentation slide graphics are often created for initial ideas. Although these can be created quickly, they have no clear and agreed-upon semantics and often allow a dangerously large scope for interpretation. This type of representation is generally not understandable for people who are not involved in the creation process.
Therefore, architectural descriptions should always be documented with well-defined software models (e.g., unified modeling language [UML]). Their notation elements have a clear meaning (semantics) and are used worldwide.
A major challenge in dealing with architectural descriptions is the divergence of 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. There are essentially no restrictions in programming, so the expressiveness of a programming language can be used by the developer at any time, even if it contradicts the original architecture specifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Architectures’ documentations can be described in two ways …

A
  • A priori: before the implementation. The architecture documentation is used to express and document agreements about the design of the system. It defines the framework within which the development teams can make their own decisions, and thus the target state of the software architecture. It forms the starting point for the validation of the suitability of an architecture to support required quality requirements and constraints.
  • Ex post: after implementation. It is used to represent and document the architecture that has been implemented by the development team. It represents the actual state of the software architecture. It can either be used to check the conformance of the implemented architecture against the architecture, or as a starting point for the architecture evaluation with regard to compliance with standards, guidelines, or laws.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are architectural levels?

A

Architectures can be created on different levels in software engineering. There are various IT architectures, including the overview of business concepts and dependencies using a business architecture, the representation of the structure of individual software systems using a software architecture, and the representation of the entire enterprise IT architecture. In principle, a specific architecture can be created for each relevant sub-area or each special view of a software system, e.g., a security architecture or a communication architecture.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

After IT architecture is defined, what major phase of development, that corresponds to the actual creation of the software, follows?

A

Implementation: based on the documented business requirements, the technical specification, and the architecture description, several program code artifacts are created, which, together, make up the executable software system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does a software program manifest itself?

A

Either as the source code and the number of artifacts created by the development team or as an executable that can be deployed and started on a computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Please explain how a developer can generate code for a software system.

A

When creating the code, software developers can ensure in various ways that the system supports the required functions. This happens either through writing program code, reusing existing program code, or generating program code automatically.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Please name three functions of an (integrated) development environment.

A

Support for writing program code, integration of libraries and framework, generation of program code for trivial tasks, version control, and continuous build and integration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

In large projects, each individual developer must be able to generate a current version of the program under development to test the changes that they have made. This requires …

A

… continuous build and integration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the main programming languages and what are they used for?

A

C is often used for hardware-related programming, such as in embedded systems.
Python is used in many contexts, like the development of back-end software, data science, machine learning, and embedded systems.
Java is also used for programming apps since Android smartphones became available.
JavaScript is used in the field of front-end web applications.
SQL is used for saving and reading data in a database.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are markup languages?

A

These languages are typically used to describe the structure and content of application interfaces (websites). Markup languages can be used to specify a structure in which messages can be exchanged between systems, but not how systems process this information. Examples are hypertext markup langauge [HTML], extensible markup language [XML], cascading style sheets [CSS].

17
Q

Why most companies stick with older programming languages?

A

The more mature a programming language, the more libraries, know-how, and support are available. Therefore, it is usually very rare that business-critical information systems are implemented with newer programming languages. Compared to IT departments in large companies, smaller companies and start-ups are often more willing to experiment with programming languages. In specific safety-critical branches, such as aerospace and automotive, the use of International Organization of Standardization (ISO)-certified programming languages like C and C++ is mandatory.