Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

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.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Software Architecture in Real Life

Presentation I gave for students at TU Braunschweig.
by

Eberhard Wolff

on 21 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Software Architecture in Real Life

Why We Care
Software
Architecture
Structures
Software elements
Relations
Properties
Performance
Availability
Productivity
Maintainability
Security
Operations
Defines
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
Complexity
Historized i.e. easy to spot trends
Standard tool at adesso
Software Architecture
The software architecture of a system
is the set of
structures
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
Reduce

Software Architecture
The software architecture are those
decisions
that are
hard to change
Martin Fowler
Elements & Structure
Which Level? Enterprise, individual project ...
Examples for an individual project
Methods
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
Model
Parts e.g. Entites and Services
Relations e.g.
Services may user Entities
<<Entity>>
Customer
<<Service>>
Order
<<Entity>>
Shopping Cart
coding
adesso & Model-driven
Applied e.g. in industry project
Research (e.g. Bizware)
Alternatives?
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
Product
Owner
Creates stories
Stories
Scrum Master
Removes obstacles
Enforces rules
Team
Self-organizing
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
1999
2001
Architect as a Master Craftsman
More experienced
Knows the tools very well
Guides and helps others
Incorporates feedback
Improves the craft
Quality
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
Pragmatic
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
Speaker
Author
Blog: http://ewolff.com
Twitter: @ewolff
http://slideshare.com/ewolff
http://prezi.com/user/ewolff
About me
Will work on code
But knows the bigger picture of the project
Education and work on the project at hand
Masterpiece
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