JAX 08: 20 Basic Concepts of Software Architecture

by Thomas Bahn,
assono GmbH, Standort Kiel,


A picture named M2

Markus Völter:
20 Grundkonzepte der Softwarearchitektur
(20 Basic Concepts of Software Architecture)

Concepts

  • Atomic
  • Combinable
  • Technology Neutral
  • Describable Named
  • (Patterns, Laws, Principles)


Modularize
Procedures, Classes, Components, Services, Users Stories

Encapsulate
Private Members, Frameworks, Facade Pattern, Components, Layers/Rings/Levels, Packed Data Wrapper

Contracts
Interfaces, Pre/Post Conditions, Protocol State Machines, Message Exchange Patterns, Published APIs

Handle
Crosscuts
Aspect Orientation, Interceptors, Application Servers, Exception Handling


Scaling things up

Bootstrapping
(create minimal system frist, then use it to create the rest)
Languages, Compilers (e. g. gcc), IDEs

Standard Library
(small kernel, like Linux kernel, plus standard libraries)
Lisp (Grow a language), Autosar Sys Components, Microkernel OSs

Orthogonality
Closures, Program As Data, Macros, Higher-Order Functions


Conceptualization

Formalize
Language, Contracts, Models, State Machines

Types & Instances
Programming Languages, (Hierarch.) Components, Models & Metamodels, RDBMS/XML Schemas

Spezialize
Currying, Inheritance, State Machines

Notation
UML, Lisp, Java, Ruby,

Go Meta
Translators, Reflection, Meta Programming, AOP

Translate
Compilers, Transformers, Generators, Macros (Lisp, Converge, Boo)

Interpret
Business Process Engines, Data Driven Systems, (Dynamic) Languages

Automate
Build, Test, Translate


Dos and Dont's

Protocols
Transactions, Locking/Synchronization, Resource Access

Limit Freedom
Software Architecture, DSL: expressiveness, MDSD: skeletons, Scade/SystemC

Declaration over Implementation
App Servers (EJB), Plugin RT (Eclipse), Models, Transactional Mamory

Don't Overspecify
Test semantics, not syntax (code gen), Higher Order Functions (map, foreach), Transactional Memory

Avoid Sideeffects
Functional Programming, Concurrency (Sharing), Distribution

Event Technical article JavaScript Java Other

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Do you want an individual solution? Contact us

More interesting entries

Any questions? Contact us.

If you want to know more about our offers, you can contact us at any time. There are several ways to contact us for a non-binding first consultation.

We don’t sell your data. 100% guaranteed. See: Privacy Policy
assono GmbH

Location Kiel (headquarters)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Location Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Phone numbers:
Human resources department: +49 4307 900 407
Marketing department: +49 4307 900 402

E-Mail adresses:
contact@assono.de
bewerbung@assono.de