alle aktuellen Zeitschriften des Heise Verlages

ausgewählte Fachbücher, eBooks und digitale Magazine

ab 15€ oder für Heise-Abonnenten versandkostenfrei

Warenkorb Ihr Warenkorb ist noch leer.

iX Developer Bessere Software 3/2013

Zeitschrift

Bewerten Sie dieses Produkt als Erster

> Als eMagazin für 8,99 €* kaufen

Highlights dieser Ausgabe:

  • Bessere Software
  • Einfache Tool-Integration
  • Zeitgemäße Builds
  • wichtige Testarten
  • Dokumentation
  • Qualitätssicherung
Lieferung: 1-4 Tage

Anbieter:  Heise Zeitschriften Verlag
Sprache: Deutsch
EAN: 4018837001356
Veröffentlicht: 21.06.2013

Softwarequalität

Softwarequalität ist vielschichtig, erst recht bei Betrachtung über den kompletten Lebenszyklus. Sie lässt sich nur mit einem ganzheitlichen Ansatz optimieren. Wichtig sind hier die geeignete Auswahl von Maßnahmen, eine offene Herangehensweise und eine veränderte Mentalität. Am besten gelingt das durch die gemeinsame Ausrichtung von Zielen, Prozessen und Werkzeugen.


Lifecycle-Tools

Mit neuen Werkzeugen wie Git, Gerrit und Gradle, aber auch mit zeitgemäßen Techniken zur Tool-Integration erfährt Application Lifecycle Management einen neuen entwicklerzentrierten Anstrich, durch den das bislang meist als schwergewichtig erachtete ALM endlich auch Unterstützung durch die maßgeblich in die Softwareentwicklung involvierten Akteure erhält.

Continuous Delivery

Build-Management und Continuous Integration wurden unlängst um neue Ideen ergänzt, die unter dem Namen Continuous Delivery zusammengefasst werden. Zusätzlich trifft man nun vermehrt auf Begriffe wie Deployment Pipeline und DevOps. Alle haben das Ziel, schnellere und bessere Releases zu ermöglichen.


Test

Neben den weitverbreiteten Unit-Tests gibt es eine Reihe weiterer Testgattungen, die zunehmend an Verbreitung gewinnen. Sie einzusetzen ist die eine Sache, wichtiger hingegen ist die dahinterstehende Testidee oder gar die richtige Mischung von beispielsweise Unit-, Regressions-, Akzeptanz- und Fuzzing-Tests.

  • Softwarequalität

    • Agile ALM
      Softwarequalität über den gesamten Anwendungslebenszyklus
    • Softwarearchitektur
      Die Sicht des Architekten auf Softwarequalität in Unternehmen
    • Quality Engineering
      Erfahrungen zur Qualitätssicherung aus einem aktuellen Projekt


    Anforderungen und Dokumentation

    • Best Practices
      Vorgehen und technische Hilfsmittel beim Dokumentieren von Softwareprojekten
    • Requirements Engineering
      Die Zusammensetzung guter Anforderungen
    • Projektrisiken
      Nachdokumentation in agilen Projekten

    Lifecycle

    • Release-Management
      Status quo der Versionskontrolle
      Mehr als nur Versionsverwaltung – Qualität mit Git
      Typische SCM-Szenarien großer Projekte mit festem Release-Takt
      Git, Mercurial und Bazaar im Vergleich
      Zeitgemäßes Build-Management mit Gradle
    • Software-Checks
      Qualitätsmanagement mit Code-Reviews
    • Toolchain
      Werkzeugintegration und Datenaustausch über Unternehmensgrenzen hinweg
    • OSLC
      Offener Standard für die Tool-Integration

    Continuous Delivery

    • Deployments
      Von Continuous Integration zu Continuous Delivery
    • Branch-Verwaltung
      Continuous Delivery mit dem FeatureToggle Pattern
    • Database Change Management
      Kontinuierliche Datenbankmigration mit Liquibase und Flyway
    • DevOps
      Kooperation für eine förderliche IT-Kultur
      Konkrete Umsetzung von DevOps und Continuous Delivery
      (Test-)Infrastruktur automatisieren mit Vagrant und Puppet

Testing

  • Test-Driven Development
    Funktionsweise und Zusatznutzen von Strict TDD
  • BDD + ATDD
    Ausgewogene Qualitätssicherung mit aufeinander abgestimmten Testgattungen
  • Testfälle
    Fuzzing zur Generierung von Eingabedaten für Testfälle
  • Test-Paradigma
    Stabile Software durch Design for Testability
  • Akzeptanztests
    Maschinelle Regressionstests in Unternehmensanwendungen
  • Schutzbedarfsstellung
    Wie BSI-Anforderungen zur sinnvollen Ressourcenzuteilung führen

Diverses

  • Testintegration
    Wie Agilität und Prozessreifegrad-Modelle zusammenpassen

  • Vorsorge
    Strategien und Techniken zur Fehlerprävention
  • Recht
    Pflichten im Zuge einer Softwareauslieferung
  • Technical Debt
    Softwarequalität und technische Schulden
  • Standards
    Wie man Quellcode-Mängel messen kann
  • Cloud Computing
    Die etwas andere Entwicklung eines Cloud-Service
  • Globale Team-Entwicklung
    Weltweit verteilte Entwicklung von Open-Source-Software
  • Prozessumstellung
    Einführung agiler Prozesse bei der Antivirus-Software Avira
  • Softwarearchitektur
    Ein Ordnungssystem für den Softwareentwurf

Sonstiges

  • Editorial
  • DVD-Inhalt
  • Inserentenverzeichnis
  • Impressum

Neue Dreifaltigkeit


„Rückruf von UMTS-Handys, Softwarefehler kann Daten löschen.“ Oder: Ein Automobilhersteller „ruft weltweit etwa 2,5 Millionen Autos in die Werkstätten zurück. Der Grund ist ein Softwareproblem, das zu Schäden am Automatikgetriebe führen kann“. – Das sind zwei reale Beispiele aus einem Artikel dieses Sonderhefts zur Softwarequalität. Ist es so weit gekommen, sind offensichtlich Fehler übersehen worden, die im Nachgang hohe Kosten verursachen. Wie diese Softwarefehler zustande gekommen sind oder was die verantwortlichen Entwickler übersehen haben, spielt hier erst mal keine Rolle. Es ist aber zu vermuten, dass die Schäden vermeidbar gewesen wären.


Vielleicht sind die obigen Warnmeldungen der Tatsache geschuldet, dass sich die Anwendungsentwicklung, zuerst beeinflusst durch das Web 2.0, dann durch die App-Entwicklung für mobile Geräte und neuerdings die Cloud, zunehmend verändert hat. Und zwar von einer als starren Einheit gesehenen Softwareentwicklung zu einer sich stetig verändernden Instanz, die von häufigen Releases mit kurzen Intervallen und Sprints durchsetzt ist. So gut diese Veränderung im Sinne der Wettbewerbsfähigkeit sein mag, birgt sie auch Risiken hinsichtlich der Qualität von Software.


Hier kommen die zentralen Schlagwörter dieses Sonderhefts ins Spiel: Das Dreigestirn aus Agile ALM, Continuous Delivery und DevOps ist in jüngster Zeit ins Zentrum des Interesses vieler Softwareentwickler gerückt. Von den damit verbundenen agilen Tools und Prozessen versprechen sich Programmierer, aber auch Administratoren, die Wünsche ihrer Kunden schneller als bisher und trotzdem qualitativ hochwertig bedienen zu können. Sie implizieren Vorgehen, die näher an der Entwicklerpraxis als das klassische schwergewichtige Application Lifecycle Management sind. Das macht sie so attraktiv, wie ich als Ausrichter der Continuous Lifecycle 2013 anhand der großen Zahl an Einreichungen von Vorträgen und der Flut an Mails von am Thema der Konferenz Interessierten feststellen konnte. Denn die Mitte November stattfindende Veranstaltung wird sich genau mit diesen drei Schlagwörtern auseinandersetzen.

Insbesondere Continuous Delivery führt die bislang aufwendigen und langsamen Build-, Integrations-, Test- und Verifikationsprozesse zu einer schlanken und schnellen sogenannten Development Pipeline zusammen. Vereinfacht ausgedrückt soll das Vorgehen die Veröffentlichung von Software so stark automatisieren, beschleunigen und vereinfachen, dass sie häufig, ja sogar kontinuierlich erfolgen kann, ohne dadurch an Qualität zu verlieren.


Was sich so einfach anhört, hat natürlich seine Tücken in der Praxis. Deswegen möchten wir Ihnen mit diesem Heft eine Anregung bieten, Ihre Entwicklungs- und Qualitätssicherungsprozesse zu prüfen und zu überdenken sowie bei Bedarf anzupassen – im Sinne Ihrer Arbeit, Ihrer Projektbeteiligten und Ihrer Kunden.


iX und heise Developer wünschen viel Spaß bei der Lektüre dieses mittlerweile sechsten iX Developer-Sonderhefts.


ALEXANDER NEUMANN

    Visual Studio Team Foundation Server 2012 mit Update 2

    Microsofts Entwicklungsumgebung für das Application Lifecycle Development bietet Teams ein umfassendes Verwaltungstool-Paket für den gesamten Lebenszyklus von Anwendungen. Das auf der DVD bereitgestellte ISO ist eine 90-tägige Testversion.


    Außerdem:

    • Eclipse 4.2.2 Classic: das zweite Service Pack der aktuellen Version der Java-Entwicklungsumgebung

    • NetBeans 7.3: Oracles Open-Source-IDE in der umfassenden Ausgabe zur Entwicklung für Java, C/C++ und PHP

    • IntelliJ IDEA 12.1.3: JetBrains' quelloffene Community Edition der als „polyglott“ bezeichneten Entwicklungsumgebung

    • Qt Framework 5.0.2/Qt Creator 2.7.1: das C++-Framework zur plattformübergreifenden Oberflächenentwicklung samt darauf abgestimmter IDE

    Tools

    Build

    Apache Buildr, Gradle, SBT (Simple Build Tool), Apache Maven


    Continuous Integration

    CruiseControl, Eclipse Hudson, Jenkins


    Versionskontrolle

    Git, Mercurial, Bazaar, Subversion


    Perforce

    Auf der DVD findet man die Client- und Server-Komponenten, die den Kern eines Perforce-Versionsmanagements ausmachen. Der Client ist die GUI P4V. Es handelt sich um die vollständige Version der Software ohne funktionale Einschränkungen. Sie kann kostenlos auch für kommerzielle Zwecke verwendet werden, wobei sich maximal 20 Benutzer mit insgesamt 20 Workspaces einrichten lassen.


    Kleine Helfer

    Checkstyle, Findbugs, FitNesse, Gerrit, Hamcrest, Liquibase, NCrunch, PMD, Sandcastle, Sandcastle-Help-File-Builder, Vagrant

Literatur

Auszüge aus den dpunkt-Büchern:

  • Git – Dezentrale Versionsverwaltung im Team, Grundlagen und Workflows (René Preißel, Bjorn Stachmann)

  • Soft Skills für Softwaretester und Testmanager (Heinz Hellerer)

  • ATDD in der Praxis – Eine praktische Einführung in die akzeptanzgetriebene Softwareentwicklung (Markus Gärtner)

  • Testen in Scrum-Projekten – Leitfaden für Softwarequalität in der agilen Welt (Tilo Linz)

  • Abenteuer Softwarequalität – Grundlagen und Verfahren für Qualitätssicherung und Qualitätsmanagement (Kurt Schneider)


SoftwareArchitekTOUR

39 Episoden des renommierten Podcasts auf heise Developer zu Themen wie:


  • Ausbildung zum Architekten
  • Die Rolle des Softwarearchitekten
  • Webarchitekturen
  • Product Line Engineering
  • Cloud Computing
  • Systems Engineering
  • Systematischer Einsatz von Designtaktiken
  • Testing
  • Funktionale Programmierung
  • Architektur-Reviews
  • Architekturdokumentation
  • Serviceorientierte Architekturen
  • Modellgetriebene Softwareentwicklung
  • Patterns
  • Entwicklung für Embedded-Systeme mit mbeddr
  • Barrierefreiheit
  • ROCA (Resource-Oriented Client Architecture)
  • Leichtgewichtige Webapplikationen (für Mobile)
  • Business Process Management
  • NoSQL
Um bewerten zu können, melden Sie sich bitte an