Glossary » Software Engineering
programming by filling out a set of forms that query a user about the types of inputs and results they want. Forms-based approaches are useful in specialized domains which do not require the full power and generalization of a traditional…Read more »
designing software to work with future versions of itself, e.g. by anticipating the needs of future versions and how they will impact data formats and network protocols. For instance, in web development, writing HTML so that it will work in…Read more »
the merger of multiple designs into one despite the fact that they don’t form a coherent, consistent whole. A typical situation is to present multiple design options to a client who asks for a piecemeal combination of features. While the…Read more »
in prototypes, the representation of text as incomprehensible words, greek or latin filler words, X’s, lines, or scribbles. Also called mumble text. The idea is to give a feel for how the page will look and be organized without needing…Read more »
systems that add group support to single-user applications, by providing, for instance, telepointers, overlays for collaborative annotations, shared windows, chat facilities, and methods for finding and connecting to other users.Read more »
the value system espoused by an ill-defined collection of hackers, programmers and other technologists who love working with computers. The primary value is that all information should be free, and this has been reflected in shareware and open source code…Read more »
a prototype that is quite close to the final product, with lots of detail and functionality. From a user testing point of view, a high-fidelity prototype is close enough to a final product to be able to examine usability questions…Read more »
describes what types of capabilities are implemented in a prototype: horizontal prototypes display a wide range of features but without fully implementing all of those features; vertical prototypes do not attempt to show all that will be in a system…Read more »
HypertText Markup Language; a simple notation for describing the format and content of text by adding simple annotations or “tags” to the text. HTML is the fundamental format used for presenting documents on the web.Read more »
integrated development environment; a software development tool that integrates a wide variety of tools, such as syntax-directed editors, debuggers, and screen layout tools.Read more »
the idea that design should be done in repeated cycles where, in each cycle, the design is elaborated, refined, and tested, and the results of testing at each cycle feed into the design focus of the next cycle.
This is…Read more »
a program that automatically determines the layout of graphics and user interface elements based on relationships and restrictions specified by the designer/programmer. A layout manager is particularly useful for handling layouts when a programmer cannot be certain of what graphic…Read more »
a state in which the computer is “learning” by observing the user’s behavior. The term is often used to refer to the period when a macro is being defined by having each action the user performs added to the macro,…Read more »
a prototype that is sketchy and incomplete, that has some characteristics of the target product but is otherwise simple, usually in order to quickly produce the prototype and test broad concepts.Read more »
another term for prototypes, usually referring to low-fidelity prototypes, such as paper illustrations, screenshots, or simple configurations of screens with limited interaction.Read more »
(MVC) an architecture for software that separates the underlying application (model) from the user interface display (view) and input (controller).
MVC is generally implemented with callbacks – the underlying application registers with user interface widgets (in the view and controller)…Read more »
a man-month is a way of measuring work output for production which is reasonably helpful in certain limited areas of industries like manufacturing. The basic idea is that if you want to produce twice as many sprockets, then you can…Read more »
(OOP) a programming technique and a characteristic of programming languages often associated with graphical user interfaces. Object-oriented programming treats data items as “objects” belonging to a category of related objects with similar functionality called a “class”. Classes are organized in…Read more »
a paper sketch of a user interface with enough detail to make design decisions and usability evaluations, whether through a usability inspection, a focus group, or a simple user test.Read more »
an application or system architecture that allows applications to run with a different look and feel than that originally envisioned by the application’s designers. Any other interface specification can be substituted for the same application. While allowing general-purpose substitution of…Read more »
systems that allow a person to construct a program simply by demonstrating the actions that the program needs to perform. The system then must infer what loops and conditionals might be involved, and may allow the user to select among…Read more »
similar to programming by demonstration, a user provides examples of how a program should operate, either by demonstrating the steps or by showing examples of the inputs and outputs, and the system infers a program that would achieve those examples.…Read more »
(programming) a version of object-oriented programming that does not have classes. Instead, objects inherit behavior directly from other objects. This dramatically simplifies the language by removing unnecessary concepts such as metaclasses. This approach was popularized by the “Self” language.
(psychology)…Read more »
the development of incomplete representations of a target system for testing purposes and as a way of understanding the difficulties of development and the scale of the problem.
Prototyping is an essential element of an iterative design approach, where designs…Read more »