Od pomysłu do serwisu

Model

Aby wyliczyć efektywną stopę procentową, potrzebujemy przede wszystkim informacji o udzielonym kredycie. Musimy znać jego wysokość i datę udzielenia, więcej informacji nie będzie nam potrzebne. Istotna jest oczywiście wielkość efektywna udzielonego kredytu, tj. pomniejszona o ewentualne prowizje i odsetki płacone z góry. Ponadto potrzebujemy planu spłat. Zgodnie ze wzorem na RRSO zamieszczonym w ustawie, przy każdej spłacie musimy znać jej dokładną wysokość i datę wpłaty. Ta pierwsza zostanie umieszczona w liczniku elementu sumy, ta ostatnia posłuży nam do obliczenia odcinka roku (wykładnika potęgi wyrazu zamieszczonego w mianowniku elementu sumy).

W modelu potrzebujemy więc dwóch klas: "CKredyt" i "CSpłata", reprezentujących odpowiednio: kredyt i pojedynczą spłatę. Zadaniem obiektów pierwszej klasy "CKredyt" będzie wyliczanie rzeczywistej, rocznej stopy oprocentowania. Musi on też posiadać listę spłat, którą wyodrębnimy do osobnej klasy "CSpłaty". Lista ta powinna mieć funkcję dodawania elementu (pojedynczej spłaty), usuwania go oraz przeglądania sekwen- cyjnego elementów. Obiekt ostatniej z naszych klas, klasy "CSpłata" reprezentuje jedną spłatę - element sumy ze wzoru podanego w ustawie. Klasa ta powinna więc podać wartość takiego elementu przy zadanej stopie procentowej i dacie udzielenia kredytu.

Model klas zapisany w uproszczonej notacji UML przedstawia rys. 1.

Rys.1

Rys.1

Obiekt klasy "CKredyt" zawiera dokładnie jeden obiekt klasy "CSpłaty", który zawiera zero lub więcej obiektów klasy "CSpłata".

Rozpiszmy zatem po kolei atrybuty (cechy) i metody (funkcjonalność) klas w sposób bardziej szczegółowy. W przypadku atrybutów dodamy typ, w przypadku metod: parametry i typ zwracany. Założymy istnienie trzech bazowych typów: Money (do przechowywania kwot), Date (do przechowywania dat), Integer (do indeksowania listy spłat) oraz Float (do przechowywania stopy procentowej).

CKredyt

atrybuty

Kwota: Money

DataUdzielenia: Date

metody

RzeczywistaStopa: Float

CSpłaty

metody

Dodaj(kwota: Money, data: Date):

CSpłata

Usuń(indeks: Integer)

Liczba: Integer

Element(indeks: Integer): CSpłata

CSpłata

atrybuty

Kwota: Money

Data: Date

metody

SkładowaSumy: Money


TOP 200