← Vissza
Összefoglaló · Cheat Sheet

Puska 📋

Minden téma egy kis kártyán — gyors átismétlés vizsga előtt. Ctrl+P-vel kinyomtatható.

📊 Folyamatmodellek
🌀
Spirál modell
Boehm, 1986
1. Tervezés (célok, alternatívák)
2. Kockázatelemzés (risk!)
3. Fejlesztés + tesztelés
4. Értékelés + következő iteráció
Iteratív + kockázat-alapú. Minden ciklusban prototípus. Drága projektekre ahol a kockázat magas.
RAD
Rapid App Development
60–90 nap alatt kész
Időboxolt fejlesztés
Gyors prototípus iterációk
Erős eszköztámogatás (CASE)
Kis-közepes projekt, jól ismert domain, motivált csapat. Nem alkalmas: kritikus, nagy projektek.
🔀
Konkurens modell
Párhuzamos tevékenységek
Tevékenységek párhuzamosan
Állapot-átmenetek nyomonkövetése
"Hol tartunk épp?" mindig látható
Több részfolyamat egyszerre fut — minden ágnak saját állapot-gépe.
📐
RUP
Rational Unified Process
4 fázis: Inception · Elaboration · Construction · Transition
9 diszciplína (üzleti modellezés, követelmény, elemzés, impl., teszt, deploy, konfig, projekt mgmt, környezet)
UML alapú, iteratív
IBM Rational fejlesztette. Nehézsúlyú agilis. Mérföldkövekkel zárul minden fázis.
🌱 Fejlesztési módszertanok
🌱
Agilis 12 alapelv
Manifesto 2001
Individuals over processes · Working software over docs · Customer collaboration over contract · Responding to change over plan
4 érték + 12 alapelv
Ügyfél-elégedettség · korai szállítás
Változás támogatása
Önszerveződő csapat
Folyamatos visszajelzés
🏃
Scrum
Takeuchi&Nonaka 1986
3 disznó: Scrum Master, PO, Team
2 csirke: Stakeholder, Manager
5 lépés: Planning → Sprint (1-4 hét) → Daily → Review → Retro
4 elem: Product Backlog · Sprint Backlog · Burndown · Finished work
Team: 5-9 fő. Daily max 15 perc, állva. Sprint közben Backlog NEM változtatható.
🧩
Komponens alapú
Reusability
Újrafelhasználható komponensek
Well-defined interfész
Black-box használat
"Build vs Buy" döntés
Komponens-piac, library-k. Pl. npm csomagok, Maven artifactok. Verziókövetés kritikus!
🎯
AOP
Aspect-Oriented Prog.
Cross-cutting concerns
Logging, security, transaction
Aspect, Pointcut, Advice, Join Point
Pl. Spring AOP, AspectJ
Üzleti logika szétválasztása a "körülöleli" feladatoktól. Pl. @Transactional annotáció.
Formális módszerek
Math precision
Matematikai szoftverspecifikáció
Formális verifikáció
Pl. Z notation, VDM, B-method
Bizonyítható helyességi tételek
Kritikus rendszerekre: űr, repülő, orvosi, atomerőmű. Drága, lassú, de garantáltan helyes.
🏛️ Architektúra
🏛️
Arch alapok
10K láb · F-16
F-16 tanulság: 2.5 Mach kérés mögött "menekülés a harcból" valódi igény. Mindig kérdezd: MIÉRT?
FR: Funkcionális (MIT)
NFR: Nem-funkcionális (HOGYAN)
Arch: költséges változtatni
Design: ma refaktorálható
MVC=arch
Singleton=design
Arch tervezése
2 fázis · 4 erő
2 fázis: Problématér (értsd meg) → Megoldástér (kivitelezd)
4 erő:
1. Funkcionális (FR)
2. Minőségi (NFR)
3. Nem-technikai (jogi, üzleti)
4. Szabadság korlátja (csapat, idő)
ADR
Min 3 alternatíva
📋
Jó követelmény
6 jellemző
1. Szükséges
2. Érthető
3. Ellenőrizhető (mérhető!)
4. Követhető
5. Konzisztens
6. Teljes
Tiltott szavak: "felhasználóbarát", "gyors", "intuitív" → mindig pontosítsd számszerűen!
⚖️
Olcsó-Jó-Gyors
Projekt háromszög
3-ból max. 2-t választhatsz!
💰⭐ Olcsó + Jó = LASSÚ
⭐⚡ Jó + Gyors = DRÁGA
💰⚡ Olcsó + Gyors = ROSSZ
🐘 Domain Modell & DDD
🐘
Domain modell
6 vak ember
Modell 3 tulajdonsága: 1) Egyszerűsít · 2) Célhoz kötött · 3) Válaszokat ad
Túltervezés: analízis paralízis (Las Vegas hotel)
Tervmentes: kaotikus (Flappy Bird)
Arany középút: annyi tervet, amennyi kell
Königsbergi hidak (Euler)
Monopoly
💬
Közös nyelv
Ubiquitous Language
Szakterületi szóhasználat = kódban is
Mindenhol AZONOS: doku, modell, kód
Kerüli a fordítást szakember↔fejlesztő közt
Pl. "kontingens" (banki) → Quota osztály, exceeded() metódus a kódban.
🧅
Onion architektúra
Jeffrey Palermo, 2008
Központ: Domain Model
→ Domain Services
→ App Services
→ UI / Infrastructure
→ Tests (külső gyűrű)
Belső réteg NEM hivatkozhat a külsőre! Bárhol cserélhető a külső anélkül, hogy a belső változna.
📐
DDD
Eric Evans, 2003
Ubiquitous Language
Bounded Context
Building Blocks: Entity, VO, Aggregate, Repository
Domain szakértőkkel együtt
Entity: ID-val (Customer). Value Object: immutable (Money, Address).
CRUD vs CQRS
Martin Fowler
CRUD: egy modell olvasásra és írásra
CQRS: Command (írás) + Query (olvasás) szétválasztva
CQRS akkor jó ha: komplex domain, sok olvasás kevés írás. Plusz komplexitás — ha kétséges, NE használd.
🚂 Projekt átadás & SAFe
🌍
Shore típusok
Munkavégzés helye
🏠
On-shore
drága, könnyű
🌍
Near-shore
EU szint
🌏
Off-shore
olcsó, nehéz
±5-12h
időzóna
(off-shore)
🏢
Leányvállalat vs Kiszervezés
2 modell
Leányvállalat: saját részleg, anyacég felel, nagy kockázat, erős integráció
Kiszervezés: polgári jogi szerz., alacsonyabb kockázat, kevesebb irányítás
Leányvállalat dolgozói az anyacéggel állnak munkaviszonyban. Kiszervezésnél: saját céggel.
🚂
SAFe
Scaled Agile Framework
Portfolió: EPIC, stratégia, LPM
Essential: Feature, Release Train, RTE, Product Mgmt
Team: User Story, Scrum, PO/SM
PI Planning: 2 napos. Függőségek azonosítása. 4-5 sprint szinkronizálva.
🔄
CE / CI / CD
SAFe szállítás
CE: Continuous Exploration → MIT
CI: Continuous Integration → HOGYAN
CD: Continuous Delivery → MIKOR
CD visszacsatol CE-be. SAFe ≠ LeSS (Large-Scale Scrum, egyszerűsített).
🎯 Tesztelés
🎯
RBT
Rizikó Alapú Tesztelés
P = V × K × T
V: Valószínűség (1-5)
K: Kár (1-5)
V×K: Kihatás
T: Teszt hatékonyság (1-5)
P: Prioritás (Kihatás×T)
5 lépés: 1) Azonosítás 2) Analízis 3) Reagálás 4) Döntés 5) Tervezés
📋
Teszt folyamat
3 fázis
1. Tervezés (mit, hogyan, mikor)
2. Végrehajtás (futtatás)
3. Zárás (tapasztalatok, doku)
V-modell: minden fejlesztési fázishoz tartozik egy teszt szint. Scrumban: folyamatos.
🌿 Konfigurációkezelés & Git
📐
CM 5 terület
Configuration Mgmt
🌿 Verziókövetés (Ki? Mit? Mikor?)
🔄 Változáskövetés (Work items)
🔨 Generálás (Build)
📦 Kiadáskezelés (Release)
🔌 Integráció (CI)
ABC veszélyek: Attitude · Behavior · Culture (a technika nem elég).
🌿
Git parancsok
Daily workflow
git clone letölt
git status állapot
git add staging
git commit -m ment
git push/pull szinkron
git checkout -b branch
git merge összefésül
git tag -a v1.0 baseline
⚖️
Git vs SVN vs CC
VCS típusok
Git: elosztott, gyors, ipar standard
SVN: centralizált, lock-tal
ClearCase: vállalati, repülő/orvosi
Git branch könnyű, SVN merge nehézkes. CC checkout = ZÁROLÁS (más nem szerkesztheti).
🔒 Szoftverbiztonság
⚠️
Hibák 5 szintje
Biztonsági hatás
1️⃣ Nincs hatás — funkcionális
2️⃣ Alacsony — info szivárgás
3️⃣ Közepes — XSS
4️⃣ Magas — SQL inj.
5️⃣ Kritikus — Buffer overflow OS-ben
CERT 1988 · CVE (CVE-2021-44228 = Log4Shell) · CWE (kategóriák)
💉
Top sérülékenységek
+megoldás
💉 XSS → htmlspecialchars, CSP
🗄️ SQL inj. → Prepared Statements
🔄 CSRF → CSRF token, SameSite
💥 Buffer overflow → strncpy, ASLR, /GS
📁 Path traversal → whitelist
80% baj: hiányzó INPUT VALIDÁCIÓ. Stuxnet (2010) = első kiberfegyver.
🛡️
Microsoft SDL
7 szakasz · 2004
0. Oktatás (mindenki)
1. Követelmény (bug bar, Threat Mod.)
2. Tervezés (támadási felület ↓)
3. Impl (SAST, ASLR, /GS)
4. Verifikáció (fuzzing, pentest)
5. Kiadás (debug le, IR plan)
6. Utóélet (CVE monitoring)
🎯
STRIDE
Threat Model
Spoofing → Auth (MFA)
Tampering → Integrity (HTTPS)
Repudiation → Non-rep (audit log)
Info Disclosure → Confidentiality
DoS → Availability (rate limit)
Elev. of Priv. → Authorization (RBAC)
🧰
DevSecOps stack
Security tools
SAST — statikus (kód) — SonarQube
DAST — dinamikus (futó) — OWASP ZAP
IAST — kombinált (agent)
SCA — dependency — Snyk
SIEM — monitoring — Splunk
Shift Left: security az ELEJÉRE tolva. Korai felismerés 100× olcsóbb!
⭐ Szoftverminőség
📚
Garvin 5 def
Minőség megközelítések
1. Felhasználói (alkalmasság)
2. Termék (mérhető)
3. Folyamat (spec-nek megfelel)
4. Érték (ár/teljesítmény)
5. Transzcendens (veleszületett)
ISO: "azt nyújtja a vevőnek amit akar, amikor akarja, megfelelő árért."
🎯
Garvin 8 dimenzió
Min. szempontok
1. Teljesítmény
2. Sajátosságok
3. Megbízhatóság
4. Megfelelés
5. Tartósság
6. Használhatóság
7. Esztétika
8. Felismert minőség (márka)
📈
Minőség 4 fokozata
Cég érettség
1️⃣ Ártatlanság: profit > minőség
2️⃣ Eszmélés: első QA
3️⃣ Elkötelezettség: ISO, 50% cost ↓
4️⃣ Világszínvonal: mindenki felelős
Bugjavítás költség: Tervezés 1× · Kódolás 10× · Tesztelés 50× · Production 100-1000×
McCall háromszög
1977
Operation (működés): Korrektség, Megbízhatóság, Hatékonyság, Biztonság, Használhatóság
Revision (módosítás): Karbantarthatóság, Rugalmasság, Tesztelhetőség
Transition (átvitel): Hordozhatóság, Újrafelhasználhatóság, Együttműkőd-képesség
6️⃣
ISO 9126
2001 · 6 jellemző
🔧 Funkcionalitás
🔄 Megbízhatóság
👆 Használhatóság
⚡ Hatékonyság
🔨 Karbantarthatóság
🖥️ Hordozhatóság
ISO 25010 (2011) = 9126 + 🔒 Security + 🔌 Compatibility (8 jellemző)
9️⃣
ISO 9000
8 alapelv
1. Vevőközpontúság
2. Támogató vezetés
3. Munkatársak bevonása
4. Folyamatszemlélet
5. Rendszerszemlélet
6. Folyamatos fejlesztés
7. Tényeken alapuló döntés
8. Kölcsönös kapcsolatok beszállítóval
NEM termék minőség! Folyamat minőséget tanúsít (McDonald's analógia).
🔄 DevOps & DevSecOps
🔄
DevOps
2009
3 elv:
1. Automatizálás
2. Folyamatos kommunikáció
3. Szoros együttműködés
4 gyakorlat: CI · CD · IaC · Automatizálás
♾️
8 fázis
DevOps életciklus
📋 Plan (Jira)
💻 Code (Git)
🔨 Build (Maven)
🧪 Test (Selenium)
📦 Release (Jenkins)
🚀 Deploy (Docker/K8s)
⚙️ Operate (Ansible)
📊 Monitor (ELK, Splunk)
Dev oldal: Plan→Test · Ops oldal: Release→Monitor. Monitor → Plan visszacsatol.
🔒
DevSecOps
Shift Left
Security MINDEN fázisban
Threat Modelling (Plan)
SAST (Code), SCA (Build)
DAST + Etikus hacking (Test)
Container scan (Deploy)
SIEM + IDS (Monitor)
Mantra: "tolja a biztonságot balra" — a folyamat elejére.
⚡ Általános tippek
💡
Gyakori kérdések
Vizsga típusú
Scrum 5 lépés? Planning, Sprint, Daily, Review, Retro
Sprint max? 1-4 hét
Team méret? 5-9 fő
Daily max? 15 perc
STRIDE betűi? S-T-R-I-D-E
📅
Évszámok
Történelem
1977: McCall modell
1986: Scrum (Takeuchi&Nonaka), Spirál (Boehm)
1988: CERT (DARPA)
2001: Agile Manifesto, ISO 9126
2003: DDD (Eric Evans)
2004: Microsoft SDL
2009: DevOps (első DevOpsDay)
2010: Stuxnet
2011: ISO 25010
🎯
Számok memorizálása
Hasznos
99.9%
uptime = 8h45m/év
3-9
Scrum csapat
15p
Daily max
15-50
hiba/1000 sor (ipar)
0.5
hiba/KLOC (MS)
0.1
hiba/KLOC (cleanroom)