Reengineering

Opublikowane przez Szymon Jeż ponad rok temu

Rozmawiając i czytając zauważam, że pojęcie reengineeringu oprogramowania jest mało znane i często mylone z reengineeringiem w biznesie (business process reengineering). Jako, że interesowałem się trochę tym pojęciem i praktykowałem reengineering w trakcie pisania pracy dyplomowej, pomyślałem, że mógłbym przyczynić się do rozpropagowania jego znaczenia.

Dodałem do polskojęzycznej wersji Wikipedii odpowiednie hasło o poniższej treści, będące tłumaczeniem z wersji angielskojęzycznej:

Reengineering oprogramowania został opisany przez Chikofskiego i Crossa w 1990 w ich pracy[1], jako "Badania i zmiana systemu do rekonstytuowania (odtworzenia/przywrócenia) go w nowej formie". Mniej formalnie, reengineering jest modyfikacją systemu oprogramowania, który ma miejsce po jego inżynierii odwrotnej, ogólnie aby dodawać nowe funkcje lub wprowadzić korekty błędów. Cały proces jest często błędnie zwany inżynierią odwrotną; jakkolwiek, dokładniej jest powiedzieć, że inżynieria odwrotna jest wstępnym badaniem systemu, a reengineering jest późniejszą zmianą (opartą na wstępnym badaniu, czyli na inżynierii wstecznej).

Informacji nie dużo, ale istotę można zrozumieć. Chwilowo wstrzymałem się od rozszerzania tego hasła. Ciekawi tematyki mogą zajrzeć do źródła [1] i dowiedzieć się więcej. Poniżej zamieszczam również moje notatki na temat reengineeringu oprogramowania.

Reengineering można również nazwać renowacją (remontem) oprogramowania. Reengineering korzysta z inżynierii w przód (ang. forward engineering) i wstecz (ang. reverse engineering) oraz z refaktoryzacji (restrukturyzacji).

Reengineering często wykorzystywany jest aby system informatyczny (SI) pozbawić słabych punktów i wprowadzić nowe funkcjonalności, wynikłe ze zmian wymagań. Zmiany wymagań następują dla systemów już istniejących w wyniku zmiany środowiska w jakim one działają (np. przeniesienie na nową platformę, do nowej firmy; pojawienie się nowego SI, z którym konieczna jest komunikacja). Poza tym występuje zjawisko starzenia się oprogramowania (mimo iż nie ma ono postaci fizycznej)[5] i często wymagane jest jego modyfikowanie w celu utrzymania go przy życiu.

Reengineering może dotyczyć całego systemu informatycznego, bądź tylko jego wybranej części (np. modułu, obszaru).

Reenginering wiąże się z takimi pojęciami jak: inżynieria w przód, inżynieria odwrotna (w tył), restrukturyzacja i refaktoryzacja oprogramowania.

źródła:

[1] Chikofsky, E. and Cross, J., 1990. Reverse Engineering and Design Recovery: A Taxonomy. IEEE Software, 7(1):13-18. (czytaj ten arykuł)
[2] Artykuł o reengineringu oprogramowania na Wikipedii
[3] Artykuł o reengineringu oprogramowania na Wikipedii (wersja angielska)
[4] Artykuł o reengineringu oprogramowania na Wikipedii (wersja niemiecka)
[5] Artykuł o starzeniu się oprogramowania z niemieckojęzycznej Wikipedii

Opublikowano w  | Tagi , , , ,  | brak komentarzy | brak trackbacków

Komentarze

Trackbacki

Użyj następującego trackbacka na swojej stronie:
http://szymon.jez.net.pl/trackbacks?article_id=76

(zostaw url/email »)

   Pomoc języka formatowania Obejrzyj komentarz