Angebot

Das Institut für Software unterstützt Sie bei allen Themen und Fragestellungen rund um die Softwareentwicklung. 

Dazu gehört ein breites Weiterbildungsangebot, das wir auch individuell auf Ihre Bedürfnisse abstimmen können. Gekrönt wird dieses Angebot von unserem seit Jahren erfolgreichen Nachdiplomstudium Software Engineering. Einen Einblick in pragmatische Arbeitstechniken und neue Technologien bieten Ihnen unsere regelmässig stattfindenen Briefings. Für das Erlernen und Üben stehen Ihnen unsere Kurse und Workshops offen. Wir setzen dabei vorwiegend auf Themen mit langer "Halbwertszeit", bei denen das Erlernte nicht durch die nächste Version eines Werkzeugs obsolet wird.

Direkt auf Ihre Softwareprojekte und Fragestellungen können wir im Rahmen von Assessments, Beratungen, Coachings und Projektbegleitungen eingehen. Damit wir unsere praktischen Erfahrungen aktuell halten und uns kontinuierlich verbessern, entwickeln wir auch selbst Software im Auftrag.

Beratung

  • Software (Projekt-) Assessments und Reviews
  • Spezifikationen und Modellierung
  • Projektbegleitung und Coaching
  • Einführung moderner Software Engineering Verfahren
  • Software Health Check

Reviews

Sie suchen einen kompetenten Parter für ein Review von Code, Design, Software-Architektur oder User Interface Ihrer Software?

Wir haben langjährige Erfahrung im Assessment von Software Systemen für Weltfirmen und weltweit eingesetzte Produkte, aber auch lokale Schweizer Unternehmen und die öffentliche Hand gehören zu unseren Kunden, für die wir Reviews und Assessments durchgeführt haben.

Bei unseren Software Reviews schauen wir "unter die Haube" und gehen technischen Detailproblemen auf den Grund. Aber auch den Blick für das Ganze, wie die Systemarchitektur oder die Benutzbarkeit verlieren wir dabei nicht aus den Augen. Speziell die langfristige Wartbarkeit und Ausbaubarkeit können wir auf Grund unserer Pionierarbeit im Bereich Software Architektur-Patterns (SD Productivity Award 1996) bestens beurteilen.

Da wir selbst Software hoher Qualität entwickeln, wissen wir aus der Anwendung wie aktuelle Technologien korrekt eingesetzt werden. Die langjährige Erfahrung mit existierenden Software Systemen erlaubt es uns auch "legacy" Technologien, wie (embedded) C, seriös zu beurteilen. Speziell für C++ und C haben wir eigene Werkzeuge entwickelt, die die Code-Analyse unterstützen, bzw. sogar Verbesserungen automatisch und interaktiv vorschlagen: Liniticator und Includator.

Als Ergebnis eines Reviews steht bei uns nicht nur eine "Schulnote", sondern wir schlagen ein passendes Massnahmenpaket zur Verbesserung des Reviewobjekts vor. Unserere grosse Erfahrung in der Aus- und Weiterbildung ermöglicht es uns auch bei im Review erkannten Kompetenzlücken ein massgeschneidertes Weiterbildungsprogramm für Ihre Ingeneure vorzuschlagen. Besondere Stärken und Review-Erfahrung haben wir bei den unten aufgeführten Technologien und Programmiersprachen.

Technologien und Programmiersprachen

  • C++ (auch embedded, Mitglied im ISO Standardisierungskommittee)
  • .NET
  • Java
  • Testing
  • moderne UI Technologien und (multi-)touch Bedienkonzepte
  • Web&Mobile,
  • Datenbanken
  • Scala ( Refactoring Library Entwickler am IFS )

Software Health Check

Erfahren Sie die «Gesundheit» Ihrer Softwareprojekte. Das IFS bietet Ihnen den «Software Health Check» an.

Dabei schauen wir nicht nur auf die Oberfläche, sondern auch in die Eingeweide der Software, um so Symptome guter und verbesserungswürdiger Qualitätsaspekte zu diagnostizieren und geeignete «Therapien» vorzuschlagen bzw. durchzuführen. Die Experten des IFS untersuchen nach Ihrer Massgabe unter anderem folgende Aspekte:

  • User Experience Gestaltung, z.B. Multikanalfähigkeit
  • Architektur und Design von Code und Daten, z.B. Schichtenbildung
  • Interne Codequalität, z.B. Fehlerbehandlung
  • Engineering Methodik und Werkzeuge, z.B. automatisches Testen
  • Entwicklerqualifikation, z.B. adäquater Technologieeinsatz
  • Konkrete Verbesserungsvorschläge für Code, Design und Architektur, um Schwachstellen zu beseitigen oder die Weiterentwicklung zu ermöglichen.
  • Optimierung des Werkzeugeinsatzes, z.B., IDE, Build- und Testautomation, statische Analyse inklusive Coaching.
  • Optimierung der Entwicklungsmethodik, z.B. Agile und Usability Engineering Praktiken inklusive Unit Testing, Refactoring etc.
  •  Coaching und Weiterbildungsmassnahmen für Entwickler, um Defizite aufzuholen.