Software Engineering I (IB) Semesteraufgabe



Ähnliche Dokumente
Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Benutzerverwaltung Business- & Company-Paket

Was meinen die Leute eigentlich mit: Grexit?

Hilfe zur Urlaubsplanung und Zeiterfassung

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

Leichte-Sprache-Bilder

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Registrierung am Elterninformationssysytem: ClaXss Infoline

Tevalo Handbuch v 1.1 vom

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Professionelle Seminare im Bereich MS-Office

How to do? Projekte - Zeiterfassung

kreativgeschoss.de Webhosting Accounts verwalten

Bedienungsanleitung für den Online-Shop

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Kleines Handbuch zur Fotogalerie der Pixel AG

CodeSaver. Vorwort. Seite 1 von 6

Adminer: Installationsanleitung

HSR git und subversion HowTo

Anleitung Jahreswechsel

Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System

Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2

So richten Sie ihre s unter Outlook Express 5 / 6 ein

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Kurzeinführung Moodle

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Instruktionsheft für neue Webshop Hamifleurs

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

EINE PLATTFORM

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Zimmertypen. Zimmertypen anlegen

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Kurzanleitung OOVS. Reseller Interface. Allgemein

Neue Kennwortfunktionalität. Kurzanleitung GM Academy. v1.0

Kulturobjekte der Donau Das ContentManagementSystem (CMS)

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Kostenstellen verwalten. Tipps & Tricks

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Erstellen einer in OWA (Outlook Web App)

Stammdatenanlage über den Einrichtungsassistenten

Geben Sie in dem offenen Suchfeld den Namen Ihrer Einrichtung ein und klicken Sie auf Suchen.

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Step-By-Step Tutorial für den Domainrobot

Vorlesung Dokumentation und Datenbanken Klausur

Verwaltung von Lehrveranstaltungen mit moodle

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Das Persönliche Budget in verständlicher Sprache

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Lizenzen auschecken. Was ist zu tun?

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Hochschule Darmstadt Fachbereich Informatik

Wie benutzt man TortoiseSVN

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

3. GLIEDERUNG. Aufgabe:

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Anleitung für die Hausverwaltung

Die Post hat eine Umfrage gemacht

Benutzeranleitung Superadmin Tool

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

1. Einleitung Abfrage des COON-Benutzernamens Ändern des Initial-Passwortes Anmelden an der COON-Plattform...

transfer.net Erste Schritte mit transfer.net

Kapsch Carrier Solutions GmbH Service & Support Helpdesk

PC Software PPS-FM11 Windows Auswertung und Monitor BDE Betriebsdatenerfassung mit Terminals, RFID und SQL Client

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

ÜBUNG. Einführung in das IT- Projektmanagement WS 2012/13. Dr. The Anh Vuong

WEBSHOP Anleitung zum Kauf Ihres Online-Tickets Seite 1

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Grafstat Checkliste Internetbefragung

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Erste Einstellungen im Alumni System

Kurzanleitung Schneider Online Shop

SRM - Supplier Self Service (Lieferant) Author: Dennis Vater; Version: 01, January 1th, 2013

Einen Klick schneller zum Ziel! Ihre Onlinebewerbung bei der REWE Group

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Digitaler Semesterapparat

Elmeg IP290 Einrichtungsdokumentation. (Stand: Mai 2012) - DIE TELEFONANLAGE AUS DER CLOUD

M-net -Adressen einrichten - Apple iphone

:: Anleitung Hosting Server 1cloud.ch ::

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Studieren- Erklärungen und Tipps

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Fotostammtisch-Schaumburg

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

teischl.com Software Design & Services e.u. office@teischl.com

OutLook 2003 Konfiguration

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Einrichten eines Exchange-Kontos mit Outlook 2010

ClubWebMan Veranstaltungskalender

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Transkript:

Semesteraufgabe Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Wintersemester 2014/15 11.11.14 22:26 Entwerfen und erarbeiten Sie eine Softwarelösung für einen Pizzadienst. Die Arbeit ist in Gruppen von 2 Studenten durchzuführen. Dabei sind zwei Meilensteine zu erreichen. Im Folgenden werden zunächst Vorgehensweise und Ergebnisse und dann die funktionalen Anforderungen beschrieben. Vorbemerkung zu Git Die Abgaben erfolgen über ein Ihrer Gruppe zur Verfügung gestelltes Git- Repository mit dem Namen Semesteraufgabe-grpXX, wobei XX durch Ihre Gruppennummer aus Moodle ersetzt wird. In den Repositories finden Sie neben einem initialen Play-Projekt auch einen Feedback-Branch. Lesen Sie unter http://ob.cs.hm.edu/misc/git.html unter der Übeschrift Feedback in den Repositories durch, was Sie damit machen sollen. Lesen Sie außerdem die Datei README.txt und befolgen Sie die Anweisungen dort. Ein Meilenstein ist nur dann abgegeben, wenn das Repository mit dem Tag MilestoneX (X aus {1,2}) versehen ist und bis zum angegebenen Termin in das Git-Repository auf dem Server gepusht wurde. Die Abgabe muss im master-branch sein. Sie können bei Bedarf für sich beliebige andere Branches (außer feedback) anlegen. 1

Projektvorgehen und Meilensteine Es sind die folgenden Projektphasen vorgesehen: Phase 1: Teambildung, Projektplanung, erste Version der Web-Applikation, erste Version der Dokumente. Abgabe 28.11.14, 23:59 Uhr im Git-Repository mit dem Tag Milestone1 Phase 2: Zweite Projektiteration. Abgabe 15.01.15, 23:59 Uhr im Git- Repository mit dem Tag Milestone2 Phase 1 Ziel der Phase 1 ist es, das Projektteam zu organisieren, eine erste Projektplanung durchzuführen und sich technisch und fachlich einzuarbeiten. Meilenstein 1 Zum Abschluss von Phase 1 (Meilenstein 1) sind folgende Artefakte abzugeben: 1. Statusbericht: a. was wurde schon gemacht, wo steht das Projekt, was kann der Prototyp (siehe 3.)? b. Zuordnung Verantwortlichkeiten im Team (wer macht was?) c. Projektplan für die Restlaufzeit des Projekts (Aktivitäten, Zuordnung zu Teammitgliedern, Zeiträume (Aktivitäten wochenweise herunterbrechen)) d. Risikoanalyse (welche Risiken sind in dem Projekt erkennbar (zeitliche Risiken, technische Risiken, Risiken im Team ) und welche Gegenmaßnahmen sind geplant? e. Aufwandsnachweis (tageweise Aufstellung der Arbeiten der einzelnen Mitarbeiter). 2. Lastenheft 3. Lauffähiger Prototyp (die Funktionalität des Prototyps bleibt Ihnen überlassen, er muss jedoch mindestens die Preisberechnung bei Bestellungen enthalten) Die Artefakte von Meilenstein 1 sind im zur Verfügung gestellten Git-Repository abzugeben. Folgendes muss dabei gelten: Der Prototyp ist ein Scala-Play-Projekt das top-level im Git-Repository liegt und mit activator run gestartet werden kann. Alle Dokumente (Statusbericht, Lastenheft etc.) müssen als Plain-Text (Dateiendung.txt, formatiert mit Markdown) oder als PDF im Unterverzeichnis doc 2014 Oliver Braun 2

liegen. Die Dokumente aus denen Sie das PDF generiert haben (Office etc.) können in einem anderen Ordner oder in einem Unterverzeichnis von doc liegen. Nicht aber direkt in doc. Der abzugebende Stand im Git-Repository hat den Tag Milestone1. Phase 2 Erarbeiten der endgültigen und vollständigen Projektergebnisse. Projektabschluss (Meilenstein 2) Zum Abschluss von Phase 2 sind folgende Dokumente sowie die lauffähige Web- Applikation im Repository abzugeben: 1. Statusbericht: a. Kurze Zusammenfassung und Überblick über das Projekt b. Hinweise auf Einschränkungen, Hinweise zur Benutzung, etc. (falls vorhanden) c. Aufwandsnachweis (Gesamtprojekt) d. Rückblickende Analyse ( Post-Mortem ): 2. Pflichtenheft i. Was lief gut? Was lief schlecht? ii. Was würden wir das nächste Mal besser machen? iii. Feedback an den Auftraggeber zur Semesteraufgabe das Pflichtenheft muss mindestens drei UML-Diagramme verschiedenen Typs enthalten muss den unten angegebenen Funktionsumfang spezifizieren; die Spezifikation muss auch angeben welche Funktionen im Prototyp realisiert sind und welche nicht. 3. Lauffähige Web-Applikation. a. Die Web-Applikation muss mindestens den Minimalumfang der 1. Version umfassen (siehe unten) b. Für eine sehr gute Note müssen einige Funktionen der 2. Version implementiert werden. c. Die Web-Applikation wird in einer kurzen Vorführung im Rahmen des Praktikums vorgestellt. Dabei muss das ganze Team anwesend sein. Darüber hinaus eine Erklärung auszudrucken und ausgefüllt und unterschrieben am 16.01.14 in der letzten Vorlesung abzugeben. Das PDF-Formular für die Erklärung finden Sie in Moodle. 2014 Oliver Braun 3

Der Projektabschluss ist per Git-Repository zum o.a. Termin mit dem Tag Milestone2 versehen abzugeben. Regeln Ziel des Projektes ist es ein professionelles Projektvorgehen zu üben und qualitativ hochwertige Ergebnisse abzuliefern. Technische und optische Highlights sind erlaubt (und der Dozent freut sich darüber), gehen aber nur untergeordnet in die Bewertung ein. Bewertungskriterien: Professionelles und gut dokumentiertes Projektvorgehen (Statusbericht) Klarheit und Korrektheit der Dokumentation Korrektheit der implementierten Lösung Gute Programmstruktur, sinnvoll und gut kommentierter Code Qualität (Robustheit gegenüber Fehlersituationen; übersichtlicher und verständlicher Quellcode) Spezifikation und Realisierung von Funktionen, die über den Minimalumfang hinausgehen. Die Aufgabe ist als Gruppenarbeit in Gruppen von 2 Teilnehmern gem. Einteilung in Moodle zu lösen. Offensichtlich abkopierte Lösungen werden als nicht bestanden gewertet. Fragen zum Verständnis der Aufgabe dürfen (sollen!) im Moodle-Forum oder zu den Praktikumsterminen gestellt werden. Verspätete Abgabe eines Meilensteins (auch schon Meilenstein 1!) führt zu Notenabzug von 0,5 pro angefangene Woche. Die Aufgabe bildet die Studienarbeit zur Veranstaltung Software Engineering 1. Die Studienarbeit wird zu 40% bewertet. Die Arbeit muss mit bestanden gewertet werden damit die Gesamtveranstaltung Software Engineering 1 als bestanden gewertet werden kann. Funktionale Anforderungen Wir sind ein kleines und innovatives Softwarehaus und wir haben einen neuen Auftrag bekommen. Um die Ecke will ein neuer Pizzadienst aufmachen, der eine Software zur Auftragsabwicklung benötigt. 2014 Oliver Braun 4

Im Pizzashop werden verschiedene Produkte angeboten (z.b. Pizza Margerita, Pizza Funghi, Cola, Tiramisu). Diese Produkte sind nach Kategorien eingeteilt (z.b. Pizza, Getränke, Desserts). Kunden können diese Produkte online bestellen. Dazu können sich Kunden auf der Seite registrieren. Die Kunden sollen sich auch über ihre bisherigen Bestellungen informieren können. Dabei soll auch der bisherige Gesamtumsatz ausgegeben werden. Die Pizzashop-Mitarbeiter können zusätzliche Funktionen nutzen: Produkte verwalten: Anlegen, Löschen, Anzeigen, Ändern (Löschen nur, wenn keine Bestellung zu dem Produkt vorhanden ist), Produkte können aus dem Sortiment herausgenommen werden, ohne dass sie gelöscht werden. Kunden verwalten: Kunden sollen angelegt, angezeigt, geändert und gelöscht werden können (Löschen jedoch nur, wenn der Kunde noch keine Bestellungen getätigt hat). Auswertungen: Den Mitarbeitern werden verschiedene Auswertungen zur Verfügung gestellt: alle Bestellungen nach Datum sortiert anzeigen (mit Gesamtumsatz), alle Bestellungen pro Kategorie anzeigen (mit Umsatz und Durchschnittsbestellwert für diese Kategorie), alle Bestellungen in einem Zeitraum anzeigen (mit Umsatz in diesem Zeitraum), und ggf. andere Die Preisberechnung für eine Bestellung ist nicht so ganz einfach. Grundidee: Ein Produkt kann eine Größe (Size) haben, diese wird in Units gemessen. Zum Beispiel kann eine Pizza einen Durchmesser (Size) in cm (Unit) haben, eine Cola eine Flaschengröße (Size) in Litern (Unit). Jede Unit hat einen Preis. Zusätzlich können Produkte noch Extras haben (z.b. Pizza: extra Käse, extra Soße), Jedes Extra kostet einen zusätzlichen Standardpreis. Beispiel: Pizza Capriciosa: Kostet pro cm 0,5, jedes Extra auch 0,5. Eine Bestellung mit 2 Pizzen à 20 cm Durchmesser und je 2 Extras kostet 22. Zusätzlich soll bei einer Bestellung auch die geschätzte Lieferzeit berechnet werden. Diese errechnet sich aus der Distanz zum Kunden. Die Pizzabackzeit ist 10 min. Pro Kilometer kommen 2 min Fahrzeit hinzu. Es werden nur Kunden bis zu einer Distanz von 20 km bedient. Kunden und Mitarbeiter verwalten wir der Einfachheit halber in einer gemeinsamen Tabelle. Mitarbeiter werden durch ein Attribut gekennzeichnet. Wir haben mit dem Auftraggeber folgenden Plan erarbeitet: In einer ersten Version wollen wir nur minimale Funktionalität liefern: 2014 Oliver Braun 5

Kategorien müssen noch nicht über eine Benutzerschnittstelle verwaltet werden können (sondern nur direkt im Datenbestand (Datenbank)) Kunden und Produkte müssen nicht gelöscht werden können Ein sicheres Login-Verfahren mit Passwort ist nicht notwendig: Kunden und Mitarbeiter wählen aus einer Drop-Down-Liste aus, in welcher Rolle sie gerade arbeiten. Ein Mitarbeiter mit Namen Padrone soll standardmäßig eingerichtet sein. Pro Bestellung kann nur ein Produkt bestellt werden (dieses aber in größerer Anzahl) Die Lieferzeitberechnung ist noch nicht notwendig Ein Status der Bestellung muss noch nicht mitgeführt werden (z.b. bestellt, in Lieferung, ausgeliefert, storniert) nur wenige, einfache Auswertungen Eine zweite Version soll dann die Einschränkungen der ersten Version nicht mehr haben und ggf. noch weitere sinnvolle Funktionen anbieten. Wenden Sie alles an was Sie über gute Programmierung bisher gelernt haben. (Sichtbarkeiten, Separation of Concerns, MVC-Architektur, Dokumentation, ) Ergänzende Angaben zur Semesteraufgabe. Terminologie: Version 0.5 entspricht Meilenstein 1 Version 1 entspricht Meilenstein 2 und damit endgültige Minimalversion, damit ist maximal die Note 2,0 möglich Version 2 mögliche zukünftige Programmversion bzw. zusätzliche Features daraus für eine sehr gute Note, je nach Aufwand müssen mindestens noch 2 bis 3 zusätzliche Use Cases umgesetzt werden um in den Notenbereich 1,3/1,0 zu kommen. Minimalfunktionalität für Version 1 (Meilenstein 2): Login über Dropdown-Liste (ohne Passwortabfrage). Ein Kunde mit Namen Emil und ein Mitarbeiter mit Namen Padrone soll standardmäßig eingerichtet sein. Unterscheidung Mitarbeiter/Kunde bei der Nutzung des Dienstes. Kunden können sich selbst registrieren Kunden können Produkte im Sortiment bestellen (inkl. Preisberechnung und Lieferzeitangabe); pro Bestellung kann nur ein Produkt bestellt werden (dieses aber in größerer Anzahl) Kunden können ihre eigenen Bestellungen anschauen (inkl. Gesamtsumme über alle Bestellungen) Mitarbeiter können Produkte anzeigen Mitarbeiter können User verwalten (anzeigen, hinzufügen, ändern) Mitarbeiter können Bestellungen ansehen nach folgenden Kriterien: 2014 Oliver Braun 6

Alle Bestellungen anzeigen (mit Angabe von Gesamtumsatz und Durchschnittswert aller Bestellungen) Alle Bestellungen pro Kunde anzeigen (mit Gesamtumsatz und Durchschnittswert für diesen Kunden) Funktionalität Version 2 (zusätzlich zu Minimalfunktionalität Version 1): Produkt-Verwaltung (anzeigen, hinzufügen, ändern) Kategorien-Verwaltung Löschen von Kunden und Produkten (Löschen jedoch nur, wenn es noch keine zugehörige Bestellung gibt, andernfalls nur deaktivieren) Login-Verfahren mit Name und Passwort Pro Bestellung können mehrere Produkte bestellt werden Status der Bestellung mitführen (z.b. bestellt, in Lieferung, ausgeliefert, storniert) Weitere Auswertungen über Bestellungen Weitere Funktionen nach eigenem Wunsch Ihr Milestone 2 muss die Minimalfunktionalität (== Version 1) enthalten. Sie können Ihre Version 1 durch zusätzliche Funktionalität aus Version 2 anreichern und dadurch Ihre Note verbessern. Zum Pflichtenheft: Das Pflichtenheft soll die Funktionalität von Version 1 und 2 spezifizieren. Geben Sie dabei jeweils an, welche Funktionen Sie in Ihrer Version 1 implementiert haben und welche nicht. Das Pflichtenheft muss wenigstens 3 UML-Diagramme enthalten. Das Pflichtenheft soll maximal 8 Use Cases definieren (wenn Sie mehr Use Cases benötigen, dann konzentrieren Sie sich auf die 8 wichtigsten). Das Pflichtenheft soll maximal 10 Seiten lang sein. 2014 Oliver Braun 7