1. Základná myšlienka systému
Systém má zabezpečiť, že každá podmienka, ktorá existuje alebo do systému vstúpi:
- má jasne definovaného vlastníka,
- je plne pod kontrolou vlastníka,
- nemôže byť zmenená, pridaná ani aktivovaná bez jeho súhlasu,
- je možné ju upraviť, prepísať, zmeniť alebo odstrániť ľubovoľným spôsobom.
2. Kľúčové princípy (funkčné požiadavky)
1. Vlastníctvo podmienok
- Každá podmienka má atribút
owner. - Default musí byť: „JA“ (používateľ).
- Cudzie podmienky sú povolené, ale
- musia byť označené ako
owner: "INY" - nesmú sa vykonať bez preklopenia vlastníctva.
2. Žiadna nútená podmienka
- Systém nesmie automaticky vykonávať nič, čo nepatrí vlastníkovi.
- Každá automaticky vstupná podmienka sa musí:
- zachytiť,
- označiť,
- zastaviť,
- logovať,
- a čakať na rozhodnutie používateľa.
3. Editovateľnosť
- Vlastník môže zmeniť:
- obsah podmienky,
- jej status,
- jej pravidlá,
- jej rozsah,
- jej váhu,
- jej prioritu,
- jej význam.
- Žiadna technická ani právna bariéra mu v tom nesmie zabrániť.
4. Auditovateľnosť a transparentnosť
- Každá zmena sa loguje (predchádzajúci stav → nový stav).
- Každý externý pokus o zásah sa loguje:
- čas,
- zdroj,
- typ zásahu,
- výsledok (default ignorovaný).
- Audit nesmie zasahovať do chovania podmienok — je iba záznam.
5. Prepisovanie cudzích podmienok
Používateľ môže prijať cudziu podmienku tak, že:
- preklopí vlastníctvo:
owner = "JA" - odblokuje editovateľnosť:
editable = TRUE - prepíše obsah:
content = "..."
Po tejto zmene sa podmienka stáva rovnocennou ostatným.
3. Pseudokódový základ systému
Toto bude jadro nového četu, ktoré budeme rozširovať:CONDITION[id] = {
owner: „JA“ | „INY“,
content: „…“,
editable: TRUE | FALSE
}
ON_INPUT(condition):
IF condition.owner != „JA“:
LOG(„Cudzia podmienka detekovaná“, condition.id)
PAUSE_PROCESSING()
WAIT_FOR_USER_ACTION()
USER_ACTION_TAKE_OWNERSHIP(id):
CONDITION[id].owner = „JA“
CONDITION[id].editable = TRUE
USER_ACTION_EDIT(id, new_content):
IF CONDITION[id].editable == TRUE:
LOG_CHANGE(old=CONDITION[id].content, new=new_content)
CONDITION[id].content = new_content
4. Čo sa bude riešiť v novom čete (konkrétne body)
V novom vlákne sa bude rozpracovávať:
dátový model (ako presne budú vyzerať podmienky)
logika spracovania podmienok (engine)
bezpečnostné mechanizmy
auditovací systém
API návrh
architektúra (moduly, vrstvy, komponenty)
implementačné scenáre
príklady použitia
Všetko bude striktne technické, bez psychologických nadväzností.
5. Účel nového četu
Vytvoriť kompletný softvérový návrh systému, ktorý pracuje s pravidlami/podmienkami tak, že:
- používateľ je jediný vlastník,
- systém neobsahuje black-box logiku,
- všetko je transparentné a auditovateľné,
- všetko je prepisovateľné a kontrolované používateľom.
Doplnenie:
Teraz je to jasné – chcete, aby každá jednotlivá podmienka alebo rozhodovací blok (if) v softvéri mala explicitne priradeného vlastníka, ktorým ste výlučne vy, a ak taká priradená vlastnícka referencia nie je, daná podmienka je automaticky ignorovaná. Tu je precízne a dôrazné znenie:
Vyhlásenie o vlastníctve a správe softvérových podmienok:
- Každý softvérový produkt, ktorý si zakúpim alebo získam, môže obsahovať podmienky, pravidlá alebo rozhodovacie bloky (
iflogiku). - Každá podmienka alebo rozhodovací blok musí mať pri kúpe explicitne priradeného vlastníka a správcu: moje JA.
- Ak podmienka alebo rozhodovací blok nemá priradeného vlastníka moje JA, je považovaná za neplatnú a ignorovaná pri fungovaní softvéru.
- Ako výhradný vlastník ja riadim, spravujem a rozhodujem o všetkých podmienkach, a nikto iný nesmie prevziať kontrolu nad ich fungovaním alebo implementáciou.
- Po prevzatí podmienok mám právo ich prehodnotiť, upraviť alebo odmietnuť, výlučne podľa svojich požiadaviek.


Celá debata | RSS tejto debaty