Jste zde

Zaměňované pojmy v oblasti SW inženýrství

Při přednáškách a přípravě na letošní zkoušky z Analýzy a návrhu informačních systémů a Bezpečnosti informačních systémů jsem si vzpomněl na pár pojmů, které bývají často zaměňovány a používány v opačném významu, i když je mezi nimi rozdíl. Mezi tyto pojmy patří např. validace a verifikace, metodologie a metodika a aplikační versus business logika (odmítám psát byznys logika, protože to vypadá divně). Ač je zde samozřejmě možnost, že tyto pojmy jsou na různých místech definovány a chápány různě, tak v následujícím příspěvku bych chtěl zmínit, jak to vidím já a různé zdroje, které jsem nalezl :).

Verifikace vs validace

  • Verifikace (verification) je kontrola, zda vyvíjený systém vyhovuje specifikacím (našemu návrhu). Máme nějaký model/návrh a podle něj jsme vyvinuli systém. Verifikací ověřujeme, že námi vyvinutý systém odpovídá návrhu, čili jsme vyrobili to, co jsme vyrobit chtěli (vytváříme produkt správně). Mezi metody verifikace patří většina testování, kterého se neúčastní zákazník (jednotkové testy, integrační testy apod.), inspekce kódu, simulace či různé formální analýzy a verifikace.
  • Validace (validation) je kontrola, zda vyvíjený systém splňuje to, co od něj zákazník očekává. Dal nám požadavky a zajímá jej, zda to, co dostane, je to, co chce. Je to tedy ověřování, že děláme (vyvíjíme) to, co máme (vytváříme správný produkt). Mezi metody validace patří např. akceptační testy, které se provádí u zákazníka (pokud např. zákazník požadoval, že operátor systému musí být schopen vykonat určitou činnost do půl minuty, tak se zkouší, zda to možné je).

Zdroje: 1, 2, 3

Metodologie vs metodika

  • Metodologie (methodology) je nejobecnější pojem a znamená "nauka o metodikách" (čili je to vědní disciplína, která se zabývá metodikami).
  • Metodika (method) je komplexní postup či návod, v našem případě pro vývoj softwarových systémů. Příkladem metodiky je Rational Unified Process (RUP), Extrémní programování či SCRUM. Čili říkáme "vyvíjíme podle metodiky XYZ", nikoliv "vyvíjíme podle metodologie XYZ".

Termíny metodologie a metodika bývají velmi často zaměňovány (mrkněte např. na diskusi na wikipedii). Můj názor souhlasí s tím, co jsem uvedl výše.

Zdroje: V. Kadlec, Agilní programování, Computer Press, 2004, Brno, ISBN 80-251-0342-0, 2, 3, 4, 5

Business vs aplikační logika

  • Business logika (business logic) definuje postupy a tok informací v rámci objektů domény. Vychází z podnikových pravidel, zákonů apod. a bude stejná nezávisle na aplikaci. Příkladem může být výpočet daně, výpočet slev, postup zpracování objednávek, výpočet následujícího data inspekce apod. Ve vzoru/architektuře MVC se business logika nachází ve vrstvě modelu (doménové vrstvě).
  • Aplikační logika (application logic) je, jak už název napovídá, závislá na dané aplikaci, nikoliv na podnikových pravidlech. Patří zde např. způsob správy sezení (session), přijímaní a odesílání HTTP požadavků, přístup k databázi apod. Ve vzoru/architektuře MVC se aplikační logika nachází v řadiči (controller).

Používání termínu aplikační logika místo business logika (či jako smíchaninu obojího) si vysvětluji tím, že někteří nemají anglicismy příliš v oblibě. Bohužel to ale pak může vést ke zmatení.

Zdroje: 1, 2, 3, 4

Pokud to někdo vidíte jinak, tak se nezapomeňte s vaším názorem podělit v komentáři :).

Komentáře

Zdravím
s názorem na tyto 2 termíny asi souhlasím (sám si nejsem moc jistý) jak to je.
Akorát bych chtěl poznamenat, že doktor Křena to používá v opoře pro IUS metodologie jako metodika.
Viz například:

Agilní metodologie
Metodologie založené na klasických modelech životního cyklu softwaru se vyvíjely dlou-
hou dobu a postupem času zmohutněly

Samozřejmě neříkám, že to musí být správně (spíš si myslím, že není protože on tu oporu moc neudržuje mi přijde, například jsem tam našel chybu a on mi odpověděl, že to je v pořádku, že na to na přednáškách upozorňoval). Jenom jsem to chtěl poznamenat.

Ahoj, díky za komentář!

Toho, že někteří používají slovo metodologie jako synonymum pro metodiku, si jsem vědom, ale mně osobně to nedává příliš smysl. Jak by se pak nazývala věda zabývající se metodologiemi? Metodologielogie? :) Takhle, když metodologie označuje onu vědu zabývající se metodikami, tak to sedí. Název věd obecně často končí příponou -logie, z řeckého logos, třeba astrologie, theologie, fyziologie atd. Tedy metodologie = věda o metodikách.

Co se týče chyb ve studijních materiálech, tak ty tam samozřejmě bývají, ale občas se stává, že člověk něco považuje za chybu, ale ve skutečnosti to je správně. Vždy je lepší to s někým (třeba se spolužákem, ale nejlépe s daným vyučujícím) zkonzultovat a snažit se pochopit, proč je to tam tak a ne jinak.

Jasne, formalne etymologicky mas pravdu. Ale realita je jinde - prirozeny jazyk dostava vyznam tim, jak ho lidi pouzivaji, a ne jen podle formalnich pravidel. Ono to neni jen tim, ze by to "nekteri pouzivali. V anglictine je 'methodology' uz dlouho a casto zavedene prave pro to, cemu se u nas rika spis ta metodika. Metodika ("methodics") se nepouziva zdaleka tak casto. A tenhle trend proste jen (zejmena v IT, kde je anglictina zasadni jazyk) presel i do cestiny, ktera tu metodiku i nejak pouziva. I oxfordsky slovnik ma pod heslem "methodology" jako primarni vyznam "system of methods in given field".

Díky za názor. Z toho, co jsem našel a přečetl, mně vyplývá snaha o to, aby se ve významu metodiky místo nekorektního metodologie (methodology) začalo používat korektnější metodika (method). Ano, metodologie má v praxi význam metodiky, ale řekl bych, že není nic špatného na snaze, aby se postupně začalo používat korektnější slovo. Tato snaha je vidět na mnoha místech, a tak i já se k ní snažím přispět.

Ahoj,
tížilo mě, jaký je rozdíl mezi verifikací a validací. Tys mně to vysvětlil naprosto jasně svým příspěvkem. Nyní tomu rozumím.
Moc děkuji, skvělá práce!

Přidat komentář