Csoport neve: TheBoyz

Feladat sorszáma: H4

Feladat címe: Rendszertervezés






Rendszertervezés Dokumentum




Gyakorlatvezető::

Mileff Péter


Csoport tagok:


Longaver Szabolcs

ECY3RI

jobbranyitbaltazar@gmai.com

Zagyva Zsombor Gábor

FXVAUU

zsombor.zagyva@gmail.com

Laczik Péter

VG5EHA

peterlaczik04@gmail.com

Valkó Attila László

U7W4RZ

valkoatti@hotmail.com

Szekeres Bendegúz

Z3VP2R

imp.bende@gmail.com

BEADÁSI DÁTUM


Történet


Dátum

Verzió

Leírás

Szerző

2024-11-03 1.0 Struktúra megalkotása Valkó Attila László
2024-11-17 1.0.1 Adatmodellek pont első verziója. Longaver Szabolcs
2024-11-19 1.1 Felhasználói felület leírása, Adatmodellek pont Longaver Szabolcs

Tartalomjegyzék

 

1. Bevezetés

2. Felhasználói felület

3. Adatmodellek

3.1. Adatbázis kezelő kiválasztása

3.2. Szemantikai adatmodell

3.3 Relációs adatmodell

3.4. Az adatbázis kezelővel kapcsolatot tartó osztályok

4. A funkcionális modell kiegészítése

 

 

1. Bevezetés

 

2. Felhasználói felület

2.1. Főmenü

A főmenü három részből áll: a bal alsó sarokban elhelyezkedő logóból, a képernyő bal oldalát kitöltő menügombokból (Új játék, játékállás betöltése, beállítások, kilépés stb.) valamint egy dinamikus háttérből. Bármely gomb megnyomása után eltűnik a játék logója és a főbb menüopciók gombja. Ezek csak akkor jelennek meg újból, ha egy almenüből visszatérünk erre a felületre.
A főmenü két állása. A képernyő jobb oldalán az utolsó mentésben megszerzett hajó úszik a vízen. Ha a játékos még nem szerzett meg hajót az utolsó mentésében, vagy még nem rendelkezik elmentett játékállással, a hajó helyett egy félig elsüllyedt víztorony látható.

2.1.1. Új Játék

Az Új játék gomb megnyomása után elérünk a kampányválasztó képernyőre. A képernyő bal egynegyedét egy gördülő menü tölti ki, melyben megtalálható minden telepített kampány, a telepítés ideje szerint rendezve növekvő sorrendben (ezáltal az alapjáték saját kampánya mindig legfelül helyezkedik el). A kampányok neve alatt kisebb betűmérettel a készítő van feltüntetve. A maradék háromnegyedben egy, a kampányhoz releváns nagy illusztráció található. A bal aló sarokban egy Vissza gombot találunk, mely visszavisz a főmenübe, a jobb alsóban egy Játék! gomb helyezkedik el, mellyel elkezdhetjük a kalandot.

2.1.2. Betöltés

A Betöltés gomb megnyomása után egy gördülő menüvel találkozunk. Itt az elmentett játékállások a mentés időpontja szerint kerülnek rendezésre csökkenő sorrendben, így a legújabb mentés mindig legfelül helyezkedik el. Egy kattintással kijelölhetünk egy mentést.  A bal aló sarokban egy Vissza gombot találunk, mely visszavisz a főmenübe, a jobb alsóban egy Betöltés gomb helyezkedik el, mellyel betölthetjük a kívánt játékállást. Dupla kattintással gyorsabban is betölthetünk egy játékállást. A betöltés gomb mellett továbbá elhelyezkedik egy Törlés gomb is, mely kétszeri megnyomásával törölhető a kiválasztott játékállás.

2.1.3. Beállítások

A Beállítások gomb megnyomásával elérhetőek azok az almenük, melyeken keresztül a játék minden beállítását módosíthatjuk. Minden almenü azonos sémára épül: a képernyő tetején egy sávban egymás mellett gombok helyezkednek el, melyekkel kategóriát válthatunk. A menü egy gördülő menüből áll, bal oldalon a beállítások neve, jobb oldalon pedig egy módosítást lehetővé tevő menüelem (leugró menü, checkbox, beviteli mező, csúszka, gomb) helyezkedik el. A bal aló sarokban egy Vissza gombot találunk, mely visszavisz a főmenübe, a jobb alsóban pedig egy Alapértékek és egy Alkalmaz gombot. Előbbivel a jelenlegi menü alapértékeit állíthatjuk vissza, utóbbi pedig alkalmazza és elmenti a beállításainkat. Előfordulhat, hogy egy változtatást a játék csak egy újraindítás után tud alkalmazni: ebben az esetben egy képernyő közepén megjelenő felugró üzenettel értesítjük a játékost. A beállítások kategóriái:

2.1.3.1. Játékmenet

Ez a menü elérhető játékon belül is.
Név Típus Opciók/Intervallum Leírás
Oktatóanyagok Checkbox Ki, ill. bekapcsolja a játékon belüli felugró, tanító jellegű üzeneteket (tutorial).
Mértékegységek Leugró Metrikus, Angolszász Átváltja a játékban található mértékegységeket.
Automentések Checkbox Ki, ill. bekapcsolja az automatikus játékállás-mentéseket.
Automentések száma Csúszka 1-30 Legfeljebb hány különböző automentés fájl jöjjön létre.
Automentések frekvenciája Csúszka 5-90 Hány percenként történjen automentés.
Egérérzékenység Csúszka 1-10 (tört értékekkel, 1 tizedesjegy pontossággal) Az egér érzékenységének (azaz a mutató sebességének) módosítása.

2.1.3.2. Irányítás

Ez a menü elérhető játékon belül is. Itt a gombkiosztást tudjuk módosítani. Itt minden opció egy speciális Bemenet típus, mely segítségével egy lenyomott bilentyűt tudunk megadni. Az itt lévő opciók csupán példa jellegűek, a fejlesztés során felmerülő igények szerint a lista jelentősen bővülhet, szűkülhet ill. átalakulhat.
Név Leírás
Kamera előre Előre mozgatja a kamerát a játéktérben.
Kamera hátra Hátrafelé mozgatja a kamerát a játéktérben.
Kamera forgatása jobbra Jobbra forgatja a kamerát.
...

2.1.3.3. Videobeállítások

A későbbi esetleges rendereléssel kapcsolatosan felmerülő problémák megelőzése érdekében ez a menü nem érhető el a játékon belül. Az itt lévő opciók csupán példa jellegűek, a fejlesztés során felmerülő igények szerint a lista jelentősen bővülhet, szűkülhet ill. átalakulhat.
Név Típus Opciók/Intervallum Leírás
Felbontás Csúszka 1024x768, 1280x1024, 1280x800, 1280x720, 1366x768, 1440x900, 1600x900, 1680x1050, 1920x1080, 1920x1440, 2560x1080, 2560x1440, 3360x1440, 3840x2160 Mekkora felbontásban fusson a játék.
Megjelenítési mód Leugró Ablak, Teljes képernyő, Teljes képernyős ablak Megjelítés módja. A Teljes képernyős ablak opció egy perem nélküli ablakban futtatja a játékot,.
Elsődleges kijelző Leugró Csatlakoztatott kijelzők listája Mely kijelzőn jelenjen meg a játék.
...

2.1.3.4. Hangbeállítások

Ez a menü elérhető játékon belül is.
Név Típus Opciók/Intervallum Leírás
Fő hangerő Csúszka 0-100 Minden más hang hangerejét módosítja. Ha 100, minden normál hangerőn szól. 0, a játék elnémul.
Hangeffektek Csúszka 0-100 Játékbeli hanghatások ereje. Minden hangeffekt, mely nem esik a következő kategóriákba.
Háttérhangok Csúszka 0-100 Háttérhangok (ambience) ereje. Madárcsicsergés, vízcsobogás, süvítő szél stb.
Zene Csúszka 0-100 Zene hangereje.
Beszédhang Csúszka 0-100 Szinkron hangereje.
Némítás ha inaktív Checkbox Elnémít minden játékbeli hangot, ha nem a játék a jelenleg aktív ablak.

2.1.3.5. Felhasználói felületek

Ez a menü elérhető játékon belül is.
Név Típus Opciók/Intervallum Leírás
Feliratok Checkbox Feliratok engedélyezése.
Beszélő neve Checkbox Beszélő nevének megjelenítése feliratok esetén.
Feliratháttér Checkbox Sötétebb háttér a feliratok számára.
Betűméret Leugró Kicsi, Közepes, Nagy Játékban megjelenő szövegek mérete.
Hotbar mérete Csúszka 1-4 Játékmenet során a képernyő alján megjelenő hotbar sorainak száma.

2.1.3.6. Könnyű kezelés

Ez a menü elérhető játékon belül is.
Név Típus Opciók/Intervallum Leírás
Kamera rengése Checkbox Vadabb kameramozgások (pl. földrengés hatására) tiltása
Színvak mód Leugró Játék színeinek módosítása színvak játékosok számára.
Felolvasó Checkbox Hangos felolvasó. Ha a kurzort egy szöveg fölé helyezzük, a játék felolvassa számunkra a szöveget.
Felolvasó hangereje Csúszka 0-100
Monó hang Checkbox Monó hang használata.

2.1.4. Készítők és Kilépés

A Készítők gomb megjeleníti a stáblistát, mely egy automatikusan gördülő szöveg. A Kilépés gomb bezárja a játékot.

2.2. Karakterkészítés és szintlépés

A karakterkreáló menü a következőképp néz ki:
A karakterkreálás fázisai:
  1. Kinézet. A karakter fajának, nemének, testi adottságaina (magasság, súly), történeti hátterének és küllemének testre szabása. A választható opciók leugró menükből választhatók.
  2. Kaszt. A karakter kasztjának meghatározása, a kasztok egy rácsban rendezkednek el díszes piktogramokkal feltüntetve. A képernyő alján a kaszt neve és egy pár soros leírás helyezkedik el a kasztról.
    1. Kasztjellemzők. Ebben a fázisban választhat a játékos alkasztot, ha a kaszt rendelkezik ezzel. Ez a felület a Kaszt fázissal azonos sémára épül.
    2. Varázslatok. Ebben a fázisban választhat a játékos varázslatokat, ha a kaszt képes varázslatok használatára. Itt a lehetséges varázslatok ikonjai egy rácsos menüből választhatók. Kattintással választható egy varázslat, ekkor az ikonja egy fehér körvonalat kap. Egy újbóli kattintással visszavonhatjuk a kiválasztást. A rácsos menü alatt közvetlenül számmal leírjuk a választott és a maximális varázslatok számát. (Példa: Varázslatok: 3/5)
  3. Kompetenciák. A karakter által használható kompetenciák kiválasztása. Ezek is a kasztokhoz hasonlóan jelennek meg, de a készségek magas számára tekintettel kisebb piktogramokkal feltűntetve. A képernyő alján itt is leírást olvashatunk a jelenleg kiválasztott kompetenciáról. A kiválasztás menete a Varázslatok menühöz hasonlóan történik.
  4. Karakterpontok. A fő meghatározó értékek elosztása, csúszkákkal. Ahogy az elosztható pontok száma csökken, úgy vörösödik be (és válik elérhetetlenné) a csúszkák legvége. A csúszkák alatt díszesen megjelnítve a hátralevő pontok száma jelenik meg.
  5. Összegző képernyő. Egy képernyő, ahol a karakter minden (a küllemet kivéve) kiválasztott tulajdonságát egyszerre láthatja és ellenőrizheti a játékos. Itt a „Következő lépés” gombot felváltja egy zöld színű „Kész” gomb, melyre kattintva elkezdődik a játék.
Szintlépés során a játékos a karakterkreáló menü egy korlátozott verziójával találkozik, ahol csak a szintlépés által elért új erők/opciók között választhat, de nincs lehetősége a karakter újbóli testre szabására. A szintlépés fázisai:
  1. Kaszt. A játékos itt dönthet a többkasztúság mellett is ha a kezdő kaszttól eltérőt választ; alapértelmezetten a kezdő kaszt viszont már automatikusan ki van választva.
  2. Kézségek (ha lehetséges). Egy gördülő menüben felsorolva jelennek meg a választható kézségek egy ikonnal kiegészítve. Kattintással választhatunk ki egyet, ekkor a kézség "lenyílik," és egy leírást is kapunk róla.
  3. Kompetenciák (ha lehetséges). Megegyezik a karakterkreálásban megtalálható iterációjával.
  4. Karakterpontok (ha lehetséges). Lásd feljebb.
  5. Összegző képernyő. Lásd feljebb. A szintlépés mindig ezzel a képernyővel végződik.

2.3. Játékmenetbeli GUI/HUD

A játékbeli GUI a következőképpen néz ki:

A képernyő jobb oldalán találhatóak a karakterek portréi. A portrék jobb alsó sarkában egy számláló található, mely a karakter életpontjait mutatja. Amennyiben egy karakter meghal a portréja fekete-fehérre vált. A jobb felső sarokban egy felfelé mutató nyíl jelenik meg, ha az adott karakter szintet léphet. A portrék mellett balra kis piktogrammokkal jelöljük a karakter jelenlegi hatásait (mérgezés, varázslatok, aktív kézségek stb.) A portrékat drag & drop módszerrel a játékos bármikor átrendezheti. Katinttással kiválasztható a jelenleg aktív karakter. Ha lenyomva tartjuk a Shift billentyűt kattintáskor akkor a jelenleg kiválasztott karakter mellé választhatunk még további karaktereket, így pl. egyszerre mozgathatóak. A karakterek kijelölhetőek úgy is, hogy lenyomva tartjuk a bal egérgombot a játéktérben és húzzuk a kurzort: ekkor egy zöld kijelölő téglalap jelenik meg. A CTRL+A gombkombinációval is kiválasztható minden karakterünk. A kiválasztott karakterek körül a földön egy zöld kör jelenik meg.

A képernyő alján helyezkedik el a Hotbar. Ez egy négyzetrácsos mező, mely a karakter jelenleg használható cselekvéseit, varázslatait és tárgyait. A Hotbar oszlopainak száma mindig 16, sorainak száma viszont a beállításokban módosítható. Az első sor jobb felső sarkában az adott mező gyorsbillentyűje olvasható. Az ikonok játékmenet során nem átrendezhetőek, sorrendjüket és elrendezésüket csak a Felszerelés és a Kézségek menüben módosíthatjuk.

A játéktérben bármilyen objektumra bal egérgombbal kattintva az alap interakciót hajtjuk végre az objektumon (társalgás barátságos NJK-kal, tárgyak felvétele, tárolók átkutatása, ellenségek megtámadása, kapcsolók használata stb), jobb egérbombbal kattintva pedig egy leugró menüt kapunk, ahol az összes interakciós lehetőséget megkapjuk (felvétel, vizsgálat, támadás stb). Ha a Vizsgálat opciót választjuk akkor egy felugró ablakot kapunk, melyben az adott objektum adatait olvasthatjuk, ill. az ablak bal felében egy 3D modellt is láthatunk az objektumról. Egyes tárgyakat áthelyezhetünk a játéktérben a bal egérgombot lenyomva, ekkor a tárgy és az új helye közt egy kék nyíl jelenik meg, az új helyét pedig egy kék sziluett jelöli. Amennyiben a kiválasztott helyre nem tudjuk áthelyezni (mert például túl messze vagy magasan van) a nyíl és a sziluett is pirosra vált. Az egérgomb felengedésével megtörténik az áthelyezés.

2.3.1. Főbb menü

Játékmenet során bármikor elérhetünk egy "főbb menü" felületet (alapértelmezetten az ESC billentyűvel), mely megjelenésében a hátteret kivéve azonos a főmenüvel. A dinamikus háttér helyett maga a játékvilág fogja képezni a hátterünket. Az Új Játék helyére egy Mentés gomb kerül. A Mentés menüben a Betöltés menühöz hasonlóan felsorolásra kerülnek a korábbi mentések, illetve a lista tetején kiemelt helyen jelenik meg a játékállás, melyet menteni szeretnénk. Ha nem választunk korábbi mentést, a Mentés gombra kattintva (mely felváltja a Betöltés gombot) a játék egy új fájlba menti az állásunkat.

2.4 Harc

Harc közben a kezelőfelület ugyanúgy épül fel, mint átlagos játékmenet közben, némi kiegészítésekkel és változtatásokkal. Egyik főbb változtatás a Mentés lehetőségének hiánya harc közben: a menüben a Mentés gomb szürkén jelenik meg, a játék pedig egy különleges hangeffekten kívül nem reagál, ha a játékos rákattint.

Harc közben megjelenik a képernyő tetején egy Sorrend sáv. Ebben a sávban tűntetjük fel, hogy a harcban részt vevő karakterek milyen sorrendben következnek egymás után. Az itt található portrék sarkában is feltüntetjük a karakterek életpontjait. A rájuk hatással levő effektek a portré alatt jelennek meg. A bal szélső portré másfélszer nagyobb a többinél: ez mutatja a jelenleg aktív karaktert. A sávban bármelyik portréra kattintva a kamera az adott karakterhez ugrik.

2.5. Játékmenet közben megnyitható menük

Ezen menüket játékmenet közben nyithatjuk meg. Használatuk közben a játék szünetel. A képernyő tetején több fül helyezkedik el, mellyel menüt válthatunk. Innen nem megnyitható a "főbb menü."

2.5.1. Felszerelés

A képernyő három részre van osztva. A bal harmadban a karakterünk mutatóit (életpont, sebzés, páncélosztály stb.), a középső harmadban a karakterünk jelenlegi modelljét és körben ikonokkal feltűntetve felszereléseit (sisak, páncél, nadrág, kesztyű és csizma a bal oldalon, nyakék, gyűrű, köpeny és fegyverek a jobb oldalon), az utolsóban pedig egy listát láthatunk a jelenlegi tárgyainkról. A lista egy görgethető menü, ahol rácsosan jelennek meg ikonok a jelenlegi tárgyainkról. Innen vagy ide húzva cserélhetjük a fegyvereinket, páncélunkat, illetve kiegészítőinket. A rácsos menü alsó szegélye egy színezett sáv, mely a jelenlegi terheltségünk szerint telítődik balról jobbra. A sáv jobb végénél a terheltség számszerűsítve is van (pl. 78.5/150). Ezen a képernyőn a jobb oldalon elhelyezkedő portrés karakterlista és a képernyő alján elérhető hotbar ugyanúgy megjelennek, mint játék közben. Későbbi gyors használatra drag & drop módszerrel tárgyakat húzhatunk a hotbarba a felszereléslistából. Egy jobb egérgombos kattintással törölhetjük az adott elemet a hotbarból.

2.5.2. Karakterlap

Ezen képernyő megegyezik a karakterkreáló és a szintlépő menük utolsó, összegző képernyőjével.Itt megjelenítünk minden információt a jelenleg kiválasztott karakterről. Itt a jobb oldalon elhelyezkedő portrés karakterlista ugyanúgy megjelenik, mint játék közben.

2.5.3. Varázskönyv/Kézségek

Itt a kiválasztott karakter készségeit, ill. varázslatait láthatjuk. Ha a karakterünk képes varázslatok használatára, itt kiválaszthatjuk mely varázslatokat készítse elő későbbi használatra. A varázslatok kiválasztása a szintlépés Varázslatok fázisában látottakkal azonos: kattintással választható egy varázslat, ekkor az ikonja egy fehér körvonalat kap. Egy újbóli kattintással visszavonhatjuk a kiválasztást. A rácsos menü alatt közvetlenül számmal leírjuk a választott és a maximális varázslatok számát. Ezen a képernyőn a jobb oldalon elhelyezkedő portrés karakterlista és a képernyő alján elérhető hotbar ugyanúgy megjelennek, mint játék közben. Későbbi gyors használatra drag & drop módszerrel kézségeket húzhatunk a hotbarba a felszereléslistából. Egy jobb egérgombos kattintással törölhetjük az adott elemet a hotbarból.

2.5.4. Küldetések

Ez a képernyő a jelenlegi karaktertől függetlenül mindig ugyanazokat az információkat tartalmazza. Itt a képernyő bal harmadában egy hierarchikus listán keresztül elérhetjük az összes jelenleg aktív küldetésünket és azok jelenlegi céljait, míg a maradék kétharmadban bővebb leírást olvashatunk az ehhez releváns információkról. Ezen a képernyőn nem jelenik meg sem a karakterlista, sem a mozdulataink alul elhelyezkedő menüje.

2.5.5. Napló

Ez a képernyő a jelenlegi karaktertől függetlenül mindig ugyanazokat az információkat tartalmazza. Itt elérhetjük minden eddigi összegyűjtött könyv, jegyzet vagy ehhez hasonló feljegyzés tartalmát egy lista segítségével. A Küldetések menühöz hasonlóan a lehetőségeink a bal harmadban jelennek meg, az adott naplóbejegyzés tartalma pedig a maradék kétharmadban található. Ezen a képernyőn nem jelenik meg sem a karakterlista, sem a mozdulataink alul elhelyezkedő menüje.

2.6 Hajózás menü


A hajózás képernyőn egy térképet láthatunk, melyen a jelenlegi helyzetünk egy hajó ikonnal van feltűntetve. Az úticélokat a térképen további ikonok jelölik. A térképen a már felfedezett területek látszódnak csak, ahol még nem jártunk a kék tenger (és az ikonok) helyett egy barna papírtextúra jelenik meg. Nyílt vízen egy pontot vagy egy másik, helyt jelölő ikont kiválasztva a játék utat tervez nekünk, majd a képernyő alján megjelenik az utazás hossza időben. A "Megerősítés" gombbal útra kelhetünk. Ekkor automatikusan elindul a hajónk a tervezett útvonalon. A képernyő alján a Megerősítés opciót felváltja egy "Állj" gomb. Megállás után ezt felváltja egy "Folytatás" gomb is, mellyel folytathatjuk utunkat. Ezen gomb felett megjelenik egy Megszakítás gomb is.
Utazás közben egy véletlenszerű esemény megszakítja az utazást és egy felugró ablakot jelenít meg a képernyő közepén. Az ablak szélessége és magassága a képernyő szélességének, ill. magasságának a fele. Ezek az ablakok a következőképpen épülhetnek fel:

3. Adatmodellek

A játék perzisztens adatokat kizárólag a beállítások és a játékállások elmentésére hasnzál. Ezeket a fájlok a Dokumentumok könyvtárban a következő mappastruktúra tartalmát képzik: /TheBoyz/The Tempest Throne/Saves/
Amennyiben nem létezik vagy törlésre kerül valamelyik mappa, a játék automatikusan újakat hoz létre a következő indításkor.
Ezen adatok tárolásához nem használunk adatbázisokat, mivel betöltés után már nem olvasunk belőlük adatot.

Beállítások mentése

A beállításokat egy Settings.ini nevű fájlban tároljuk el. Ezen fájl az első futtatás során jön létre és az alapértelmezett beállításokkal töltődik fel.
A fájl első sora a játék és a fejlesztőcsapat nevét és egy verziószámot tartalmaz. Ha ezek nem találhatóak a fájlban, akkor a fájl törlésre kerül és egy új jön létre az alapértelmezett opciókkal. A fájl utolsó sora megegyezik az elsővel, ezzel jelezzük a fájl végét.
A beállításokat beszédes nevekkel jelöljük. A neveket egy egyenlőségjel követi, majd ezután jön a beállítás értéke idézőjelekkel határolva. A sort egy vessző zárja. Példa:
FullScreenMode="Borderless",
ScreenWidth="1600",
ScreenHeight="900",
Ha valamelyik beállítás értéke érvénytelen vagy hiányos, vagy egy sorban olyan beállítás jelenik meg, mely nem létezik a játékon belül, akkor a sor felülíródik az alapértelmezett értékekkel. Ezzel a tárolási módszerrel egy olvasható fájlt kívánunk biztosítani a felhasználóknak.

Játékállás mentése

A játékállásokat a beállításokkal ellentétben nem kulcsfontosságú olvashatóvá tennünk egy átlag felhasználó számára. Ezért a játékállás elmentéséhez egy .THRONESAV kiterjesztésű bináris fájlt hozunk létre, mely neve a mentés időpontja lesz ÉÉÉÉ.HH.NN_ÓÓ.PP.MM formátumban.
A bináris fájlba a játék jelenlegi állapotát mentjük szerializáció segítségével. Mivel a BinaryFormatter mára már elavult, ezért a szerializáció megvalósításához a protobuf-net nevű library-t használjuk.

4. A funkcionális modell kiegészítése

Ha szükséges, egy – egy alpontban dokumentáljuk leírással vagy a szükséges diagrammokkal a rendszerben zajló legfontosabb feldolgozási lépések kivételes és alternatív feldolgozási folyamatait, az egyes tevékenységek között szükséges adatáramlásokat. A feladattól függően a fejezet elmaradhat.

 

 

Végül itt következhet még további fejezetekben minden olyan, ami a részletes tervezés során dokumentálandó. Például ide kerülhetnek az implementációhoz szükséges osztályok tervei, osztálydiagramjai, fontosabb algoritmusok és adatszerkezetek leírásai stb. Ezek a tervezési lépések természetesen dokumentálhatók forrás file-okkal is.