Rozdíl mezi dopředným a zpětným inženýrstvím
Obsah
- Srovnávací tabulka
- Definice Forward Engineering
- Definice zpětného inženýrství
- Vztah mezi dopředným a zpětným inženýrstvím
- Závěr
Forwardové inženýrství a reverzní inženýrství jsou součástí procesu přepracování a úzce souvisí. Zásadní rozdíl mezi dopředným a zpětným inženýrstvím spočívá v tom, že dopředné inženýrství využívá změny v systému subjektu během restrukturalizace. Naopak, jediným účelem reverzního inženýrství je prozkoumat systém a získat jeho abstraktnější design.
Software re-engineering není nic jiného než re-implementace starého systému k dosažení větší udržitelnosti. Vývoj systému vyžaduje asimilaci existujícího systému, který musí být změněn tak, aby systém mohl být změněn provedením změn.
-
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka
Základ pro srovnání | Forward Engineering | Reverzní inženýrství |
---|---|---|
Základní | Vývoj aplikace s poskytnutými požadavky. | Požadavky jsou odvozeny z dané aplikace. |
Jistota | Vždy vytváří aplikaci implementující požadavky. | Jeden může přinést několik představ o požadavku z implementace. |
Příroda | Nařizovací | Adaptivní |
Potřebné dovednosti | Vysoká odbornost | Odbornost na nízké úrovni |
Potřebný čas | Více | Méně |
Přesnost | Model musí být přesný a úplný. | Inexact model může také poskytovat částečné informace. |
Definice Forward Engineering
Přední inženýrství je proces vytváření aplikace pomocí obecných požadavků konečné implementace. Elliot J. Chikofsky a James H. Cross použili ve své práci v roce 1990 termín „dopředné inženýrství“ a spojili jej s konvenčním vývojem. Jak bylo uvedeno výše, technika evoluce systému vyžaduje správné porozumění existujícího softwaru nebo programů, pak lze zavést a implementovat pouze nové změny.
Přední inženýrství zahrnuje stavbu produktu podle obecné specifikace, kde jsou staré specifikace systému analyzovány, restrukturalizovány a regenerovány, aby se získal produkt nejvyšší kvality.
Další názvy používané pro dopředné inženýrství jsou „renovace a rekultivace“, Protože nejenže získává informace o designu z existujícího softwaru, ale také tyto informace využívá při výrobě vysoce kvalitního produktu.
Definice zpětného inženýrství
Reverzní inženýrství, jak název napovídá, je inverzní proces dopředného inženýrství, kde je existující systém analyzován za účelem vytvoření dokumentace stávajícího systému. Zpočátku je zpětné inženýrství implementováno na hardwaru, kde převažuje výkon dešifrovacích návrhů z hotových produktů.
Při vývoji nové aplikace je však cílem reverzní techniky objevit komponenty systému a jejich vztah. Stávající softwarový kód je analyzován na určitých úrovních abstrakce - systém, komponenta, program, příkaz a vzor.
Toto obnovení dat, architektonických a procedurálních návrhových informací je provedeno pro vytvoření reprezentace programu s ohledem na vyšší úroveň abstrakce vzhledem ke zdrojovému kódu.
- Forward engineering začíná specifikací systému a zahrnuje návrh a implementaci vyvíjejícího se systému. Naopak, počáteční krok v reverzním inženýrství začíná existujícím systémem a vývojová technika pro nahrazení je založena na interpretaci.
- Vždy je jisté, že se vytvoří vedlejší produkt dopředného inženýrství, ale v případě zpětného inženýrství se generuje několik myšlenek o požadavku, který nemusí nutně vytvářet produkt.
- Forwardové inženýrství je ve své podstatě normativní, pokud vývojáři potřebují dodržovat konkrétní pravidla, aby dosáhli správných výsledků. Na druhé straně, reverzní inženýrství je adaptivní, když inženýr musí zjistit, co vývojář skutečně udělal.
- Dopředné inženýrství spotřebovává více času ve srovnání s reverzním inženýrstvím.
- Konečný produkt dopředného inženýrství musí být úplný a přesný. Naproti tomu může být model reverzního inženýrství nedokonalý, získané částečné informace jsou stále užitečné.
Vztah mezi dopředným a zpětným inženýrstvím
Závěr
Dopředné inženýrství zahrnuje změnu v předmětném systému, zatímco reverzní inženýrství pouze analyzuje systém. Kromě toho jsou to součásti procesu přepracování.