Programmiersprache – C#

Die Programmiersprache C# (gesprochen: C Sharp) ist eine seit 2001 von Microsoft veröffentlichte Programmiersprache, welche sich seitdem auf Erfolgskurs zu einer der meist angewendeten Programmiersprachen entwickelt. C# ist international anerkannt und genormt. Neben C++ und Java gehört C# zu den mächtigsten und heute verbreitesten Hochsprachen. Während C++ eine hybride Sprache ist, sind Java und C# weitgehend objektorientierte Programmiersprachen.

Die Programmiersprache C# findet in Wissenschaft und vor allem in Wirtschaftsunternehmen verbreitete Anwendung und wird teilweise auch von Microsoft selbst für systemeigene Programme des Betriebssystems eingesetzt. In der Industrie, im Handel sowie in Dienstleistungsbranchen (wie z. B. der Versicherungsbranche) lassen sich mit C# entwickelte .Net-Anwendungen finden.

Mit C# lassen sich vielfältige Anwendungen realisieren, vom Dienstprogramm im Hintergrund über verteilte Anwendungen, Desktop- und Webanwendungen bis hin zur Smartphone-Applikation (App). C# Anwendungen laufen im Microsoft .Net Framework, welches so nur für Betriebssysteme von Microsoft existiert. C#-Quellcode wird anders als C++-Quellcode und ähnlich wie Java-Quellcode nicht einmalig direkt in hardware-spezifischen Maschinencode übersetzt, sondern zur Laufzeit durch einen sogenannten JIT-Compiler (Just-In-Time-Compiler). Über Betriebssysteme von Microsoft hinweg besteht eine sogenannte Plattformunabhängigkeit durch die Common Language Runtime (CLR) des .Net Frameworks. C#-Quellcode werden in eine Zwischensprache (Intermediate Language Code) übersetzt, was in ausführbare .exe-Dateien resultiert. Das Starten der .exe-Dateien führt dazu, dass der Just-In-Time-Compiler der CLR den Zwischencode in Maschinencode übersetzt. Ohne .Net-Framework sind diese .exe-Dateien nicht ausführbar.

→ WEITERLESEN

Sequenzdiagramm

Sequenzdiagramme gehören zur UML und sind in der Prozessmodellierung sowie in der Software-Entwicklung zur Darstellung der Interaktion von Objekten untereinander sehr verbreitet. In der Prozessmodellierung stellen Sequenzdiagramme die Interaktionen zwischen Akteuren und dem Geschäftssystem dar. Als Modellierungssprache sind Sequenzdiagramme insbesondere in der Informatik bzw. Wirtschaftsinformatik verbreitet. Die gegenseitigen Abhängigkeiten, Aufrufhierarchien und Lebenszeiten von Objekten können einem Sequenzdiagramm leicht verständlich entnommen werden. Sequenzdiagramme zeigen:

  • Abhängigkeiten: Welche Objekte interagieren mit welchen anderen Objekten?
  • Aufrufhierarchie: Welche Objekte rufen das Objekt auf und welche werden vom Objekt aufgerufen?
  • Lebenszeiten: Wie lange existieren Objekte bzw. wie lange werden Objekte benötigt?
  • Aktivitätszeiten: Wie lange sind Objekte aktiv?

Sequenzdiagramme werden immer von einem Akteur (Benutzer / User) oder einem Objekt begonnen. In einem Gesamtsystem gibt es für jeden Akteur in einem Anwendungsfalldiagramm ein eigenes Sequenzdiagramm.

 

→ WEITERLESEN

Objektorientierung

Mit der Objektorientierung werden einzelne Sachverhalte nicht mehr nur auf ihrer Einzelteile reduziert, sondern das integrierte Ganze im Zusammenhang – mit allen Verbindungen und Abhängigkeiten – wird betrachtet.

Objektorientiertes Modellieren

Programmablaufpläne (PAP), Struktogramme oder Ereignisgesteuerte Prozessketten (EPK) sind typische Modellierungsinstrumente in der Prozessgestaltung. Diese Darstellungsformen sind jedoch nicht objekt-, sondern rein prozessorientiert. Objektorientierte Modellierung bedeutet, nicht nur Daten und Funktionen zu beschreiben, sondern auch die Beziehungen und Strukturen von Klassen bzw. Objekten zu berücksichtigen. Als eine sehr objektorientierte Modellierungssprache gilt die UML.

Objektorientierte Programmierung

Die objektorientierte Programmierung ist aus der heutigen Software-Entwicklung nicht mehr weg zu denken. Die meisten relevanten Hochsprachen unter den Programmiersprachen erlauben oder erzwingen eine ganz oder teilweise objektorientierte Programmierung. Die ersten erfolgreichen Programmiersprachen, wie beispielsweise Assembler, C oder Basic, waren rein prozessorientiert nach Ablaufschemen, welche oftmals auf Programmablaufplänen oder Struktogrammen basieren. Die Programmiersprache C ist auch heute noch aktuell, wenn auch nicht mehr für allgemeine Anwendungsprogramme, sondern für eingebettete Systeme (Embedded Systems), also die Mikrocontroller-Programmierung.

→ WEITERLESEN

Engineering- und Product-Data-Management -System

Die Informationstechnologie ist aus der Produktentwicklung und Produktionsplanung und -steuerung (PPS) nicht mehr wegzudenken, sie ist nicht nur für die Kernprozesse in diesen Bereichen von hoher Bedeutung, sondern auf für die Informationsflüsse zwischen Produktentwicklung, Produktion, Qualitätsmanagement, Vertrieb und Einkauf. Eine grundlegende Rolle spielen dabei Product-Data-Management (Produkt-Daten-Management – PDM) und Engineering-Data-Management (Engineering-Daten-Management – EDM). PDM- und EDM-Systeme verbinden die technisch orientierten CAx-Systeme mit den betriebswirtschaftlich ausgerichteten ERP- und PPS-Systemen. PDM-/EDM-Systeme generieren und sammeln Informationen während des Produktentwicklungsprozesses und machen diese für die Zukunft nutzbar/wiederverwendbar.

PDM- und EDM-Systeme sind methodische Ansätze, Daten zu generieren, zu sammeln und wiederverwendbar zu machen. In der Praxis sind PDM- und EDM-Systeme IT-Systeme, welche aus einer oder mehreren IT-Lösungen (inklusive Datenbanksystemen) bestehen und in ein umfassendes Product-Lifecycle-Management-System (PLM-System) eingegliedert sind. Ziel von PLM-Systemen ist die Erfassung, Strukturierung und unternehmensweite Verfügbarmachung von Informationen über geeignete Informationssysteme aus allen Phasen der Produktentstehung sowie -nutzung bis hin zur Entsorgung. PDM ist der eigentliche Vorläufer von heutigen und zukünftigen PLM-Systemen.

→ WEITERLESEN

Zustandsdiagramm

Zustandsdiagramme werden in der UML beschrieben und dienen der Darstellung von Systemverhalten. Mit Zustandsdiagrammen kann das innere Verhalten von Objekten in Geschäftssystemen oder IT-Systemen beschrieben werden. Das Verhalten bezeichnet die Wechselwirkung und Interaktion zwischen Objekten eines solchen Systems. Zustandsdiagramme sind vor allem in der Software-Entwicklung verbreitet, insbesondere bei Klassenobjekten, die ein sehr dynamisches Verhalten (ausgelöst durch viele Ereignisse) aufweisen.

Zustandsdiagramme zeigen die durch Ereignisse (Events) beeinflussten Zustände, die ein Objekt annehmen kann, sowie die Ereignisse oder Nachrichten, die im kausalen Zusammenhang mit einem Zustandswechsel stehen. In einem Geschäftssystem wird die Zustandsänderung der Objekte (Verhalten) durch Geschäftsprozesse nach Geschäftsregeln ausgelöst.

→ WEITERLESEN

Aktivitätsdiagramm

Die meisten UML-Diagramme sind für die Darstellung von Hierarchien und Aufbaustrukturen unter dem Grundsatz der Objektorientierung geschaffen worden. Aktivitätsdiagramme zeigen jedoch die funktionale Sicht und sind unabhängig von dem Gedanken eines objektorientierten Aufbaus, gehören also zu den Verhaltensdiagrammen. Nur mit Funktionen bzw. Methoden (Aktivitäten) lässt sich Bewegung im System darstellen.

Aktivitätsdiagramme sind vergleichbar mit Programmablaufplänen oder Struktogrammen und nicht nur in der Software-Entwicklung nützlich, sondern auch in der Prozessabbildung, beispielsweise zur Abbildung von Geschäftsprozessen. Aktivitätsdiagramme ermöglichen die Abbildung von Verantwortungsbereichen über Prozesse sowie die Parallelisierung von Prozessen, was Aktivitätsdiagramme besonders für die Darstellung und Analyse von Geschäftsprozessen in der Wirtschaftsinformatik und Aktivitäten bei verteilten Anwendungen in der Software-Entwicklung qualifiziert.

→ WEITERLESEN

Zahlensysteme

Die in der Informatik gängigen Zahlensysteme zu verstehen ist unabdingbar für jegliche professionelle Programmierer und Netzwerktechniker. Die in der Software- und Netzwerktechnik vorkommenden Zahlensysteme sind Stellenwertsysteme.

Stellenwertsysteme basieren auf der bestimmten Wertigkeit einer Position (Stelle) jeder Ziffer. Ein typisches Zahlensystem, welches kein Stellenwertsystem, sondern ein Additionssystem ist, ist das Notieren von Ereignissen/Objekten mit Strichen, beispielsweise das (für Bierdeckelnotizen bekannte) System, wonach vier Striche vertikal, der fünfte Strich diagonal dargestellt werden. Additionssysteme können auch in anderer Form dargestellt werden, sind gewöhnlicherweise aber nur für kleine Summen übersichtlich.

Stellenwertsysteme entsprechen einer anderen Logik, nämlich der der Stellenwerte.

Der Wert einer Zahl (Zahlenwert) wird nicht an Hand von Strichen oder anderen Symbolen abgezählt, sondern errechnet. Der Zahlenwert ist die Summe aus allen Ziffernwerten (die einer Zahl zugehörig sind). Die Ziffernwerte sind die jeweiligen Produkte aus Stellenwert und Nennwert.

Zahlenwert = ∑ Ziffernwerti = ∑ (Nennwerti x Stellenwerti)

→ WEITERLESEN

Erlernbarkeit (Suitability for learning)

Die Erlernbarkeit  resultiert im Wesentlichen aus der Erfüllung der übrigen Forderungen an Software.

Insbesondere die Selbstbeschreibungsfähigkeit (Software soll sich selbst erklären können, unter Berücksichtigung der Zielgruppe) und die Erwartungskonformität (der Benutzer soll bekommen, was er mit der Anschaffung und Nutzung der Software erwartet) erleichtern die Erlernbarkeit von Software.

Es sollen die Standardfunktionen der Software sowie die Individualisierbarkeit (Anpassung der Software an individuelle Ansprüche und Vorgaben) so gestaltet werden, dass sie für den Benutzer aus der Zielgruppe leicht durchschaubar und somit für ihn erlernbar sein.

Es kommt wirklich nicht selten vor, dass Benutzer Software verwenden, so wie sie es aus ihrem Umfeld her kennen, ohne dabei die Fähigkeiten in Sachen Individualisierbarkeit auszureizen, weil sich die Funktionen der Individualisierbarkeit und individuelle Funktionen selbst nicht selbstbeschreiben und zusätzlich noch zu kompliziert gestaltet sind.

Die Erlernbarkeit von Software hängt natürlich auch vom Benutzer und seinem Vorwissen ab. Die Erlernbarkeit ist nur dann ausreichend, wenn die Funktionen der Software für jeden Benutzer aus der Zielgruppe, für welche die Software bestimmt wurde, vollständig (mit Ausnahme von versteckten Funktionen, welche nur für die Software-Entwicklung gedacht sind) mit angemessenen Mitteln und vertretbarer Mühe erlernbar sind.

Sicher ist die Erlernbarkeit von Software nicht direkt messbar und auch „angemessene Mittel“ und „vertretbare Mühe“ sind stark Auslegungssache. Der Softwarehersteller muss sich selbstkritisch mit dem Thema auseinandersetzen und eigene, eher pessimistische Maßstäbe setzen.

Andererseits ist die zu gute Erlernbarkeit für den Softwarehersteller manchmal gar nicht so erstrebenswert, wo doch viel Geld mit dem Support und mit Kursen/Zertifikaten gemacht werden kann und das Hauptaugenmerk nun mal leider nicht auf die Softwarequalität gelegt wird. Dennoch sollte jedes Unternehmen zumindest die grundlegenden Funktionen einer Software leicht erlernbar auslegen, so dass nur spezielle Funktionen durch weiteren Support erläutert und somit richtig nutzbar gemacht werden.

Ein sehr gutes Beispiel für einen Durchbruch in Sachen Erlernbarkeit, ist die grafische Benutzeroberfläche, welche durch Microsoft Windows erstmals richtig bekannt wurde und damit als erstes Betriebssystem sich im Heimanwendermarkt etablieren konnte. Während professionelle Computeranwender sich noch lange Zeit überwiegend mit der Konsolenbedienung zufrieden gaben, haben die vergleichsweise ungeduldigen Heimanwender durch die viel schneller erlernbare Grafikoberflächenbedienung Zugang zu der Bedienung des PCs gefunden. Die Grafikoberfläche hatte ihre Nachteile in der größeren Ressourcenlast und führte daher zu Performance-Einbüßen, dennoch war dies im Vergleich doch das geringere Übel.

Wissensmanagement

Wissensmanagement (engl.: Knowledge Management) ist die methodische Unterstützung, Steuerung und Kontrolle von Prozessen zum Ausbau von Wissensbasen einer Organisation oder Person. Wissensbasen sind Informationen und deren Interpretation, die zur Lösung von Problemen notwendig oder hilfreich sind. Gutes Wissensmanagement ist zwingend Bestandteil gutem Innovationsmanagements.

Der harte Kern jeden Wissens sind Daten, welche mit einer Bedeutung versehen, Informationen sind. Informationen ergeben Wissen, wenn diese aus einem bestimmten Kontext heraus interpretiert werden (können) und entsprechend darauf reagiert werden kann.

Ziele des Wissensmanagement sind:

  1. Förderung der Aneignung von neuem Wissen
    Beispielhafte Leitfrage: „Wie können unsere Mitarbeiter den Umgang mit neuen Verfahren lernen?“
  2. Schaffung von Möglichkeiten zur Nutzung von bestehendem Wissen
    Beispielhafte Leitfrage: „Welche Organisation fördert innovatives Denken?“
  3. Verhinderung von Verlust des Wissens
    Beispielhafte Leitfrage: „Wie kann ein Know-How-Verlust trotz Fluktuation verhindert werden?“

→ WEITERLESEN