Blog und Veröffentlichungen

Möglichkeiten für Entwickler ihr Mindset zu schärfen
Oft ist Softwareentwicklung im Alltag mehr Routine, als sich das so mancher bei der Berufswahl vorgestellt hat. Aber um die eigenen Skills up to date zuhalten gibt es einige Möglichkeiten, wie unser Mitarbeiter Markus Alvermann in diesem Blogpost verrät.
Testautomation mit Windows Application Driver Teil 3 - Weiterführende Aspekte
Dieser Teil schließt den Artikel zu WinAppDriver ab und stellt noch einige weitergehende Aspekte des Automationstools heraus.
Testautomation mit Windows Application Driver Teil 2 - Testdesign und -ausführung
Nachdem in Teil 1 die notwendigen Vorbereitungen getroffen wurden, zeige ich nun, wie GUI-Tests mittels WinAppDriver durchgeführt werden. Dabei sind minimal die folgenden Schritte notwendig:
Testautomation mit Windows Application Driver Teil 1 - Einleitung/Vorbereitung
Für GUI-Tests von Webanwendungen hat sich Selenium WebDriver in der Entwicklerwelt etabliert. Für das Testen von Apps steht das Automations-Framework Appium zur Verfügung. Microsoft hat nun nachgezogen und seine eigene Variante eines Automationsservers entwickelt: den Windows Application Driver (WinAppDriver).
eBook Applied Modularity now complete! Das eBook von Dr. Reik Oberrath
Das eBook "Applied Modularity - Do we  really need OSGi, Micro Services and the Java Modul System" von Herrn Dr. Reik Oberrath wurde im Dezember 2018 fertiggestellt und  bei Leanpub veröffentlicht.
IKS entwickelt für Yareto Deutschlands erstes Vergleichsportal für den Kfz-Handel
Yareto ist Deutschlands erstes Vergleichsportal für den Kfz-Handel. Über das Yareto-Vergleichsportal finden Kfz-Händler tagesaktuell die besten Finanzierungsangebote des Marktes und können so von einer großen Zahl von Finanzierungspartnern das beste Angebot auswählen.
Smarte Datenbanken - Teil 3
Anwendung des trainierten neuronalen Netzes Das in Teil 2 des Artikels erzeugte Modell setze ich in diesem Teil in SQL Server ein, um Diagnosen über neue Tumorbiopsie-Daten zu erhalten.
Smarte Datenbanken - Teil 2
Nachdem in Teil 1 die notwendige technische Umgebung aufgebaut wurde, zeige ich nun, wie ein neuronales Netz erzeugt, trainiert und bewertet wird.
Smarte Datenbanken - Teil 1
Das Thema Künstliche Intelligenz ist zurzeit dermaßen spannend, dass Spiegel Online ihm sogar eine eigene Rubrik widmet. Insbesondere im Bereich Maschinelles Lernen (ML) feiern namhafte Unternehmen außergewöhnliche Erfolge.
Viele Wege – Ein Ziel
In den letzten Blogs zum Thema Angewandte Modularität hatte ich verschiedene Implementierungen der HOO-Fachdomäne vorgestellt, mit deren Hilfe ich unterschiedliche Modularitätsformen vorgestellt habe. In diesem letzten Blog dieser Serie möchte ich diese abschließend vergleichen.
Choreographie versus Orchestrierung
Im vorletzten Blog hatte ich drei Modularitätsformen (mit jeweils einer Implementierung der HOO-Fachdomäne) vorgestellt, die es nicht erlauben wechselseitige und zyklische Abhängigkeiten zu verwenden (Verteilter Monolith, OSGi und Java9Modules).
Modularität in Java ohne Frameworks
Im vorigen Blog zur Serie „Angewandte Modularität“ hatte ich drei HOO-Implementierungen vorgestellt, nämlich die des verteilten Monolithen, die OSGi-Implementierung und die Java9Modules-Version. In diesem Blog möchte ich zwei weitere Implementierungen vorstellen, die auch wieder die HOO-Fachdomäne nutzen.
Zwei Java Frameworks für Modularität
In dem letzten Blog zur Serie „Angewandte Modularität“ hatte ich die Fachdomäne HOO (kurz für HOroscope Online) vorgestellt, an deren Beispiel ich verschiedene Modularitätsansätze vergleichen möchte.
Der HOO-Service als Beispieldomäne
In diesem vierten Blog zur Serie „Angewandte Modularität“ geht es lediglich darum eine Fachdomäne vorzustellen, die in den folgenden Blogs benutzt wird, um verschiedene Arten von Modularität in Form von konkreten Implementierungen vorzustellen.
Wie funktioniert modulare Software?
Dies ist der dritte Blog zum Thema “Angewandte Modularität” und vorerst letzte mit theoretischem Inhalt.
Warum modular und wann besser nicht?
Dies ist der zweite Blog zum Thema “Angewandte Modularität”. Der erste Blog machte deutlich, was Modularität in der Softwareentwicklung bedeutet.
Was ist Modularität?
Was ist Modularität? Dieser Blog ist der erste einer Serie zum Thema “Angewandte Modularität“. Die ersten drei Blogs dieser Serie haben zwar theoretischen Charakter, bereiten aber mehrere Blogs vor, in denen Modularität in sehr praktischer Form (u.a. OSGi, Micro-Services, Modulkonzept von Java 9) vorgestellt wird.
Im Mittelpunkt steht die Fachlichkeit
An der Entstehung und auch Pflege von Software sind viele unterschiedliche Personen mit unterschiedlichen Rollen und vor allem unterschiedlichen Sichten auf die Software und deren Fachlichkeit beteiligt.
Taktisches Design
Das strategische Design liefert die Struktur des Lösungsraums und damit des Softwaresystems und ist Grundlage für das weitere Softwaredesign.
Strategic Design – Stabile Software durch gute Beziehungen
In den letzten Artikeln wurde festgestellt, wie wichtig ein Domänenmodell und eine domänenbezogene Teamsprache für die Erstellung langlebiger und stabiler Software sind.
Die ubiquitäre Sprache – Der rote Faden im Softwaresystem
„To create a supple, knowledge-rich design calls for a versatile, shared team language“ schreibt Eric Evans. Um Software gut zu designen, braucht das Team eine gemeinsame sprachliche Basis.
Das Domänenmodell – Dreh- und Angelpunkt der Entwicklung
Die Erstellung eines lebendigen, mitwachsenden Domänenmodells steht im Zentrum des Domain Driven Design.
Domain Driven Design – Was ist das und warum macht man das?
In der Blogserie über Microservice-Architekturen wurde das Thema Domain Driven Design angesprochen, um natürliche Grenzen für Microservices zu finden.
IKS entwickelt für die Bank11 POS-Lösung "Victor 3.0"
Bank11 ist ein auf die Absatzfinanzierung spezialisiertes Kreditinstitut. Sie unterstützt den mittelständischen Kfz-Handel durch wettbewerbsfähige Mobilitäts- und Versicherungsangebote. Das bedeutet für den Kfz-Händler, dass er seinen Kunden einfache und günstig kalkulierte Finanzierungsprodukte anbieten kann.
Ja oder nein? Entscheidungshilfen pro und contra Microservices
Microservices helfen, schnell auf neue Anforderungen zu reagieren. Zum einen, weil die Software strukturell modular aufgebaut ist und die einzelnen Microservices unabhängig voneinander deployed werden können.
Testverfahren für Microservices
End-to-End-Tests End-To-End-Tests sind Tests, welche das System als Gesamtheit testen. Für den Test von monolithischen Systemen wird die Form des Tests häufig eingesetzt, um die Funktionalität des Systems zu testen.
Microservices aus Sicht des Teams und der Organisation
Die Modularität der Microservices und insbesondere die Möglichkeit des unabhängigen Deployments der Microservicesin eigenen Lightweight Containern eröffnen neue Chancen im Entwicklungsprozess:
Microservices aus Sicht der Software- und Facharchitektur
Die größte Herausforderung beim Einsatz von Microservices ist es, den richtigen Zuschnitt der Services zu finden. Services müssen kohärent sein.
Microservices aus Sicht der Technologie
Auswirkungen auf den Technologie-Stack für die Softwareentwicklung Enterprise Service Bus (ESB) ist einer der zentralen Umsetzungsstrategien für SOA.
Was ist eine Microservice-Architektur?
Die Erkenntnis ist nicht neu, dass weder die fachlichen Anforderungen an eine langlebiges System, noch dessen Architektur statisch oder gar vorhersagbar sind. Neue fachliche oder technologische Anforderungen beeinflussen im Laufe der Zeit die Architektur.
Acceptance Test Driven Development
Im vorherigen Beitrag erfuhren wir, welche Schwierigkeiten bei der Formulierung von Anforderungen auftreten und lernten ein paar einfache Regeln kennen, um zu einer sprachlich und somit auch inhaltlich verständlichen Spezifikation zu gelangen.
MOGLi Code Creator - Open-Source-Projekt
Der MOGLi Code Creator ist ein Open-Source-Projekt der IKS. MOGLiCC ist ein leichtgewichtiges Codegenerierungs-Tool!
Wie muss eine „gute“ Dokumentation formuliert werden?
In diesem Beitrag möchte ich zunächst näher auf das Formulieren von Anforderungen eingehen. Wir setzen die Serie der Fallen fort mit „Falle 5“.
Falle 2: Faule Kompromisse und Falle 3: Designfehler bei Geschäftsmodellen
Im 2. Artikel meiner Reihe stelle ich Falle 2: Faule Kompromisse sowie Falle 3: Designfehler bei Geschäftsmodellen vor. Thematisch passt der Aspekt der „Mehrdeutigkeiten in Anforderungsdokumenten” gut den Kontext der beiden „Fallen”, sodass ich auch dieses Thema in diesem Artikel aufgreife.
Sieben Fallen, die der Requirements Engineer kennen und meiden sollte
In den kommenden Artikeln möchte ich sieben Fallen vorstellen, die ein Requirements Engineer (RE) kennen und vor allem meiden sollte.
Betrachtung des Standards
Als Abschluss der kleinen Reihe über Batchverarbeitung in JEE7 wird in diesem Teil ein Blick auf  die Implementierungen des Standards geworfen.
Partitionierung
Ein weiteres Konzept der Ablaufsteuerung (siehe auch Ablaufsteuerung eines Jobs, Batchverarbeitung in JEE7 – Teil 4 ) heißt Partitionierung.
Ablaufsteuerung eines Jobs
Die Konfiguration eines Jobs (siehe Batchverarbeitung in JEE7 - Teil 3) zeigt, wie ein Job konfiguriert wird. Damit sind einfache Jobs zu konfigurieren.
Beschreibungssprache für Jobs (JSL)
In Batchverarbeitung in JEE7 – Teil 1: Konzepte wurden die Konzepte der Batchverarbeitung vorgestellt. In diesem Teil wird vorgestellt, wie ein Job konfiguriert wird.
Batchlaufzeitumgebung
Das Konzept der Verarbeitungskontexte ist der Schlüssel zum Verständnis der Batchverarbeitung in JEE7.
Hardware Skins für virtuelle Mobilgeräte
Apps für Mobilgeräte werden – wie andere Software auch – auf Desktop-Rechnern entwickelt.
Konzepte
Batchanwendungen fristen im Java-Biotop ein stiefmütterliches Dasein.
JavaScript MVC Franeworks - Teil 4
KnockoutJS
KnockoutJS Im vierten und letzten Teil dieser kleinen Artikelserie betrachten wir KnockoutJS. Ebenfalls wie AngularJS und EmberJS wird es oft als Basis für Single Page Applications empfohlen, beispielsweise im Thoughtworks Technology Radar.
Android und CyanogenMod im Eigenbau - Teil 2
Erstellen Sie Ihre eigene Android-Variante – Anpassung des Installationspakets
Das in Teil 1 erstellte Installationspaket entspricht exakt dem, was das CyanogenMod (CM) Team ausliefert. Hier zeige ich, wie Sie den Build an eigene Wünsche anpassen können.
JavaScript MVC Frameworks - Teil 3
EmberJS
Im letzten Teil des Artikels habe ich ein wenig über die Konzepte und die Umsetzung unserer Beispielapplikation mithilfe von AngularJS erzählt. In diesem Teil möchte ich nun mein Augenmerk auf EmberJS legen.
Android und CyanogenMod im Eigenbau - Teil 1
Erstellen Sie Ihre eigene Android-Variante – Aufbau der Entwicklungsumgebung
Sie wollen die volle Kontrolle über Ihr Android-Mobilgerät? Dann erstellen Sie das Betriebssystem doch aus dem frei verfügbaren Quellcode.
JavaScript MVC Frameworks - Teil 2
AngularJS
Wie im letzten Artikel besprochen, starte ich den kleinen Streifzug durch die Single-Application-Framework-Landschaft mit einem Blick auf AngularJS:
JavaScript MVC Frameworks - Teil 1
JavaScript MVC Frameworks – Ein Vergleich
Der Begriff Single Page Application (SPA)  ist momentan in aller Munde.Viele moderne Webapplikationen verfügen über diesen “Wow”-Effekt und bedienen sich fast besser als ihre Desktop Pendants.
Datenschutz mit CyanogenMod - Teil 3
So schützen Sie Ihr Smartphone vor Datenklau: Apps
Das konfigurierte aber noch sehr karg ausgestattete Smartphone aus Teil 2 statte ich nun mit einigen Apps aus, die dem Datenschutz dienen bzw. diesen gewährleisten.
Softwareentwicklungsschmutz - Teil 3
Effiziente Team-Techniken gegen Softwareentwicklungsschmutz
Im 1. Artikel habe ich erläutert, was Softwareentwicklungsschmutz ist und welche Rahmenbedingungen dazu beitragen, dass er entstehen kann.
Schmutz im Code erkennen und vermeiden
Wie schon im 1. Artikel beschrieben, führt Softwareentwicklungsschmutz zu Ineffizienz und Verzögerungen im Entwickleralltag. Als Schmutz wird all das verstanden, was die Softwareentwicklung verlangsamt und die Akteure behindert.
Softwareentwicklungsschmutz - Teil 1
Oh Schreck – Schmutz in der Softwareentwicklung?!
Softwareentwicklungsschmutz? Was ist denn das? Manche haben diesen Begriff vielleicht noch nie gehört, haben aber in ihrem Entwickler-Alltag sicherlich schon mit “ihm“ zutun gehabt.
Datenschutz mit CyanogenMod - Teil 2
So schützen Sie Ihr Smartphone vor Datenklau: Konfiguration
Das in Teil 1 aufgesetzte CyanogenMod (CM) ist noch unkonfiguriert, daher werde ich im Folgenden einige sicherheitsrelevante Einstellungen vornehmen. Dabei arbeite ich mit der CM-Version 11 M9 (Android 4.4.4).
Datenschutz mit CyanogenMod - Teil 1
So schützen Sie Ihr Smartphone vor Datenklau: Installation von CyanogenMod
In dieser dreiteiligen Schritt-für-Schritt-Anleitung zeige ich, wie Sie mit dem auf Android basierenden CyanogenMod (CM), den Tools Heimdall Suite und ClockWorkMod Recovery, und einem älteren Smartphone (Samsung Galaxy S3) ein sicheres Smartphone aufsetzen.
Apps erstellen
Apps erstellen leicht gemacht – eine “Feature-Roadmap” für Mobile Apps
Bevor eine App erfolgreich am Markt platziert werden kann, sind einige Rahmenbedingungen zu beachten. Eine App-Strategie zu entwickeln erfordert Zeit, Teamgeist und eine klare Vision.
AngularJS
Hat AngularJS nach dem Release 2.0 noch eine Zukunft?
Im Oktober 2014 kündigte das AngularJS-Team auf der ng-europe-Konferenz das Release 2.0 zum Ende 2015 / Anfang 2016 an. Laut AngularJS-Team werden die anstehenden Änderungen radikal sein (z.B.: unklare Migrationspfade).