Na softwarové komponenty se lze dívat jako 1 na kostičky stavebnice. Na jednu stra nu poskytují nějaké služby( v analogii sta vebnice – to jsou výstupky na kostičkách) a na druhou naopak pro svůj běh požadují jiné služby( analogie prohlubní na kos tičkách stavebnice). Přes tyto poskytované a požadované služby se komponenty propojují dohromady( stejně jako se kostičky stavebnice zasouvají do sebe). Z několika pospojovaných komponent lze vytvořit další komponentu, tzv. složenou, a tu dále používat, viz obr. 1.
Softwarové komponenty poskytují mnoho výhod. Zejména to je kratší doba výroby programu( oproti tvorbě programu bez komponent). Dále pak kom ponenty umožňují snadnější testování a ověřování správnosti chování programu. Zde se využívá vlastnosti, že jednotlivé komponenty lze testovat a ověřovat samostatně, což je opět mnohem rychlejší než při nutnosti testovat celý program( což ve většině případu ani není možné, protože by to trvalo neúnosně dlouho, nebo by to ani nebylo v možnostech současných počítačů).
Testování a ověřování správnosti chování programů je důležité zejména v oblasti tzv. vestavěných systémů( v angličtině „ embedded systems“), tj. počítačů a programů, které jsou v automobilech a letadlech, které řídí výrobní linky a elektrárny nebo jsou v televizích a další spotřební elektronice. Překvapivě drtivá většina počítačů jsou právě vestavěné systémy. Například když byste rozebrali moderní automobil, našli byste takových systémů nejméně několik desítek. Podobně by tomu tak bylo v ostatních dopravních prostředcích stejně jako ve všech moderních továrnách, elektrárnách, apod. Zatímco chyba v textovém editoru nebo programovém vybavení televize má typicky za následek pouze nespokojené uživatele, chyba v programu obsluhujícím letadlo, vesmírnou družici nebo elektrárnu může mít fatální následky.
Další výhodou komponent, opět velmi využívanou v oblasti vestavěných systémů, je snadná tvorba tzv. produktových řad( v angličtině „ software product lines“). Na produktovou řadu se lze dívat jako na šablonu konkrétního programu, do které se zasunou komponenty podle aktuální potřeby. Jako příklad může posloužit například software pro automobily. Je běžné, že jeden model automobilu se dodává s různou výbavou( typ motoru, přítomnost klimatizace, typ rádia, přítomnost navigace, atd.). Software pro tyto různé varian ty je z hlediska poskládaní komponent stejný, jen se liší konkrétní použité komponenty( ovladač pro motor podle instalovaného typu atd.). Jiný příklad může být program určený pro běh jak na stolním počítači tak na „ chytrém telefonu“, kde je potřeba minimálně zohlednit různé uživatelské rozhraní( viz obr. 2).
Souvisejícím tématem je měření, testování a predikování výkonnosti kom ponent a programů obecně. Pod výkonností si lze představit například dobu potřeb nou na obsloužení jednoho požadavku uživatele( například za jak dlouho prohlížeč zobrazí požadovanou stránku). Toto je velmi důležité třeba u programů, se kterými pracuje naráz velké množství uživatelů. Při tvorbě se program testuje jen na omezené počty požadavků a často se pak stává, že při reálném nasazení program téměř okamžitě „ zkolabuje“, protože nezvládne zpracovat „ nápor“ uživatelů. Přímočaré řešení spočívající v nasazení většího počtu počítačů typicky nefunguje, protože některé operace lze provádět pouze sekvenčně.
Informatika: Softwarové komponenty 83