You are on page 1of 8

Soft

2019-2020

C1

S1.Observations…
• Everyday life is increasingly permeated by software
• Software increasingly determines the success of products and services
• The size of systems is growing continuously
• Our ability to develop software systems grows more slowly than demand (so-called "software crisis")
• Only about 1/3 of all development projects were successful (in terms of time, quality, costs)
• Up to approx. 80% of the total costs of a software system are incurred after completion
S2 Framework conditions of today's software development
• Changing requirements
• Changing teams
• Increasing complexity
• Large amount of technologies and frameworks available
•Time pressure
S9 Why is well structured and legible software important?
• Increasing complexity and maintenance requirements for software systems
• Evolution share in software development is growing
• Software developers in the project change over time
The environment as a whole is becoming more dynamic!
S10 Every software has an architecture
• Every software has an architecture!
• There isn't the perfect architecture for a problem.
• Every architecture is a compromise and has advantages and disadvantages
• And: An explicit architectural design is not always required ...

S11 – magische Viereck


S15

S16 What makes a good architect?


•Leadership skills
•Communication skills
•Negotiation skills
•Technical skills
• Project management skills
•Analytical skills
• Ability to abstraction
S18 Definition (s) software architecture
We use the following definition:
The software architecture defines the basic principles and rules for the organization of a system as well as
its structuring in building blocks and interfaces and their relationships to each other and to the
environment
S19 Definition: interface
An interface represents a well-defined access point to the system or its components. An interface
describes the properties of this access point, such as Attributes, data and functions. [...]
S20 Definition: building block
Core aspects of a building block:
- encapsulation and interchangeability
- Export and import of interfaces
- Configuration and hierarchical (de) composition
S21 (1) Export and import of interfaces
A module offers interfaces that it guarantees in terms of a contract. This guarantee applies on the
condition that the interfaces required by him are made available in the context of a corresponding
configuration.
S 22 (2) Interchangeability and encapsulation
A module encapsulates the implementation via the interfaces and can therefore be replaced by other
implementations.
S23 (3) configuration and hierarchical (de) composition
Building blocks are the unit of the hierarchical (de) composition of a software-intensive system.
S27 Typical range of tasks by an architect
• Definition of the software architecture taking into account the requirements
• Documentation of the software architecture
• Dimensioning of software components for the purpose of reuse
• Definition of the interfaces and relationships between software components
• Supporting software development and requirements management
• Assessment of the maturity of the software architecture
S28 iSAQB-International Software ArchitectureQualificationBoard (1)
• Offers 3 certification levels (CPSA - Certified Professional for Software Architecture):
Foundation
 The focus is on acquiring the following skills:
 Coordinate essential software architecture decisions with other project participants from the areas of
requirements management, project management, testing and development,
 Document and communicate software architectures based on views, architectural patterns and technical
concepts,
Understand the essential steps in the design of software architectures and carry them out independently
for small and medium-sized systems

C2
S1 How can you describe an architecture?
• Architectures are described using (UML) models
• Models are simplified representations of reality that allow statements to be presented in the model in
such a way that they can be interpreted equally by all those involved.
• A meta model defines a language to describe models. With the help of the metamodels, generally valid
consistency and transformation rules can be established
• to ensure the consistency of the views of models
• determine the transformation and consistency between models
Architectural models are structured using so-called views. A view is a description of the object to be
viewed from a certain point of view.
For each view there are special description techniques (e.g. in the UML, see further slides)
DiagrammA diagram is a graphic representation of data, facts or information (graphic representation of
model components). A diagram has a well-defined, formally defined language (syntax).
S4/S5 IEEE Standard 1471-2000 (1)
• Is a standard for descriptions / plans, not for concrete "buildings"
• Developed by the IEEE Computer Society
• Architectural descriptions can be standard-compliant while systems, projects, processes or organizations
not!
Aims:
 "Establish a conceptual framework and vocabulary for talking about architectural issues of systems"
Identify and disseminate solid architectural practices
Allows practices to evolve when new technological opportunities become available
• Can be used in the
Architectural description of individual systems
Iterative architecture work of evolutionary systems
Analysis and description of existing systems

S8

Views - Why?
• Why are different views of a system required?
 Complexity management
Communication with stakeholders
• Examples of views
Deployment / distribution view
Static view
Dynamic / behavioral view
Execution view
 ...
• Challenges with multiple views of the same system
How do I keep the different views consistent with each other?
Example: If a component has been renamed within the static view, how do I ensure that it is
also renamed in all other views?
UML modeling tools help here
S9
A viewpoint is defined by
•Surname
• Addressed stakeholders
• Concerns that are addressed
• "ViewpointLanguage": components, connectors, ports, ...
• References
• Consistency and completeness checks

S10

S11
The 4 views of Hofmeister
• Conceptual View: concepts of the application domain and their relationships (including the domain
model). Not to be confused with the "Module View"!
• Module View: Breakdown of the system into modules and submodules
• Execution View: display of the communication paths between the modules, distribution to the hardware,
...
• Code View: package structure, versioning, DB structure, ...

S12
Views according to arc42.de
• Contextual delimitation:
 Embedding the system in its environment
System as a black box
• Block view:
Disassembly into subsystems, components, frameworks, ...
• Runtime view:
 Interaction of runtime instances
General processes within the software
• Distribution view:
Technical environment and infrastructure
Hardware components and their interaction / network topology
Deployment artifacts
S13

S15
Every view needs appropriate description techniques
Not all aspects of all views can be represented equally with a diagram type.
The “Unified Modeling Language (UML)” is a graphical modeling language that can be used for the
specification, construction, documentation and visualization of software systems.
Diagrams in UML can be divided into two main groups:
• Structure diagrams, class diagram, component diagram, distribution diagram, composition structure
diagram, package diagram, object diagram, profile diagram
• Behavior diagrams, activity diagram, use case diagram, interaction overview diagram, communication
diagram, sequence diagram, timing diagram, state diagram

S16 UML class diagram (1)


• Graphical modeling of classes and interfaces as well as their relationships to each other.
• With class diagrams you can also represent DB structures and domain models.
• Often used in
 Block view / Module View
Conceptual View
S22 UML component diagram (1)
• Graphic modeling of components and subcomponents as well as their wiring.
• Often used in
 Block view
View Module View
Contextual delimitation

S24 UML distribution diagram


• Graphical modeling of the distribution of components on computer nodes

S25/26 UML sequence diagram (1)


• Graphic modeling to describe the exchange of messages between objects.
• Usually represents a specific system flow (in contrast to activity diagrams)
• Can quickly become confusing for complex processes.
• Therefore: Always think carefully about the purpose for which a diagram is needed and whether it really
fulfills the purpose

S27 UML activity diagram


• Graphically represents the networking of actions and their connections with control and data flows.

S31 Simple template-arc42 for architectural descriptions


https://arc42.de/
Template available in the following formats: docx, asciidoc, markdown, latex, html, rst, textile,
confluence, Enterprise Architect, IBM Rhapsody, ...
And in the following languages:
EN, DE, ES, RU
Also some application examples

S32 Template Arc42 (arc42.de)


1. Introduction and goals
1.1. Task
1.2.Quality goals
1.3.Stakeholder
2.Boundary conditions
3. Contextual delimitation
3.1 Technical context
3.2.Technical or distribution context
4. Solution strategy

S37 Software architecture standards


• Standards and architectures for e-government applications (SAGA)
• The Open Group Architecture Framework (TOGAF)
• Zachman framework
• NATO C3 System Architecture Framework (NAF)
DoDAF; MODAF, ...

S43 Other common document types


• Central architecture description (arc42)
• Architectural overview
• Document overview
• Overview presentation
• Architectural wallpaper
• Documentation manual
•Technical information
• Documentation of external interfaces

S44 Practice rules for documentation (1)


• Writing from the reader's perspective
• Avoid unnecessary repetitions
• Avoid ambiguity
• Standardized organizational structure or templates and typesetting templates
• Give reasons for important decisions in writing
• Verification of usability
• Clear diagrams
• Regular updates
An architectural description should be as simple as possible, but as extensive as necessary.

You might also like