spacer

Projekt Management bei INSONO 

Project Management by INSONO

 

 

 

 

 

 

 

 

 

 

Das Qualitätsmanagement von INSONO

Das Qualitätsmanagement ist die zentrale Säule aller Produkte und Leistungen von INSONO und Ausgangspunkt aller Prozesse. Qualitätsmanagement bedeutet für uns:

  • Gelebte Prozesse
  • Verbindliche, dokumentierte Prozesse
  • Messbare Prozesse

Die stetige Auswertung von Prozess-, Projekt- und Arbeitsergebnissen dient der kontinuierlichen Verbesserung und Optimierung unserer Arbeitsweisen. Diese Kompetenz nutzen wir nicht nur für die Entwicklung eigener Produkte sondern stellen dieses Know How auch unseren Kunden in Projekten zur Verfügung. Qualitätsmanagement stützt sich bei INSONO nicht nur auf Prozessdefinitionen und Vorgehensmodelle sondern auch auf erprobte, in die Arbeitsweise eingebundene Werkzeuge. Die Softwareentwicklung wird, wie alle Prozesse bei INSONO, durch das Qualitätsmanagement gesteuert und überwacht. Neben maßgeschneiderten Vorgehensmodellen, angepasst an Projekt- und Teamgröße, dienen auch hier Werkzeuge der Ablaufoptimierung in den Projekgebieten:

  • Requirement-, Issue- und Changemanagement
  • Sourcecode-Verwaltung und Versionierung
  • Build- und Konfigurationsmangement

 Finden sie über INSONO Test Consultancy Services

Test Management
Test Lab Consultancy
Migration Management
Test Process Improvement

Test automation

 

 

 

 

Download unseres Data Sheet.

Back to Top

Prozesse

Aufgrund der in der heutigen Zeit immer komplexer werdenden Software-Entwicklung besteht ein hoher Bedarf, strukturierte Lösungsansätze einzuführen, welche den umfänglichen Softwarelifecycle komplett abdecken.

Diese Lösungsansätze werden in Form von Prozessen eingeführt welche Menschen (Rollen) und ihre Arbeit (Aufgaben) organisieren, um im Bereich der Software Entwicklung (Disziplinen) qualitativ hochwertige Arbeitsergebnisse zu erzielen.

Der Einsatz von Software-Entwicklungsprozessen bietet viele Vorteile:
  • Steigerung der Leistungsfähigkeit
  • Reproduzierbare Ergebnisse

Einschränkung von Risiken Erhöhung des Unternehmenswertes Insono besitzt die Expertise innerhalb der intern verwendeten hochmodernen Software-Entwicklungsprozesse:

  • Open Unified Process - OpenUp
  • Rational Unified Process - RUP

Beide Prozesse, OpenUP und RUP beinhalten folgende Komponenten:

  • die klare Definition von Phasen, Rollen, Artefakte und Aufgaben
  • den iterativen und inkrementellen Ansatz
  • die Einbindung des Risikomanagements
  • die Konzentration auf die SW-Architektur
  • die Fokussierung auf Qualität als wesentlicher Bestandteil des gesamten Prozesses

Während RUP ein komplexer Prozess, abgestimmt auf sehr formal strukturierte Projekte ist, wird OpenUP als Basisprozess, für Projekte eingesetzt, bei denen die agile Vorgehensweise im Vordergrund steht.

Beide Prozesse sind für jegliche Kundenprojekte anpassbar – RUP zeichnet sich dadurch aus, dass unnötiger Inhalt einfach weggelassen wird, wogegen  OpenUP um die innerhalb des Projekts oder der Organisation jeweiligen Inhalte erweitert wird.

Methoden und Vorgehensmodelle

Da komplexe Software nur schwer zu erstellen und zu warten ist, bedienen sich Softwareentwickler eines Planes zur Entwicklung von Software. Dieser Plan (das Vorgehensmodell) unterteilt den Entwicklungsprozess in überschaubare, zeitlich und inhaltlich begrenzte Phasen. Die Software wird somit Schritt für Schritt fertiggestellt. (wikipedia.de)
  
In den letzten Jahren haben sich vor allem der Rational-Unified-Process (RUP) und das V-Modell (XT) etabliert. In verschiedenen Unternehmen werden diese Modelle meist in angepasster Form eingesetzt (Tailoring). Unsere Kenntnisse und Erfahrungen mit diesen Vorgehensmodellen versetzen uns in die Lage, schnell im Kundenkontext produktiv werden zu können. Das von den Modellen propagierte iterative und/oder phasenweise Vorgehen reduziert die Projektrisiken, erhöht den Dokumentationsstand und führt damit letztendlich zu einer höheren Qualität und Zuverlässigkeit. 

Back to Top

Requirements Engineering

Um unseren Kunden die Ergebnisse liefern zu können die sie sich wünschen haben wir die Erhebung und das Management von Anforderungen als zentrale Disziplin in unsere Prozesse integriert. Dabei ist es uns wichtig jede Anforderung so früh wie möglich zu definieren und zu dokumentieren.

Unsere Erfahrung ermöglicht es uns bewusste Anforderungen genauso zu erkennen wie unbewusste, offensichtliche Funktionalitäten die als selbstverständlich vorausgesetzt wurden. Anforderungen sind die Grundlage für Projektmanagement, Risikomanagement, Änderungsmanagement sowie dem Akzeptanztest und der Qualitätssicherung. Jede Anforderung selbst muss sich einer Qualitätssicherung unterziehen. Aus diesem Grund hat sich bei INSONO ein eigener Prozess zur Erhebung und dem Management von Anforderung etabliert. Dadurch sind wir in der Lage auch in komplexen Projekten immer auf Veränderungen in den Anforderungen zu reagieren.

Die Anforderungen dienen zudem als Grundlage für das Qualitätsmanagement bei INSONO. Einsatz von Methoden wie Brainstorming, Interviews…

Back to Top

Architecture Design

Basistechnologien

Für unsere Kunden erstellen wir maßgeschneiderte Software-Lösungen. In unserem Kundenumfeld gilt dabei Java als gesetzt. Zahlreiche Frameworks und Komponenten unterstützen die Anwendungsentwicklung - geeignet eingesetzt erhöhen sie die Flexibilität und Robustheit einer Lösung und reduzieren Aufwände und damit Kosten.

Java Frameworks
Die Java 2 Enterprise Edition (Java EE)-Plattform gilt als eine der Standard-Plattformen zur Entwicklung von mehrstufigen Unternehmensanwendungen. Frameworks sind fertige und bewährte Softwarekomponenten, die in vielfältige Bereiche Ihrer Unternehmensanwendung eingebunden werden und den Softwareerstellungsprozesses in hohem Maß unterstützen.
 
Ein Framework besteht aus einem Vorgehensmodell, einer spezifischen Anwendungsarchitektur (mit entsprechenden Regeln für das Anwendungsdesign) und der Implementierung. Die zugehörige Klassenbibliothek bildet die Plattform für die Realisierung einer Anwendung nach den Regeln des Frameworks.
 
Neben kommerziellen Produkten existieren eine ganze Reihe von freien Open-Source Frameworks, die in den unterschiedlichsten Szenarien einer Unternehmensanwendung zum Einsatz kommen können. Anhand Spring und Hibernate, zwei der derzeit populärsten Framworks, soll nachfolgend deutlich gemacht werden, in welchem Kontext Frameworks einsetzbar sind und welchen Nutzen sie haben.
 
Das Spring-Framework kann als eine der Basistechnologien bei der Entwicklung von objektorientierten Anwendungen verstanden werden. Das grundsätzliche Ziel des Spring-Frameworks besteht darin, möglichst umfassende Werkzeuge zur Entwicklung von strukturierten Anwendungen mit einfachen Java-Objekten (POJOs) bereitzustellen. POJOs repräsentieren die Applikationslogik und enthalten keine quer-schneidenden (d.h. nicht der Business Logik zugehörigen) Funktionalitäten. Dies hat den Vorteil, dass sich gut strukturierte Softwarelösungen entwickeln lassen, die an Veränderungen der Umwelt leicht anpassbar sind. Spring bietet hierfür zahlreiche vorgefertigte Lösungen, die zur Umsetzung eines solchen Konzepts beitragen. Die Unterstützung lässt sich in die folgenden drei Bereiche unterteilen:
  • Vereinfachte Abstraktionen für vorhandene Java-Programmierschnittstellen
  • Einfache Konfiguration von Objektnetzen durch Dependeny Injection
  • Aspektorierte Programmierung

Hibernate ist ein Framework zur Abbildung von Daten objektorientierter Anwendungen in relationale Datenbanksysteme und gilt als der Standard bei Persistenz-Technologien. Hibernate sorgt für eine Automatisierung dieser Abbildung, so dass das Mapping der relationalen und objektorientierten Welt für den Entwickler transparent gemacht wird. Persistente Daten stehen somit direkt in den entsprechenden Objekten zur Verfügung. Durch das Wegfallen der JDBC-Schicht kann die Entwicklungszeit der Anwendung deutlich reduziert und die Struktur der Softwarelösung erheblich verbessert werden. Durch die Verwendung von Frameworks kommen viel getestete und erprobte Softwarekomponenten in Ihrer Unternehmensanwendung zum Einsatz, die ständig weiterentwickelt und optimiert werden und somit die Qualität Ihrer Software erhöhen. Wir besitzen das nötige Know-How, um geeignete Frameworks für Ihre Unternehmensanwendung zu analysieren und in Ihre Applikation zu integrieren. Durch unsere Exptertise im Framework-Bereich läßt sich die Dauer des Softwareentwicklungsprozesses erheblich reduzieren. Gleichzeitig wird die Qualität Ihrer Software durch den Einsatz von erprobten und Standard-Frameworks erhöht.

Back to Top

Methoden

Die Effektivität von Software Entwicklung kann durch die Nutzung von bewährten Methoden verbessert werden. Diese Methoden werden in unterschiedlichen Bereichen der Software Entwicklung genutzt. Ihre Verwendung ist unabhängig vom jeweiligen Entwicklungsprozess. Insono uses the following methods and to improve effectiveness:

  • Use case based requirements management (OpenUP and RUP templates)
  • Object Oriented Analysis and Design
  • Visual Modeling with UML (Enterprise Architect)
  • Object Oriented Programming (Java, Java EE, .NET)
  • Automated builds and tests (Ant, Maven, Sitewalker, DB Unit,HTML Unit)
  • Continuous Integration (Cruise Control, Continuum)

Insono setzt folgende Methoden zur Effektivitätssteigerung ein:

  • Use case based requirements management (OpenUP and RUP templates)
  • Objekt-Orientierte Analyse und Design
  • Visual Modeling mit UML (z.B. Enterprise Architect)
  • Objekt-Orientierte Programmierung (Java, Java EE, .NET)
  • Automatische Builds und Tests (Ant, Maven, Sitewalker, xUnit, TestNG)
  • Continuous Integration (Cruise Control, Continuum)

Bereits eingesetzte Methoden werden permanent weiterentwickelt, neue Methoden werden evaluiert, um den individuellen Anforderungen unserer Kunden besser gerecht werden. Zum Beispiel erweitern wir Anforderungsmanagement-Techniken um Konzepten und Methoden, die den Umgang mit fehlenden oder ungenauen Vorgaben behandeln. Wir verbessern damit nicht nur die Handhabung, sondern fördern auch eine einheitliche Vorgehensweise und Erwartungshaltung bei der Bearbeitung von Anforderungen, die nicht in bestehende Anforderungsmanagement-Ansätze passen.

Entwicklungswerkzeuge

Moderne und integrierte Entwicklungswerkzeuge tragen wesentlich zu einer beschleunigten Zielerreichung und besseren Ergebnissen bei. Ihre Funktionen versetzen uns in die Lage, die oben genannten Methoden in der Alltagspraxis effizient einzusetzen. Zum Beispiel die eleganten Fehler Refactoring-Möglichkeiten von Eclipse oder das Forward- und Reverse-Engineering zwischen UML-Modellen und Java-Komponenten mittels Enterprise Architect.
 
Dazu zählen insbesondere die profunde Kenntnis wichtiger Werkzeuge und der geübte Umgang mit ihnen. Zum Beispiel: 
  • Entwicklungsumgebungen: Eclipse, Enterprise Architect, XML Spy und JDeveloper, TOAD
  • Version Control Systeme: Perforce, CVS, subversion oder PVCS.
  • Buildmanagement-Tools: ant, maven, Cruise Control oder Continous

Back to Top

Codierung and Units Testing

INSONO verwendet bewährte Programmier- und Test-Techniken um bei der Codierung, den Tests und der Qualität ihrer Produkte einen hohen Wirkungsgrad zu erzielen.

Effizienz und Qualität werden erreicht durch:

  • Objekt-Orientierte Programmierung
  • Nutzung von stabilen und bekannten Libraries und Frameworks
  • Verwendung von State-of-the-Art Werkzeugen
  • Automatisierung des Entwicklungsprozesses

Die Objekt-Orientierte Programmierung ist ein Paradigma, welches die Programmierung von komplexen Systemen vereinfacht und deren Design und Modellierung beschleunigt. Insbesondere führt diese Methodik zu einer besseren Modularisierung und einer einfacheren Testausführung. Aus diesem Grund entwickeln wir unsere Software-Systeme vorzugsweise in der Programmiersprache Java, die von Grund auf objekt-orientiert konzipiert und in Unternehmen weit verbreitet ist.

Um hohe Qualitätsstandards in einem kürzeren time-to-market erreichen zu können, benutzten wir best practices Libraries, Frameworks und Plattformen. Diese sind:

  • Spring
  • Java EE
  • ORM Werkzeuge (Hibernate/JPA)
  • und viele weitere Lösungen, jeweils abhängig vom Bedarf

Die Qualität eines Produkts ergibt sich aus der Qualität der hierfür verwendeten Werkzeuge. Um den Entwicklungsprozess zu modernisieren,  verwenden wir hoch entwickelte Werkzeuge, sowohl kommerziell als auch open-source:

  • Entwicklungsumgebung: Eclipse, NetBeans
  • Source Control Systeme: Subversion, Perforce
  • Fehlertracking: JIRA

Manuelle, sich wiederholende Aufgaben führen zu Zeitverlust und potentiellen Fehlern. Die Automatisierung ist der Kern von Code-Entwicklung und Testdurchführung. In unserem Entwicklungsprozess verwenden wir folgende Werkzeuge:

  • für automatisierte Builds: Maven, Ant
  • für automatisierte Tests: JUnit, Sitewalker, DbUnit, HtmlUnit, Selenium
  • für die automatisierte, kontinuierliche Integration: Cruise Control, Continuum
  • für automatisierte Code-Erfassungsanalysen: Clover, Cobertura

Hoch automatisierte Programmier und Testverfahren steigern die Effizienz und Qualität unsere Softwareentwicklungsprozesses, verringern Entwicklungskosten und den time-to-market Faktor.

Back to Top

Quality Assurance
Test – Validierung und Verifizierung

Unsere Dienstleistungen im Testumfeld stellen sicher, dass die erstellten Arbeitsprodukte sowohl den fachlichen, als auch den technischen Anforderungen entsprechen und genügen. Hier deckt unsere Kompetenz die folgenden Gebiete ab:

Test automation

 

 

 

 

 

Download unseres Data Sheet

Test Automation Services
Regression Testing
Performance Testing
Functional Testing Services
End-to-End Testing
System Integration Testing
User Acceptance Testing
Specialised Testing Services
Internationaization Testing
Data Migration Testing
Security Testing

Performance Testing
Load Testing
Request/ Response Behaviour

Back to Top

footer
© INSONO Consulting GmbH 2009 · Impressum