Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

11

11.08.2017, 18:30

Mmh, wenn man seine Arbeit über Refactoring schreiben würde, dann sähe die Arbeit ganz anders aus.

Für mich klingt das ganze trotzdem erst mal wie ein Unterraum vom Refactoring. Aber vielleicht dürfen wir die Abschlussarbeit ja am Ende mal lesen und sehen dann was da so alles mit rein spielt. Neue Anforderungen können meiner Meinung nach auch beim Refactoring umgesetzt werden. Du hast eben alten Code den du auffrischst, unter anderem damit du ihn erweitern kannst. Die Erweiterung ist dann einfach ein weiterer Schritt denn man denke ich gerne auch noch mit dazu zählen darf. Das ist aber nur meine Meinung und von Reengineering hatte ich bis vor kurzem ja nicht mal gehört.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

12

11.08.2017, 18:42

Beim Refactoring geht es aber nicht darum z.B. eine Web-Oberfläche vor eine Legacy-Anwendung zu knallen. Oder eine Legacy-Anwendung so umzubasteln, dass sie auch unter Linux läuft (vorher nur Windows-Betrieb möglich) o.Ä. Bei Software-Reengineering kann genau das gemeint sein.

Den Begriff Refactoring gibt's nur in der Softwaretechnik und meint immer die Qualität des Quelltexts - nicht "den Button bitte in Rot und nicht mehr in Blau anzeigen".

Refactoring als Sammelbegriff für Überarbeitung zu nehmen, halte ich für sehr fragwürdig und ein solches Verständnis führt zu Bugs, wenn die Leute dann mehr machen als nur Erhaltung.

Wenn man sich die Literatur anschaut, sieht man auch, dass selbst Software-Wartung nicht unbedingt als Oberbegriff für Reengineering taugt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (11.08.2017, 18:47)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

11.08.2017, 18:54

Re-engineering meint auch das Einbeziehen neuer Anforderungen.
Das ist eigentlich genau der Grund für die üblichen Refactorings, die wir so durchführen - neue Anforderungen.

Oder eine Legacy-Anwendung so umzubasteln, dass sie auch unter Linux läuft
Also um das zu erreichen, würde ich eine Anwendung refactoren. /shrug
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

14

11.08.2017, 18:58

Re-engineering meint auch das Einbeziehen neuer Anforderungen.
Das ist eigentlich genau der Grund für die üblichen Refactorings, die wir so durchführen.
Das mag ja sein, aber das Refactoring selbst sollte nie die eigentliche Funktionalität verändern. Refactoring kann natürlich als Grundlage dienen um neue Funktionen anzudocken. Der Begriff Refactoring ist doch nun wirklich ziemlich klar definiert. Die Definition von refactoring.com entspricht so ziemlich dem, wie ich den Begriff aus Literatur und Gesprächen mit anderen Entwicklern kennengelernt habe: …is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.


Oder eine Legacy-Anwendung so umzubasteln, dass sie auch unter Linux läuft
Also um das zu erreichen, würde ich eine Anwendung refactoren. /shrug
Wenn "Refactoring" das einzige ist, was Du dazu tun musst, dann verwendest Du den Begriff falsch. /shrug

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (11.08.2017, 19:03)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

15

11.08.2017, 19:04

Die Definition von refactoring.com entspricht so ziemlich dem, wie ich den Begriff aus Literatur und Gesprächen mit anderen Entwicklern kennengelernt habe: …is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

Das ist ja soweit auch erst mal ok. Dann ist Reengineering wohl einfach Refactoring + neue Anforderungen umsetzen. Aber ob man dafür jetzt diesen Begriff benötigt. Aber gut, da brauchen wir nicht drüber streiten.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

16

11.08.2017, 19:06

Die Definition von refactoring.com entspricht so ziemlich dem, wie ich den Begriff aus Literatur und Gesprächen mit anderen Entwicklern kennengelernt habe: …is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

Das ist ja soweit auch erst mal ok. Dann ist Reengineering wohl einfach Refactoring + neue Anforderungen umsetzen. Aber ob man dafür jetzt diesen Begriff benötigt. Aber gut, da brauchen wir nicht drüber streiten.
Dann hast Du den Kern des Begriffs noch nicht verstanden. Re-engineering kann auch komplett ohne vorliegenden Quelltext stattfinden... Z.B. mit Reverse Engineering, Patchen whatever.

Hier noch eine Perspektive auf den Unterschied: https://craftofcoding.wordpress.com/2016…us-refactoring/

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (11.08.2017, 19:13)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

17

11.08.2017, 19:18

Dann hast Du den Kern des Begriffs noch nicht verstanden.

Wie bereits gesagt, ich hatte den Begriff vorher ja nicht mal gehört und hatte auch noch keine Zeit mich groß einzulesen. Ich glaube dir ja :D
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

11.08.2017, 19:24

Wie bereits gesagt, ich hatte den Begriff vorher ja nicht mal gehört
Und das ist vermutlich der spannendste und am meisten aussagende Fakt. ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

19

14.08.2017, 12:33

Also, wenn ich eure Diskussion verfolge, wirkt die Grenze zwischen Refactoring und Reengineering ziemlich fließend auf mich.

Was ich bislang mitgenommen habe, oder meine verstanden zu haben:
- Refactoring scheint eher "lokaler" zu sein, z.B. ich verbessere ein paar Codestellen indem ich ein passendes Pattern anwende
während Reengineering "globalere" Auswirkungen haben kann, z.B. wenn ich die existierende Oberfläche einer Anwendung wegschmeiße und stattdessen die bereits erwähnte Weboberfläche implementiere.
- Bei Refactoring heißt es typischerweise, dass sich das externe Verhalten der Anwendung nicht ändern soll. Wobei die Anwendung gerne intern für zukünftige Anforderungen besser gerüstet sein darf.
Beim Reengineering bezieht man evtl. aber neue Anforderungen direkt in die Umsetzung ein.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

20

14.08.2017, 12:51

Beim Reengineering bezieht man evtl. aber neue Anforderungen direkt in die Umsetzung ein.
Das macht man halt aber bei Refactoring auch. Klar kann man auch einfach nur Dinge ändern, um des Änderns Willen. Aber meist hat es ja einen Grund, warum man Dinge ändert. Nämlich damit neue Anforderungen eingebracht werden können.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige