Advertisement
Поиск  
Always will be ready notify the world about expectations as easy as possible: job change page
Oct 21, 2023

Dead End

Источник:
Просмотров:
773

AntiPattern Problem

A Dead End is reached by modifying a reusable component, if the modified component is no longer maintained and supported by the supplier. When these modifications are made, the support burden transfers to the application system developers and maintainers. Improvements in the reusable component cannot be easily integrated, and support problems may be blamed on the modification.

The supplier may be a commercial vendor, in which case this AntiPattern is also known as Commercial off-the-shelf (COTS) Customization. When subsequent releases of the product become available, the special modifications will have to be made again, if possible. If fact, it may not be possible to upgrade the customized component, for various reasons such as cost and staff turnover.

The decision to modify a reusable component by a system's integrator is often seen as a workaround for the vendor's product inadequacies. As a short-term measure, this helps a product development progress, rather than slow it down.

The longer-term support burden becomes untenable when trying to deal with the future application versions and the "reusable component" vendor's releases. The only time we saw this work was when the system's integrator arranged with the reusable component vendor that the SI modifications would be included in the next release of the vendor product. It was pure luck that their objectives were the same.

Refactored Solution

Avoid COTS Customization and modifications to reusable software. Minimize the risk of a Dead End by using mainstream platforms and COTS infrastructure, and upgrading according to the supplier's release schedule.

When customization is unavoidable, use an isolation layer (see Vendor Lock-In). Use isolation layers and other techniques to separate dependencies from the majority of the application software from customizations and proprietary interfaces.

A Dead End may be an acceptable solution in testbeds that support basic research such as throwaway code, and significant benefits are realized through the customization.

Похожее
Mar 29
Author: Josh Fruhlinger
Generative AI has seized the popular imagination and started a new tech gold rush. While much attention has been focused on AI tools that produce natural language prose and visual art, in tech circles AI is gaining increased interest for...
Oct 21, 2023
AntiPattern ProblemSoftware that fails straightforward behavioral tests may be an example of an Input Kludge, which occurs when ad hoc algorithms are employed for handling program input.For example, if the program accepts free text input from the user, an ad...
Oct 21, 2023
BackgroundCut-and-Paste Programming is a very common, but degenerate form of software reuse which creates maintenance nightmares. It comes from the notion that it's easier to modify existing software than program from scratch. This is usually true and represents good software...
Apr 12
Author: Stephen Young
“What the hell was I thinking?!?”It’s 1:30AM and I am staring at a piece of code I wrote no more than a month ago. At the time it seemed like a work of art. It all made sense. It was...
Написать сообщение
Почта
Имя
*Сообщение


© 1999–2024 WebDynamics
1980–... Sergey Drozdov
Area of interests: .NET Framework | .NET Core | C# | ASP.NET | Windows Forms | WPF | HTML5 | CSS3 | jQuery | AJAX | Angular | React | MS SQL Server | Transact-SQL | ADO.NET | Entity Framework | IIS | OOP | OOA | OOD | WCF | WPF | MSMQ | MVC | MVP | MVVM | Design Patterns | Enterprise Architecture | Scrum | Kanban