<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Struktur Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/struktur/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/struktur/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Fri, 21 Feb 2025 07:01:59 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Struktur Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/struktur/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Syntax – Unsichtbares Regelwerk der Kommunikation und des Codes</title>
		<link>https://ceosbay.com/2025/03/15/syntax-unsichtbares-regelwerk-der-kommunikation-und-des-codes/</link>
					<comments>https://ceosbay.com/2025/03/15/syntax-unsichtbares-regelwerk-der-kommunikation-und-des-codes/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 15 Mar 2025 17:31:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[API-Testing]]></category>
		<category><![CDATA[Bildung]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[KI-Testing]]></category>
		<category><![CDATA[Performance-Testing]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Spieleentwicklung]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Testmanagement]]></category>
		<category><![CDATA[Wissenschaftskommunikation]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Grammatik]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Kommunikation]]></category>
		<category><![CDATA[Linguistik]]></category>
		<category><![CDATA[Programmierlogik]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Regeln]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Syntaxfehler]]></category>
		<category><![CDATA[Textverarbeitung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=3961</guid>

					<description><![CDATA[<p>Syntax – ein Begriff, den viele vielleicht aus dem Sprachunterricht oder der Informatik kennen. Doch was bedeutet er genau und warum spielt er eine so große Rolle in unserer Kommunikation sowie in der Programmierung? In &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/15/syntax-unsichtbares-regelwerk-der-kommunikation-und-des-codes/">Syntax – Unsichtbares Regelwerk der Kommunikation und des Codes</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Syntax – ein Begriff, den viele vielleicht aus dem Sprachunterricht oder der <a href="https://ceosbay.com/2023/11/08/informatik-die-zukunft-des-codes/">Informatik</a> kennen. Doch was bedeutet er genau und warum spielt er eine so große Rolle in unserer Kommunikation sowie in der Programmierung? In diesem Blogbeitrag gehen wir auf die Bedeutung ein und zeigen, warum sie für Sprache und Code gleichermaßen essenziell ist.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="871" height="871" src="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/02/Syntax.jpg?resize=871%2C871&#038;ssl=1" alt="Syntax" class="wp-image-4035" srcset="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/02/Syntax.jpg?w=1024&amp;ssl=1 1024w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/02/Syntax.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/02/Syntax.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/02/Syntax.jpg?resize=768%2C768&amp;ssl=1 768w" sizes="(max-width: 871px) 100vw, 871px" /></figure>



<h3 class="wp-block-heading">Was ist Syntax?</h3>



<p>Der Begriff stammt aus dem Griechischen und bedeutet so viel wie „Zusammenstellung“ oder „Ordnung“. In der Linguistik beschreibt Syntax die Regeln, nach denen Wörter in einer Sprache zu sinnvollen Sätzen angeordnet werden. In der <a href="https://ceosbay.com/2023/11/08/informatik-die-zukunft-des-codes/">Informatik</a> bezeichnet sie die Struktur und Grammatik von Programmiersprachen.</p>



<p>Ob in einer natürlichen Sprache wie Deutsch oder in einer Programmiersprache wie <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a> – ohne eine klar definierte Syntax wäre die Verständigung unmöglich oder zumindest erheblich erschwert.</p>



<h3 class="wp-block-heading">In der Sprache</h3>



<p>In der menschlichen Sprache sorgt die Syntax dafür, dass wir verständliche und korrekte Sätze bilden können. Ein einfaches Beispiel:</p>



<ul class="wp-block-list">
<li><strong>Richtig:</strong> „Der Hund jagt die Katze.“</li>



<li><strong>Falsch:</strong> „Hund die Katze der jagt.“</li>
</ul>



<p>Im zweiten Fall ist der Satz grammatikalisch falsch und schwer verständlich. Auch wenn alle Wörter vorhanden sind, fehlt die korrekte Anordnung, um den Satz sinnvoll zu machen.</p>



<h3 class="wp-block-heading">Syntax in der Programmierung</h3>



<p>In der <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Informatik</a> bestimmt die Syntax einer Programmiersprache, wie man Code schreiben muss, damit der Computer versteht und weiß, was es ausführen soll. </p>



<h3 class="wp-block-heading">Hier ein Beispiel mit Python:</h3>



<p><strong>Korrek</strong>t<strong>:</strong></p>



<pre class="wp-block-code"><code>print("Hallo, Welt!")</code></pre>



<p><strong>Falsch:</strong></p>



<pre class="wp-block-code"><code>print "Hallo, Welt!"</code></pre>



<p>Der zweite Code führt zu einem Syntaxfehler, da moderne Versionen von Python Klammern für die <code>print</code>-Funktion verlangen.</p>



<h3 class="wp-block-heading">Warum ist Syntax so wichtig?</h3>



<p>Es ist die Basis für klare und eindeutige Kommunikation – sei es in der Sprache oder in der Programmierung. Ist sie fehlerhaft, kann sie zu Missverständnissen oder sogar kompletten Fehlfunktionen führen. In der Programmierung kann ein kleiner Fehler in der Syntax dazu führen, dass ein ganzes Programm nicht läuft oder unerwartete Fehler produziert.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Egal ob in der natürlichen Sprache oder in der Programmierung – sie ist unerlässlich für eine funktionierende Kommunikation. Während sie in der Sprache Flexibilität erlaubt, ist sie in der <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Informatik</a> oft streng festgelegt. Wer sich mit Syntax auskennt und sie beherrscht, hat sowohl in der Kommunikation als auch in der Programmierung einen entscheidenden Vorteil.</p>



<p>Hast du schon einmal Syntaxfehler erlebt? Teile deine Erfahrungen in den Kommentaren!</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/15/syntax-unsichtbares-regelwerk-der-kommunikation-und-des-codes/">Syntax – Unsichtbares Regelwerk der Kommunikation und des Codes</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2025/03/15/syntax-unsichtbares-regelwerk-der-kommunikation-und-des-codes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3961</post-id>	</item>
		<item>
		<title>Äquivalenzklassen beim Softwaretest</title>
		<link>https://ceosbay.com/2023/10/11/aequivalenzklassen-beim-softwaretest/</link>
					<comments>https://ceosbay.com/2023/10/11/aequivalenzklassen-beim-softwaretest/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 11 Oct 2023 21:31:00 +0000</pubDate>
				<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Bildung]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Abstraktion]]></category>
		<category><![CDATA[Algorithmen]]></category>
		<category><![CDATA[Äquivalenzklassen]]></category>
		<category><![CDATA[Datenstrukturen]]></category>
		<category><![CDATA[Diskrete Mathematik]]></category>
		<category><![CDATA[Formalismen]]></category>
		<category><![CDATA[Forschung]]></category>
		<category><![CDATA[Funktionale Analyse]]></category>
		<category><![CDATA[Gleichheit]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Informationstechnologie]]></category>
		<category><![CDATA[Klassenbildung]]></category>
		<category><![CDATA[Konzepte]]></category>
		<category><![CDATA[Lehrmittel]]></category>
		<category><![CDATA[Logik]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[Modellierung]]></category>
		<category><![CDATA[Partitionierung]]></category>
		<category><![CDATA[Relationen]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Theorie]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2728</guid>

					<description><![CDATA[<p>Im Zeitalter der Digitalisierung ist das Testen von Software ein unerlässlicher Schritt, um die Qualität und Funktionsfähigkeit von Anwendungen sicherzustellen. Eine der Schlüsselmethoden, die dabei zum Einsatz kommen, ist das Bilden von Äquivalenzklassen. Fokus auf &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/11/aequivalenzklassen-beim-softwaretest/">Äquivalenzklassen beim Softwaretest</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Im Zeitalter der Digitalisierung ist das Testen von Software ein unerlässlicher Schritt, um die Qualität und Funktionsfähigkeit von Anwendungen sicherzustellen. Eine der Schlüsselmethoden, die dabei zum Einsatz kommen, ist das Bilden von Äquivalenzklassen.</p>



<h3 class="wp-block-heading">Fokus auf das Softwareverhalten</h3>



<p>Das Konzept des sogenannten <a href="https://ceosbay.com/2023/06/02/blackbox-tests-software-pruefen-ohne-eine-zeile-code-zu-sehen/">Black-Box-Testings</a> zielt darauf ab, das beobachtbare Verhalten einer Software zu prüfen, ohne einen Blick in den zugrunde liegenden Code zu werfen. Anstatt jede mögliche Eingabe zu testen, geht es darum, repräsentative Testszenarien zu identifizieren und zu nutzen.</p>



<h3 class="wp-block-heading">Der Kerngedanke der Äquivalenzklassen</h3>



<p>Innerhalb dieses <a href="https://ceosbay.com/2023/06/02/blackbox-tests-software-pruefen-ohne-eine-zeile-code-zu-sehen/">Black-Box</a>-Ansatzes liegt das Hauptaugenmerk der Äquivalenzklassenbildung darauf, Eingabewerte in sinnvolle Gruppen zu unterteilen. Diese Gruppen repräsentieren Werte, von denen angenommen wird, dass sie in Bezug auf den getesteten Prozess gleich behandelt werden.</p>



<h3 class="wp-block-heading">Ein praktisches Beispiel: Internetgeschwindigkeitsprüfung</h3>



<p>Stellen man sich eine Softwarefunktion vor, die darauf abzielt, den Zugang zu hochauflösenden Videos basierend auf den Internetgeschwindigkeiten der Nutzer validiert, sieht es folgendermaßen aus:</p>



<ul class="wp-block-list">
<li>Unter 5 Mbps: Nur Zugang zu SD-Qualität.</li>



<li>5-15 Mbps: Zugang zu HD-Qualität.</li>



<li>Über 15 Mbps: Zugang zu 4K-Qualität.</li>
</ul>



<p>Statt jede Geschwindigkeit individuell zu testen, könnten Tester Gruppen oder &#8222;Klassen&#8220; von Geschwindigkeiten bilden, die in Bezug auf den Videozugriffsprozess äquivalent sind. Dies reduziert die Anzahl der erforderlichen Tests drastisch.</p>



<h3 class="wp-block-heading">Identifizieren und Nutzen von Äquivalenzklassen</h3>



<ol class="wp-block-list">
<li><strong>Gruppierung relevanter Werte</strong>: Im obigen Beispiel sind Internetgeschwindigkeiten von 1-4 Mbps in einer Klasse, weil sie alle nach den geltenden Regeln gleich behandelt werden.</li>



<li><strong>Wahl eines Repräsentanten</strong>: Für jede Gruppe wird ein repräsentativer Wert ausgewählt. Dieser Wert wird im eigentlichen Test verwendet. Für die Gruppe 1-4 Mbps könnte eine Geschwindigkeit von 3 Mbps als repräsentativ gewählt werden.</li>



<li><strong>Ungültige Klassen berücksichtigen</strong>: Es ist auch wichtig, unerwartete oder ungültige Eingaben zu testen, um zu sehen, wie die Software reagiert.</li>
</ol>



<h3 class="wp-block-heading">Warum ist die Äquivalenzklassenbildung nützlich?</h3>



<p>Mit dieser Methode kann man sich auf wesentliche Tests konzentrieren und unnötige Redundanzen vermeiden. Sie hilft dabei, die Effizienz des Testprozesses zu steigern, ohne die Qualität zu beeinträchtigen.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Durch den intelligenten Einsatz von Äquivalenzklassen im Softwaretest können Qualitätssicherungsteams ihre Effizienz steigern und sicherstellen, dass sie alle kritischen Szenarien abdecken. Es ist ein Werkzeug, das sowohl Zeit als auch Ressourcen spart und dabei hilft, robuste und zuverlässige Softwareprodukte zu liefern.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/11/aequivalenzklassen-beim-softwaretest/">Äquivalenzklassen beim Softwaretest</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/10/11/aequivalenzklassen-beim-softwaretest/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2728</post-id>	</item>
		<item>
		<title>Softwarearchitektur &#8211; Entstehung, Bedeutung und Best Practices</title>
		<link>https://ceosbay.com/2023/08/02/softwarearchitektur-entstehung-bedeutung-und-best-practices/</link>
					<comments>https://ceosbay.com/2023/08/02/softwarearchitektur-entstehung-bedeutung-und-best-practices/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 02 Aug 2023 19:26:38 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Künstliche Intelligenz]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Akzeptanz]]></category>
		<category><![CDATA[Akzeptanzkriterien]]></category>
		<category><![CDATA[Anforderung]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Bedeutung]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Doku]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[Entstehung]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Funktional]]></category>
		<category><![CDATA[Geschäft]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Implementierung]]></category>
		<category><![CDATA[Kompetenz]]></category>
		<category><![CDATA[Kompetenzen]]></category>
		<category><![CDATA[Komplex]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Organisation]]></category>
		<category><![CDATA[Pattern]]></category>
		<category><![CDATA[Sicher]]></category>
		<category><![CDATA[Soft]]></category>
		<category><![CDATA[Softwarearchitektur]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Systeme]]></category>
		<category><![CDATA[Umsetzung]]></category>
		<category><![CDATA[Ware]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2085</guid>

					<description><![CDATA[<p>Softwarearchitektur ist eine entscheidende Komponente des Software-Entwicklungslebenszyklus. Sie liefert einen strukturierten Plan, der die systemischen Anforderungen definiert und die Systemkomponenten hervorhebt, welche für die Implementierung und Wartung einer Software entscheidend sind. In diesem Blog-Beitrag versuche &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/08/02/softwarearchitektur-entstehung-bedeutung-und-best-practices/">Softwarearchitektur &#8211; Entstehung, Bedeutung und Best Practices</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Softwarearchitektur ist eine entscheidende Komponente des Software-Entwicklungslebenszyklus. Sie liefert einen strukturierten Plan, der die systemischen Anforderungen definiert und die Systemkomponenten hervorhebt, welche für die Implementierung und Wartung einer Software entscheidend sind. In diesem Blog-Beitrag versuche ich, einen Einblick in die Entstehung der Softwarearchitektur, ihre Bedeutung und ihre Best Practices zu geben.</p>



<h2 class="wp-block-heading"><strong>Entstehung</strong></h2>



<p>Obwohl das Konzept der Softwarearchitektur so alt ist wie die Softwareentwicklung selbst, gewann der Begriff &#8222;Softwarearchitektur&#8220; erst in den späten 1980er Jahren an Bedeutung. Der Credit für die Etablierung dieses Konzepts geht an Computerwissenschaftler wie David Parnas, Mary Shaw und Fred Brooks, die erkannten, dass eine strukturierte Herangehensweise an die Softwareentwicklung notwendig ist, um komplexe Systeme zu verwalten.</p>



<p>Die Forscher bemerkten, dass die steigende Komplexität von Softwareprojekten eine genaue Planung und Organisation erfordert. Damit begann das Zeitalter der Softwarearchitektur, in dem die Gestaltung eines Systems genauso wichtig wurde wie die Implementierung des Codes selbst.</p>



<h2 class="wp-block-heading"><strong>Was ist Softwarearchitektur?</strong></h2>



<p>Softwarearchitektur bezeichnet die Struktur eines Softwaresystems, das seine Elemente, die Eigenschaften dieser Elemente und die Beziehungen zwischen ihnen umfasst. Sie bietet einen Plan, der die Arbeitsweise des Systems und die Kommunikation zwischen seinen verschiedenen Teilen definiert. Die Softwarearchitektur legt auch die Regeln und Vorgaben für die Softwareentwicklung und -wartung fest, um sicherzustellen, dass das Endprodukt den Anforderungen entspricht.</p>



<h2 class="wp-block-heading"><strong>Umsetzung</strong></h2>



<p>Die Implementierung folgt einer systematischen Methode. Sie beginnt mit der Anforderungsanalyse, in der die funktionalen und nicht-funktionalen Anforderungen des Systems definiert werden. Anschließend wird das Systemdesign erstellt, das die Hauptkomponenten des Systems und ihre Interaktionen definiert. Dieses Design dient als Blaupause für die Entwicklungs- und Wartungsphase.</p>



<p>Es ist wichtig zu beachten, dass die Architektur flexibel genug sein muss, um Änderungen zu ermöglichen, da die Anforderungen oft variieren können. Daher sind iterative Entwicklungsansätze wie Agile (Siehe <a href="https://ceosbay.com/2023/03/20/erklaerung-das-agile-manifest/">Agile Manifest</a>) und (<a href="https://ceosbay.com/2023/03/02/erklaerung-devops/">DevOps)</a> oft geeignet für die Implementierung der Softwarearchitektur.</p>



<h2 class="wp-block-heading"><strong>Wichtige Punkte bei der Umsetzung der Softwarearchitektur</strong></h2>



<p>Die Umsetzung der Softwarearchitektur erfordert sowohl technische als auch organisatorische Kompetenzen. Hier sind einige Punkte, die zu berücksichtigen sind:</p>



<ul class="wp-block-list">
<li><strong>Verständnis der Geschäftsziele:</strong> Die Architektur sollte auf den Geschäftszielen und Anforderungen basieren und nicht nur auf technologischen Überlegungen.</li>



<li><strong>Verwendung von Design Patterns:</strong> Design Patterns sind bewährte Lösungen für gemeinsame Designprobleme. Ihre Verwendung kann die Entwicklungszeit verkürzen und die Qualität des Endprodukts verbessern.</li>



<li><strong>Dokumentation:</strong> Eine gut dokumentierte Architektur erleichtert die Kommunikation innerhalb des Entwicklungsteams und die Wartung des Systems. Auch fällt es den Entwicklern durch eine gute Dokumentation leichter, sich in den verschiedenen Komponenten zurechtzufinden.</li>



<li><strong>Berücksichtigung von Nicht-Funktionalen Anforderungen:</strong> Neben den funktionalen Anforderungen sind auch Nicht-Funktionale Anforderungen wie Sicherheit, Leistung und Skalierbarkeit entscheidend. (Siehe in diesem Zusammenhang auch &#8222;<a href="https://ceosbay.com/2023/07/23/nicht-funktionale-tests-in-der-softwareentwicklung-damit-es-funktioniert/">Nicht funktionale Tests</a>&#8222;)</li>
</ul>



<h2 class="wp-block-heading"><strong>Fazit</strong></h2>



<p>Die Softwarearchitektur spielt eine entscheidende Rolle in der Softwareentwicklung. Sie bietet einen strukturierten Ansatz, um komplexe Systeme zu verwalten und zu warten. Durch die Berücksichtigung der oben genannten Punkte können Entwickler eine effektive und effiziente Architektur erstellen, die den Anforderungen gerecht wird und die langfristige Wartung des Systems erleichtert.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/08/02/softwarearchitektur-entstehung-bedeutung-und-best-practices/">Softwarearchitektur &#8211; Entstehung, Bedeutung und Best Practices</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/08/02/softwarearchitektur-entstehung-bedeutung-und-best-practices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2085</post-id>	</item>
		<item>
		<title>Strukturelle Tests in der Softwareentwicklung</title>
		<link>https://ceosbay.com/2023/07/31/strukturelle-tests-in-der-softwareentwicklung/</link>
					<comments>https://ceosbay.com/2023/07/31/strukturelle-tests-in-der-softwareentwicklung/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 31 Jul 2023 18:28:07 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[Testautomatisierung]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Agil]]></category>
		<category><![CDATA[Codeabdeckung]]></category>
		<category><![CDATA[Codeanalyse]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Durchführung]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Fehlerfreiheit]]></category>
		<category><![CDATA[Kundenzufriedenheit]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[Nachhaltigkeit]]></category>
		<category><![CDATA[Notwendigkeit]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Präzision]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Soft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Softwarequalität.]]></category>
		<category><![CDATA[Softwaretestprozess]]></category>
		<category><![CDATA[Stabil]]></category>
		<category><![CDATA[Stabilität]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Strukturelle Tests]]></category>
		<category><![CDATA[Technologiekompetenz]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testprozesse]]></category>
		<category><![CDATA[Ware]]></category>
		<category><![CDATA[White-Box-Tests]]></category>
		<category><![CDATA[Zukunftssicherheit]]></category>
		<category><![CDATA[Zuverlässigkeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1940</guid>

					<description><![CDATA[<p>Strukturelle Tests bilden einen integralen Bestandteil des Softwaretestprozesses. Die Tiefgründigkeit dieser Methode ermöglicht es, die interne Struktur einer Anwendung zu evaluieren, anstatt nur deren Funktion. In diesem Artikel versuche ich die Bedeutung von strukturellen Tests &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/31/strukturelle-tests-in-der-softwareentwicklung/">Strukturelle Tests in der Softwareentwicklung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Strukturelle Tests bilden einen integralen Bestandteil des Softwaretestprozesses. Die Tiefgründigkeit dieser Methode ermöglicht es, die interne Struktur einer Anwendung zu evaluieren, anstatt nur deren Funktion. In diesem Artikel versuche ich die Bedeutung von strukturellen Tests hervorzuheben und zu erläutern, wie man diese Tests durchführen kann und welche Vorteile sie bieten, wenn man es richtig anstellt.</p>



<h3 class="wp-block-heading">Definition &#8211; Strukturelle Tests</h3>



<p>Auch bekannt als White-Box-Tests oder Glasbox-Tests, konzentrieren sich auf die interne Perspektive einer Softwareanwendung. Im Gegensatz zu funktionalen Tests, die nur die Anforderungen von Außen prüfen, bieten strukturelle Tests eine vollständige Prüfung der internen Logik und Struktur einer Anwendung.</p>



<h3 class="wp-block-heading">Notwendigkeit</h3>



<p>Es gibt mehrere Vorteile. Sie identifizieren verborgene Fehler, die andere Testmethoden möglicherweise übersehen, erhöhen die Codeabdeckung und verbessern die Qualität der Software. Sie ermöglichen auch eine bessere Identifizierung von Problembereichen, wodurch man effektivere Fehlerbehebungsmaßnahmen einleiten kann.</p>



<h3 class="wp-block-heading">Durchführung von strukturellen Tests</h3>



<p>Strukturelle Tests erfordern ein gründliches Verständnis der internen Softwarearchitektur. Dies schließt Wissen über Datenflüsse, Kontrollstrukturen, Schnittstellen und weitere Details ein. Tester führen eine detaillierte Analyse der Codebasis durch, um Schwachstellen und mögliche Fehlerquellen zu identifizieren. Anschließend erstellt man geeignete Testfälle und führt diese aus, um die Funktionsweise der Anwendung zu überprüfen.</p>



<h3 class="wp-block-heading">Typen &#8211; Strukturelle Tests</h3>



<p>Verschiedene Typen struktureller Tests richten sich an spezifische Bereiche der Codebasis. Einige der gängigen Arten sind Kontrollflusstests, Datenflusstests, Pfadtests und Schleifentests. Jeder dieser Tests konzentriert sich auf ein bestimmtes Aspekt des Codes und liefert wichtige Informationen über dessen Leistung und Zuverlässigkeit.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Zusammenfassend lässt sich sagen, dass strukturelle Tests ein effektives Mittel sind, um die Qualität und Zuverlässigkeit von Softwareanwendungen zu gewährleisten. Durch eine detaillierte Überprüfung der internen Struktur einer Anwendung tragen sie dazu bei, verborgene Fehler zu identifizieren und sicherzustellen, dass alle Komponenten korrekt funktionieren. Mit ihrer Hilfe kann das Vertrauen in die entwickelte Software erhöht und das Risiko von Fehlern reduziert werden. Es lohnt sich also, in diese Tests zu investieren und sie als festen Bestandteil des Softwaretestprozesses zu etablieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/07/31/strukturelle-tests-in-der-softwareentwicklung/">Strukturelle Tests in der Softwareentwicklung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/07/31/strukturelle-tests-in-der-softwareentwicklung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1940</post-id>	</item>
		<item>
		<title>Jasmine &#8211; JavaScript Testautomatisierung</title>
		<link>https://ceosbay.com/2023/04/16/erklaerung-jasmine/</link>
					<comments>https://ceosbay.com/2023/04/16/erklaerung-jasmine/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 16 Apr 2023 06:23:35 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Anwendungen]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Ent-to-End]]></category>
		<category><![CDATA[Flexibilität]]></category>
		<category><![CDATA[Funktionsweise]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Integrationstests]]></category>
		<category><![CDATA[Jasmine]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Karma]]></category>
		<category><![CDATA[Konstrukt]]></category>
		<category><![CDATA[Mocking]]></category>
		<category><![CDATA[Mocks]]></category>
		<category><![CDATA[Objekt]]></category>
		<category><![CDATA[Objekte]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Practice]]></category>
		<category><![CDATA[Prozess]]></category>
		<category><![CDATA[Prozesse]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Qualitätsmanagement]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Spec]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Spy]]></category>
		<category><![CDATA[spyOn]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Strukturieren]]></category>
		<category><![CDATA[Suite]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testabdeckung]]></category>
		<category><![CDATA[Testbeschreibung]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Vorteile]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1483</guid>

					<description><![CDATA[<p>Die moderne Softwareentwicklung hat eine Vielzahl von Werkzeugen und Technologien, um Entwicklern bei der Gestaltung und Implementierung robuster Anwendungen zu helfen. Eines dieser Werkzeuge, dass ich in den letzten Tagen auf GitHub entdeckt habe, ist &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/16/erklaerung-jasmine/">Jasmine &#8211; JavaScript Testautomatisierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die moderne Softwareentwicklung hat eine Vielzahl von Werkzeugen und Technologien, um Entwicklern bei der Gestaltung und Implementierung robuster Anwendungen zu helfen. Eines dieser Werkzeuge, dass ich in den letzten Tagen auf <a href="https://ceosbay.com/2022/11/19/erklaerung-github/" target="_blank" rel="noreferrer noopener">GitHub</a> entdeckt habe, ist <a href="https://jasmine.github.io" target="_blank" rel="noreferrer noopener">Jasmine</a>. Es ist ein bekanntes <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> zur Testautomatisierung für <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>. In diesem Blogbeitrag schaue ich mir an, was Jasmine ist, wie es funktioniert und welche Vorteile es bietet, wenn es um das Testen von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Anwendungen geht.</p>



<h3 class="wp-block-heading">Was ist Jasmine?</h3>



<p>Jasmine ist ein beliebtes Open-Source-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> für <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">Behavior-Driven Devel</a><a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/">opment</a> (<a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">BDD</a>) Tests in <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>. Man verwendet es hauptsächlich, um das Verhalten von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Code durch das Schreiben von Test-Spezifikationen zu überprüfen. Jasmine bietet eine saubere, leicht verständliche Syntax und ermöglicht Entwicklern, ihre Tests unabhängig von ihrer Implementierung auszuführen. Dadurch können sie schnell und effizient sicherstellen, dass ihr Code wie erwartet funktioniert.</p>



<h3 class="wp-block-heading">Vorteile:</h3>



<ul class="wp-block-list">
<li><strong>Einfachheit</strong>: Man hat Jasmine entwickelt, um leicht verständlich und zugänglich für Entwickler zu sein. Die Test-Syntax ist klar und einfach, sodass selbst Entwickler, die neu in der Testautomatisierung sind, schnell damit arbeiten können.</li>



<li><strong>Unabhängigkeit</strong>: Jasmine ist unabhängig von anderen <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>&#8211;<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a>, Browsern und DOM-Manipulationsbibliotheken, was bedeutet, dass man es praktisch jedem <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Projekt verwenden kann, unabhängig von der verwendeten Technologie.</li>



<li><strong>Flexibilität</strong>: Entwickler können Jasmine für Unit-Tests, Integrationstests und sogar für End-to-End-Tests verwenden. Dies gibt ihnen die Möglichkeit, das gesamte Verhalten ihrer Anwendung mit einem einzigen Tool abzudecken.</li>
</ul>



<h3 class="wp-block-heading">Wie funktioniert Jasmine?</h3>



<p>Jasmine basiert auf einer Hierarchie von Suites und Specs. Suites sind Gruppen von verwandten Tests, während Specs einzelne Testfälle sind. Diese Hierarchie ermöglicht es Entwicklern, ihre Tests klar zu strukturieren und den Code leicht zu organisieren.</p>



<p>Es verwendet das &#8222;describe&#8220;-Konstrukt, um Test-Suites zu definieren. Jede Suite kann mehrere Test-Spezifikationen (Specs) enthalten, die mit dem &#8222;it&#8220;-Konstrukt definiert werden. Diese Specs enthalten Erwartungen (Expectations) in Bezug auf das zu testende Verhalten des Codes.</p>



<h4 class="wp-block-heading">Ein einfaches Beispiel für eine Jasmine Test-Suite sieht wie folgt aus:</h4>



<pre class="wp-block-code"><code>describe("A suite is just a function", function() {
  let a;

  it("and so is a spec", function() {
    a = true;

    expect(a).toBe(true);
  });
});</code></pre>



<p>oder</p>



<pre class="wp-block-code"><code>describe('Array', () =&gt; {
  describe('#indexOf()', () =&gt; {
    it('sollte -1 zurückgeben, wenn der Wert nicht im Array vorhanden ist', () =&gt; {
      expect(&#91;1, 2, 3].indexOf(4)).toBe(-1);
    });
  });
});</code></pre>



<h3 class="wp-block-heading">Integration in die Softwareentwicklung</h3>



<p>Man kann Jasmine problemlos in moderne <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Projekte und Build-Tools integrieren. Mit Integrationen für Tools wie Grunt, Gulp und Webpack lässt es sich nahtlos in bestehende Entwicklungsprozesse einfügen. Darüber hinaus gibt es auch Jasmine-Plugins für gängige Entwicklungsumgebungen wie Visual Studio Code oder <a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/" target="_blank" rel="noreferrer noopener">IntelliJ</a>, die das Schreiben und Ausführen von Tests noch einfacher und bequemer gestalten.</p>



<p>Man kann es auch mit anderen Testing-Tools und Libraries kombinieren, um noch umfassendere Testlösungen zu schaffen. Beispielsweise kann man es mit Karma (einem <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Test-Runner) verwenden, um Tests in verschiedenen Browsern auszuführen, oder mit Protractor für End-to-End-Tests in Angular-Anwendungen.</p>



<h3 class="wp-block-heading">Best Practices für Jasmine-Tests</h3>



<p>Um das Beste aus Jasmine herauszuholen und effektive Tests zu erstellen, sind hier einige bewährte Vorgehensweisen:</p>



<ul class="wp-block-list">
<li><strong>Klare Testbeschreibungen</strong>: Man sollte aussagekräftige und präzise Beschreibungen für Suites und Specs verwenden. Dies erleichtert das Verständnis des Testzwecks und die Identifizierung von Fehlern.</li>



<li><strong>Kleine, fokussierte Tests</strong>: Es ist ratsam, Tests zu schreiben, die nur eine Funktion oder ein Verhalten testen. Dies erleichtert das Auffinden und Beheben von Fehlern, da man dadurch genau im Blick behält, welcher Teil des Codes betroffen ist.</li>



<li><strong>Testabdeckung</strong>: Man sollte sicherstellen, dass man eine ausreichende Testabdeckung für den Code hat. Dies bedeutet, dass man alle wichtigen Funktionen und Szenarien in den Tests berücksichtigt.</li>



<li><strong>Mocking und Spies</strong>: Es ist zu empfehlen, Mock-Objekte und Spies zu verwenden, um externe Abhängigkeiten zu isolieren und den Testfokus auf den zu testenden Code zu richten. Jasmine bietet dafür eingebaute Funktionen wie createSpy und spyOn.</li>



<li><strong>Regelmäßige Testausführung</strong>: Man sollte die Tests regelmäßig ausführen, um sicherzustellen, dass Änderungen im Code nicht zu unerwarteten Fehlern führen. Daher ist es ratsam, Jasmine in den <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Continuous Integration (CI) bzw. Continuous Deployment</a> (<a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">CI/CD</a>) Prozess integrieren, um automatisch Tests auszuführen, sobald man Codeänderungen vornimmt.</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>Jasmine ist ein leistungsstarkes und vielseitiges <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> für das Testen von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Anwendungen. Mit seiner klaren Syntax, Flexibilität und Integration in moderne Entwicklungsprozesse ist es ein unverzichtbares Werkzeug für jeden <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a>-Entwickler. Durch die Befolgung der Best Practices und die regelmäßige Ausführung von Tests können Entwickler sicherstellen, dass ihr Code zuverlässig und fehlerfrei funktioniert. Insgesamt trägt Jasmine dazu bei, die Qualität von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Anwendungen zu verbessern und die Entwicklungszeit zu reduzieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/16/erklaerung-jasmine/">Jasmine &#8211; JavaScript Testautomatisierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/16/erklaerung-jasmine/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1483</post-id>	</item>
		<item>
		<title>Community of Practice &#8211; Kraft des gemeinsamen Lernens und Wachsens</title>
		<link>https://ceosbay.com/2023/03/24/erklaerung-community-of-practice/</link>
					<comments>https://ceosbay.com/2023/03/24/erklaerung-community-of-practice/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 22:29:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bildung]]></category>
		<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Coalescing]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[CoP]]></category>
		<category><![CDATA[Étienne]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Fokus]]></category>
		<category><![CDATA[Kontext]]></category>
		<category><![CDATA[Konzept]]></category>
		<category><![CDATA[Lave]]></category>
		<category><![CDATA[Lernen]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Maturing]]></category>
		<category><![CDATA[Nachteile]]></category>
		<category><![CDATA[Phasen]]></category>
		<category><![CDATA[Potenzial]]></category>
		<category><![CDATA[Soziologe]]></category>
		<category><![CDATA[Soziologie]]></category>
		<category><![CDATA[Stewardship]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Transformation]]></category>
		<category><![CDATA[Umwandlung]]></category>
		<category><![CDATA[Verantwortung]]></category>
		<category><![CDATA[Vorteile]]></category>
		<category><![CDATA[Wenger]]></category>
		<category><![CDATA[Wissen]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1233</guid>

					<description><![CDATA[<p>Community of Practice (Abkürzung CoP) ist eine praxisbezogene Gemeinschaft von Personen, die ähnlichen Aufgaben gegenüberstehen und voneinander lernen. Dabei handelt es sich bei dem Begriff nicht um eine klassische Arbeitsgemeinschaft. Im Interesse an Lösungen agiert &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/24/erklaerung-community-of-practice/">Community of Practice &#8211; Kraft des gemeinsamen Lernens und Wachsens</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Community of Practice (Abkürzung CoP) ist eine praxisbezogene Gemeinschaft von Personen, die ähnlichen Aufgaben gegenüberstehen und voneinander lernen. Dabei handelt es sich bei dem Begriff nicht um eine klassische Arbeitsgemeinschaft. Im Interesse an Lösungen agiert ein CoP weitgehend selbstorganisiert. Ich schreibe diesen Beitrag bezugnehmend auf Communities, sowohl im Arbeits- als auch Freizeitumfeld.</p>



<h3 class="wp-block-heading">Kurze Zeitreise und die Entstehung von Community of Practice</h3>



<p>Die Entstehung des Begriffs Community of Practice geht zurück auf das Jahr 1991. Geprägt durch die beiden Sozialwissenschaftler Jean Lave und Étienne Wenger. Sie stellten das Lernen in den Kontext sozialer Beziehungen. Dabei zeigten sie, dass für den Wissenserwerb – neben Strukturen oder Modellen – insbesondere die Teilnahme an einer Gemeinschaft entscheidend ist, in der man das Wissen konstruiert.</p>



<p>1998 erweiterte Etienne Wenger das Konzept für die Organisationsentwicklung und bestimmte damit einen neuen Entwicklungsschwerpunkt. Wenger hat mehr oder weniger die theoretische Grundlegung des Konzeptes beschrieben und generelle Verständnisgrundlagen des Konzeptes dargelegt. Aber auch außerhalb von Organisationen finden sich Communities of Practice. Besonders trifft man auf CoP’s bei internetgestützten Arbeitsgemeinschaften. Die Community of Practice wird heute in enger Verbindung zu Online-Communities und zum Wissensmanagement gesehen und stellt eine wichtige Möglichkeit zur Bildung sozialen Kapitals dar. Der Begriff des Wissensmanagements ist dabei von den beiden Herrschaften kritisch gesehen. Laut Lave, Wenger und anderen Sozialwissenschaftlern ist das Management von Wissen grundsätzlich nicht möglich. Wissen ließe sich ebenso wie die Bildung von Communities of Practice nicht „allein“ durch eine top-down Anordnung oder durch systematische Einrichtungsprozesse implementieren. Sozialwissenschaftler scheinen die Begriffe des „Gardening“ und „Nurturing“ zu bevorzugen.</p>



<h3 class="wp-block-heading">Struktur</h3>



<p>Eine Community of Practice besitzt in der Regel eine Struktur, in der Personen nicht via Festlegung eine bestimmte Rolle erhalten, sondern aufgrund ihrer Tätigkeit und der Akzeptanz bzw. Ablehnung durch andere Mitglieder eine Rolle erwerben. Mit „Festlegung“ ist in diesem Fall die Vorgabe durch Führungskräfte, Organisationsdiagramme oder andere „formale Vorgaben“ gemeint.</p>



<p>Den Begriff der Rolle, der besonders im deutschsprachigen Raum eine längere Tradition hat, verwenden die Sozialwissenschaftler dabei ungern. Sie sprechen von „Identität“, die sich ausbildet, und von Aufgabenverteilungen, die man untereinander aushandelt. So entwickeln sich auf Basis der Kommunikationsprozesse aktive und weniger aktive Mitglieder, Moderatoren und Experten. Diese Moderatoren darf man sich nicht als starr vergebene Positionen innerhalb des Geflechts der Community of Practice vorstellen. Es handelt sich hierbei auch um situativ ausgehandelte Funktionen und Aufgaben innerhalb der Community. Ebenso können sich Untergruppen bilden oder man bindet externe Personen als Gäste ein.</p>



<p>Aus eigener Erfahrung, beispielsweise im <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open Source</a> Space, kann ich sagen, dass zwar in der Öffentlichkeitsarbeit ein gewisses Bild einer Hierarchie erkennbar ist, doch innerhalb einer Arbeitsgruppe Rollen weitestgehend irrelevant sind. Dies liegt zum einen daran, dass man es meist mit sehr facettenreichen und gebildeten Personen zu tun hat und zum anderen daran, dass in diesem Umfeld das Lernen und die Wissensvermittlung im Vordergrund stehen.</p>



<h3 class="wp-block-heading">Phasen</h3>



<p><strong>Fünf Phasen charakterisieren die Entwicklung einer Community of Practice.</strong></p>



<ol class="wp-block-list" type="1">
<li>Die erste Phase (Potential/Potenzial) ist durch eine oder mehrere Personen gekennzeichnet, die sich einer bestimmten Thematik annehmen.</li>



<li>Die zweite Phase (Coalescing/Vereinigung) ist geprägt durch die Bildung einer Grundstruktur, in der man Ziele, Aufgaben und Kommunikationswege skiziiert.</li>



<li>In der dritten Phase (Maturing/Reifung) beginnt die eigentliche Arbeit der Gemeinschaft. Der Wissensaufbau und Austausch. Mit zunehmender Aktivität steigt in der Regel auch die Zahl der Mitglieder. Fortlaufend werden Ziele, Aufgaben und Kommunikationswege bewertet und an die Bedürfnisse der Mitglieder durch die Mitglieder selbst angepasst.</li>



<li>Als vierte Phase (Stewardship/Verantwortung) wenn für die Mehrzahl der Mitglieder ein akzeptabler Stand erreicht ist und kein Bedarf für weitere Aktivitäten erkennbar sind. In diesem Fall sinkt die Anzahl der eingepflegten Informationen im Vergleich zu jener der entnommenen Informationen.</li>



<li>In der fünften und letzten Phase (Transformation/Umwandlung) verliert die Gemeinschaft zunehmend an Gewicht als zentraler Informationsknotenpunkt, weil man auf andere Quellen ausweicht oder die Thematik selbst an Bedeutung verliert.</li>
</ol>



<p>Diese Phasen können, aber müssen nicht auf diese Art und Weise auftreten bzw. durchlaufen. Diesen Phasenablauf haben Wenger, Snyder und McDermott aus verschiedenen Fällen generalisiert, um so ein „Gerüst“ für den jeweiligen Unterstützungsbedarf für das Florieren der Community zugrunde zu legen.</p>



<h3 class="wp-block-heading">Die Pflege von <strong>Community of Practice</strong></h3>



<p><strong><em>Design for evolution</em></strong></p>



<p>Stetige Veränderung ist notwendig: Anpassung an neue Mitglieder, Einführung neuer Mitglieder, Veränderung von Ressourcenlagen, Veränderung von Diskurstraditionen, Veränderung von Problemlagen von Mitgliedern, Veränderungen in der Struktur der CoP.</p>



<p><strong><em>Open a dialogue between inside and outside perspectives</em></strong></p>



<p>Der Austausch mit der Umgebung und die aktive Aushandlung von Bedeutung in der &#8222;Arena&#8220; der CoP bilden den Hauptantriebsgrund, warum Menschen sich zu CoPs zusammenschließen.</p>



<p><strong><em>Invite different levels of participation</em></strong></p>



<p>Von Kernaktivisten allein wird keine CoP getragen. Man muss sich auch um den Nachwuchs für Positionen innerhalb der CoP kümmern. Der Einbezug von anderen &#8222;Zonen&#8220; in der CoP trägt auch zur Pluralität der Blickwinkel auf ein spezifisches Problem bei.</p>



<p><strong><em>Develop both public and private community spaces</em></strong></p>



<p>Auch wenn die CoP oftmals selbst im &#8222;Organizational Underlife&#8220; angesiedelt ist, so gibt es auch hier Bereiche, in denen sich Untergruppen treffen, in denen man Themen abseits der eigentlichen Agenda diskutiert, in denen man auch persönliche Problemlagen und Differenzen ansprechen kann, ohne vor das &#8222;Plenum&#8220; der CoP zu treten. Spannungen bleiben unter Umständen bestehen, wenn man solche Probleme nicht abseits der &#8222;offiziellen Bühne&#8220; diskutiert bzw. diskutieren kann. Oftmals bilden solche Nebenschauplätze auch die Geburtsstätte für nachfolgende Themen einer CoP, die diese dann aufrechterhält, wenn auch in vielleicht geänderter Konstellation.</p>



<p><strong><em>Focus on value</em></strong></p>



<p>Die Sicherstellung von Qualität ist auch für CoPs wichtig. Das betrifft sowohl die Pflege der CoPs auf einem Meta-Niveau als auch die Beiträge zum &#8222;Situated Negotiation of Meaning&#8220;.</p>



<p><strong><em>Combine familiarity and excitement</em></strong></p>



<p>Auch CoPs leben von tragenden Strukturen aus mehr routinisierten Praktiken und frischem Wind.</p>



<p><strong><em>Create a rhythm for the community</em></strong></p>



<p>Auch der Puls verschiedener Aktivitäten trägt zum Fortbestand und zu einem guten Arbeitsklima innerhalb der CoP bei.</p>



<h3 class="wp-block-heading">Vorteile für das Individuum durch <strong>Community of Practice</strong></h3>



<p>Bei Community of Practice-Meetings geht es primär darum, Informationen und Fragen zu bestimmten Problemen aus dem professionellen Alltag zu besprechen und gemeinsam Lösungen zu finden. Die gegenseitige Unterstützung und Zusammenarbeit zwischen den Mitgliedern stehen damit im Vordergrund. Der große Vorteil liegt darin, dass Personen miteinander interagieren, die sonst im Alltag meist nicht miteinander arbeiten. Bei CoP-Meetings hat man die Möglichkeit individuelle Erfahrungen miteinander zu teilen, um daraus wiederum neue Möglichkeiten zu kreieren und bestimmte Herausforderungen zu meistern. Einzig durch die Interaktion von unterschiedlichen Netzwerken können neue Ideen entstehen, wobei jede Partei ihre eigenen Sichtweisen teilt, die Einfluss auf die Entscheidungen der anderen hat und dadurch ein Lerneffekt entsteht. Arbeiten und Lernen gehören im professionellen Kontext stets zusammen. Eine Community of Practice fördert diese Zusammenkunft von Arbeit und Lernen.</p>



<h3 class="wp-block-heading">Vorteile für die Community</h3>



<p>Communities profitieren von Community of Practice dahin gehend, dass das Team sich selbstständig und selbstorganisiert weiterentwickelt, ohne, dass Führungspersonen oder Verantwortliche kostspielige Ausgaben für Fortbildungen oder Ähnliches ausgeben müssen.&nbsp;</p>



<p>Voraussetzungen hierfür sind natürlich, die verfügbare Zeit und die Ressourcen für die eingesetzte Hard- und Software bzw. je nachdem, in welchem Umfeld und mit welcher Zielsetzung man unterwegs ist. Die in den Meetings neu erlangten Kenntnisse wirken sich direkt auf die Leistungen im täglichen Leben aus.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>In meiner Wahrnehmung bzw. in meinem Verständnis, gehe ich davon aus, dass bei der Themenverarbeitung durch einige Sozialwissenschaftler im „Community of Practice“ von einer physischen Präsenz der Teilnehmenden die Rede ist. Zumal die Literatur, die ich gelesen habe, noch aus den frühen 90’ern ist. Jedoch habe ich diese Art von CoP’s primär online kennenlernen dürfen. Dementsprechend habe ich an Meetings virtuell bzw. remote teilgenommen, was seit den Anfängen der Coronapandemie immer häufiger stattgefunden hat und auch im konventionellen Geschäftsleben mehr und mehr ankommt. Besonders im <a href="https://ceosbay.com/2022/11/28/blockchain/" target="_blank" rel="noreferrer noopener">Blockchain</a> Space hat sich diese Methode sehr stark etabliert. Folglich konnte ich die genannten 5 Phasen mehrfach, sowohl mit einem positiven als auch mit einem negativen Verlauf wiedererkennen. Alles in allem sehe ich es von Vorteil, sich mit diesem Thema auseinanderzusetzen. So erhält man eine etwas differenzierte Sicht auf die Zusammenarbeit innerhalb und außerhalb von Communities und kann bewusst mit diversen Herausforderungen umgehen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/24/erklaerung-community-of-practice/">Community of Practice &#8211; Kraft des gemeinsamen Lernens und Wachsens</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/24/erklaerung-community-of-practice/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1233</post-id>	</item>
		<item>
		<title>Parser &#8211; Die Macht der Datenverarbeitung</title>
		<link>https://ceosbay.com/2023/03/15/erklaerung-parser/</link>
					<comments>https://ceosbay.com/2023/03/15/erklaerung-parser/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 15 Mar 2023 15:30:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Dos]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Adventure]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Baumstruktur]]></category>
		<category><![CDATA[Computerlinguistik]]></category>
		<category><![CDATA[Dateien]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Down]]></category>
		<category><![CDATA[Grammatik]]></category>
		<category><![CDATA[Grammatikart]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Kontextsensitive]]></category>
		<category><![CDATA[Mathematisch]]></category>
		<category><![CDATA[Pars]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[Quellen]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Schumaschine]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Verfahren]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[Zerteiler]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1094</guid>

					<description><![CDATA[<p>Ein Parser, von „analysieren“, bzw. lateinisch pars, „Teil“; im Deutschen gelegentlich auch Zerteiler genannt, ist ein Computerprogramm, dass in der Informatik für die Zerlegung und Umwandlung einer Eingabe in ein für die Weiterverarbeitung geeigneteres Format &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/15/erklaerung-parser/">Parser &#8211; Die Macht der Datenverarbeitung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ein Parser, von „analysieren“, bzw. lateinisch pars, „Teil“; im Deutschen gelegentlich auch Zerteiler genannt, ist ein Computerprogramm, dass in der Informatik für die Zerlegung und Umwandlung einer Eingabe in ein für die Weiterverarbeitung geeigneteres Format zuständig ist. Häufig werden Parser eingesetzt, um im Anschluss an den Analysevorgang die Semantik der Eingabe zu erschließen, um im Anschluss Aktionen auszuführen.</p>



<p>Im Vergleich zu einem Recognizer, der die Eingabe analysiert und ausgibt, ob diese im Sinne der Vorgaben richtig oder falsch ist, gibt der Parser die Analyse einer Eingabe in einer gewünschten Form aus und erzeugt zusätzlich Strukturbeschreibungen.</p>



<h3 class="wp-block-heading">Wie funktioniert ein Parser?</h3>



<p>Zur Analyse des Texts verwenden Parser in der Regel einen separaten Lexer. Dieser zerlegt die als Zeichenkette vorliegenden Eingabedaten in Token (Eingabesymbole bzw. „Wörter“, die es versteht). Weil die Zerlegung in Token einer regulären Grammatik folgt, ist der Scanner meist ein endlicher Automat. Token dienen als atomare Eingabezeichen des Parsers. Parser, die keinen separaten Scanner verwenden, nennt man Scannerless Parser.</p>



<p>Der eigentliche Parser als Implementierung eines abstrakten Automaten, meist realisiert als Kellerautomat, kümmert sich dagegen um die Grammatik der Eingabe, führt eine syntaktische Überprüfung der Eingangsdaten durch und erstellt in der Regel aus den Daten einen Ableitungsbaum, den man im Anschluss zur Weiterverarbeitung der Daten verwendet. Typische Anwendungen sind die semantische Analyse, Codegenerierung in einem Compiler oder die Ausführung durch einen Interpreter.</p>



<p>Bei <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a> zerlegt ein lexikalischer Scanner beispielsweise die <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Datei in <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Tags und Fließtext. Diese Bestandteile reicht es dann an den Parser weiter. Der Scanner ist also ausschließlich auf das Aussehen der Syntaxelemente aus. Spitze Klammern = <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Tag 😉&nbsp;<a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">Siehe auch meinen Beitrag über HTML</a>.</p>



<p>Der Parser übernimmt die übernimmt die Verarbeitung der syntaktischen Zusammenhänge, untersucht, welche Paare von Tags zusammengehören bzw. wie die Tags ineinander verschachtelt sind. Die inhaltliche Bedeutung der Tags interessiert den Parser dagegen nicht. Die Berücksichtigung findet erst in der darauffolgenden Weiterverarbeitung statt.</p>



<p>Veranschaulicht, ist ein Parser die Software, welche die Anweisungen im Quelltext des Users überprüft, weiterverarbeitet und weiterleitet.</p>



<h3 class="wp-block-heading">Welche Typen von Parsern gibt es?</h3>



<p>Man unterscheidet bei der allgemeinen Vorgehensweise verschiedene Parse-Verfahren. Folglich erfolgt die Unterscheidung nach der Reihenfolge, in der die Knoten des Ableitungsbaums erstellt sind. Beispiele hierfür sind: Top-Down, auch theoriegetriebenes Parsing; Bottom-Up, auch eingabegetriebenes Parsing; Left Corner, spezifischer Vorgehensweise (LL, LR, SLR, LALR, LC, …) und Implementierungstechnik (rekursiv absteigend, rekursiv aufsteigend oder tabellengesteuert) unterschieden. Weiter erfolgt die Unterscheidung auch, wie bereits erwähnt, nach der Grammatikart.</p>



<h3 class="wp-block-heading">Parser für kontextsensitive Grammatiken</h3>



<p>Das Parsen wohldefinierter künstlicher Sprachen, hierbei ist natürlich die Rede von Programmiersprachen, ist weniger komplex als das Parsen frei gewachsener natürlicher Sprachen wie Englisch, Deutsch oder einer anderen Sprache, die durch eine Vielzahl von Mehrdeutigkeiten, Irregularitäten und Inkonsistenzen geprägt sind. Wobei man hierüber mehr in der Computerlinguistik erfährt, über die ich in einem zukünftigen Beitrag schreiben werde.</p>



<h3 class="wp-block-heading">Fallbeispiel</h3>



<p>Man setzt Parser häufig ein, um eine Aneinanderreihung von Symbolen zu einer Baumstruktur zu adaptieren. Dies kann bei einem mathematischen Ausdruck folgenderweise aussehen:</p>



<pre class="wp-block-code"><code>7+(7+7)-sin(π) </code></pre>



<figure class="wp-block-table"><table><tbody><tr><td>Symbol</td><td>Kategorie</td><td>Erläuterung</td></tr><tr><td>7</td><td>Zahl</td><td></td></tr><tr><td>+</td><td>Rechenzeichen</td><td></td></tr><tr><td>(</td><td>Klammer auf</td><td></td></tr><tr><td>7</td><td>Zahl</td><td></td></tr><tr><td>+</td><td>Rechenzeichen</td><td></td></tr><tr><td>7</td><td>Zahl</td><td></td></tr><tr><td>)</td><td>Klammer zu</td><td></td></tr><tr><td>&#8211;</td><td>Rechenzeichen</td><td></td></tr><tr><td>sin</td><td>Symbolname</td><td>(hier: die Sinus-Funktion)</td></tr><tr><td>(</td><td>Klammer auf</td><td></td></tr><tr><td>π</td><td>Symbolname</td><td>(hier: die Kreiszahl π)</td></tr><tr><td>)</td><td>Klammer zu</td><td></td></tr></tbody></table></figure>



<p>Die weitere Aufgabe des Parsers ist nun, die zugrundeliegende Struktur dieser Symbolfolge zu erkennen. Häufig geschieht dies in Form eines Parsebaums (abstrakter Syntaxbaum), der in diesem Fall folgendermaßen aussehen kann:</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" width="871" height="442" src="https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=871%2C442&#038;ssl=1" alt="" class="wp-image-1161" srcset="https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=1024%2C520&amp;ssl=1 1024w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=300%2C152&amp;ssl=1 300w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=768%2C390&amp;ssl=1 768w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?resize=1070%2C543&amp;ssl=1 1070w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2023/03/ParserOrganigram.jpg?w=1434&amp;ssl=1 1434w" sizes="(max-width: 871px) 100vw, 871px" /><figcaption class="wp-element-caption">So kann die Ausgabe eines einfachen Parsers aussehen und die Analyse erfolgt ausschließlich durch weitere Programme.</figcaption></figure>



<h3 class="wp-block-heading">Wo finden Parser Anwendung</h3>



<ul class="wp-block-list">
<li><a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Code besteht aus reinem Text. Der in einem Webbrowser standardmäßig enthaltene Parser erstellt daraus den logischen Aufbau als Datenstruktur. Das Aussehen dieser Elemente wird getrennt via CSS definiert.</li>



<li><a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Parser analysieren <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Dokumente und stellen die darin enthaltenen Informationen für die weitere Verarbeitung zur Verfügung.</li>



<li><a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">RSS</a>-Parser wandeln <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">RSS</a>-Feeds in ein passendes Datenformat um. Beispielsweise für eine <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Seite.</li>



<li>URI-Parser lösen Schemata wie URLs in ihren hierarchischen Aufbau auf.</li>



<li>Logdatei-Parser dienen zum Extrahieren von relevanten Informationen aus Webserver-Protokolldateien, Ereignisprotokollen und anderer in Logdateien gespeicherter Informationen zur automatisierten Analyse.</li>



<li>Suchmaschinen parsen Webseiten und crawlen relevante Textpassagen.</li>



<li>Auslesen einer Programmiersprache. Aus der erhaltenen Datenstruktur kann ein Compiler dann Maschinencode bzw. Bytecode erzeugen.</li>



<li>Ein Kommandozeileninterpreter parst Befehle mitsamt deren Parameter für die korrekte Ausführung der Anweisungen des Benutzers. Das ältere Publikum, die mit DOS vertraut sind, kennen dies vielleicht noch aus der command.com Datei 😉</li>



<li>In Textadventures wie erfolgt die Steuerung der Spielfigur über die Eingabe von Befehlen in natürlicher Sprache, z. B. „Gehe in den Raum“, „Öffne Tür“ usw. Der Parser greift auf eine Datenbank aller manipulierbarer Objekte im Spiel zu und analysiert, welche Interaktion mit welchen Objekten der Spielwelt der Spieler mit seiner Befehlseingabe meinte.</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>Es gibt verschiedene Parser. Je nach der zu analysierenden Grammatik sucht man sich den passenden Parser aus. Durch die richtige Wahl resultieren bessere und akkuratere Ergebnisse. Durch den Einsatz von diversen Parsern ist es auch möglich, sich relevante Informationen aus den verschiedensten Quellen heranzuziehen. Angefangen von Börsen Daten, über Wetterinformationen und bis hin zu allem, was das Herz begehrt. Sowohl die Anwendungsentwicklung, als auch das Web ist heute ohne einen Parser kaum mehr vorstellbar.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/15/erklaerung-parser/">Parser &#8211; Die Macht der Datenverarbeitung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/15/erklaerung-parser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1094</post-id>	</item>
		<item>
		<title>Frameworks &#8211; Effiziente Entwicklung und eine höhere Qualität durch Rahmenwerke</title>
		<link>https://ceosbay.com/2022/11/14/erklaerung-frameworks/</link>
					<comments>https://ceosbay.com/2022/11/14/erklaerung-frameworks/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 14 Nov 2022 10:31:37 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Baukasten]]></category>
		<category><![CDATA[Bausteine]]></category>
		<category><![CDATA[Bibliotheken]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Content]]></category>
		<category><![CDATA[Coordination]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Effizienz]]></category>
		<category><![CDATA[Entwickeln]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Herangehensweise]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Klassen]]></category>
		<category><![CDATA[Komponenten]]></category>
		<category><![CDATA[Laufzeitumgebung]]></category>
		<category><![CDATA[Rahmenwerk]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=505</guid>

					<description><![CDATA[<p>Frameworks &#8211; Wie der Name schon sagt, handelt es sich dabei um Rahmenwerke oder ein Grundgerüst, die dem Programmierer die Bestimmung der&#160;grundlegenden&#160;Architektur der Software ermöglichen. Frameworks kommen in der Regel bei der objektorientierten Programmierung zum &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Frameworks &#8211; Effiziente Entwicklung und eine höhere Qualität durch Rahmenwerke</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Frameworks &#8211; Wie der Name schon sagt, handelt es sich dabei um Rahmenwerke oder ein Grundgerüst, die dem Programmierer die Bestimmung der&nbsp;grundlegenden&nbsp;Architektur der Software ermöglichen. Frameworks kommen in der Regel bei der objektorientierten Programmierung zum Einsatz. Sie umfassen eine Laufzeitumgebung, Bibliotheken und eine Reihe weiterer Komponenten, um die optimale Grundstruktur zur Verfügung zu stellen. Die Basisbausteine sind in konkrete und abstrakte Klassen unterteilt. Diese stehen einem Programmierer direkt zur Verfügung, was zu einer enormen Zeiteinsparung führt. Vor allem, da die Elemente nicht jedes Mal neu programmiert werden müssen.</p>



<h3 class="wp-block-heading">Ab wann werden Frameworks relevant?</h3>



<p>In der Regel definiert man als Programmierer oder als Team, zu Beginn eines Projekts, auf Basis der Anforderungen und der wirtschaftlichen Aspekte, die Herangehensweise. </p>



<p>Man hat immer die Auswahl, alles von Grund auf selber bzw. nativ zu programmieren, was zwar eine extrem individuelle Lösung darstellt und alles bis auf das kleinste Detail erstellt bzw. programmiert werden kann, ein CMS (Content Management System = Eine Software zur gemeinschaftlichen Erstellung, Bearbeitung, Organisation und Darstellung digitaler Inhalte zumeist zur Verwendung in Webseiten aber auch in anderen Medienformen) zu nutzen &#8211; Wobei ich Zweites in einem separaten Beitrag ausführlich thematisieren möchte (Übrigens basiert diese Webseite auch auf einem CMS. In diesem Fall handelt es sich um eine WordPress-Instanz). Und dann gibt es natürlich Frameworks. Wobei die Anforderungen an die Professionalität des Entwicklers bei dieser Herangehensweise relativ hoch angesiedelt sind. Allerdings muss man sagen, dass das hohe Maß an Flexibilität und die Verfügbarkeit ausgefeilter Struktur-Merkmale nicht unwesentlich sind.</p>



<h3 class="wp-block-heading">Welche Frameworks gibt es?</h3>



<p>Application Frameworks: Als Grundgerüst für die Programmierung von Anwendungen mit spezifischen Strukturen und Funktionen.</p>



<p>Web-Frameworks: Für die Entwicklung und Programmierung dynamischer Web-Sites und Web-Anwendungen.</p>



<p>Komponenten-Frameworks: Als Umgebungsrahmen für die Programmierung und Einbindung von Programm-Paketen.</p>



<p>Domain Frameworks: Als Rahmen für vordefinierte Problembereiche.</p>



<p>Coordination Frameworks: Zur Einrichtung von Geräte-Interaktionen bzw. für die Abfolge zu steuernder Einzelschritte.</p>



<p>Class Frameworks: Zur Zusammenfassung von „Klassen“ und „Methoden“, im Sinne einer optimalen Unterstützung des Programmierers bei der Implementierung seiner spezifischen Anwendungen.</p>



<p>Test Frameworks: Für das Testen von Programmen. Klassische Beispiele hierfür sind „<a href="https://www.selenium.dev" target="_blank" rel="noreferrer noopener">Selenium</a>“ für den Test von Webanwendungen und „JUnit“ für den Test von Modulen. <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium</a> habe ich in diesem <a href="https://ceosbay.com/2022/11/25/selenium/">Beitrag</a> thematisiert.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Eines der Vorteile ist, wie bereits erwähnt, dass Wiederkehrende Aufgaben schneller abgewickelt werden können, da im Framework bereits eine Reihe an Elementen vorprogrammiert sind. Diese können beliebig oft verwendet werden.&nbsp;Darüberhinaus beinhalteten Frameworks Basis-Bausteine, die auf die Design-Struktur eines Programms Einfluss nehmen. Sie bieten sich in der Regel bei speziellen Anforderungen  und individuellen Lösungen an, so kann das vom Framework zur Verfügung gestellte Programmier-Gerüst eine gute Wahl darstellen. Nichtsdestotrotz sollte man meines Erachtens nach bei &#8222;kleineren&#8220; Projekten die Nutzung von Content Management Systemen in Erwägung ziehen. Schlussendlich, hängt die Wahl der jeweiligen Herangehensweise und die Effizienz, in der das Projekt realisiert wird, häufig von der Qualifikation und dem Skillset eines jeden Programmierers ab.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Frameworks &#8211; Effiziente Entwicklung und eine höhere Qualität durch Rahmenwerke</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/14/erklaerung-frameworks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">505</post-id>	</item>
	</channel>
</rss>
