0
7.3kviews
Differentiate software architectural erosion and architectural drift?

Mumbai University > Computer Engineering > Sem 7 > Software Architecture

Marks: 5M

Year: Dec 2015

1 Answer
0
353views

Architectural Drift

Architectural drift is introduction of principal design decisions into a system’s descriptive architecture that

  • Are not included in, encompassed by, or implied by the prescriptive architecture
  • But which do not violate any of the prescriptive architecture’s design decisions

Architectural drift is when the implementation of a program diverges from the initial design and purpose.

  • The problems it brings are similar to erosion; it will be increasingly difficult to further develop, maintain or even understand the code because design decisions are not always apparent when only looking at the code.
  • To prevent architectural drift, there needs to be some kind of communication between the system designers and the implementers such as having the designers follow the progress of the implementation or having the implementers carefully document their work.

Architectural Erosion

Architectural erosion is the introduction of architectural design decisions into a system’s descriptive architecture that violate its prescriptive architecture.

  • Architectural erosion usually occurs when a program's code is initially less than optimal, contains "hacks" to quickly add functionality or simply cannot support the desired new changes due to the code structure.
  • The problems it presents is an ever increasing maintenance cost due to the complexity of the system as a result of the accumulation of various design decisions. The only viable solution to fix or prevent architectural erosion is to rewrite the entire code base from scratch and try to anticipate future developments in order to accommodate them.
  • Architectural drift is when the implementation of a program diverges from the initial design and purpose.
  • The problems it brings are similar to erosion; it will be increasingly difficult to further develop, maintain or even understand the code because design decisions are not always apparent when only looking at the code.
  • To prevent architectural drift, there needs to be some kind of communication between the system designers and the implementers such as having the designers follow the progress of the implementation or having the implementers carefully document their work.

Drift violation:

  • once the implementation of software goes beyond the conceptual architecture the drift violation arise, in fact, the software does not meet all the requirements as the client requested; however, it met most of it.

Erosion violation

  • The most serious violation which could occur in the implemented software which does not meet any client's requirements.
Please log in to add an answer.