|
Wir bieten Ihnen u.a. folgende
Entwicklungsdienstleistungen an :
Technisch-Wissenschaftliche
Software
Wir
übernehmen Entwicklungsaufträge für kleine und
große Softwareprojekte für verschiedenste
Anwendungsfelder. Unser Schwerpunkt liegt im
technisch-wissenschaftlichen Bereich. Wir entwickeln für Sie
z.B. Ablaufsteuerungs- und Auswertungssoftware für
wissenschaftliche Untersuchungen, Bedienungsoberflächen für
technische Geräte, Treiber und Steuerungssoftware für
Messinstrumente und Laborgeräte, Roboter- und
Prozesssteuerungen, Tools und vieles mehr. Seitens der
eingesetzten Programmiersprachen reicht unser Spektrum von der
Maschinen- bis zur Hochsprachenebene, wobei vorzugsweise
strukturierte und objektorientierte Programmiersprachen zum
Einsatz kommen. Das sind vor allem Pascal-Dialekte (FreePascal,
Turbo- und Borland-Pascal, Delphi, Modula), die zwar etwas aus der
Mode gekommen sind, sich aber nach wie vor hervorragend für
Projekte eignen, in denen es neben perfekter Funktionalität
auch auf Funktionssicherheit und leichte Wartbarkeit der Programme
ankommt. Weitere von uns eingesetzte Sprachen sind u.a. Java,
Smalltalk, Fortran, C/C++, Logo, Basic, Assembler, VHDL. Aufgrund
jahrzehntelanger Programmiererfahrung können unsere
Entwickler sich darüber hinaus schnell in weitere Sprachen
einarbeiten, wenn dies für Ihr Projekt erforderlich sein
sollte. In jedem Fall können Sie sich darauf verlassen,
dass wir sehr sorgfältig programmieren. Wir verwenden
bewährte und sichere Methoden und Algorithmen, entwickeln bei
Bedarf aber auch neue. Wir testen und kontrollieren sämtliche
Softwarekomponenten bis ins Detail, bevor sie an den Kunden
ausgeliefert werden (also keine „Reifung beim Endanwender“,
wie es heutzutage leider nicht selten vorkommt). Dazu liefern wir
immer eine ausführliche und leicht verständliche
Dokumentation in deutscher Sprache. Selbstverständlich wird
auch der gesamte Entwicklungsprozess intern ausführlich
dokumentiert.
Softwarepflege und
Weiterentwicklung
Dass
wir für die von uns erstellte Software die Pflege und
Weiterentwicklung anbieten, ist selbstverständlich. Aber auch
für Ihre bestehende Software, die von anderen Unternehmen
entwickelt wurde, bieten wir Ihnen diesen Service an.
Voraussetzung ist natürlich, dass Ihnen der Quelltext
vorliegt und durch dessen Veränderung keine Rechte Dritter
verletzt werden. Wir sind in der Lage, auch "uralte"
Software zu pflegen und weiterzuentwickeln. Dies gilt auch dann,
wenn die Software unter "historischen" Betriebssystemen
(z.B. MS-DOS) läuft. Wir haben in der Vergangenheit bereits
Techniken entwickelt, die es uns ermöglichen, in älteren
Systemumgebungen moderne Softwaredesigns zu implementieren. Diese
Stellen zugleich eine Grundlage dar, um ihre alte Software auf
aktuelle Betriebssysteme und aktuelle Programmiersprachen zu
migrieren, was wir Ihnen somit ebenfalls anbieten können.
Dabei wird ihr Programm nicht nur einfach übersetzt und
transscriptiert, sondern unter Berücksichtigung moderner
Methoden der Software-Entwicklung komplett überarbeitet und
durch neue Komponenten ergänzt. Aufgrund langjähriger
Erfahrung mit Generationen von Rechnersystemen (z.B. die Vorläufer
heutiger Prozessoren und PCs) können wir auch Unterstützung
für ältere Systeme anbieten, damit Sie z.B. PC-gestützte
Laborarbeitsplätze, für deren Hardware keine
Unterstützung seitens der Hersteller mehr angeboten wird,
weiter verwenden können. Somit sind Sie weiterhin in der
Lage, notfalls auch solche Arbeiten auszuführen, für die
es kein entsprechendes Equipment mehr gibt (z.B. medizinische
Untersuchungen bei Patienten, die aus bestimmten Gründen
nicht mit dem üblichen Instrumentarium behandelt werden
können). Wir können Ihnen u.a. Software-Unterstützung
für alte Rechner folgender Hersteller anbieten: Apple, Atari,
Casio, Commodore, IBM, Sharp, Sinclair. Für den Apple II /
IIe ist auch Hardware-Support möglich.
Mikroprozessor- und
Microcontroller-Programmierung
Für
den Einsatz in der Prozess-, Steuerungs- und
Automatisierungstechnik sowie in der Robotik sind Microcontroller
heutzutage unentbehrlich. Wir können für Sie die
Programmierung für ihr Projekt übernehmen. Wir arbeiten
mit allen gängigen Microcontrollern, z.B. denen von Atmel
(AVR), Microchip (PIC) und STMicroelectronics (STM), sowie auch
mit ARM- und 8051-Prozessoren und Systemen wie Arduino, Raspberry
Pi, ESPressif, C-Control, Gainer, Java Control (JControl) und Linux Control.
Und auch für ältere Prozessor-Typen (z.B. 6502, Z80,
80x86) können wir Unterstützung anbieten. Als
Programmiersprache setzen wir in diesem Bereich vorwiegend
Assembler und Python ein, aber auch Embedded Pascal, C, Processing, JavaScript,
Max/MSP, Flash. Neben den herkömmlichen Microcontrollern gibt es
auch sogenannte Ein-Chip-Systeme (SoC = System on Chip), in
die z.T. komplette elektronische Schaltkreise (analoge wie
digitale) integriert sind. So bietet z.B. die Firma Cypress mit
ihrem PSoC (Programmable System on Chip) eine Serie von
Controllern an, welche über konfigurierbare analoge und
digitale Blöcke verfügen, mit denen sich Schaltungen wie
Analog/Digital- und Digital/Analog-Wandler, Zähler,
Multiplexer, Operationsverstärker, Filter,
Kommunikationsschnittstellen u.v.m. realisieren lassen. Somit
können diese Microcontroller sehr flexibel eingesetzt werden
und sogar in einer fertigen Schaltung noch umprogrammiert werden,
um deren Funktion zu verändern oder zu erweitern. Gern
programmieren und konfigurieren wir PSoC-Controller für Ihr
Projekt.
Programmierbare Logik und
HDL-Programmierung
Programmierbare
logische Schaltkreise (PLD
= Programmable Logic Device)
sind ICs, deren Struktur und Funktionalität durch den
Anwender (Hardwareentwickler) konfiguriert werden kann. Anders als
z.B. bei Gate Arrays und ASICs wird diese Konfiguration jedoch
nicht im Herstellungsprozess abschließend fixiert. Vielmehr
ist dieser bei PLDs bereits vollständig abgeschlossen; die
Konfiguration der fertigen Chips geschieht durch eine besondere
Art der Programmierung. Diese erfolgt in der Regel durch
Verwendung einer Hardwarebeschreibungssprache
(HDL
= Hardware Description Language) wie z.B. VHDL
oder
Verilog,
wobei in Europa VHDL vorherrschend ist. Diese Sprachen sind
universell ausgelegt und erlauben die Beschreibung einer
elektronischen Schaltung unabhängig von der verwendeten
Zielhardware. Die Beschreibung erfolgt in Textform und gestaltet
sich wesentlich einfacher und übersichtlicher als die
Erstellung eines grafischen Schaltplans, insbesondere bei
komplexen Schaltungen. PLDs bestehen im wesentlichen aus
Logik-Gattern vom Typ UND und ODER sowie einer
Verbindungsstruktur, deren Verknüpfungen aktiviert oder
deaktiviert werden können; dadurch können beliebige
logische Schaltungen implementiert werden. Im Unterschied zu
Microcontrollern, die ihre Aufgaben stets sequentiell abarbeiten,
findet in PLDs eine parallele Signalverarbeitung statt, d.h. wie
in einer elektronischen Schaltung kann jedes "Bauelement"
zu jeder Zeit seinen Zustand in Abhängigkeit seiner
Eingangsgrößen ändern. Wir verwenden in diesem
Bereich vorwiegend CPLDs
(Complex Programmable Logic Device) und
FPGAs
(Field Programmable Gate Array),
wobei die CPLD-Struktur vergleichsweise einfacher als die eines
FPGA ist. Darüber hinaus gibt es auch sogenannte Mixed
Signal Arrays,
bei denen auf der Chipfläche zusätzlich analoge
Schaltungsblöcke vorhanden sind, die - ähnlich wie bei
PSoC (s.o.) - ebenfalls
konfigurierbar sind. In Form sogenannter Softcores
können
auch Microcontroller und andere komplexe Komponenten per Software
in einen FPGA implementiert werden. Wir übernehmen für
Sie gern die Programmierung und Konfiguration derartiger ICs und
unterstützen Sie beim Einsatz dieser interessanten
Technologien im Rahmen Ihrer Projekte.
Software für Mobiltelefone und
PDAs
Mobile
Kommunikationsgeräte lassen sich prinzipiell für die
gleichen Aufgaben einsetzen wie herkömmliche PCs, da sie
mittlerweile über ähnlich leistungsfähige
Betriebssysteme verfügen wie diese. Dadurch ergeben sich
vielfältige Anwendungsmöglichkeiten, auch für den
technisch-wissenschaftlichen Bereich. Wir entwickeln für
Sie Software für Mobiltelefone – insbesondere
SmartPhones (mit und ohne Touchscreen) – und PDAs,
die es Ihnen beispielsweise ermöglicht, diese Geräte als
Bedieneinheit für elektronische Steuerungen einzusetzen. Auch
die hierzu notwendigen Hardware- und Softwareschnittstellen (z.B.
Bluetooth) implementieren wir gern für Sie. Als
Programmiersprache setzen wir in diesem Bereich vorwiegend Java ME
ein, alternativ können aber auch herstellerspezifische
Entwicklungssysteme verwendet werden.
Medizininformatik und
Sportinformatik
Aufgrund
langjähriger Erfahrung im Bereich der medizinischen
und sportwissenschaftlichen Forschung sowie der
Softwareentwicklung in diesem Bereich verfügen wir über
das notwendige Know-how, um effektive und anwendungsorientierte
Softwareprojekte zu erstellen, die exakt und individuell auf Ihre
Bedürfnisse zugeschnitten sind. In der Medizin haben wir
bisher u.a. Software für die Bild- und Signalverarbeitung in
der Histologie und Elektrophysiologie entwickelt. Wir befassen uns
aber auch mit Telematik-Anwendungen und der Organisation
von Daten und Abläufen. Im Bereich der Sportmedizin haben wir
in umfangreichen Projekten Software für die
Trainingssteuerung und die Erfassung biomechanischer und
leistungsbezogener Daten erstellt. Gern beraten wir Sie auch
bezüglich der Anwendungsmöglichkeiten aktueller
Technologien für Ihr Projekt.
|