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

Input Kludge

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

AntiPattern Problem

Software 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 hoc algorithm will mishandle many combinations of legal and illegal input strings. The anecdotal evidence for an Input Kludge goes like this: "End users can break new programs within moments of touching the keyboard."

Input

Refactored Solution

For nondemonstration software, use production-quality input algorithms. For example, lexical analysis and parsing software is readily available as freeware. Programs such as lex and yacc enable robust handling of text comprised of regular expressions and context-free language grammars. Employing these technologies for production-quality software is recommended to ensure proper handling of unexpected inputs.

Variation

Many software defects arise due to unexpected combinations of user-accesible features. Employing a feature matrix is recommended for sophisticated applications with graphical user interfaces.

A feature matrix is state information in the program used to enable and disable features prior to user actions. When the user invokes a feature, the feature matrix indicates which other features must be disabled in order to avoid conflicts. For example, a feature matrix is often used to highlight and unhighlight menu commands prior to displaying the menu.

Background

Programmers are trained to avoid input combinations that cause program and system crashes. In a hands-on training course on OpenDoc, we used a preliminary alpha release of the technology that was not yet sufficiently robust for production-quality development. In other words, it was easy to crash the entire operating system with seemingly correct sequences of input commands and mouse operations.

The students spent the first day experiencing numerous system crashes and waiting for system reboot. After attending the "crashing labs," we wondered whether the release was robust enough to enable any kind of sophisticated software development. By the end of the week, we had learned to work around the limitations and perform programming tasks and input operations that went well beyond our expectations formed the first day. We had internalized the input sequences that avoided system crashes.

Похожее
Oct 21, 2023
AntiPattern Problem A Boat Anchor is a piece of software or hardware that serves no useful purpose on the current project. Often, the Boat Anchor is a costly acquisition, which makes the purchase even more ironic. The reasons for acquiring...
Jul 24, 2023
Author: Mario Bittencourt
We have been living in a distributed world for quite some time, and when considering how should you implement the communication between any two parties involved, the discussion seems to gravitate around two options: API or messaging. Instead of focusing...
Oct 20, 2023
AntiPattern Problem Technology is changing so rapidly that developers have trouble keeping up with the current versions of software and finding combinations of product releases that work together. Given that every commercial product line evolves through new product releases, the...
Jun 29, 2023
Author: Megha Prasad
Attributes and decorators, which allow you to attach metadata to classes, properties, and methods. Attributes Attributes in C# allow you to attach metadata to your classes, methods, and other code elements. This metadata can then be used at runtime to...
Написать сообщение
Тип
Почта
Имя
*Сообщение