Úvod do softwarového inženýrství
42 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Který z následujících problémů není častým problémem při vývoji softwaru?

  • Neviditelnost
  • Dokumentace (correct)
  • Syndrom 90% hotovo
  • Přizpůsobivost

Syndrom stárnutí softwaru vedle přidávání nových funkcí nezpůsobuje degradaci systému.

False (B)

Jaká je náchylnost softwaru k chybám během jeho provozu?

Chyby se projevují až během provozu a ne během vývoje.

Při vývoji softwaru by se software měl měnit, když nastane __________.

<p>změna</p> Signup and view all the answers

Přiřaďte následující pojmy k jejich popisu:

<p>Komunikace v týmu = Problémy při spolupráci během vývoje Syndrom 2. systému = Touha po dokonalosti vede k neefektivitě Nestálost = Neustálé přibývání nových požadavků Tvorba dokumentace = Náročnost udržení aktuálnosti informací</p> Signup and view all the answers

Jaká fáze managementu projektu zahrnuje vyhodnocení rizik a získání všech relevantních informací?

<p>Inicializace (D)</p> Signup and view all the answers

Převádění je fáze, kde se vytváří konečný výsledek projektu.

<p>True (A)</p> Signup and view all the answers

Kolik úrovní zralosti obsahuje Capability Maturity Model?

<p>5</p> Signup and view all the answers

Fáze ________ zahrnuje kontrolu a řízení v závislosti na výkonu projektu.

<p>řízení</p> Signup and view all the answers

Přiřaďte klíčové oblasti k jejich popisům v modelu CMM:

<p>Úroveň 1 = Nezralý proces Úroveň 3 = Definovaný proces Úroveň 5 = Optimalizovaný proces Úroveň 2 = Řiditelný proces</p> Signup and view all the answers

Jaký typ licence umožňuje uživatelům studovat a modifikovat zdrojový kód?

<p>Svobodná licence (C)</p> Signup and view all the answers

Proprietární software nelze modifikovat ani studovat.

<p>True (A)</p> Signup and view all the answers

Co je definováno jako metodologie vývoje SW?

<p>nauka o metodách, jejich tvorbě a použití</p> Signup and view all the answers

Jaké jazyky spadají do čtvrté generace programovacích jazyků?

<p>Microsoft Excel (A)</p> Signup and view all the answers

Etapa _____ zajišťuje provoz a údržbu softwaru.

<p>Provoz a údržba</p> Signup and view all the answers

Staticky typované jazyky provádějí typovou kontrolu během běhu programu.

<p>False (B)</p> Signup and view all the answers

Přiřaďte typy licencí k jejich charakteristikám:

<p>GPL = General Public License BSD = Zcela volné šíření LGPL = Lesser GPL - knihovny GFDL = Free Documentation License</p> Signup and view all the answers

Co znamená pojem 'Code Review'?

<p>Prohlídka kódu za účelem odhalení chyb a zlepšení jeho kvality.</p> Signup and view all the answers

První generace programovacích jazyků zahrnuje programování přímo v __________.

<p>binárním kódu</p> Signup and view all the answers

Která z následujících metodik vývoje SW se NEVYKA:?

<p>Testování uživatelského rozhraní (A)</p> Signup and view all the answers

Přiřaďte typy jazyků k jejich charakteristikám:

<p>Staticky typované = Typová kontrola během kompilace Dynamicky typované = Typová kontrola během běhu Silně typované = Omezení na kombinaci typů Slabě typované = Implicitní přetypování</p> Signup and view all the answers

Public domain je typ licence, kde autor zůstává vlastníkem autorských práv.

<p>False (B)</p> Signup and view all the answers

Jaký je hlavní cíl procesu vývoje softwaru?

<p>Transformace potřeb uživatele na požadavky na software.</p> Signup and view all the answers

Jaké techniky jsou zahrnuty mezi přístupy statického ověřování?

<p>Všechny uvedené (C)</p> Signup and view all the answers

Párové programování se zaměřuje na práci jednotlivce při programování.

<p>False (B)</p> Signup and view all the answers

Jaký je hlavní účel technik testování?

<p>Odhalit chyby a zlepšit kvalitu software.</p> Signup and view all the answers

Který z následujících modelů popisuje fyzické uspořádání dat?

<p>Fyzický model (C)</p> Signup and view all the answers

Dědičnost vyjadřuje vztah mezi třídami, kde odvozená třída nezískává žádné atributy nebo chování.

<p>False (B)</p> Signup and view all the answers

Co je to single responsibility principle?

<p>Třídy by měly mít jedinou zodpovědnost.</p> Signup and view all the answers

Agregace je ____ více částí, kde seskupený objekt může existovat bez tvořícího objektu.

<p>seskupení</p> Signup and view all the answers

Jaký princip zabraňuje vytváření cyklů v závislostech?

<p>Acyclic Dependencies Principle (C)</p> Signup and view all the answers

Princip Liskov Substitution říká, že odvozené třídy by neměly být zaměnitelné za bázové třídy.

<p>False (B)</p> Signup and view all the answers

Objekt má roli, identitu, má metody a uchovává ____.

<p>data</p> Signup and view all the answers

Spárujte principy orientovaného návrhu s jejich popisy:

<p>Single Responsibility Principle = Třídy by měly mít jedinou zodpovědnost Open Closed Principle = Třída by měla být otevřena pro rozšíření Do not Repeat Yourself = Neopakujte stejný kód na různých místech Dependency Inversion Principle = Závislost na abstraktním, nikoli na konkrétním</p> Signup and view all the answers

Jaké jsou nevýhody Model-View-Controller architektury?

<p>Těžší zpracování pro jednoduché modely (D)</p> Signup and view all the answers

Vrstvená architektura umožňuje modifikaci všech vrstev nezávisle na sobě.

<p>False (B)</p> Signup and view all the answers

Co dělá Controller v Model-View-Controller architektuře?

<p>Zajišťuje změny modelu na základě akcí uživatele a mění pohled podle změn modelu.</p> Signup and view all the answers

Nejnižší vrstva ve vrstvené architektuře se nazývá ___________.

<p>jádro systému</p> Signup and view all the answers

Přiřaďte architekturu k jejím výhodám:

<p>Model-View-Controller = Oddělení prezentace a dat Vrstvená architektura = Možnost nahradit vrstvy Klient-server = Distribuce služeb v síti Konceptuální modely = Reprezentace reálného systému</p> Signup and view all the answers

Jaký je hlavní účel Klient-Server architektury?

<p>Oddělení funkcionality do služeb (A)</p> Signup and view all the answers

Co je to doménový model v kontextu konceptuálních modelů?

<p>Reprezentuje entity a pojmy problémové domény.</p> Signup and view all the answers

Klient-Server architektura je náchylnější k útokům typu denial of service.

<p>True (A)</p> Signup and view all the answers

Flashcards

Složitost SW

Zvyšující se složitost, ztěžující pochopení, údržbu a rozšiřování. Žádné dvě části nejsou stejné, což komplikuje vývoj.

Přizpůsobivost SW

Schopnost softwaru přizpůsobit se změnám okolí a požadavků, bez nutnosti velkých změn v kódu.

Nestálost SW

Neustálý přísun nových požadavků, čímž se mění SW v závislosti na vnějších faktorech.

Neviditelnost SW

Neschopnost vidět všechny aspekty a prvky softwaru v jeho reprezentaci. Těžko identifikovat chybějící funkcionalitu.

Signup and view all the flashcards

Stárnutí SW

Postupný úpadek softwaru v důsledku častých oprav a přidávání funkcí. Vzniká neefektivní systém.

Signup and view all the flashcards

Popis licence

Určuje práva k využití duševního vlastnictví. Příklady: Public - volný přístup, Open Source - volně dostupný kód (GPL, LGPL, GFDL, BSD).

Signup and view all the flashcards

Proprietární software

Software, u kterého má výrobce právo kontroly a vlastnictví. Uživatel nemá právo na úpravu kódu.

Signup and view all the flashcards

Svobodný software (Free SW, Open Source)

Otevřený software, který umožňuje volné využívání, upravování a šíření. Typy: Copyleft - práva k modifikaci s podmínkami, BSD-style - volné šíření s formálními atributy, Public domain - bez autorských práv.

Signup and view all the flashcards

Metodika vývoje SW

Soubor pravidel a postupů pro vývoj softwarového produktu. Využívá se pro nalezení efektivního způsobu vývoje.

Signup and view all the flashcards

Životní cyklus softwaru

Proces rozdělení vývoje softwaru do etap. Vývoj rozdělí na fáze: analýza, architektura, implementace, testování, provoz a údržba.

Signup and view all the flashcards

Proces vývoje softwaru

Transformace potřeb uživatelů do funkční reality. Postup, který zahrnuje převedení požadavků do funkcí.

Signup and view all the flashcards

Model-View-Controller (MVC)

Odděluje prezentaci a interakci od dat aplikace. Usnadňuje různé zobrazení a interakci pro stejný model.

Signup and view all the flashcards

Model (MVC)

Zajišťuje kontrolu nad stavem a daty aplikace.

Signup and view all the flashcards

View (MVC)

Zobrazuje informace z modelu.

Signup and view all the flashcards

Controller (MVC)

Spravuje reakce na události a změny.

Signup and view all the flashcards

Vrstvená architektura

Rozdělení systému do vrstev. Každá vrstva má svoji funkci a komunikuje s nižšími vrstvami.

Signup and view all the flashcards

Nezávislost vrstev (Vrstvená architektura)

Každá vrstva je oddělená a může být modifikována nezávisle na jiných.

Signup and view all the flashcards

Klient-server architektura

Služby jsou poskytovány nezávislými servery. Klient požaduje služby od serverů.

Signup and view all the flashcards

Doménový model

Entit a pojmy z reálného světa. Základ pro modelování systému.

Signup and view all the flashcards

Inicializace projektu

Fáze projektu zaměřená na zahájení a přípravu. Zahrnuje sběr informací, definici cílů, určení zdroje, identifikaci rizik a vytvoření plánu.

Signup and view all the flashcards

CMM model (Capability Maturity Model)

Systém řízení a hodnocení zralosti organizace. Zahrnuje 5 úrovní zralosti a oblastí zralosti, které definují, jak dobře jsou v organizaci nastaveny procesy a chování.

Signup and view all the flashcards

Plánování projektu

Fáze projektu, která zahrnuje definici podrobného plánu, určení zdrojů, definování úkolů, harmonogramu a rozpočtu pro projekt.

Signup and view all the flashcards

Řízení projektu

Fáze projektu zaměřená na realizaci plánu a sledování průběhu projektu. Zahrnuje řízení zdrojů, monitorování úkolů, kontrolu kvality a řešení problémů.

Signup and view all the flashcards

Ukončení projektu

Fáze projektu zahrnující konečné dokončení projektu, dokumentaci a analýzu výsledků. Zahrnuje uzavření smluv, vyhodnocení projektu a předání výsledků zákazníkovi.

Signup and view all the flashcards

Strukturovaný přístup k analýze a návrhu

Systém chápaný jako komplex procesů, které operují nad daty. Má různou úroveň abstrakce: konceptuální, logický a fyzický model.

Signup and view all the flashcards

Konceptuální model

Zobrazuje podstatu systému a vztahy mezi jeho částmi. Pracuje s daty a toky dat.

Signup and view all the flashcards

Logický model

Vytváří detailnější implementaci konceptuálního modelu. Nespecifikuje fyzické detaily, ale definuje logickou strukturu.

Signup and view all the flashcards

Fyzický model

Specifikuje fyzické uspořádání dat a procesů. Například definuje struktury databází a souborů.

Signup and view all the flashcards

Objektově orientovaný přístup k analýze a návrhu

Systém chápaný jako komplex vzájemně komunikujících objektů. Vyjadřuje dynamiku a interaktivitu s využitím objektů, tříd a vzájemných vztahů.

Signup and view all the flashcards

Objekt

Základní jednotka v objektově orientovaném návrhu - má vlastnosti a chování. Uchovává data, má metody a komunikuje se zprávami.

Signup and view all the flashcards

Modelování systému

Proces specifikace a modelování systému; zahrnuje modely architektury, chování a interakce, a datový model.

Signup and view all the flashcards

Model Architektury

Znázornění struktury systému, např. pomocí diagramu tříd.

Signup and view all the flashcards

Třída

Typ objektu, definuje vlastnosti a chování všech objektů daného typu.

Signup and view all the flashcards

Modely chování

Znázornění chování systému (uživatelé, funkce, nefunkční požadavky), např. pomocí use case diagramu nebo stavového diagramu.

Signup and view all the flashcards

Vztahy tříd

Popsat vztahy mezi třídami. Například dědičnost, asociace, závislost a realizace.

Signup and view all the flashcards

Modely interakce

Popis interakce elementů v systému (objekty, aktéři) např. pomocí diagramu komunikace.

Signup and view all the flashcards

Datový model

Popis perzistentních (stálých) dat systému, např. pomocí ERD.

Signup and view all the flashcards

Typování

Určení sémantického významu programových elementů, umožňuje definovat operace.

Signup and view all the flashcards

Staticky typované jazyky

Jazyky, které provádí kontrolu typu během kompilace (např.: C++, Java).

Signup and view all the flashcards

Dynamicky typované jazyky

Jazyky, které provádí kontrolu typu během běhu programu (např.: Python, JavaScript).

Signup and view all the flashcards

Study Notes

Úvod do softwarového inženýrství

  • Softwarové inženýrství je systematický přístup k vývoji, nasazení a údržbě softwaru.
  • Je to inženýrská disciplína zabývající se praktickými problémy při vývoji rozsáhlých softwarových systémů.
  • Softwar se vytváří pro zlepšení služeb, snížení nákladů, nemožnost řešení problémů bez počítačových systémů a pro zlepšení vlastností softwaru (spolehlivost, bezpečnost, použitelnost). Zvyšuje se potřeba produktivity vývoje softwaru.

Softwarová krize v 60. letech

  • Projevovala se prodražováním a prodlužováním projektů.
  • Nízké kvality výsledků.
  • Problematická údržba a nízká produktivita programátorů.
  • Hledání řešení vedlo k zavedení strukturovaného programování jako prvního kroku k metodickému přístupu k programování.

Softwarový produkt

  • Softwarový produkt je sbírka počítačových programů, procedur, pravidel a s nimi spojená dokumentace.
  • Zahrnuje požadavky, specifikace, návrhy, zdrojové kódy, testovací data, manuály a dokumentaci.
  • Aktéry se skládají ze zákazníků (sponzorů), dodavatelů (vývojářů systému) a uživatelů (testují a používají systém).

Druhy softwaru

  • Generický software (krabicový): prodává se libovolnému zájemci.
  • Zákaznický software: šitý na míru konkrétnímu zákazníkovi.

Kvalita softwaru

  • Kvalita softwaru je souhrn vlastností a charakteristik výrobku, procesu nebo služby, která naznačuje jeho schopnost plnit určené nebo odvozené potřeby.
  • Definuje se jako stupeň splnění požadavků a potřeb zákazníka.

Správnost, spolehlivost a efektivnost softwaru

  • Správnost: Míra, v jaké SW vyhovuje specifikaci.
  • Spolehlivost: Pravděpodobnost, že SW bude v daném čase vykonávat zamýšlenou funkci.
  • Efektivnost: Splnění kritérií pro využití zdrojů počítačového systému v přiměřeném čase a nákladech.

Další vlastnosti softwaru

  • Použitelnost: Úsilí vynaložené na používání softwaru.
  • Bezpečnost: Míra odolnosti vůči neoprávněným zásahům do systému.
  • Přenositelnost: Snadnost přenesení software na jinou platformu.
  • Znovupoužitelnost: Možnost znovu použít jednotlivé části SW.
  • Interoperabilita: Možnost spolupráce s jinými systémy.
  • Udržovatelnost: Možnost reakovat na měnící se potřeby zákazníka nebo legislativy.
  • Testovatelnost: Úsilí nutné k provedení testů softwaru.
  • Dokumentovanost: Úplnost dokumentace k SW.
  • Problémy s vývojem software: Složitost, přizpůsobivost, nestálost, neviditelnost (problematika komunikace, práce v týmu, změny požadavků, neschopnost odhalit chyby ve struktuře).
  • Metodiky: vodopádový model, iterativní model, prototypování, spirálový model, Racional Unified Process (RUP)

Softwarový proces a proces vývoje software

  • Definuje, kdo co dělá, aby byly požadavky splněny, krok za krokem.
  • Analýza a specifikace, architektonický návrh, implementace a testování součástí, integrace a testování systému, provoz a údržba.

Modely vývoje softwaru

Rozdílné druhy modelů s různými výhodami a nevýhodami podle komplexity projektu a požadavků na rychlost vývoje a adaptaci k požadavkům zákazníků.

Prototypování

  • Metoda vývoje, kdy se nejprve vytvoří funkční prototyp, který je pak s užitím zpětné vazby zákazníka postupně vylepšován.

Správové modely

  • Vodopádový model, iterativní model, spirálový model, RUP, Agile a další modely pro management projektu.

Další pojmy

  • Abstrakce: Zjednodušené znázornění bez ztráty významu.
  • Zapouzdření: Skupina dat, operací, a atributů pro skrytí detailů implementace.
  • Dědičnost: Definice typů a objektů na základě již existujících.
  • Polymorfismus: Třídy/objekty pro provádění určité operace, i když je společná pro více typů.
  • Diagram tříd, datový tok, stavový diagram, diagram případu použití, sekvenční diagram, diagram komunikace.
  • Specifikace požadavků, validizace požadavků, verifikace požadavků, metoda testování a testování černé a bílé skříňky.
  • IT support, SLA (Service Level Agreement), OLA (Operational Level Agreement), Projekty a cyklus.
  • IT Operations (Operace v IT prostředí), IT Transitions (Přechody pro zlepšení a expanzi IT služeb).

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Description

Tento kvíz se zaměřuje na základy softwarového inženýrství, historii a vývoj softwaru. Prozkoumá také softwarovou krizi v 60. letech a definici softwarového produktu. Otestujte své znalosti o klíčových koncepcích a přístupech v softwarovém inženýrství.

More Like This

Evolution of Software Engineering
10 questions
Software Crisis Overview
16 questions
Software Engineering: Introduction and Crisis
16 questions
Use Quizgecko on...
Browser
Browser