






Besser lernen dank der zahlreichen Ressourcen auf Docsity
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Prüfungen vorbereiten
Besser lernen dank der zahlreichen Ressourcen auf Docsity
Download-Punkte bekommen.
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Softwareentwicklung Skript Technische Informatik
Art: Skripte
1 / 12
Diese Seite wird in der Vorschau nicht angezeigt
Lass dir nichts Wichtiges entgehen!







Prof. Dr.-Ing. Martin Gräfe
Lernziele für heute
● (^) den Unterschied zwischen Top-Down- und Bottom-Up-Entwurf wiedergeben können, ● (^) wissen, was man unter einem Phasenmodell versteht und zwei Phasenmodelle benennen können, ● (^) den Unterschied zwischen imperativen und deklarativen Programmiersprachen beschreiben können, ● (^) die Begriffe prozedurale und objektorientierte Programmierung kennen.
Top-Down-Entwurf (2)
Bottom-Up-Entwurf
● (^) Ist das Kernstück eines Software-Projekts beispielsweise eine aufwändige Berechnung, beginnt man mit der Implementierung dieser Berechnung in einer konkreten Programmiersprache. ● (^) Wenn die eigentliche Berechnung funktioniert, ergänzt man nach und nach geeignete Ein- und Ausgabefunktionen und eine Benutzerschnittstelle.
● (^) Konzentration auf die Kernfunktionalität statt auf „schön gestaltete“ Benutzerschnittstellen.
● (^) Die Bedienung der Software ist möglicherweise zwar aus Sicht des Programmierers sinnvoll, aber für den Anwender unverständlich. Basiswissen!
Phasenmodelle der Software-Entwicklung
Anforderungsanalyse Entwurf Implementierung Test Pflichtenheft / Spezifikation Detailkonzept Programm Basiswissen!
Phasenmodelle (2)
Anforderungsanalyse Grobentwurf Feinentwurf Implementierung Abnahmetest Systemtest Integrationstest Modultest Anwendungsszenarien „Use Cases“ Testfälle Basiswissen!
Prolog-Beispiel: Einsteins 5-Häuser-Rätsel Es gibt fünf Häuser mit je einer anderen Farbe. In jedem Haus wohnt eine Person anderer Nationalität. Jeder Hausbewohner bevorzugt ein bestimmtes Getränk, raucht eine bestimmte Zigarettenmarke und hält ein bestimmtes Haustier. Keine der fünf Personen trinkt das gleiche Getränk, raucht die gleichen Zigaretten oder hält das gleiche Tier wie seine Nachbarn. Frage: Wem gehört der Fisch? Hinweise: (^) Der Brite lebt im roten Haus. (^) Der Schwede hält einen Hund. (^) Der Däne trinkt gern Tee. (^) Das grüne Haus steht direkt links neben dem weißen Haus. (^) Der Besitzer des grünen Hauses trinkt Kaffee. (^) Die Person, die Pall Mall raucht, hält einen Vogel. (^) Der Mann, der im mittleren Haus wohnt, trinkt Milch. (^) Der Besitzer des gelben Hauses raucht Dunhill. (^) Der Norweger wohnt im ersten Haus. (^) Der Marlboro-Raucher wohnt neben dem, der eine Katze hält. (^) Der Mann, der ein Pferd hält, wohnt neben dem, der Dunhill raucht. (^) Der Winfield-Raucher trinkt gern Bier. (^) Der Norweger wohnt neben dem blauen Haus. (^) Der Deutsche raucht Rothmans. (^) Der Marlboro-Raucher hat einen Nachbarn, der Wasser trinkt. Quelle: http://de.wikipedia.org/wiki/Prolog_%28Programmiersprache% Hintergrundwissen
Prolog-Beispiel: Einsteins 5-Häuser-Rätsel (2) (^) Prolog -Programm zur Lösung des Rätsels: :- initialization(main). erstes(E,[E|]). mittleres(M,[,,M,,]). links(A,B,[A,B|]). links(A,B,[|R]) :- links(A,B,R). neben(A,B,L) :- links(A,B,L);links(B,A,L). main :- X = [,,,,], member([rot,brite,,,],X), member([,schwede,,,hund],X), member([,daene,tee,,],X), links([gruen,,,,],[weiss,,,,],X), member([gruen,,kaffee,,],X), member([,,,pallmall,vogel],X), mittleres([,,milch,,],X), member([gelb,,,dunhill,],X), erstes([,norweger,,,],X), neben([,,,marlboro,],[,,,,katze],X), neben([,,,,pferd],[,,,dunhill,],X), member([,,bier,winfield,],X), neben([,norweger,,,],[blau,,,,],X), member([,deutsche,,rothmans,],X), neben([,,,marlboro,],[,,wasser,,],X), member([,N,,,fisch],X), write('Der '), write(N), write(' hat einen Fisch als Haustier.'), nl. :- initialization(main). erstes(E,[E|]). mittleres(M,[,,M,,]). links(A,B,[A,B|]). links(A,B,[|R]) :- links(A,B,R). neben(A,B,L) :- links(A,B,L);links(B,A,L). main :- X = [,,,,], member([rot,brite,,,],X), member([,schwede,,,hund],X), member([,daene,tee,,],X), links([gruen,,,,],[weiss,,,,],X), member([gruen,,kaffee,,],X), member([,,,pallmall,vogel],X), mittleres([,,milch,,],X), member([gelb,,,dunhill,],X), erstes([,norweger,,,],X), neben([,,,marlboro,],[,,,,katze],X), neben([,,,,pferd],[,,,dunhill,],X), member([,,bier,winfield,],X), neben([,norweger,,,],[blau,,,,],X), member([,deutsche,,rothmans,],X), neben([,,,marlboro,],[,,wasser,,],X), member([,N,,,fisch],X), write('Der '), write(N), write(' hat einen Fisch als Haustier.'), nl. → online ausprobieren unter: http://www.tutorialspoint.com/execute_prolog_online.php Hintergrundwissen