Pensionslücken- Berechnungssystem Peter BERAN 0200945 Alexander FRICK 0206513 Gernot HABEL 0205554 Andreas MERTL 0202822 Philipp WEINHOFER 0206311
Use-Case Diagramm NEU: XML/DB ändern
Zustandsdiagramm Pensionsberechnung
Zustandsdiagramm Admin - XML - Ändern
Zustandsdiagramm Admin – DB - Ändern
Klassendiagramm WebClient
Klassendiagramm WebAdmin
Klassendiagramm WebService
Klassendiagramm Kommunikation
Gesamtsicht
XML - Datenstruktur
Pseudocode getPensionsluecke { get Witwenpension, BUPension, Ausgleichszulage aus Stub_xml wenn (Witwenpension) pension = berechneWitwenpension() else { wenn (BUPension) pension = berechneBUPension() else pension = berechnePension() } Pension wird auf Ausgleichszulage aufgewertet (falls Anspruch besteht) Nettopension() get zusatzpension aus Stub_xml überprüfe zusatzpension auf Maximalbetrag Pensionslücke = Gehalt – Pension – Freiwillige Zusatzpension (muss aber positiv sein) Schreibe alle Daten ins XML und liefere an Client zurück
Pseudocode – Pensionsberechnung 1 berechnePension() { //brutto get gewuenschtes_Pensionsantrittsalter aus Stub_xml get bisherigeBeitragsmonate, Ersatzzeiten aus Stub_XML Beitragsmonate=bisherigeBeitragsmonate + (Monate zischen Pensionsantritt und jetzt) Versicherungszeiten = Beitragsmonate + Ersatzzeiten wenn gewuenschtes_Pensionsantrittsalter >= Pensionsantrittsalter { Pension = getBemessungsgrundlage() * Steigerungsbetrag() } else { wenn (Beitragszeit < benötigteVersicherungsdauerFuerHacklerregelung oder check Geburtsdatum für Hacklerregelung aus DB!=OK) { get Verminderung aus DB Verminderung = Verminderung * (Pensionsantrittsalter - gewuenschtes_Pensionsantrittsalter) (in Jahren) Verminderung darf max maxVerminderung sein Pensions= getBemessungsgrundlage() * Steigerungbetrag() * (1 - Verminderung) }
Pseudocode – Pensionsberechnung 2 else { //Hacklerregelung get Pensionsantrittsalter für Hacklerregelung aus DB wenn gewuenschtes_Pensionsantrittsalter >= PensionsantrittsalterHackler { Pension= getBemessungsgrundlage() * SteigerungsbetragHackler() } get Verminderung aus DB Verminderung = Verminderung * (PensionsantrittsalterHackler - gewuenschtes_Pensionsantrittsalter) (in Jahren) Verminderung darf max 15 % sein Pensions = getBemessungsgrundlage() * SteigerungbetragHackler() * (1 - Verminderung) get Geburtsdatum_der_Kinder aus Stub_xml get Kinderzuschuss, LebensjahrKinderzuschuss aus DB für jedes Kind wo Alter kleiner als Lebensjahr ist (zum Zeitpunkt des Pensionsantritts) gibt es Kinderzuschuss get Höchstpension aus DB wenn Pension > Höchstpension, Pension = Höchstpension back
Pseudocode - Bemessungsgrundlage getBemessungsgrundlage() { get Geschlecht, Geburtsdatum, Gehalt, Anzahl_Kinder aus Stub_xml get Bemessungszeitraum, RichtsatzKindererziehung, Verkürzung_BMZ_Kind aus DB get Pensionsantrittsalter aus DB wenn weiblich, verringere Bemessungszeitraum um Verkürzung_BMZ_Kind pro Kind Bemessungszeitraum muss mindestens 180 Monate sein Berechne ungefähres Gehalt bei Pensionsantritt Berechne Durchschnittswert für Bemessungsgrundlage aufgrund von Alter, Bemessungszeitraum, Gehalt, Pensionsantrittsalter } back
Pseudocode - Steigerungsbetrag get Steigerungsbetrag, maxSteigerungsbetrag, maxBeitragsjahre_bisMaxSteigerungsbetrag aus DB Gesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten/12 (in Jahren) wenn Versicherungszeiten < maxBeitragsjahre_bisMaxSteigerungsbetrag { Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetrag sein } SteigerungsbetragHackler() { back
Pseudocode - Nettopension get Krankenversicherung, KrankenversicherungFürEhepartner, maxPensionOhneLohnsteuer, maxPensionOhneLohnsteuerFürAlleinverdiener aus DB get Alleinverdiener, mitversichert aus Stub_xml wenn alleinverdiener { wenn (Pension > maxPensionOhneLohnstuerFuerAlleinverdiener) Steuern abziehen } else { wenn (Pension > maxPensionOhneLohnstuer) Steuern abziehen Pension = Pension * (1-Krankenversicherung) wenn Ehepartner mitversichert Pension = Pension * (1-KrankenversicherungFürEhepartner) back
Pseudocode - Witwenpension berechneWitwenpension() { HöchsprozentsatzWitwenpension, mindWitwenpension Prozentsatz = 70 - 30 * (BRGL der Hinterbliebenen / BRGL des Verstorbenen) Prozentsatz darf höchstens HöchsprozentsatzWitwenpension sein Witwenpension = Prozentsatz * BRGL des Verstorbenen Eigenpension = berechnePension() oder berechneBUPension() wenn (Witwenpension + Eigenpension < mindWitwenpension { Witwenpension = mindWitwenpension - Eigenpension Wenn (Witwenpension/BRGL des Verstorbenen *100 > HöchsprozentsatzWitwenpension) { Witwenpension = HöchsprozentsatzWitwenpension * BRGL des Verstorbenen } Pension = Witwenpension + Eigenpension back
Pseudocode – BU Pension berechneBUPension() { Get PensionsantrittalterFrühpension aus DB Wenn gewuenschtesPensionsantrittsalter < PensionsantrittalterFrühpension { Versicherungszeit = Versicherungszeit + PensionsantrittalterFrühpension - gewuenschtesPensionsantrittsalter } Gesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten (in Jahren) Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetragBU sein BU Pension = Bemessungsgrundlage * Gesamtsteigerungsbetrag back
Danke für die Aufmerksamkeit! Das PLBS-Team