Véletlenül sem tartom hülyeségnek azt, amit csinálni akarsz. Legalább egy nagyon nagy haszna van: ha végigcsinálod, akkor komoly tapasztalatot fogsz szerezni olyan téren, hogy hogyan kell végigcsinálni egy ilyen projektet. Szeirntem nem tudod elképzelni sem, hogy mennyire kevés olyan ember van Magyarországon, aki ezt jól csinálja... :/
A feladatspecifikáció kibővítésénél szerintem a következőkre figyelj oda:
- Magyarázd meg a fogalmakat úgy, hogy az ügyviteli rendszerekhez nem értő programozók is felfogják, hogy miről van szó. Mi az a telephely? mi az a cikktörzs? Milyen adatok szerepelnek az egyes számlatípusokon, pl. egy csekken? Emögött az a motiváció, hogy a programozó nem biztos, hogy ezeket csak úgy tudni fogja. Ha Te sem tudod és jófej akarsz lenni, akkor megtanulod, ha kevésbé akarsz jófej lenni, akkor legalább azt beleírod a doksiba, hogy a programozó pontosan honnan fogja tudni kideríteni ezeket.
- A bővítésnél érdemes arra is odafigyelni, hogy NE arról szóljon, hogy hogyan kell megcsinálni valamit, hanem arról, hogy mit kell megcsinálni. Ezt szerintem szépen tartja eddig a dokumentum.
- Ami még fontos lenne, hogy gondold át a doksiban írtakat az adatáramlás szempontjából, és itt nem adatbázisokra meg az elérésükre, vagy hasonlókra gondolok, hanem pl. arra, hogy a valutakonverter honnan fogja tudni, hogy az átváltáshoz szükséges arány micsoda? Kézzel lehet majd megadni a rendszernek? Valamilyen publikus szolgáltatás szabadon elérhető árfolyamértékeit fogja használni?
Azt azért még hozzátenném, hogy ha csinálsz egy ilyet, azt nem rendszertervnek hívják, hanem követelménydokumentációnak. A rendszerterv elkészítése leginkább akkor kezdődhet majd, ha a követelményeket elolvasva nem nagyon merülnek fel kérdések azzal kapcsolatban, hogy mit is kellene csinálni. Ez egyébként egyáltalán nem jelenti azt, hogy ezek után a követelmények már nem fognak változni, csak azt, hogy a követelmények már érthetőek. Fontos különbség :-)
A rendszerterv kapcsán a következőket érdemes kiemelni szerintem:
- adjon egy általános, könnyen áttekinthető, magasszintű nézetet a teljes rendszerről
- legyen egységes koncepciója a rendszer kapcsán, amelybe beleillik minden egyes elem (!)
- tagolja a rendszert kisebb, áttekinthető részrendszerekre
- deklarálja pontosan, hogy melyik részrendszer melyik másikakkal kommunikálhat (!)
- adja meg, hogy melyik alrendszer milyen adatokat ad a kommunikáció során más alrendszereknek.
Ha eddig megvagy, akkor lehet ismételni ezt a folyamatot az egyes modulokra. Ezen a szinten már szépen lehet osztálydiagramokat, szekvenciadiagramokat és hasonlókat rajzolgatni, itt jönnek a képbe igazán.
Ha már ennyit szövegeltem: azt próbáld meg elérni, hogy az egész összeálljon csak a dokumentációk alapján is egy egységes, lezárt egésszé. Ezt tökéletesen elérni sosem fogod, de az erre irányuló törekvések hosszú távon mindenképpen meghozzák gyümölcsüket.