Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


Software Architecture in Real Life

Presentation I gave for students at TU Braunschweig.

Eberhard Wolff

on 2 January 2017

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Software Architecture in Real Life

Why We Care
Software elements
non-functional requirements & quality
Software Architecture in Real Life
Eberhard Wolff, adesso AG
Server that integrates a lot of systems
Static code analysis (Findbugs, PMD etc)
Lines of Code, classes
Test code coverage
Historized i.e. easy to spot trends
Standard tool at adesso
Software Architecture
The software architecture of a system
is the set of
needed to reason about it, which comprise
software elements,
relations among them, and
properties of both.
Measure and Reduce
No way to know all code by heart
Still: You and the team need to understand the state of the project
Need tools to measure and reduce information
Conclusions Matter!
Do not enforce a certain value for a metric!
Metrics are used to reduce information and get warning signs
Use them to improve quality
If you enforce a value mindlessly problems will be avoided – not solved
…and measurements will become worthless
Care about Architecture
and Code

Care About Architecture and Code
It’s the code and the architecture in the code that matters
Architectures is only used to influence code
Measure and

Software Architecture
The software architecture are those
that are
hard to change
Martin Fowler
Elements & Structure
Which Level? Enterprise, individual project ...
Examples for an individual project
Classes, objects
Deployment units
External systems
Rather general definition
Architecture and Code are just a chess pieces
The Goal is
Business Value
You can't read or review all the written code
No big or complex parts
...because they make the system hard
to understand
No cyclic dependencies
...because they make two parts
in fact one
How Can Architecture Be Expressed?
Forward Engineering
Define possible parts
Define possible relations
Create skeleton for application from them

Add code

Model-driven approach
Parts e.g. Entites and Services
Relations e.g.
Services may user Entities
Shopping Cart
adesso & Model-driven
Applied e.g. in industry project
Research (e.g. Bizware)
Just Code?
Reverse Engineering
Restructure 101
Allows analysis and restructuring of architecture of an existing project
Often architecture / structure is not even measured
Won JAX innovation award 2012
Game changer
adesso has a close relationship with vendor
e.g. beta tester for Structure 101 Studio
Example: Badly structured Open Source project
Agile Development i.e. Scrum
Creates stories
Scrum Master
Removes obstacles
Enforces rules
Implements stories
Where is the Architect?
Buildings are physical entities
Hard to change

Construction industry is established
…and has a long history

Buildings can be fully specified
Software can’t (see Agility)

Clear separation: Architect vs. construction worker
Common for a Software Architect to be a former developer
…or even doing some coding
Is “Architecture” a Good Metaphor?
Different Way to Think About Roles
Architect as a Master Craftsman
More experienced
Knows the tools very well
Guides and helps others
Incorporates feedback
Improves the craft
Agility and the Architect
Need to convince
Therefore: Not that different from a developer
More experienced
More knowledge
Software Craftsmanship Manifesto (2009)
As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:

Not only working software,
but also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships
And What is an Architect?
adesso Architect Training
Internal at adesso
Part of adessos broad range of internal trainings
Significant effort over a year
Software Architect
Software architect is a general term
with many accepted definitions
which refers to a broad range of roles.
sponsoring Software Craftsmanship and Testing Camp (SoCraTes) 2012 & 2013
Practicing pragamtic programming
More at adesso
Architecture & Technology Manager at adesso
Blog: http://ewolff.com
Twitter: @ewolff
About me
Will work on code
But knows the bigger picture of the project
Education and work on the project at hand
Coaching on the job
Assure practices are actually applied
Architecture Katas
Ein Nutzer kann sich anmelden und kann sein eigenes Auto vermieten
Auto und freie Zeiten können registriert werden
Mieter müssen eine Kreditkarte als Sicherheit hinterlegen
Mieter können Autor mieten
Abhängig vom Erfolg am Markt kann es notwendig sein, neue Features schnell zu implementieren
Autoverleih virtuell
Beschreibung: Ein Internet Startup verleiht Dein Auto für Dich
Benutzerkreis: wenn alles gut geht – Millionen?
Full transcript