<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Swe on Wachter Space :rocket:</title>
    <link>https://wachter-space.de/tags/swe/</link>
    <description>Recent content in Swe on Wachter Space :rocket:</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 20 Feb 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://wachter-space.de/tags/swe/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Software Engineering 2 Lecture Summary</title>
      <link>https://wachter-space.de/2023/02/20/swt2/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/02/20/swt2/</guid>
      <description>&lt;p&gt;Software Engineering 2 (SWT II) is the follow-up lecture to &lt;a href=&#34;https://wachter-space.de/2019/06/19/swt1/&#34;&gt;Software Engineering 1&lt;/a&gt; and is held by Prof. Dr. Reussner. It focuses on software architecture, quality and development processes. The first part of this post is a lecture summary organized as self test questions for active recall. Below there are answers to the learning goals presented in the last lecture.&lt;/p&gt;&#xA;&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;d783e79d-b503-4fa5-a538-0145a09332f6&#34;&gt;Design &amp;amp; Realization&lt;/h1&gt;&lt;h2 class=&#34;&#34; id=&#34;01a4aaee-23d0-48e7-a4e2-8f72bd409edc&#34;&gt;Clean Coding&lt;/h2&gt;&lt;ul class=&#34;toggle&#34; id=&#34;2358d821-16e2-4838-abb2-97aed3f7e316&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Lehman’s first law&lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;a83ecd6a-6dd1-4f04-8213-788d81337ae1&#34;&gt;A system that is used will be changed&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatic Unit Test Generation from Formal Verification</title>
      <link>https://wachter-space.de/2023/01/06/formal_verification_unit_tests/</link>
      <pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/01/06/formal_verification_unit_tests/</guid>
      <description>&lt;p&gt;Presentation about: &lt;a href=&#34;https://wachter-space.de/fv-unit-testing&#34;&gt;Using stainless for Full Coverage Unit Test Generation&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rollenbasierte Modellierung für das Domain-driven Design</title>
      <link>https://wachter-space.de/2020/08/30/ddd_rbm/</link>
      <pubDate>Sun, 30 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/08/30/ddd_rbm/</guid>
      <description>&lt;p&gt;Dieser Blogpost ist meine Proseminararbeit mit dem Titel „Nutzbarkeit von Rollenbasierter Modellierung im Domain-driven Design“ aus dem Sommersemester 2020. Während das KIT noch einiges an der Vergabe der Proseminare verbessern sollte, habe ich im Nachhinein viel über wissenschaftliches Schreiben und Software-Entwurf gelernt. (Trotz kompliziertem und intransparentem Vergabesystem ist es letztendlich gefühlter Zufall, ob und welches Thema man bekommt.)&#xA;Es gab ein Peer-Review durch zwei andere Teilnehmende des Seminars, allerdings lagen die Themengebiete sehr weit auseinander. Die nicht optimale Formatierung dieses Blogposts liegt daran, dass ich die Quelldateien in zwei Schritten mit &lt;code&gt;pandoc&lt;/code&gt; umgewandelt habe.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Softwaretechnik 1 am KIT</title>
      <link>https://wachter-space.de/2019/06/19/swt1/</link>
      <pubDate>Wed, 19 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/06/19/swt1/</guid>
      <description>&lt;h2 id=&#34;hilfreichen-materialien-als-ich-die-vl-gehört-habe&#34; class=&#34;relative group&#34;&gt;hilfreichen Materialien (als ich die VL gehört habe) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#hilfreichen-materialien-als-ich-die-vl-geh%c3%b6rt-habe&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Ausführliche Zusammenfassung und Beispiele zu den SWT1 Themen: &lt;a href=&#34;https://github.com/adrianleh/SWT1_Revision&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;SWT1 Revision by example&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://lukasbach.com/edu/recaps&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Hier ist eine gute Zusammenfassung von Lukas Bach&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wachter-space.de/swt1.apkg&#34;&gt;Meine Anki Karten&lt;/a&gt;, &lt;a href=&#34;https://apps.ankiweb.net/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Was ist Anki?!&lt;/a&gt; (Passwortgeschützt, da Folien nicht unter freier Lizenz)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;mein-tutorium-im-ss20&#34; class=&#34;relative group&#34;&gt;mein Tutorium im SS20 &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#mein-tutorium-im-ss20&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Meine LaTeX-Folien: &lt;a href=&#34;https://gitlab.com/95p/swt-tutorium&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Gitlab&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Aus diesem Git Repo nehme ich einige meiner Beispiele zum Thema Design Pattern: &lt;a href=&#34;https://github.com/iluwatar/java-design-patterns&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Design patterns implemented in Java&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Später habe ich auch noch &lt;a href=&#34;https://www.sourcecodeexamples.net/p/core.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;sourcecodeexamples.net&lt;/a&gt; gefunden&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Gute Übung zum Thema Git: &lt;a href=&#34;https://learngitbranching.js.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Learn Git Branching&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Gute Übung zum Thema Parallelität: &lt;a href=&#34;https://deadlockempire.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Deadlock Empire&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;entwurfsmuster&#34; class=&#34;relative group&#34;&gt;Entwurfsmuster &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#entwurfsmuster&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/entwurfsmuster.png&#34; alt=&#34;Entwurfsmuster&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Programmieren am KIT</title>
      <link>https://wachter-space.de/2019/06/18/kit_prog/</link>
      <pubDate>Tue, 18 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/06/18/kit_prog/</guid>
      <description>&lt;p&gt;Im ersten Semester des Informatikstudiums am KIT besucht man üblicherweise die Vorlesung Programmieren. Diese soll grundlegende Konzepte der Programmierung am Beispiel von Java einführen.&lt;/p&gt;&#xA;&lt;p&gt;Hier ein paar Tipps von mir:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Benutzt git&lt;/li&gt;&#xA;&lt;li&gt;Schreibt viele Tests. Zum Beispiel durch Erweitern der Terminalklasse, sodass diese Textdateien einliest in denen Eingaben und erwartete Ausgaben stehen. Außerdem gibt es: Eine &lt;a href=&#34;https://codetester.ialistannen.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Onlinetestumgebung&lt;/a&gt; in der mehrere User Testfälle beitragen können.&lt;/li&gt;&#xA;&lt;li&gt;An vielen Stellen ist sinnvoll reguläre Ausdrücke zu verwenden. Diese werden schnell unübersichtlich. Mit dem Onlinetool &lt;a href=&#34;https://www.debuggex.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;DebuggEx&lt;/a&gt; kann man sie testen und visualisieren.&lt;/li&gt;&#xA;&lt;li&gt;Benutzt möglichst abstrakte Datentypen, also z.B. Collection und nicht LinkedList wo immer möglich.&lt;/li&gt;&#xA;&lt;li&gt;Trennt UI und Logik (Stichwort Entwurfsmuster Fassade), am besten in zwei Paketen.&lt;/li&gt;&#xA;&lt;li&gt;Benutzt keine Magic-Numbers und lagert Ausgabetext in extra Klassen aus. Man kann sich einen Checkstyle bauen, sodass so etwas erkannt wird.&lt;/li&gt;&#xA;&lt;li&gt;Verzichtet auf Plagiate, es findet auch eine automatisierte Prüfung statt.&lt;/li&gt;&#xA;&lt;li&gt;Es gibt keine extra Punkte für besonders „anspruchsvolle“ Lösungen, sondern nur Abzug für Fehler. Es ist deshalb zu empfehlen genau das zu machen, was in den Aufgaben steht und was an Hinweisen zu Stil und Aufbau in der Vorlesung, den Tutorien, dem Wiki, etc. gegeben wurde.&lt;/li&gt;&#xA;&lt;li&gt;Versucht möglichst viele Fehlerarten automatisch erkennen zu lassen, zum Beispiel durch Erweitern des Checkstyles oder durch den Code Inspector von IntelliJ.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Um einen Eindruck vom Umfang der Abschlussaufgaben zu bekommen hier meine Lösungen aus dem Wintersemester 18/19.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
