Informatika ako disciplína sa delí na mnoho podoblastí. Oblasťami je vývoj hotových systémov veľmi lacný. Pri uvažovaní nad celkom nám v informatike veľmi často pomáha abstrakcia. Zložitosťou celého systému. Poznať ciele a prostriedky pri tvorbe "ideálneho" návrhu systému. Spôsobom si s okolím a ostatnými aplikáciami vymieňa údaje, nadväzuje na ich funkcionalitu, venuje otázkam vzájomného prepájania aplikácií do väčších celkov, čiže integrácii aplikácií.

Tento dokument slúži ako doplnkový sumarizujúci text s informáciami, ktoré boli pokryté v kurze. Jedinou náhradou štúdijnej literatúry. Informácie rozpísané podrobnejšie a čitateľovi odporúčame sa im nevyhnúť. Sa daní autori venujú dlhodobo a zozbierali svoje skúsenosti a poznatky do učebnicového formátu.

Vznikli zásadám čistého kódu podľa knihy A.C. Martina sa venuje ôsma kapitola. Stručnejšie a vychádzajú z pozvaných prednášok hostí. Populárneho agilného vývoja pomocou metódy SCRUM. Zamedzovaniu zbytočných konfliktov.

Základy softvérového inžinierstva

V startupovom svete je dobre známe, že 9 z 10 firiem "to nedá". Niekto by si myslel, že tak obrovská miera neúspechu zakladateľov odradí. Opak je však pravdou - mnoho z nich to vníma ako motiváciu - zamestnať tých správnych ľudí, odlíšiť sa od konkurencie vyššími výdavkami na marketing, prípadne sa ešte viac ponáhľať so všetkými novými aktivitami podniku. Častokrát však neriadia svoje procesy správne. Akú sme načrtli nie je vôbec nezvyčajná. Si nezakladajú na dlhovekosti svojej firmy. Zaručia väčšie či menšie problémy svojmu podniku.

Dôležité je aj zdieľanie znalostí medzi zamestnancami. Nie je vhodný recept na škálovateľnosť. Najvyššiu transparentnosť pracovného toku v organizácii.

Vývoj softvéru a jeho kvalita

1.1. Poskytuje množstvo funkcií, pričom väčšina používateľov využíva len malú časť z nich. Potreby procesu vývoja. 1.2. Softvéru). Očakávania na kvalitu výrobku budú splnené. Dodržiava, môže požiadať o vydanie certifikátu. Vtedy prebehne tzv. Spoločnosť, ktorá je na tento účel akreditovaná (tento typ povolania sa ľudovo niekedy označuje "kvalitár"). Existuje iný štandard ISO, konkrétne ISO/IEC 25010 (čo je nová verzia ISO 9126).

Atribútu je výkon - t.j. kódu, čiže napr. Reliability - celková spoľahlivosť systému, t.j. po sieti (resource utilization) a kapacita, čiže vyčísliteľné výkonnostné hranice systému ako napr. Angličtine o safety. (Installability). Jednotlivých komponentov aplikácie bez toho, aby to ovplyvnilo funkcionalitu - napr. Atribúty kvality softvéru sa často používajú pri špecifikovaní tzv. Požiadaviek, ktoré sa nevzťahujú na funkcionalitu.

1.3. Verzie do používania sú ešte 2-3-krát väčšie ako náklady potrebné na vývoj. Softvérových projektov. Neúspešná. Ďalších približne 50% nedopadlo podľa očakávaní a len zhruba štvrtina projektov uspela bez výhrad. Čom tieto čísla hovoria? Prípadne chce mať svoj podiel na vyberanom mýte od každého, kto prejde po moste). Stake je teda určitý podiel a stakeholder je držiteľ nejakého podielu. Ho ovplyvňuje.

1.4. Požiadaviek zadávateľa na funkcionalitu i výslednú kvalitu vyvíjaného softvéru. Písomnou dohodou medzi zadávateľom a riešiteľom, ktorá je pre obe strany záväzná. Štruktúru komponentov, modelujú správanie a interakciu častí systému. Dokument s názvom Software Design Description, alebo jednoducho Návrh systému. Vlastnosťami. Systém implementuje. Taký nevzniká a tím sa snaží držať krok len s dokumentom popisujúcim špecifikáciu. Tímoch a na menších projektoch.

  • Implementácia: vytvára sa zdrojový kód jednotlivých modulov podľa návrhu.
  • Testujú jednotkovými testami.
  • Očakávania používateľa (validácia).
  • Evolúcia: nastáva po odovzdaní prvej plne funkčnej verzie systému.
  • Dodatočných požiadaviek alebo zistení zadávateľa a používateľov.

1.5. Pozornosť spolupráce tímov a jednotlivcov. Systémom organizácie, systémom na zdieľanie dokumentov. Na podúlohy, závislosť ich následnosti, množstvo už splnenej práce. Chronologicky, čo ale nie je podmienkou a niekedy ani nie je možné. Každý skutočný softvérový projekt má dokumenty i zdrojové súbory uložené v centrálnom repozitári. Z repozitára "vytiahnuté" lokálne kópie súborov, na ktorých pracujú. Verziu posielajú naspäť do repozitára. Pracovníkom - v prípade zdrojových kódov musí prejsť kontrolou, tzv. Použitie dohodnutých štandardov i správna sémantika programov. Súborov, napr. Subversion (svn), Git, resp. Samotný proces vývoja, je predpokladom výslednej kvality vyvinutého systému. Procesom je aj neustále zabezpečovanie kvality práce.

1.6. Ktorého sa organizuje celá práca. Hovoríme o rozličných modeloch vývoja informačných systémov. Rational Unified Process, agilné metódy a open source. Je daný model podporovaný automatizovanými prostriedkami - napr. 1.6.1. Ide o najstarší model vývoja, ktorý je inšpirovaný ostatnými inžinierskymi disciplínami. Nasledujúcej etapy. Predišlo potrebe znovu otvárať predchádzajúce etapy po ich ukončení. Bude od systému vyžadovať. Všetky nasledujúce fázy, ktoré treba reštartovať. Ukončiť bez výsledku ("všetko alebo nič").

1.6.2. Funkcionalitu. Predchádzajúcej verzie sa využijú pri špecifikovaní nasledujúcich verzií. Peniaze), je možné nasadiť poslednú funkčnú verziu a projekt nezlyhal celkom. K dispozícii oveľa skôr a môže ju hneď začať používať. Pri vytváraní dokumentácie a preto je málo viditeľný. Jeho architektúra často nie je optimálna, neustále zmeny vedú k vyššej pravdepodobnosti vzniku chýb. Koľko to bude stáť, ako dlho to bude trvať a systém sa realizuje a dodá. Neskorším problémom. Alebo stredného rozsahu.

1.6.3. Je kombináciou vodopádového a evolučného modelu vývoja. Relatívne malých prídavkoch, inkrementoch. Disciplínu a manažovateľnosť procesov. System a naplánovanie vývoja na jednotlivé inkrementy.

1.6.4. Jeden aspekt, ktorý sa väčšinou kombinuje s iným modelom. Univerzálnych, alebo ľahko prispôsobiteľných komponentov. Počas prevádzky.

1.6.5. Informačného systému, ale akási "prísada", ktorá sa väčšinou kombinuje s iným modelom. Systém, o ktorého vlastnostiach sa dá formálne niečo tvrdiť - napr. Vykonávaných výpočtových vlákien. Na spoľahlivosť, bezpečnosť, presnosť. Zvoleného formalizmu. (Px) získavajú verzie R1, R2, ..., až pokiaľ výsledok nie je priamo spustiteľný program.

1.6.6. Ide o špecifický model zameriavajúci sa predovšetkým na určenie rizík a ich priorít. Nepretržitá práca s rizikami vývoja a neustála prioritizácia aktivít podľa rizík vývoja. Vývoja, ktorý môže byť napr. vodopádový, evolučný, alebo inkrementálny. Postupuje cyklicky po špirále a opakujú sa štyri základné činnosti:

  1. Stakeholdermi, od ktorých závisí úspešnosť projektu
  2. Dosiahnutiu týchto cieľov
  3. Prístupov
  4. Nasledujúceho cyklu.

1.6.7. Zároveň vznikala prvá verzia unifikovaného modelovacieho jazyka UML. Tvorbu informačných systémov. Rational Unified Process (a niekoľkých ďalších, napr. Priebehu vývoja sa množstvo práce venovanej jednotlivým aktivitám priebežne mení. Modeli je veľký dôraz na určenie rizík hneď od začiatku vývoja. (Odovzdanie). Jednotlivé fázy su rozdelené do niekoľkých (spravidla 3-týždňových) iterácií. Projektu zameraním sa na riziká.

1.6.8. Spôsob vývoja, kde k zdrojovým kódom systému mali prístup len vývojári. Trhu. Verzií používateľského rozhrania a pod.vidia potenciál - vývoju otvorených systémov. Dostupnejšie a uľahčuje znovupoužiteľnosť komponentov a častí kódu vôbec. Rôzne platformy, keďže portovania pre každú platformu sa môže zhostiť iný tím.

Špecifikácia požiadaviek

2. Výsledný katalóg požiadaviek musí byť napísaný jazykom, ktorý je zrozumiteľný. Aby boli vysvetlené. Terminológiu a poznatky ani z oblasti softvérového inžinierstva. Sú jednoznačné a zrozumiteľné. Mal by byť tématicky členený do jednotlivých častí. Samostatnú časť tvoria tzv. Čiže "ostatné požiadavky", ktoré určujú požiadavky nevzťahujúce sa na funkcionalitu.

2.1. Na kapitoly. Tvorbu katalógu požiadaviek popisuje viacero medzinárodných štandardov. Prvá verzia štandardu 830, ktorý bol aktualizovaný v roku 1998. Vydaný nový štandard IEEE/ISO/IEC 29148.

  1. Je dokument určený a pre koho je určený.
  2. V stati 1.2.
  3. Stať 1.3. je slovník pojmov.
  4. Pridáme ho do slovníka pojmov a vysvetlíme ho tam.
  5. V stati 1.4. bez toho, aby sme išli do veľkých podrobností.
  6. Z nadhľadu (perspektívy).
  7. Z neho získal kompletnú predstavu, čo všetko systém bude robiť.
  8. Čiže typy používateľov, ktorí so systémom budú interagovať.
  9. Všeobecné obmedzenia v stati 2.4. ktoré predpisy a existujúca prax a akým spôsobom majú vecný vplyv na plánovaný systém.
  10. Závislosti - stať 2.5. požiadaviek na systém.
  11. Typicky v rozsahu 1-3 viet.
  12. A viaceré otázky ostanú nezodpovedané.
  13. Požadoval.
  14. Požiadaviek.
  15. Nebol spokojný.
  16. Ktoré zadávateľ zamlčal a skonfrontovať s ním výslednú verziu špecifikácie.

Rozlišovať medzi: zámermi a cieľmi zadávateľa a jeho konkrétnymi požiadavkami. Otázky "Čo presne má systém robiť?". Zámery a ciele zadávateľa sa nachádzajú v priestore "problému".

2.2. Sa môžeme zamerať na proces špecifikácie podrobnejšie. Dostatočnú pozornosť a úsilie. Potrebu zadávateľa a výsledok je vždy "zlý" a neoptimálny. Podobne ako pri celom vývoji informačného systému, aj tu treba postupovať iteratívne. Sa takmer nikdy nepodarí počas jedného stretnutia so zadávateľom. Sa v ňom zorientovať, informácie usporiadať, nájsť priority, hierarchiu a súvislosti. A vývojovým tímom. Požiadavky zrozumiteľne a bez predsudkov. Komunikácia so stakeholdermi prebieha formou rozhovorov (interviews). Rozhovory sú úspešné, ak ich účastníci majú schopnosť nie len rozprávať, ale najmä počúvať. Pochody druhej strany a vyjadrovať sa a formulovať vety presne a jednoznačne. Vhodným nástrojom pri zbieraní požiadaviek sú používateľské scenáre. So systémom - ako by mohol byť systém používaný. A pozoruje ako to vnútri organizácie funguje. Ktoré nespĺňajú všetky vlastnosti (napr. cieľovej aplikácie, modifikuje sa a (často vo viacerých iteráciách) z neho vzniká výsledný systém. Tak procesy, ktoré má vykonávať informačný systém. Demonštrovať funkcionalitu systému. Niektoré informácie chýbajú.

Combined requirements: kombinované požiadavky = nie sú dostatočne atomické - každá požiadavka by mala vyjadrovať iba jednu vec, jednu myšlienku. Unnecessary requirements: nepotrebné požiadavky = je požiadavka naozaj potrebná? Vedeli by sme sa bez nej zaobísť? Len jedna malá spoločnosť, tak si vždy vyberme radšej štandardizované a dobre dostupné riešenie. Komponentov sa znižujú. Conformance with business goals: súlad s podnikateľským zámerom = naozaj rieši požiadavka niečo, čo spoločnosť pri svojej činnosti potrebuje? Requirements ambiguity: nejednoznačnosť = je možné (čo len teoreticky) rozumieť požiadavke viac ako jedným spôsobom? Nájsť jej rôzne interpretácie? Vo fáze anlýzy požiadaviek si všímame interakciu - vzájomné vzťahy a súvislosti medzi jednotlivými požiadavkami.

2.2.3. Pracuje s kompletným návrhom výsledného dokumentu potom, ako boli nezrovnalosti odstránené. Fázy validácie by malo byť: "Have we got the requirements right?" - sú už požiadavky v poriadku? Redundancy: duplicita = je niektorá informácia redundantná? t.j. Ambiguity: nejednoznačnosť = sú všetky pojmy v požiadavkách jednoznačne zadefinované? Organization: usporiadanosť = je dokument usporiadaný a členený zmysluplne? Conformance to standards: súlad so štandardmi = sú všetky požiadavky a dokument v súlade so štandardami? Traceability: vystopovateľnosť = je pôvod každej požiadavky jasný a dostatočne zdokumentovaný?

Diagramy UML

3. Pri špecifikovaní a navrhovaní informačných systémov si vývojári pomáhajú schémami, obrázkami, diagramami. V informáciách ktoré dokument sprostredkúva. Tok informácií, tok riadenia, stavy, scenáre udalostí a ďalšie aspekty. Pomocou ktorých sa modely informačných systémov zakresľovali. Systémov: jazyk UML (Unified modeling language). Vývojármi. Do roku 2004 sa používala verzia UML 1, odvtedy postupne vznikali jednotlivé aktualizácie verzie UML 2. 3.0. Napriek tomu je ERD veľmi bežný a často využívaný. Znázorňuje vzťahy (relácie) medzi entitami. Podstatným menom. Diagram sa typicky používa na modelovanie priestoru domény pre ktorú sa informačný systém vyvíja (napr. podnik, ak vyvíjame informačný systém pre výrobu mliečnych výrobkov). Entity sa zakresľujú do obdĺžnikov. Sú v kosoštvorcoch a sú prepojené so všetkými entitami, ktoré do daného vzťahu vstupujú. Sa do diagramu môžu zakresliť ako ovály spojené so svojou entitou/reláciou úsečkou. Vyjadrený trojuholníkom. Vzťah môže byť pomenovaný.

Na obrázku je zobrazená doména autoservisu. Meno a číslo. Číslo opravy, cena za materiál a cena za prácu. Automobil mohol podliehať viacerým opravám. Návrhu každého systému, ktorý do externej pamäte ukladá dáta. 3.1. Diagram sa používa najmä v skorších fázach vývoja, pri špecifikácii a analýze. Používateľských scenárov a rozličných rolí, v ktorých používatelia vystupujú pri interakcii so systémom. Zúčastňujú ktorých scenárov. A ktorej sa zúčastňuje v nejakej interakcii so systémom. Nemali by to byť jednorázové akcie, ale nejaké postupy, ktoré sa skladajú z viacerých krokov. Aktori a sú zakreslené ako schématické postavičky. Jedna fyzická osoba môže vystupovať aj v rozličných roliach. Byť živá bytosť, môže to byť aj fyzická entita, ktorá v systéme hrá nejakú aktívnu rolu. Reprezentujú scenáre, ktorých sa daný aktor zúčastňuje. Používať túto verziu). Alternatívnych podscenárov, ktoré môžu ale nemusia byť jeho súčasťou. Vždy zahŕňa aj všetky zobrazené prepojené podscenáre. (Dedičnosť) na vyjadrenie vzťahu medzi dvomi aktormi - všeobecnejším a jeho konkrétnejšou špecializáciou.

Diagram používateľských scenárov nikdy nemôže byť použitý len tak, bez podrobnejšieho vysvetľujúceho textu. Aj uvedené scenáre treba podrobne konkretizovať. 3.2. Sekvenčný diagram sa spravidla týka jedného konkrétneho scenára. Zodpovedá volanie metód príslušných objektov) na podrobnej a nízkej úrovni. Je popísaná. Scenár začína tak, že jedna entita vyšle do druhej entity správu, znázornenú vodorovnou šípkou. Entita typicky oslovuje ostatné entity v diagrame zaslaním ďalších správ, ktoré nasledujú neskôr v čase (čiže nižšie). Vedú k vytvoreniu kontextu na spracovanie danej správy, znovu oslovujú ďalšie entity atď. Nad šípkou. Na jednej entite môže vzniknúť aj nový kontext, pokiaľ predchádzajúci kontext trvá. Podmienene, v závislosti od splnenia stanoveného predikátu (alt).

3.3. Si entity navzájom posielajú sú vyjadrené ako šípky nad spojnicami medzi entitami. Napr. správa 1 Show Map je prvá, za ňou nasleduje spr...

tags: #Recept