{"id":591,"date":"2019-08-14T21:20:58","date_gmt":"2019-08-14T19:20:58","guid":{"rendered":"https:\/\/fsr.cs.uni-potsdam.de\/?p=591"},"modified":"2019-08-14T21:20:58","modified_gmt":"2019-08-14T19:20:58","slug":"software-engineering-ii-2013","status":"publish","type":"post","link":"https:\/\/fsr.cs.uni-potsdam.de\/?p=591","title":{"rendered":"Software Engineering II 2013"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"aufgabe_1_software-architekturen_10_punkte\">Aufgabe 1 [Software-Architekturen] (10 Punkte)<\/h1>\n\n\n\n<ol class=\"wp-block-list\"><li> Nennen sie zwei nichtfunktionale\nSoftware-Anforderungen und erl\u00e4utern sie mit welchen\nArchitekturentscheidungen sie diese erreichen k\u00f6nnen.\n<\/li><li> Inwiefern kann man von einem\nexpliziten Architekturentwurf in der Softwareentwicklung profitieren.\nNennen sie mindestens zwei Vorteile eines expliziten\nArchitekturentwurfs.\n<\/li><li> Die Architektur Integrierte\nEntwicklungsumgebungen (IDE) wie z.B. Eclipse oder NetBeans folgt oft\nweitgehend dem Style des Repositories. Erl\u00e4utern sie weshalb.\n<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_2_design_patterns_5_punkte\">Aufgabe 2 [Design Patterns] (5 Punkte)<\/h1>\n\n\n\n<p>\nEine Pizzeria bietet einen Online-Bestellservice an. Jede Pizza hat\neinen Namen, einen Preis und eine Liste von Zutaten. Man kann die\nZutatenliste der Pizza als String abrufen und ihren Preis abfragen.\n<\/p>\n\n\n\n<p>\nEs werden verschiedene Pizza-Sorten angeboten, mindestens eine Salami-\nund eine Gem\u00fcsepizza. Jede Pizza hat Tomatensauce und K\u00e4se als Zutaten.\nDie weiteren Zutaten erh\u00f6hen den Preis.\n<\/p>\n\n\n\n<p>\nErstellen Sie ein objektorientiertes Entwurfsmodell mit Hilfe des\nDecorator-Patterns. Sie k\u00f6nnen entweder ein UML-Klassendiagramm oder\nJava-Klassen angeben, wobei die Methoden nicht implementiert sein\nm\u00fcssen.\n<\/p>\n\n\n\n<p>\n<strong>BONUS:<\/strong> Notieren sie vollst\u00e4ndigen Java-Code, der ihren Entwurf implementiert.\n<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_3_it-projektmanagement_10_punkte\">Aufgabe 3 [IT-Projektmanagement] (10 Punkte)<\/h1>\n\n\n\n<ol class=\"wp-block-list\"><li> Leitlinien im Personalmanagement lasse sich durch die Schlagworte <em>Konsistenz<\/em>, <em>Respekt<\/em>, <em>Inklusion<\/em> und <em>Aufrichtigkeit<\/em> beschreiben. Nennen sie vier Methoden, die sie als IT-Projektmanager ergreifen, um diesen Leitlinien gerecht zu werden.\n<\/li><li> Die Function-Points-Analyse und\nCocomo sind zwei Verfahren zur Aufwandsabsch\u00e4tzung f\u00fcr die Planung von\nSoftware-Projekten. Erl\u00e4utern sie die grundlegenden Ideen \/ Prinzipien\neines dieser beiden Verfahren.\n<\/li><li> Nennen sie je ein Beispiel f\u00fcr Projektrisiken, Produktrisiken und Gesch\u00e4ftsrisiken in IT-Softwareprojekten.\n<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_4_enterprise-applications_15_punkte\">Aufgabe 4 [Enterprise-Applications] (15 Punkte)<\/h1>\n\n\n\n<ol class=\"wp-block-list\"><li> Was verstehen sie unter dem Ph\u00e4nomen <em>Inconsistent Read<\/em>?\n<\/li><li> Erkl\u00e4ren sie, was Read-Locks und\nWrite-Locks sind und unter welchen Vorbedingungen sie bei\npessimistischem Locking vergeben werden k\u00f6nnen.\n<\/li><li> Beschreiben sie ein Szenario, in dem ein Deadlock auftritt.\n<\/li><li> Nenn und erl\u00e4utern sie zwei\nStrategien, um mit der Problematik umzugehen, dass in Enterprise\nApplication Deadlocks auftreten k\u00f6nnen.\n<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_5_testen_15_punkte\">Aufgabe 5 [Testen] (15 Punkte)<\/h1>\n\n\n\n<ol class=\"wp-block-list\"><li> Erl\u00e4utern sie zwei Methoden zur Software-Integration.\n<\/li><li> Nennen sie zwei Merkmale von Auslieferungstests.\n<\/li><li> Notieren sie die Aufrufe (Calls) in\neinem Unittest f\u00fcr die folgende Methode, der das Kriterium eines\nMehrfachbedingungs\u00fcberdeckungstests, (C<sub>3<\/sub>) erf\u00fcllt.\n<\/li><li> Weshalb kann man f\u00fcr die Methode <code>methodUnderTest()<\/code> sogar einen Pfad\u00fcberdeckungstest schreiben?\n<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>public int methodUnderTest(int a, int b) {\n  if (a==0 || (b==0 &amp;&amp; a+b>0))\n    return 0;\n  else\n    return 1;\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_6_it-konferenzen_3_punkte\">Aufgabe 6 [IT-Konferenzen] (3 Punkte)<\/h1>\n\n\n\n<p>\nErl\u00e4utern sie den prinzipiellen Ablauf einer Konferenz-Session mit zwei Vortr\u00e4gen.\n<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_7_spezifikation_und_analyse_von_contracts_2_punkte\">Aufgabe 7 [Spezifikation und Analyse von Contracts] (2 Punkte)<\/h1>\n\n\n\n<p>\nNennen sie die (umgangssprachlich formulierten) Namen von mindestens zwei Modalit\u00e4ten, die die <em>Deontic Logic<\/em> nutzt, um Vertr\u00e4ge zu formalisieren.\n<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_8_das_statische_typsystem_20_punkte\">Aufgabe 8 [Das statische Typsystem] (20 Punkte)<\/h1>\n\n\n\n<p>\nDie Sprache <strong>SIGNED<\/strong> ist folgenderma\u00dfen definiert.\n<\/p>\n\n\n\n<p>\n<strong>Syntax<\/strong> (in erweiterter BNF):\n<\/p>\n\n\n\n<p>\n<code>u ::= 0 | [1-9][0-9]*<\/code><br \/>\n\n<code>n ::= u | -u<\/code><br \/>\n\n<code>var ::= [a-z][a-z]*<\/code><br \/>\n\n<code>e ::= n | var | (e+e) | -e<\/code>\n<\/p>\n\n\n\n<p>\n<strong>Typsprache<\/strong> (in BNF):\n<\/p>\n\n\n\n<p>\n<code>t ::= int<\/code>\n<\/p>\n\n\n\n<p>\n<strong>Typregeln<\/strong>:\n<\/p>\n\n\n\n<p>\nF\u00fcr jede Typumgebung <em>A<\/em> gelte:\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/img5aa9401a3872910970bc4c5e5e6eb155.png\" alt=\"$ \\texttt{[INT]}\\frac{}{A~\\vdash~n:~\\texttt{int}} $\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/img71672c9c05e047d4e09513c27b22c5fb.png\" alt=\"$ \\texttt{[VAR]}\\frac{x:~t\\in A}{A~\\vdash~x:~t}$\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/img43cdb1e9cddad0a77e671c70a6173688.png\" alt=\"$ \\texttt{[ADD]}\\frac{A~\\vdash~e_1:~\\texttt{int}~~~~~A~\\vdash~e_2:~\\texttt{int}}{A~\\vdash~(e_1+e_2):~\\texttt{int}}$\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/img8694328ba6032be09afb9a352af75f1a.png\" alt=\"$ \\texttt{[INV]}\\frac{A~\\vdash~e:~\\texttt{int}}{A~\\vdash~-e:~\\texttt{int}}$\"\/><\/figure>\n\n\n\n<p>\n<strong>Berechnungsregeln:<\/strong>\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/imgfd5367295820cd1b26075b25c644329e.png\" alt=\"$ \\texttt{[B-ADD]}\\frac{}{(n_1+n_2)~\\rightarrow~m}~~\\texttt{mit}~~\\lsem m\\rsem_N=\\lsem n_1\\rsem_N+\\lsem n_2\\rsem_N$\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/img8649922182010dcab7ceb9b9fb20481e.png\" alt=\"$ \\texttt{[B-SIGN]}\\frac{e~\\rightarrow~e'}{-e~\\rightarrow~-e'}$\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/img1da451558bf13ee9c6459adc045ec68b.png\" alt=\"$ \\texttt{[B-SIMPL]}\\frac{}{--e~\\rightarrow~e}$\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/imgf24b50765c75142d5b4a06518528c2cd.png\" alt=\"$ \\texttt{[B-ADD-L]}\\frac{e_1~\\rightarrow~e'_1}{(e_1+e_2)~\\rightarrow~(e'_1+e_2)}$\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/fara.cs.uni-potsdam.de\/lib\/exe\/fetch.php?media=wiki:latex:\/imgecff530050567673e74eac1d5e2ce4d8.png\" alt=\"$ \\texttt{[B-ADD-R]}\\frac{e_1~\\rightarrow~e'_1}{(v+e)~\\rightarrow~(v+e')}$\"\/><\/figure>\n\n\n\n<p>\nwobei <em>v<\/em> ein Wert ist.\n<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li> Welche der folgenden Ausdr\u00fccke sind in <strong>SIGNED<\/strong> syntaktisch korrekt? (Ankreuzen!)\n<ul><li> -(m-p)\n<\/li><li> (17+(m+ -2))\n<\/li><li> \u2013(p+2)\n<\/li><li> (p+(p+<code>false<\/code>))\n<\/li><\/ul>\n<\/li><li> Es sei die Variable <code>m<\/code> wie folt definiert und initialisiert:<br \/>\n<br \/>\n<code>int m = 4;<\/code><br \/>\n<br \/>\nNotieren sie die dadurch definierte Typumgebung!\n<\/li><li> Weisen sie die Typkorrektheit des Ausdrucks  mit Hilfe eines Herleitungsbaums nach.\n<\/li><li> Wird die Information der\nTypkorrektheit zur Compile-Zeit oder zur Laufzeit gewonnen? Welche\nFehler sind dadurch zu welchem Zeitpunkt ausgeschlossen?\n<\/li><li> Werten sie diesen Ausdruck <em>e<\/em> mit Hilfe der Berechnungsregeln aus und rechtfertigen sie alle Berechnungsschritte mit jeweils einem Herleitungsbaum.\n<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Aufgabe 1 [Software-Architekturen] (10 Punkte) Nennen sie zwei nichtfunktionale Software-Anforderungen und erl\u00e4utern sie mit welchen Architekturentscheidungen sie diese erreichen k\u00f6nnen. Inwiefern kann man von einem expliziten Architekturentwurf in der Softwareentwicklung profitieren. Nennen sie mindestens zwei Vorteile eines expliziten Architekturentwurfs. Die Architektur Integrierte Entwicklungsumgebungen (IDE) wie z.B. Eclipse oder NetBeans folgt oft weitgehend dem Style des <a class=\"more-link\" href=\"https:\/\/fsr.cs.uni-potsdam.de\/?p=591\">weiterlesen&#8230;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-591","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/posts\/591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=591"}],"version-history":[{"count":0,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/posts\/591\/revisions"}],"wp:attachment":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}