text:
Transposition cipher

In cryptography, a transposition cipher (also known as a permutation cipher) is a method of encryption which scrambles the positions of characters (transposition) without changing the characters themselves. Transposition ciphers reorder units of plaintext (typically characters or groups of characters) according to a regular system to produce a ciphertext which is a permutation of the plaintext. They differ from substitution ciphers, which do not change the position of units of plaintext but instead change the units themselves. Despite the difference between transposition and substitution operations, they are often combined, as in historical ciphers like the ADFGVX cipher or complex high-quality encryption methods like the modern Advanced Encryption Standard (AES).

General principle
Plaintexts can be rearranged into a ciphertext using a key, scrambling the order of characters like the shuffled pieces of a jigsaw puzzle. The resulting message is hard to decipher without the key because there are many ways the characters can be arranged.

For example, the plaintext "THIS IS WIKIPEDIA" could be encrypted to "TWDIP SIHII IKASE". To decipher the encrypted message without the key, an attacker could try to guess possible words and phrases like DIATHESIS, DISSIPATE, WIDTH, etc., but it would take them some time to reconstruct the plaintext because there are many combinations of letters and words. By contrast, someone with the key could reconstruct the message easily: C I P H E R    Key 1 4 5 3 2 6    Sequence (key letters in alphabetical order) T H I S I S    Plaintext W I K I P E D I A * * * Ciphertext by column: #1 TWD, #2 IP, #3 SI, #4 HII, #5 IKA, #6 SE Ciphertext in groups of 5 for readability: TWDIP SIHII IKASE In practice, a message this short and with a predictable keyword would be broken almost immediately with cryptanalysis techniques. Transposition ciphers have several vulnerabilities (see the section on "Detection and cryptanalysis" below), and small mistakes in the encipherment process can render the entire ciphertext meaningless.

However, given the right conditions - long messages (e.g., over 100–200 letters), unpredictable contents, unique keys per message, strong transposition methods, and so on - guessing the right words could be computationally impossible without further information. In their book on codebreaking historical ciphers, Elonka Dunin and Klaus Schmeh describe double columnar transposition (see below) as "one of the best manual ciphers known".

Rail Fence cipher
The Rail Fence cipher is a form of transposition cipher that gets its name from the way in which it is encoded. In the rail fence cipher, the plaintext is written downwards and diagonally on successive "rails" of an imaginary fence, then moving up when we get to the bottom. The message is then read off in rows. For example, using three "rails" and a message of 'WE ARE DISCOVERED FLEE AT ONCE', the cipherer writes out: W. . . E. . . C. . . R. . . L. . . T. . . E . E. R. D. S. O. E. E. F. E. A. O. C. . . A. . . I. . . V. . . D. . . E. . . N. .

Then reads off:

WECRL TEERD SOEEF EAOCA IVDEN

(The cipher has broken this ciphertext up into blocks of five to help avoid errors. This is a common technique used to make the cipher more easily readable. The spacing is not related to spaces in the plaintext and so does not carry any information about the plaintext.)

Scytale
The rail fence cipher follows a pattern similar to that of the scytale, (pronounced "SKIT-uhl-ee") a mechanical system of producing a transposition cipher used by the ancient Greeks. The system consisted of a cylinder and a ribbon that was wrapped around the cylinder. The message to be encrypted was written on the coiled ribbon. The letters of the original message would be rearranged when the ribbon was uncoiled from the cylinder. However, the message was easily decrypted when the ribbon recoiled on a cylinder of the same diameter as the encrypting cylinder. Using the same example as before, if the cylinder has a radius such that only three letters can fit around its circumference, the cipherer writes out:

W. . E. . A. . R. . E. . D. . I. . S. . C . O. . V. . E. . R. . E. . D. . F. . L. . . . E. . E. . A. . T. . O. . N. . C. . E.

In this example, the cylinder is running horizontally and the ribbon is wrapped around vertically. Hence, the cipherer then reads off:

WOEEV EAEAR RTEEO DDNIF CSLEC

Route cipher
In a route cipher, the plaintext is first written out in a grid of given dimensions, then read off in a pattern given in the key. For example, using the same plaintext that we used for rail fence: W R I O R F E O E E E S V E L A N J  A D C E D E T C X The key might specify "spiral inwards, clockwise, starting from the top right". That would give a cipher text of:

EJXCTEDEC DAEWRIORF EONALEVSE

Route ciphers have many more keys than a rail fence. In fact, for messages of reasonable length, the number of possible keys is potentially too great to be enumerated even by modern machinery. However, not all keys are equally good. Badly chosen routes will leave excessive chunks of plaintext, or text simply reversed, and this will give cryptanalysts a clue as to the routes.

A variation of the route cipher was the Union Route Cipher, used by Union forces during the American Civil War. This worked much like an ordinary route cipher, but transposed whole words instead of individual letters. Because this would leave certain highly sensitive words exposed, such words would first be concealed by code. The cipher clerk may also add entire null words, which were often chosen to make the ciphertext humorous.

Columnar transposition
In the middle of the 17th century, Samuel Morland introduced an early form of columnar transposition. It was further developed much later, becoming very popular in the later 19th century and 20th century, with French military, Japanese diplomats and Soviet spies all using the principle.

In a columnar transposition, the message is written out in rows of a fixed length, and then read out again column by column, and the columns are chosen in some scrambled order. Both the width of the rows and the permutation of the columns are usually defined by a keyword. For example, the keyword ZEBRAS is of length 6 (so the rows are of length 6), and the permutation is defined by the alphabetical order of the letters in the keyword. In this case, the order would be "6 3 2 4 1 5".

In a regular columnar transposition cipher, any spare spaces are filled with nulls; in an irregular columnar transposition cipher, the spaces are left blank. Finally, the message is read off in columns, in the order specified by the keyword. For example, suppose we use the keyword ZEBRAS and the message WE ARE DISCOVERED. FLEE AT ONCE. In a regular columnar transposition, we write this into the grid as follows: 6 3 2 4 1 5 W E A R E D I S C O V E R E D F L E  E A T O N C  E Q K J E U providing five nulls (QKJEU), these letters can be randomly selected as they just fill out the incomplete columns and are not part of the message. The ciphertext is then read off as: EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE

In the irregular case, the columns are not completed by nulls: 6 3 2 4 1 5 W E A R E D I S C O V E  R E D F L E  E A T O N C  E This results in the following ciphertext: EVLNA CDTES EAROF ODEEC WIREE

To decipher it, the recipient has to work out the shape of the enciphering grid by dividing the message length by the key length to find the number of rows in the grid. The length of the grid's last line is given by the remainder. The key is written above the grid, and the ciphertext is written down the columns of the grid in the order given by the letters of the key. The plaintext appears on the rows. A partial decipherment of the above ciphertext, after writing in the first column:

6 3 2 4 1 5 . . . . E. . . . . V. . . . . L. . . . . N. .

In a variation, the message is blocked into segments that are the key length long and to each segment the same permutation (given by the key) is applied. This is equivalent to a columnar transposition where the read-out is by rows instead of columns.

Columnar transposition continued to be used for serious purposes as a component of more complex ciphers at least into the 1950s.

Double transposition
A single columnar transposition could be attacked by guessing possible column lengths, writing the message out in its columns (but in the wrong order, as the key is not yet known), and then looking for possible anagrams. Thus to make it stronger, a double transposition was often used. This is simply a columnar transposition applied twice. The same key can be used for both transpositions, or two different keys can be used.

Visual demonstration of double transposition
In the following example, we use the keys JANEAUSTEN and AEROPLANES to encrypt the following plaintext: "Transposition ciphers scramble letters like puzzle pieces to create an indecipherable arrangement."The colors show how the letters are scrambled in each transposition step. While a single step only causes a minor rearrangement, the second step leads to a significant scrambling effect if the last row of the grid is incomplete.

Another example
As an example, we can take the result of the irregular columnar transposition in the previous section, and perform a second encryption with a different keyword, STRIPE, which gives the permutation "564231": 5 6 4 2 3 1 E V L N A C D T E S E A R O F O D E E C W I R E E

As before, this is read off columnwise to give the ciphertext:

CAEEN SOIAE DRLEF WEDRE EVTOC

If multiple messages of exactly the same length are encrypted using the same keys, they can be anagrammed simultaneously. This can lead to both recovery of the messages, and to recovery of the keys (so that every other message sent with those keys can be read).

During World War I, the German military used a double columnar transposition cipher, changing the keys infrequently. The system was regularly solved by the French, naming it Übchi, who were typically able to quickly find the keys once they'd intercepted a number of messages of the same length, which generally took only a few days. However, the French success became widely known and, after a publication in Le Matin, the Germans changed to a new system on 18 November 1914.

During World War II, the double transposition cipher was used by Dutch Resistance groups, the French Maquis and the British Special Operations Executive (SOE), which was in charge of managing underground activities in Europe. It was also used by agents of the American Office of Strategic Services and as an emergency cipher for the German Army and Navy.

Until the invention of the VIC cipher, double transposition was generally regarded as the most complicated cipher that an agent could operate reliably under difficult field conditions.

Cryptanalysis
The double transposition cipher can be treated as a single transposition with a key as long as the product of the lengths of the two keys.

In late 2013, a double transposition challenge, regarded by its author as undecipherable, was solved by George Lasry using a divide-and-conquer approach where each transposition was attacked individually.

Myszkowski transposition
A variant form of columnar transposition, proposed by Émile Victor Théodore Myszkowski in 1902, requires a keyword with recurrent letters. In usual practice, subsequent occurrences of a keyword letter are treated as if the next letter in alphabetical order, e.g., the keyword TOMATO yields a numeric keystring of "532164."

In Myszkowski transposition, recurrent keyword letters are numbered identically, TOMATO yielding a keystring of "432143."

4 3 2 1 4 3 W E A R E D I S C O V E R E D F L E E A T O N C E

Plaintext columns with unique numbers are transcribed downward; those with recurring numbers are transcribed left to right:

ROFOA CDTED SEEEA CWEIV RLENE

Disrupted transposition
A disrupted transposition cipher further complicates the transposition pattern with irregular filling of the rows of the matrix, i.e. with some spaces intentionally left blank (or blackened out like in the Rasterschlüssel 44), or filled later with either another part of the plaintext or random letters.

Comb approach
This method (attributed to Gen. Luigi Sacco ) starts a new row once the plaintext reaches a column whose key number is equal to the current row number. This produces irregular row lengths. For example,

F O  R  E  V  E  R  J  I  G  S  A  W     < Key 4 8  9  2 12  3 10  7  6  5 11  1 13     Blanks after no.: C O  M  P  L  I  C  A  T  E  S  T  *     1 H E  T  R  *  *  *  *  *  *  *  *  *     2 A N  S  P  O  S  *  *  *  *  *  *  *     3 I *  *  *  *  *  *  *  *  *  *  *  *     4 T I  O  N  P  A  T  T  E  R  *  *  *     5 N L  I  K  E  A  C  O  M  *  *  *  *     6 B _  _  _  _  _  _  _  *  *  *  *  *     7

The columns are then taken off as per regular columnar transposition: TPRPN, KISAA, CHAIT, NBERT, EMATO, etc.

Numerical sequence approach
Another simple option would be to use a password that places blanks according to its number sequence. E.g. "SECRET" would be decoded to a sequence of "5,2,1,4,3,6" and cross out the 5th field of the matrix, then count again and cross out the second field, etc. The following example would be a matrix set up for columnar transposition with the columnar key "CRYPTO" and filled with crossed out fields according to the disruption key "SECRET" (marked with an asterisk), whereafter the message "we are discovered, flee at once" is placed in the leftover spaces. The resulting ciphertext (the columns read according to the transposition key) is "WCEEO ERET RIVFC EODN SELE ADA".

C R Y P T O 1 4 6 3 5 2 W E A R * E * * D I S * C O * V E R E D * F L E E * A * * T O N * C E *

Grilles
Another form of transposition cipher uses grilles, or physical masks with cut-outs. This can produce a highly irregular transposition over the period specified by the size of the grille, but requires the correspondents to keep a physical key secret. Grilles were first proposed in 1550, and were still in military use for the first few months of World War One.

Detection and cryptanalysis
Since transposition does not affect the frequency of individual symbols, simple transposition can be easily detected by the cryptanalyst by doing a frequency count. If the ciphertext exhibits a frequency distribution very similar to plaintext, it is most likely a transposition.

In general, transposition methods are vulnerable to anagramming—sliding pieces of ciphertext around, then looking for sections that look like anagrams of words in English or whatever language the plaintext was written in, and solving the anagrams. Once such anagrams have been found, they reveal information about the transposition pattern, and can consequently be extended. Simpler transpositions often suffer from the property that keys very close to the correct key will reveal long sections of legible plaintext interspersed by gibberish. Consequently, such ciphers may be vulnerable to optimum seeking algorithms such as genetic algorithms and hill-climbing algorithms.

There are several specific methods for attacking messages encoded using a transposition cipher. These include:

 * 1) Known-plaintext attack: Using known or guessed parts of the plaintext (e.g. names, places, dates, numbers, phrases) to assist in reverse-engineering the likely order of columns used to carry out the transposition and/or the likely topic of the plaintext.
 * 2) Brute-force attack: If keys are derived from dictionary words or phrases from books or other publicly available sources, it may be possible to brute-force the solution by attempting billions of possible words, word combinations, and phrases as keys.
 * 3) Depth attack: If two or more messages of the same length are encoded with the same keys, the messages can be aligned and anagrammed until the messages show meaningful text in the same places, without needing to know the transposition steps that have taken place.
 * 4) Statistical attack: Statistics about the frequency of 2-letter, 3-letter, etc. combinations in a language can be used to inform a scoring function in an algorithm that gradually reverses possible transpositions based on which changes would produce the most likely combinations. For example, the 2-letter pair QU is more common than QT in English text, so a cryptanalyst will attempt transpositions that place QU together.

The third method was developed in 1878 by mathematician Edward S. Holden and New-York Tribune journalists John R. G. Hassard and William M. Grosvenor who managed to deciphere telegrams between the Democratic Party and their operatives in the Southern states during the 1876 presidential election and thus prove facts of vote buying, influencing the 1878-1879 congressional elections.

A detailed description of the cryptanalysis of a German transposition cipher can be found in chapter 7 of Herbert Yardley's "The American Black Chamber."

A cipher used by the Zodiac Killer, called "Z-340", organized into triangular sections with substitution of 63 different symbols for the letters and diagonal "knight move" transposition, remained unsolved for over 51 years, until an international team of private citizens cracked it on December 5, 2020, using specialized software.

Combinations
Transposition is often combined with other techniques such as evaluation methods. For example, a simple substitution cipher combined with a columnar transposition avoids the weakness of both. Replacing high frequency ciphertext symbols with high frequency plaintext letters does not reveal chunks of plaintext because of the transposition. Anagramming the transposition does not work because of the substitution. The technique is particularly powerful if combined with fractionation (see below). A disadvantage is that such ciphers are considerably more laborious and error prone than simpler ciphers.

Fractionation
Transposition is particularly effective when employed with fractionation – that is, a preliminary stage that divides each plaintext symbol into two or more ciphertext symbols. For example, the plaintext alphabet could be written out in a grid, and every letter in the message replaced by its co-ordinates (see Polybius square and Straddling checkerboard). Another method of fractionation is to simply convert the message to Morse code, with a symbol for spaces as well as dots and dashes.

When such a fractionated message is transposed, the components of individual letters become widely separated in the message, thus achieving Claude E. Shannon's diffusion. Examples of ciphers that combine fractionation and transposition include the bifid cipher, the trifid cipher, the ADFGVX cipher and the VIC cipher.

Another choice would be to replace each letter with its binary representation, transpose that, and then convert the new binary string into the corresponding ASCII characters. Looping the scrambling process on the binary string multiple times before changing it into ASCII characters would likely make it harder to break. Many modern block ciphers use more complex forms of transposition related to this simple idea.

title: Transposition cipher


text:
Geographic coordinate system

A geographic coordinate system (GCS) is a spherical or geodetic coordinate system for measuring and communicating positions directly on Earth as latitude and longitude. It is the simplest, oldest and most widely used of the various spatial reference systems that are in use, and forms the basis for most others. Although latitude and longitude form a coordinate tuple like a cartesian coordinate system, the geographic coordinate system is not cartesian because the measurements are angles and are not on a planar surface.

A full GCS specification, such as those listed in the EPSG and ISO 19111 standards, also includes a choice of geodetic datum (including an Earth ellipsoid), as different datums will yield different latitude and longitude values for the same location.

History
The invention of a geographic coordinate system is generally credited to Eratosthenes of Cyrene, who composed his now-lost Geography at the Library of Alexandria in the 3rd century BC. A century later, Hipparchus of Nicaea improved on this system by determining latitude from stellar measurements rather than solar altitude and determining longitude by timings of lunar eclipses, rather than dead reckoning. In the 1st or 2nd century, Marinus of Tyre compiled an extensive gazetteer and mathematically plotted world map using coordinates measured east from a prime meridian at the westernmost known land, designated the Fortunate Isles, off the coast of western Africa around the Canary or Cape Verde Islands, and measured north or south of the island of Rhodes off Asia Minor. Ptolemy credited him with the full adoption of longitude and latitude, rather than measuring latitude in terms of the length of the midsummer day.

Ptolemy's 2nd-century Geography used the same prime meridian but measured latitude from the Equator instead. After their work was translated into Arabic in the 9th century, Al-Khwārizmī's Book of the Description of the Earth corrected Marinus' and Ptolemy's errors regarding the length of the Mediterranean Sea, causing medieval Arabic cartography to use a prime meridian around 10° east of Ptolemy's line. Mathematical cartography resumed in Europe following Maximus Planudes' recovery of Ptolemy's text a little before 1300; the text was translated into Latin at Florence by Jacopo d'Angelo around 1407.

In 1884, the United States hosted the International Meridian Conference, attended by representatives from twenty-five nations. Twenty-two of them agreed to adopt the longitude of the Royal Observatory in Greenwich, England as the zero-reference line. The Dominican Republic voted against the motion, while France and Brazil abstained. France adopted Greenwich Mean Time in place of local determinations by the Paris Observatory in 1911.

Latitude and longitude

The "latitude" (abbreviation: Lat., $ϕ$, or phi) of a point on Earth's surface is the angle between the equatorial plane and the straight line that passes through that point and through (or close to) the center of the Earth. Lines joining points of the same latitude trace circles on the surface of Earth called parallels, as they are parallel to the Equator and to each other. The North Pole is 90° N; the South Pole is 90° S. The 0° parallel of latitude is designated the Equator, the fundamental plane of all geographic coordinate systems. The Equator divides the globe into Northern and Southern Hemispheres.

The "longitude" (abbreviation: Long., $λ$, or lambda) of a point on Earth's surface is the angle east or west of a reference meridian to another meridian that passes through that point. All meridians are halves of great ellipses (often called great circles), which converge at the North and South Poles. The meridian of the British Royal Observatory in Greenwich, in southeast London, England, is the international prime meridian, although some organizations—such as the French Institut national de l'information géographique et forestière—continue to use other meridians for internal purposes. The prime meridian determines the proper Eastern and Western Hemispheres, although maps often divide these hemispheres further west in order to keep the Old World on a single side. The antipodal meridian of Greenwich is both 180°W and 180°E. This is not to be conflated with the International Date Line, which diverges from it in several places for political and convenience reasons, including between far eastern Russia and the far western Aleutian Islands.

The combination of these two components specifies the position of any location on the surface of Earth, without consideration of altitude or depth. The visual grid on a map formed by lines of latitude and longitude is known as a graticule. The origin/zero point of this system is located in the Gulf of Guinea about 625 km south of Tema, Ghana, a location often facetiously called Null Island.

Geodetic datum
In order to use the theoretical definitions of latitude, longitude, and height to precisely measure actual locations on the physical earth, a geodetic datum must be used. A horizonal datum is used to precisely measure latitude and longitude, while a vertical datum is used to measure elevation or altitude. Both types of datum bind a mathematical model of the shape of the earth (usually a reference ellipsoid for a horizontal datum, and a more precise geoid for a vertical datum) to the earth. Traditionally, this binding was created by a network of control points, surveyed locations at which monuments are installed, and were only accurate for a region of the surface of the Earth. Some newer datums are bound to the center of mass of the Earth.

This combination of mathematical model and physical binding mean that anyone using the same datum will obtain the same location measurement for the same physical location. However, two different datums will usually yield different location measurements for the same physical location, which may appear to differ by as much as several hundred meters; this not because the location has moved, but because the reference system used to measure it has shifted. Because any spatial reference system or map projection is ultimately calculated from latitude and longitude, it is crucial that they clearly state the datum on which they are based. For example, a UTM coordinate based on WGS84 will be different than a UTM coordinate based on NAD27 for the same location. Converting coordinates from one datum to another requires a datum transformation such as a Helmert transformation, although in certain situations a simple translation may be sufficient.

Datums may be global, meaning that they represent the whole Earth, or they may be local, meaning that they represent an ellipsoid best-fit to only a portion of the Earth. Examples of global datums include World Geodetic System (WGS84, also known as EPSG:4326 ), the default datum used for the Global Positioning System, and the International Terrestrial Reference System and Frame (ITRF), used for estimating continental drift and crustal deformation. The distance to Earth's center can be used both for very deep positions and for positions in space.

Local datums chosen by a national cartographical organization include the North American Datum, the European ED50, and the British OSGB36. Given a location, the datum provides the latitude $$\phi$$ and longitude $$\lambda$$. In the United Kingdom there are three common latitude, longitude, and height systems in use. WGS84 differs at Greenwich from the one used on published maps OSGB36 by approximately 112m. The military system ED50, used by NATO, differs from about 120m to 180m.

Points on the Earth's surface move relative to each other due to continental plate motion, subsidence, and diurnal Earth tidal movement caused by the Moon and the Sun. This daily movement can be as much as a meter. Continental movement can be up to 10 cm a year, or 10 m in a century. A weather system high-pressure area can cause a sinking of 5 mm. Scandinavia is rising by 1 cm a year as a result of the melting of the ice sheets of the last ice age, but neighboring Scotland is rising by only 0.2 cm. These changes are insignificant if a local datum is used, but are statistically significant if a global datum is used.

Length of a degree
On the GRS80 or WGS84 spheroid at sea level at the Equator, one latitudinal second measures 30.715 m, one latitudinal minute is 1843 m and one latitudinal degree is 110.6 km. The circles of longitude, meridians, meet at the geographical poles, with the west–east width of a second naturally decreasing as latitude increases. On the Equator at sea level, one longitudinal second measures 30.92 m, a longitudinal minute is 1855 m and a longitudinal degree is 111.3 km. At 30° a longitudinal second is 26.76 m, at Greenwich (51°28′38″N) 19.22 m, and at 60° it is 15.42 m.

On the WGS84 spheroid, the length in meters of a degree of latitude at latitude $ϕ$ (that is, the number of meters you would have to travel along a north–south line to move 1 degree in latitude, when at latitude $λ$), is about

$111132.92 - 559.82\, \cos 2\phi + 1.175\, \cos 4\phi - 0.0023\, \cos 6\phi$

The returned measure of meters per degree latitude varies continuously with latitude.

Similarly, the length in meters of a degree of longitude can be calculated as

$111412.84\, \cos \phi - 93.5\, \cos 3\phi + 0.118\, \cos 5\phi$

(Those coefficients can be improved, but as they stand the distance they give is correct within a centimeter.)

The formulae both return units of meters per degree.

An alternative method to estimate the length of a longitudinal degree at latitude $$\phi$$ is to assume a spherical Earth (to get the width per minute and second, divide by 60 and 3600, respectively):

$ \frac{\pi}{180}M_r\cos \phi \!$

where Earth's average meridional radius $$\textstyle{M_r}\,\!$$ is 6,367,449 m. Since the Earth is an oblate spheroid, not spherical, that result can be off by several tenths of a percent; a better approximation of a longitudinal degree at latitude $$\phi$$ is

$\frac{\pi}{180}a \cos \beta \,\!$

where Earth's equatorial radius $$a$$ equals 6,378,137 m and $$\textstyle{\tan \beta = \frac{b}{a}\tan\phi}\,\!$$; for the GRS80 and WGS84 spheroids, $\tfrac{b}{a}=0.99664719$. ($$\textstyle{\beta}\,\!$$ is known as the reduced (or parametric) latitude). Aside from rounding, this is the exact distance along a parallel of latitude; getting the distance along the shortest route will be more work, but those two distances are always within 0.6 m of each other if the two points are one degree of longitude apart.

Alternate encodings
Like any series of multiple-digit numbers, latitude-longitude pairs can be challenging to communicate and remember. Therefore, alternative schemes have been developed for encoding GCS coordinates into alphanumeric strings or words:
 * the Maidenhead Locator System, popular with radio operators.
 * the World Geographic Reference System (GEOREF), developed for global military operations, replaced by the current Global Area Reference System (GARS).
 * Open Location Code or "Plus Codes", developed by Google and released into the public domain.
 * Geohash, a public domain system based on the Morton Z-order curve.
 * Mapcode, an open-source system originally developed at TomTom.
 * What3words, a proprietary system that encodes GCS coordinates as pseudorandom sets of words by dividing the coordinates into three numbers and looking up words in an indexed dictionary.

These are not distinct coordinate systems, only alternative methods for expressing latitude and longitude measurements.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Geographic coordinate system


text:
ROT13

ROT13 (Rotate13, "rotate by 13 places", sometimes hyphenated ROT-13) is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the Latin alphabet. ROT13 is a special case of the Caesar cipher which was developed in ancient Rome.

Because there are 26 letters (2×13) in the basic Latin alphabet, ROT13 is its own inverse; that is, to undo ROT13, the same algorithm is applied, so the same action can be used for encoding and decoding. The algorithm provides virtually no cryptographic security, and is often cited as a canonical example of weak encryption.

ROT13 has been used in online forums as a means of hiding spoilers, punchlines, puzzle solutions, and offensive materials from the casual glance. ROT13 has inspired a variety of letter and word games online, and is frequently mentioned in newsgroup conversations.

Description
Applying ROT13 to a piece of text merely requires examining its alphabetic characters and replacing each one by the letter 13 places further along in the alphabet, wrapping back to the beginning if necessary. A becomes N, B becomes O , and so on up to M , which becomes Z , then the sequence continues at the beginning of the alphabet: N becomes A , O becomes B , and so on to Z , which becomes M. Only those letters which occur in the English alphabet are affected; numbers, symbols, punctuation, whitespace, and all other characters are left unchanged. Because there are 26 letters in the English alphabet and 26 = 2 × 13, the ROT13 function is its own inverse:

 * $$\mbox{ROT}_{13}(\mbox{ROT}_{13}(x))=x$$ for any basic Latin-alphabet text x.

In other words, two successive applications of ROT13 restore the original text (in mathematics, this is sometimes called an involution; in cryptography, a reciprocal cipher).

The transformation can be done using a lookup table, such as the following:

For example, in the following joke, the punchline has been obscured by ROT13:
 * Why did the chicken cross the road?
 * Gb trg gb gur bgure fvqr!

Transforming the entire text via ROT13 form, the answer to the joke is revealed:
 * Jul qvq gur puvpxra pebff gur ebnq?
 * To get to the other side!

A second application of ROT13 would restore the original.

Usage
ROT13 is a special case of the encryption algorithm known as a Caesar cipher, used by Julius Caesar in the 1st century BC.

Johann Ernst Elias Bessler, an 18th-century clockmaker and constructor of perpetual motion machines, pointed out that ROT13 encodes his surname as Orffyre. He used its latinised form, Orffyreus, as his pseudonym.

ROT13 was in use in the net.jokes newsgroup by the early 1980s. It is used to hide potentially offensive jokes, or to obscure an answer to a puzzle or other spoiler. A shift of thirteen was chosen over other values, such as three as in the original Caesar cipher, because thirteen is the value for which encoding and decoding are equivalent, thereby allowing the convenience of a single command for both. ROT13 is typically supported as a built-in feature to news reading software. Email addresses are also sometimes encoded with ROT13 to hide them from less sophisticated spam bots. It is also used to circumvent email screening and spam filtering. By obscuring an email's content, the screening algorithm is unable to identify the email as, for instance, a security risk, and allows it into the recipient's in-box.

In encrypted, normal, English-language text of any significant size, ROT13 is recognizable from some letter/word patterns. The words "n", "V" (capitalized only), and "gur" (ROT13 for "a", "I", and "the"), and words ending in "yl" ("ly") are examples.

ROT13 is not intended to be used where secrecy is of any concern—the use of a constant shift means that the encryption effectively has no key, and decryption requires no more knowledge than the fact that ROT13 is in use. Even without this knowledge, the algorithm is easily broken through frequency analysis. Because of its utter unsuitability for real secrecy, ROT13 has become a catchphrase to refer to any conspicuously weak encryption scheme; a critic might claim that "56-bit DES is little better than ROT13 these days". Also, in a play on real terms like "double DES", the terms "double ROT13", "ROT26", or "2ROT13" crop up with humorous intent (due to the fact that, since applying ROT13 to an already ROT13-encrypted text restores the original plaintext, ROT26 is equivalent to no encryption at all), including a spoof academic paper entitled "On the 2ROT13 Encryption Algorithm". By extension, triple-ROT13 (used in joking analogy with 3DES) is equivalent to regular ROT13.

In December 1999, it was found that Netscape Communicator used ROT13 as part of an insecure scheme to store email passwords. In 2001, Russian programmer Dimitry Sklyarov demonstrated that an eBook vendor, New Paradigm Research Group (NPRG), used ROT13 to encrypt their documents; it has been speculated that NPRG may have mistaken the ROT13 toy example—provided with the Adobe eBook software development kit—for a serious encryption scheme. Windows XP uses ROT13 on some of its registry keys. ROT13 is also used in the Unix fortune program to conceal potentially offensive dicta.

Letter games and net culture
ROT13 provides an opportunity for letter games. Some words will, when transformed with ROT13, produce another word. Examples of 7-letter pairs in the English language are abjurer and nowhere, and Chechen and purpura. Other examples of words like these are shown in the table. The pair gnat and tang is an example of words that are both ROT13 reciprocals and reversals.

The 1989 International Obfuscated C Code Contest (IOCCC) included an entry by Brian Westley. Westley's computer program can be encoded in ROT13 or reversed and still compiles correctly. Its operation, when executed, is either to perform ROT13 encoding on, or to reverse its input.

The newsgroup alt.folklore.urban coined a word—furrfu—that was the ROT13 encoding of the frequently encoded utterance "sheesh". " Furrfu " evolved in mid-1992 as a response to postings repeating urban myths on alt.folklore.urban, after some posters complained that "Sheesh!" as a response to newcomers was being overused.

Variants
ROT5 is a practice similar to ROT13 that applies to numeric digits (0 to 9). ROT13 and ROT5 can be used together in the same message, sometimes called ROT18 (18 = 13 + 5) or ROT13.5.

ROT47 is a derivative of ROT13 which, in addition to scrambling the basic letters, treats numbers and common symbols. Instead of using the sequence A–Z as the alphabet, ROT47 uses a larger set of characters from the common character encoding known as ASCII. Specifically, the 7-bit printable characters, excluding space, from decimal 33 ' ! ' through 126 ' ~ ', 94 in total, taken in the order of the numerical values of their ASCII codes, are rotated by 47 positions, without special consideration of case. For example, the character A is mapped to p, while a is mapped to 2. The use of a larger alphabet produces a more thorough obfuscation than that of ROT13; for example, a telephone number such as +1-415-839-6885 is not obvious at first sight from the scrambled result Z'\c`d\gbh\eggd. On the other hand, because ROT47 introduces numbers and symbols into the mix without discrimination, it is more immediately obvious that the text has been encoded.

Example:
 * The Quick Brown Fox Jumps Over The Lazy Dog.

enciphers to
 * %96 "F:4< qC@H? u@I yF>AD ~G6C %96 {2KJ s@8]

The GNU C library, a set of standard routines available for use in computer programming, contains a function— mem frob  —which has a similar purpose to ROT13, although it is intended for use with arbitrary binary data. The function operates by combining each byte with the binary pattern 00101010 (42) using the exclusive or (XOR) operation. This effects a simple XOR cipher. Like ROT13, XOR (and therefore memfrob ) is self-reciprocal, and provides a similar, virtually absent, level of security.

tr
The ROT13 and ROT47 are fairly easy to implement using the Unix terminal application tr ; to encrypt the string "The Quick Brown Fox Jumps Over The Lazy Dog" in ROT13:

and the same string for ROT47:

Emacs and Vim
In Emacs, one can ROT13 the buffer or a selection with the commands,  , or.

In the Vim text editor, one can ROT13 a buffer with the command.

Python
The module codecs provides 'rot13' text transform.

Without importing any libraries, it can be done in a two-line list comprehension:

title: ROT13


text:
Software architecture

Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

The architecture of a software system is a metaphor, analogous to the architecture of a building. It functions as the blueprints for the system and the development project, which project management can later use to extrapolate the tasks necessary to be executed by the teams and people involved.

Software architecture is about making fundamental structural choices that are costly to change once implemented. Software architecture choices include specific structural options from possibilities in the design of the software. There are two fundamental laws in software architecture:

 * 1) Everything is a trade-off
 * 2) "Why is more important than how"

"Architectural Kata" is a teamwork which can be used to produce an architectural solution that fits the needs. Each team extracts and prioritizes architectural characteristics (aka non functional requirements) then models the components accordingly. The team can use C4 Model which is a flexible method to model the architecture just enough. Note that synchronous communication between architectural components, entangles them and they must share the same architectural characteristics.

Documenting software architecture facilitates communication between stakeholders, captures early decisions about the high-level design, and allows the reuse of design components between projects.

Software architecture design is commonly juxtaposed with software application design. Whilst application design focuses on the design of the processes and data supporting the required functionality (the services offered by the system), software architecture design focuses on designing the infrastructure within which application functionality can be realized and executed such that the functionality is provided in a way which meets the system's non-functional requirements.

Software architectures can be categorized into two main types: monolith and distributed architecture, each has its own subcategories.

Software architecture tends to become more complex over time. Software architects should use "fitness functions" to continuously keep the architecture in check.

Scope
Opinions vary as to the scope of software architectures:
 * Macroscopic system structure: this refers to architecture as a higher-level abstraction of a software system that consists of a collection of computational components together with connectors that describe the interaction between these components.
 * The important stuff—whatever that is: this refers to the fact that software architects should concern themselves with those decisions that have high impact on the system and its stakeholders.
 * That which is fundamental to understanding a system in its environment
 * Things that people perceive as hard to change: since designing the architecture takes place at the beginning of a software system's lifecycle, the architect should focus on decisions that "have to" be right the first time. Following this line of thought, architectural design issues may become non-architectural once their irreversibility can be overcome.
 * A set of architectural design decisions: software architecture should not be considered merely a set of models or structures, but should include the decisions that lead to these particular structures, and the rationale behind them. This insight has led to substantial research into software architecture knowledge management.

There is no sharp distinction between software architecture versus design and requirements engineering (see Related fields below). They are all part of a "chain of intentionality" from high-level intentions to low-level details.

Characteristics
Software architecture exhibits the following:

Multitude of stakeholders: software systems have to cater to a variety of stakeholders such as business managers, owners, users, and operators. These stakeholders all have their own concerns with respect to the system. Balancing these concerns and demonstrating that they are addressed is part of designing the system. This implies that architecture involves dealing with a broad variety of concerns and stakeholders, and has a multidisciplinary nature.

Separation of concerns: the established way for architects to reduce complexity is to separate the concerns that drive the design. Architecture documentation shows that all stakeholder concerns are addressed by modeling and describing the architecture from separate points of view associated with the various stakeholder concerns. These separate descriptions are called architectural views (see for example the 4+1 architectural view model).

Quality-driven: classic software design approaches (e.g. Jackson Structured Programming) were driven by required functionality and the flow of data through the system, but the current insight is that the architecture of a software system is more closely related to its quality attributes such as fault-tolerance, backward compatibility, extensibility, reliability, maintainability, availability, security, usability, and other such –ilities. Stakeholder concerns often translate into requirements on these quality attributes, which are variously called non-functional requirements, extra-functional requirements, behavioral requirements, or quality attribute requirements.

Recurring styles: like building architecture, the software architecture discipline has developed standard ways to address recurring concerns. These "standard ways" are called by various names at various levels of abstraction. Common terms for recurring solutions are architectural style, tactic,  reference architecture and architectural pattern.

Conceptual integrity: a term introduced by Fred Brooks in his 1975 book The Mythical Man-Month to denote the idea that the architecture of a software system represents an overall vision of what it should do and how it should do it. This vision should be separated from its implementation. The architect assumes the role of "keeper of the vision", making sure that additions to the system are in line with the architecture, hence preserving conceptual integrity.

Cognitive constraints: An observation first made in a 1967 paper by computer programmer Melvin Conway that organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. Fred Brooks introduced it to a wider audience when he cited the paper and the idea in The Mythical Man-Month, calling it Conway's Law.

Motivation
Software architecture is an "intellectually graspable" abstraction of a complex system. This abstraction provides a number of benefits:
 * It gives a basis for analysis of software systems' behavior before the system has been built. The ability to verify that a future software system fulfills its stakeholders' needs without actually having to build it represents substantial cost-saving and risk-mitigation. A number of techniques have been developed to perform such analyses, such as ATAM or by creating a visual representation of the software system.
 * It provides a basis for re-use of elements and decisions.  A complete software architecture or parts of it, like individual architectural strategies and decisions, can be re-used across multiple systems whose stakeholders require similar quality attributes or functionality, saving design costs and mitigating the risk of design mistakes.
 * It supports early design decisions that impact a system's development, deployment, and maintenance life. Getting the early, high-impact decisions right is important to prevent schedule and budget overruns.
 * It facilitates communication with stakeholders, contributing to a system that better fulfills their needs. Communicating about complex systems from the point of view of stakeholders helps them understand the consequences of their stated requirements and the design decisions based on them. Architecture gives the ability to communicate about design decisions before the system is implemented, when they are still relatively easy to adapt.
 * It helps in risk management. Software architecture helps to reduce risks and chance of failure.
 * It enables cost reduction. Software architecture is a means to manage risk and costs in complex IT projects.

History
The comparison between software design and (civil) architecture was first drawn in the late 1960s, but the term "software architecture" did not see widespread usage until the 1990s. The field of computer science had encountered problems associated with complexity since its formation. Earlier problems of complexity were solved by developers by choosing the right data structures, developing algorithms, and by applying the concept of separation of concerns. Although the term "software architecture" is relatively new to the industry, the fundamental principles of the field have been applied sporadically by software engineering pioneers since the mid-1980s. Early attempts to capture and explain software architecture of a system were imprecise and disorganized, often characterized by a set of box-and-line diagrams.

Software architecture as a concept has its origins in the research of Edsger Dijkstra in 1968 and David Parnas in the early 1970s. These scientists emphasized that the structure of a software system matters and getting the structure right is critical. During the 1990s there was a concerted effort to define and codify fundamental aspects of the discipline, with research work concentrating on architectural styles (patterns), architecture description languages, architecture documentation, and formal methods.

Research institutions have played a prominent role in furthering software architecture as a discipline. Mary Shaw and David Garlan of Carnegie Mellon wrote a book titled Software Architecture: Perspectives on an Emerging Discipline in 1996, which promoted software architecture concepts such as components, connectors, and styles. The University of California, Irvine's Institute for Software Research's efforts in software architecture research is directed primarily in architectural styles, architecture description languages, and dynamic architectures.

IEEE 1471-2000, "Recommended Practice for Architecture Description of Software-Intensive Systems", was the first formal standard in the area of software architecture. It was adopted in 2007 by ISO as ISO/IEC 42010:2007. In November 2011, IEEE 1471–2000 was superseded by ISO/IEC/IEEE 42010:2011, "Systems and software engineering – Architecture description" (jointly published by IEEE and ISO).

While in IEEE 1471, software architecture was about the architecture of "software-intensive systems", defined as "any system where software contributes essential influences to the design, construction, deployment, and evolution of the system as a whole", the 2011 edition goes a step further by including the ISO/IEC 15288 and ISO/IEC 12207 definitions of a system, which embrace not only hardware and software, but also "humans, processes, procedures, facilities, materials and naturally occurring entities". This reflects the relationship between software architecture, enterprise architecture and solution architecture.

Architecture activities
There are many activities that a software architect performs. A software architect typically works with project managers, discusses architecturally significant requirements with stakeholders, designs a software architecture, evaluates a design, communicates with designers and stakeholders, documents the architectural design and more.

It's software architect's responsibility to match architectural characteristics (aka non-functional requirements) with business requirements. For example:

 * Having a high customer satisfactions requires availability, fault tolerance, security, testability, recoverability, agility and performance in the system.
 * Doing mergers and acquisitions (M&A) requires extensibility, scalability, adaptability, and interoperability
 * Constrained budget and time requires feasibility and simplicity
 * Faster time-to-market requires maintainability, testability and deplorability.

There are four core activities in software architecture design. These core architecture activities are performed iteratively and at different stages of the initial software development life-cycle, as well as over the evolution of a system.

Architectural analysis is the process of understanding the environment in which a proposed system will operate and determining the requirements for the system. The input or requirements to the analysis activity can come from any number of stakeholders and include items such as:

 * what the system will do when operational (the functional requirements)
 * how well the system will perform runtime non-functional requirements such as reliability, operability, performance efficiency, security, compatibility defined in ISO/IEC 25010:2011 standard
 * development-time of non-functional requirements such as maintainability and transferability defined in ISO 25010:2011 standard
 * business requirements and environmental contexts of a system that may change over time, such as legal, social, financial, competitive, and technology concerns

The outputs of the analysis activity are those requirements that have a measurable impact on a software system's architecture, called architecturally significant requirements.

Architectural synthesis or design is the process of creating an architecture. Given the architecturally significant requirements determined by the analysis, the current state of the design and the results of any evaluation activities, the design is created and improved.

Architecture evaluation is the process of determining how well the current design or a portion of it satisfies the requirements derived during analysis. An evaluation can occur whenever an architect is considering a design decision, it can occur after some portion of the design has been completed, it can occur after the final design has been completed or it can occur after the system has been constructed. Some of the available software architecture evaluation techniques include Architecture Tradeoff Analysis Method (ATAM) and TARA. Frameworks for comparing the techniques are discussed in frameworks such as SARA Report and Architecture Reviews: Practice and Experience.

Architecture evolution is the process of maintaining and adapting an existing software architecture to meet changes in requirements and environment. As software architecture provides a fundamental structure of a software system, its evolution and maintenance would necessarily impact its fundamental structure. As such, architecture evolution is concerned with adding new functionality as well as maintaining existing functionality and system behavior.

Architecture requires critical supporting activities. These supporting activities take place throughout the core software architecture process. They include knowledge management and communication, design reasoning and decision-making, and documentation.

Architecture supporting activities
Software architecture supporting activities are carried out during core software architecture activities. These supporting activities assist a software architect to carry out analysis, synthesis, evaluation, and evolution. For instance, an architect has to gather knowledge, make decisions, and document during the analysis phase.

 * Knowledge management and communication is the act of exploring and managing knowledge that is essential to designing a software architecture. A software architect does not work in isolation. They get inputs, functional and non-functional requirements, and design contexts, from various stakeholders; and provide outputs to stakeholders. Software architecture knowledge is often tacit and is retained in the heads of stakeholders. Software architecture knowledge management activity is about finding, communicating, and retaining knowledge. As software architecture design issues are intricate and interdependent, a knowledge gap in design reasoning can lead to incorrect software architecture design. Examples of knowledge management and communication activities include searching for design patterns, prototyping, asking experienced developers and architects, evaluating the designs of similar systems, sharing knowledge with other designers and stakeholders, and documenting experience on a wiki page.
 * Design reasoning and decision making is the activity of evaluating design decisions. This activity is fundamental to all three core software architecture activities. It entails gathering and associating decision contexts, formulating design decision problems, finding solution options and evaluating tradeoffs before making decisions. This process occurs at different levels of decision granularity while evaluating significant architectural requirements and software architecture decisions, and software architecture analysis, synthesis, and evaluation. Examples of reasoning activities include understanding the impacts of a requirement or a design on quality attributes, questioning the issues that a design might cause, assessing possible solution options, and evaluating the tradeoffs between solutions.
 * Documentation is the act of recording the design generated during the software architecture process. System design is described using several views that frequently include a static view showing the code structure of the system, a dynamic view showing the actions of the system during execution, and a deployment view showing how a system is placed on hardware for execution. Kruchten's 4+1 view suggests a description of commonly used views for documenting software architecture; Documenting Software Architectures: Views and Beyond has descriptions of the kinds of notations that could be used within the view description. Examples of documentation activities are writing a specification, recording a system design model, documenting a design rationale, developing a viewpoint, documenting views.

Software architecture description
Software architecture description involves the principles and practices of modeling and representing architectures, using mechanisms such as architecture description languages, architecture viewpoints, and architecture frameworks.

Architecture description languages
An architecture description language (ADL) is any means of expression used to describe a software architecture (ISO/IEC/IEEE 42010). Many special-purpose ADLs have been developed since the 1990s, including AADL (SAE standard), Wright (developed by Carnegie Mellon), Acme (developed by Carnegie Mellon), xADL (developed by UCI), Darwin (developed by Imperial College London), DAOP-ADL (developed by University of Málaga), SBC-ADL (developed by National Sun Yat-Sen University), and ByADL (University of L'Aquila, Italy).

Architecture viewpoints
Software architecture descriptions are commonly organized into views, which are analogous to the different types of blueprints made in building architecture. Each view addresses a set of system concerns, following the conventions of its viewpoint, where a viewpoint is a specification that describes the notations, modeling, and analysis techniques to use in a view that expresses the architecture in question from the perspective of a given set of stakeholders and their concerns (ISO/IEC/IEEE 42010). The viewpoint specifies not only the concerns framed (i.e., to be addressed) but the presentation, model kinds used, conventions used and any consistency (correspondence) rules to keep a view consistent with other views.

Architecture frameworks
An architecture framework captures the "conventions, principles and practices for the description of architectures established within a specific domain of application and/or community of stakeholders" (ISO/IEC/IEEE 42010). A framework is usually implemented in terms of one or more viewpoints or ADLs.

Architectural styles and patterns
An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are often documented as software design patterns.

Following traditional building architecture, a 'software architectural style' is a specific method of construction, characterized by the features that make it notable" (architectural style).

An architectural style defines: a family of systems in terms of a pattern of structural organization; a vocabulary of components and connectors, with constraints on how they can be combined.

Architectural styles are reusable 'packages' of design decisions and constraints that are applied to an architecture to induce chosen desirable qualities.

There are many recognized architectural patterns and styles, among them:
 * Blackboard
 * Client-server (2-tier, 3-tier, n-tier, cloud computing exhibit this style)
 * Component-based
 * Data-centric
 * Event-driven (or implicit invocation)
 * Layered (or multilayered architecture)
 * Microservices architecture
 * Monolithic application
 * Peer-to-peer (P2P)
 * Pipes and filters
 * Plug-ins
 * Reactive architecture
 * Representational state transfer (REST)
 * Rule-based
 * Service-oriented
 * Shared nothing architecture
 * Space-based architecture
 * Serverless architecture

Some treat architectural patterns and architectural styles as the same, some treat styles as specializations of patterns. What they have in common is both patterns and styles are idioms for architects to use, they "provide a common language" or "vocabulary" with which to describe classes of systems.

Software architecture and agile development
There are also concerns that software architecture leads to too much big design up front, especially among proponents of agile software development. A number of methods have been developed to balance the trade-offs of up-front design and agility, including the agile method DSDM which mandates a "Foundations" phase during which "just enough" architectural foundations are laid. IEEE Software devoted a special issue to the interaction between agility and architecture.

Software architecture erosion
Software architecture erosion refers to a gradual gap between the intended and implemented architecture of a software system over time. The phenomenon of software architecture erosion was initially brought to light in 1992 by Perry and Wolf alongside their definition of software architecture.

Software architecture erosion may occur in each stage of the software development life cycle and has varying impacts on the development speed and the cost of maintenance. Software architecture erosion occurs due to various reasons, such as architectural violations, the accumulation of technical debt, and knowledge vaporization. A famous case of architecture erosion is the failure of Mozilla Web browser. Mozilla is an application created by Netscape with a complex codebase that became harder to maintain due to continuous changes. Due to initial poor design and growing architecture erosion, Netscape spent two years redeveloping the Mozilla Web browser, showing how important it is to manage architecture erosion to avoid extensive repair efforts, time and cost losses.

Architecture erosion can decrease software performance, substantially increase evolutionary costs, and degrade software quality. Various approaches and tools have been proposed to detect architecture erosion. These approaches are primarily classified into four categories: consistency-based, evolution-based, and defect-based, and decision-based approach. Besides, the measures used to address architecture erosion contains two main types: preventative and remedial measures.

Software architecture recovery
Software architecture recovery (or reconstruction, or reverse engineering) includes the methods, techniques, and processes to uncover a software system's architecture from available information, including its implementation and documentation. Architecture recovery is often necessary to make informed decisions in the face of obsolete or out-of-date documentation and architecture erosion: implementation and maintenance decisions diverging from the envisioned architecture. Practices exist to recover software architecture as static program analysis. This is a part of the subjects covered by the software intelligence practice.

Design
Architecture is design but not all design is architectural. In practice, the architect is the one who draws the line between software architecture (architectural design) and detailed design (non-architectural design). There are no rules or guidelines that fit all cases, although there have been attempts to formalize the distinction. According to the Intension/Locality Hypothesis, the distinction between architectural and detailed design is defined by the Locality Criterion, according to which a statement about software design is non-local (architectural) if and only if a program that satisfies it can be expanded into a program that does not. For example, the client–server style is architectural (strategic) because a program that is built on this principle can be expanded into a program that is not client–server—for example, by adding peer-to-peer nodes.

Requirements engineering
Requirements engineering and software architecture can be seen as complementary approaches: while software architecture targets the 'solution space' or the 'how', requirements engineering addresses the 'problem space' or the 'what'. Requirements engineering entails the elicitation, negotiation, specification, validation, documentation, and management of requirements. Both requirements engineering and software architecture revolve around stakeholder concerns, needs, and wishes.

There is considerable overlap between requirements engineering and software architecture, as evidenced for example by a study into five industrial software architecture methods that concludes that "the inputs (goals, constraints, etc.) are usually ill-defined, and only get discovered or better understood as the architecture starts to emerge" and that while "most architectural concerns are expressed as requirements on the system, they can also include mandated design decisions". In short, required behavior impacts solution architecture, which in turn may introduce new requirements. Approaches such as the Twin Peaks model aim to exploit the synergistic relation between requirements and architecture.

Other types of 'architecture'

 * Computer architecture
 * Computer architecture targets the internal structure of a computer system, in terms of collaborating hardware components such as the CPU – or processor – the bus and the memory.

 * Serverless architecture
 * Serverless architecture is a cloud computing paradigm that is often misunderstood as being server-free. It essentially shifts server management responsibilities from developers to cloud service providers. This allows businesses to run their backend code on cloud infrastructure, eliminating the need for physical server management. The event-driven approach of serverless architecture relies on small, task-specific functions that are executed on-demand. These functions are known as Function as a Service (FaaS), and they offer cost-efficiency through a pay-as-you-go billing model and dynamic resource scaling based on application demand.

 * Systems architecture
 * The term systems architecture has originally been applied to the architecture of systems that consist of both hardware and software. The main concern addressed by the systems architecture is then the integration of software and hardware in a complete, correctly working device. In another common – much broader – meaning, the term applies to the architecture of any complex system which may be of a technical, sociotechnical or social nature.

 * Enterprise architecture
 * The goal of enterprise architecture is to "translate business vision and strategy into effective enterprise". Enterprise architecture frameworks, such as TOGAF and the Zachman Framework, usually distinguish between different enterprise architecture layers. Although terminology differs from framework to framework, many include at least a distinction between a business layer, an application (or information) layer, and a technology layer. Enterprise architecture addresses among others the alignment between these layers, usually in a top-down approach.

title: Software architecture


text:
Polyurethane

Polyurethane (often abbreviated PUR and PU) refers to a class of polymers composed of organic units joined by carbamate (urethane) links. In contrast to other common polymers such as polyethylene and polystyrene, polyurethane is produced from a wide range of starting materials. This chemical variety produces polyurethanes with different chemical structures leading to many different applications. These include rigid and flexible foams, and coatings, adhesives, electrical potting compounds, and fibers such as spandex and polyurethane laminate (PUL). Foams are the largest application accounting for 67% of all polyurethane produced in 2016.

A polyurethane is typically produced by reacting a polymeric isocyanate with a polyol. Since a polyurethane contains two types of monomers, which polymerize one after the other, they are classed as alternating copolymers. Both the isocyanates and polyols used to make a polyurethane contain two or more functional groups per molecule.

Global production in 2019 was 25 million metric tonnes, accounting for about 6% of all polymers produced in that year.

History

Otto Bayer and his coworkers at IG Farben in Leverkusen, Germany, first made polyurethanes in 1937. The new polymers had some advantages over existing plastics that were made by polymerizing olefins or by polycondensation, and were not covered by patents obtained by Wallace Carothers on polyesters. Early work focused on the production of fibers and flexible foams and PUs were applied on a limited scale as aircraft coating during World War II. Polyisocyanates became commercially available in 1952, and production of flexible polyurethane foam began in 1954 by combining toluene diisocyanate (TDI) and polyester polyols. These materials were also used to produce rigid foams, gum rubber, and elastomers. Linear fibers were produced from hexamethylene diisocyanate (HDI) and 1,4-Butanediol (BDO).

DuPont introduced polyethers, specifically poly(tetramethylene ether) glycol, in 1956. BASF and Dow Chemical introduced polyalkylene glycols in 1957. Polyether polyols were cheaper, easier to handle and more water-resistant than polyester polyols. Union Carbide and Mobay, a U.S. Monsanto/Bayer joint venture, also began making polyurethane chemicals. In 1960 more than 45,000 metric tons of flexible polyurethane foams were produced. The availability of chlorofluoroalkane blowing agents, inexpensive polyether polyols, and methylene diphenyl diisocyanate (MDI) allowed polyurethane rigid foams to be used as high-performance insulation materials. In 1967, urethane-modified polyisocyanurate rigid foams were introduced, offering even better thermal stability and flammability resistance. During the 1960s, automotive interior safety components, such as instrument and door panels, were produced by back-filling thermoplastic skins with semi-rigid foam.

In 1969, Bayer exhibited an all-plastic car in Düsseldorf, Germany. Parts of this car, such as the fascia and body panels, were manufactured using a new process called reaction injection molding (RIM), in which the reactants were mixed and then injected into a mold. The addition of fillers, such as milled glass, mica, and processed mineral fibers, gave rise to reinforced RIM (RRIM), which provided improvements in flexural modulus (stiffness), reduction in coefficient of thermal expansion and better thermal stability. This technology was used to make the first plastic-body automobile in the United States, the Pontiac Fiero, in 1983. Further increases in stiffness were obtained by incorporating pre-placed glass mats into the RIM mold cavity, also known broadly as resin injection molding, or structural RIM.

Starting in the early 1980s, water-blown microcellular flexible foams were used to mold gaskets for automotive panels and air-filter seals, replacing PVC polymers. Polyurethane foams are used in many automotive applications including seating, head and arm rests, and headliners.

Polyurethane foam (including foam rubber) is sometimes made using small amounts of blowing agents to give less dense foam, better cushioning/energy absorption or thermal insulation. In the early 1990s, because of their impact on ozone depletion, the Montreal Protocol restricted the use of many chlorine-containing blowing agents, such as trichlorofluoromethane (CFC-11). By the late 1990s, blowing agents such as carbon dioxide, pentane, 1,1,1,2-tetrafluoroethane (HFC-134a) and 1,1,1,3,3-pentafluoropropane (HFC-245fa) were widely used in North America and the EU, although chlorinated blowing agents remained in use in many developing countries. Later, HFC-134a was also banned due to high ODP and GWP readings, and HFC-141B was introduced in early 2000s as an alternate blowing agent in developing nations.

Chemistry
Polyurethanes are produced by reacting diisocyanates with polyols,   often in the presence of a catalyst, or upon exposure to ultraviolet radiation. Common catalysts include tertiary amines, such as DABCO, DMDEE, or metallic soaps, such as dibutyltin dilaurate. The stoichiometry of the starting materials must be carefully controlled as excess isocyanate can trimerise, leading to the formation of rigid polyisocyanurates. The polymer usually has a highly crosslinked molecular structure, resulting in a thermosetting material which does not melt on heating; although some thermoplastic polyurethanes are also produced.

The most common application of polyurethane is as solid foams, which requires the presence of a gas, or blowing agent, during the polymerization step. This is commonly achieved by adding small amounts of water, which reacts with isocyanates to form CO2 gas and an amine, via an unstable carbamic acid group. The amine produced can also react with isocyanates to form urea groups, and as such the polymer will contain both these and urethane linkers. The urea is not very soluble in the reaction mixture and tends to form separate "hard segment" phases consisting mostly of polyurea. The concentration and organization of these polyurea phases can have a significant impact on the properties of the foam.

The type of foam produced can be controlled by regulating the amount of blowing agent and also by the addition of various surfactants which change the rheology of the polymerising mixture. Foams can be either "closed-cell", where most of the original bubbles or cells remain intact, or "open-cell", where the bubbles have broken but the edges of the bubbles are stiff enough to retain their shape, in extreme cases reticulated foams can be formed. Open-cell foams feel soft and allow air to flow through, so they are comfortable when used in seat cushions or mattresses. Closed-cell foams are used as rigid thermal insulation. High-density microcellular foams can be formed without the addition of blowing agents by mechanically frothing the polyol prior to use. These are tough elastomeric materials used in covering car steering wheels or shoe soles.

The properties of a polyurethane are greatly influenced by the types of isocyanates and polyols used to make it. Long, flexible segments, contributed by the polyol, give soft, elastic polymer. High amounts of crosslinking give tough or rigid polymers. Long chains and low crosslinking give a polymer that is very stretchy, short chains with many crosslinks produce a hard polymer while long chains and intermediate crosslinking give a polymer useful for making foam. The choices available for the isocyanates and polyols, in addition to other additives and processing conditions allow polyurethanes to have the very wide range of properties that make them such widely used polymers.

Raw materials
The main ingredients to make a polyurethane are di- and tri-isocyanates and polyols. Other materials are added to aid processing the polymer or to modify the properties of the polymer. PU foam formulation sometimes have water added too.

Isocyanates
Isocyanates used to make polyurethane have two or more isocyanate groups on each molecule. The most commonly used isocyanates are the aromatic diisocyanates, toluene diisocyanate (TDI) and methylene diphenyl diisocyanate, (MDI). These aromatic isocyanates are more reactive than aliphatic isocyanates.

TDI and MDI are generally less expensive and more reactive than other isocyanates. Industrial grade TDI and MDI are mixtures of isomers and MDI often contains polymeric materials. They are used to make flexible foam (for example slabstock foam for mattresses or molded foams for car seats), rigid foam (for example insulating foam in refrigerators) elastomers (shoe soles, for example), and so on. The isocyanates may be modified by partially reacting them with polyols or introducing some other materials to reduce volatility (and hence toxicity) of the isocyanates, decrease their freezing points to make handling easier or to improve the properties of the final polymers.

Aliphatic and cycloaliphatic isocyanates are used in smaller quantities, most often in coatings and other applications where color and transparency are important since polyurethanes made with aromatic isocyanates tend to darken on exposure to light. The most important aliphatic and cycloaliphatic isocyanates are 1,6-hexamethylene diisocyanate (HDI), 1-isocyanato-3-isocyanatomethyl-3,5,5-trimethyl-cyclohexane (isophorone diisocyanate, IPDI), and 4,4′-diisocyanato dicyclohexylmethane (H12MDI or hydrogenated MDI). Other more specialized isocyanates include Tetramethylxylylene diisocyanate (TMXDI).

Polyols
Polyols are polymers in their own right and have on average two or more hydroxyl groups per molecule. They can be converted to polyether polyols by co-polymerizing ethylene oxide and propylene oxide with a suitable polyol precursor. Polyester polyols are made by the polycondensation of multifunctional carboxylic acids and polyhydroxyl compounds. They can be further classified according to their end use. Higher molecular weight polyols (molecular weights from 2,000 to 10,000) are used to make more flexible polyurethanes while lower molecular weight polyols make more rigid products.

Polyols for flexible applications use low functionality initiators such as dipropylene glycol (f = 2), glycerine (f = 3), or a sorbitol/water solution (f = 2.75). Polyols for rigid applications use higher functionality initiators such as sucrose (f = 8), sorbitol (f = 6), toluenediamine (f = 4), and Mannich bases (f = 4). Propylene oxide and/or ethylene oxide is added to the initiators until the desired molecular weight is achieved. The order of addition and the amounts of each oxide affect many polyol properties, such as compatibility, water-solubility, and reactivity. Polyols made with only propylene oxide are terminated with secondary hydroxyl groups and are less reactive than polyols capped with ethylene oxide, which contain primary hydroxyl groups. Incorporating carbon dioxide into the polyol structure is being researched by multiple companies.

Graft polyols (also called filled polyols or polymer polyols) contain finely dispersed styrene–acrylonitrile, acrylonitrile, or polyurea (PHD) polymer solids chemically grafted to a high molecular weight polyether backbone. They are used to increase the load-bearing properties of low-density high-resiliency (HR) foam, as well as add toughness to microcellular foams and cast elastomers. Initiators such as ethylenediamine and triethanolamine are used to make low molecular weight rigid foam polyols that have built-in catalytic activity due to the presence of nitrogen atoms in the backbone. A special class of polyether polyols, poly(tetramethylene ether) glycols, which are made by polymerizing tetrahydrofuran, are used in high performance coating, wetting and elastomer applications.

Conventional polyester polyols are based on virgin raw materials and are manufactured by the direct polyesterification of high-purity diacids and glycols, such as adipic acid and 1,4-butanediol. Polyester polyols are usually more expensive and more viscous than polyether polyols, but they make polyurethanes with better solvent, abrasion, and cut resistance. Other polyester polyols are based on reclaimed raw materials. They are manufactured by transesterification (glycolysis) of recycled poly(ethyleneterephthalate) (PET) or dimethylterephthalate (DMT) distillation bottoms with glycols such as diethylene glycol. These low molecular weight, aromatic polyester polyols are used in rigid foam, and bring low cost and excellent flammability characteristics to polyisocyanurate (PIR) boardstock and polyurethane spray foam insulation.

Specialty polyols include polycarbonate polyols, polycaprolactone polyols, polybutadiene polyols, and polysulfide polyols. The materials are used in elastomer, sealant, and adhesive applications that require superior weatherability, and resistance to chemical and environmental attack. Natural oil polyols derived from castor oil and other vegetable oils are used to make elastomers, flexible bunstock, and flexible molded foam.

Co-polymerizing chlorotrifluoroethylene or tetrafluoroethylene with vinyl ethers containing hydroxyalkyl vinyl ether produces fluorinated (FEVE) polyols. Two-component fluorinated polyurethanes prepared by reacting FEVE fluorinated polyols with polyisocyanate have been used to make ambient cure paints and coatings. Since fluorinated polyurethanes contain a high percentage of fluorine–carbon bonds, which are the strongest bonds among all chemical bonds, fluorinated polyurethanes exhibit resistance to UV, acids, alkali, salts, chemicals, solvents, weathering, corrosion, fungi and microbial attack. These have been used for high performance coatings and paints.

Phosphorus-containing polyols are available that become chemically bonded to the polyurethane matrix for the use as flame retardants. This covalent linkage prevents migration and leaching of the organophosphorus compound.

Bio-derived materials
Interest in sustainable "green" products raised interest in polyols derived from vegetable oils. Various oils used in the preparation polyols for polyurethanes include soybean, cotton seed, neem seed, and castor. Vegetable oils are functionalized by various ways and modified to polyetheramide, polyethers, alkyds, etc. Renewable sources used to prepare polyols may be dimer fatty acids or fatty acids. Some biobased and isocyanate-free polyurethanes exploit the reaction between polyamines and cyclic carbonates to produce polyhydroxurethanes.

Chain extenders and cross linkers
Chain extenders (f = 2) and cross linkers (f ≥ 3) are low molecular weight hydroxyl and amine terminated compounds that play an important role in the polymer morphology of polyurethane fibers, elastomers, adhesives, and certain integral skin and microcellular foams. The elastomeric properties of these materials are derived from the phase separation of the hard and soft copolymer segments of the polymer, such that the urethane hard segment domains serve as cross-links between the amorphous polyether (or polyester) soft segment domains. This phase separation occurs because the mainly nonpolar, low melting soft segments are incompatible with the polar, high melting hard segments. The soft segments, which are formed from high molecular weight polyols, are mobile and are normally present in coiled formation, while the hard segments, which are formed from the isocyanate and chain extenders, are stiff and immobile. Because the hard segments are covalently coupled to the soft segments, they inhibit plastic flow of the polymer chains, thus creating elastomeric resiliency. Upon mechanical deformation, a portion of the soft segments are stressed by uncoiling, and the hard segments become aligned in the stress direction. This reorientation of the hard segments and consequent powerful hydrogen bonding contributes to high tensile strength, elongation, and tear resistance values. The choice of chain extender also determines flexural, heat, and chemical resistance properties. The most important chain extenders are ethylene glycol, 1,4-butanediol (1,4-BDO or BDO), 1,6-hexanediol, cyclohexane dimethanol and hydroquinone bis(2-hydroxyethyl) ether (HQEE). All of these glycols form polyurethanes that phase separate well and form well defined hard segment domains, and are melt processable. They are all suitable for thermoplastic polyurethanes with the exception of ethylene glycol, since its derived bis-phenyl urethane undergoes unfavorable degradation at high hard segment levels. Diethanolamine and triethanolamine are used in flex molded foams to build firmness and add catalytic activity. Diethyltoluenediamine is used extensively in RIM, and in polyurethane and polyurea elastomer formulations.

Catalysts
Polyurethane catalysts can be classified into two broad categories, basic and acidic amine. Tertiary amine catalysts function by enhancing the nucleophilicity of the diol component. Alkyl tin carboxylates, oxides and mercaptides oxides function as mild Lewis acids in accelerating the formation of polyurethane. As bases, traditional amine catalysts include triethylenediamine (TEDA, also called DABCO, 1,4-diazabicyclo[2.2.2]octane), dimethylcyclohexylamine (DMCHA), dimethylethanolamine (DMEA), Dimethylaminoethoxyethanol and bis-(2-dimethylaminoethyl)ether, a blowing catalyst also called A-99. A typical Lewis acidic catalyst is dibutyltin dilaurate. The process is highly sensitive to the nature of the catalyst and is also known to be autocatalytic.

Factors affecting catalyst selection include balancing three reactions: urethane (polyol+isocyanate, or gel) formation, the urea (water+isocyanate, or "blow") formation, or the isocyanate trimerization reaction (e.g., using potassium acetate, to form isocyanurate rings). A variety of specialized catalysts have been developed.

Surfactants
Surfactants are used to modify the characteristics of both foam and non-foam polyurethane polymers. They take the form of polydimethylsiloxane-polyoxyalkylene block copolymers, silicone oils, nonylphenol ethoxylates, and other organic compounds. In foams, they are used to emulsify the liquid components, regulate cell size, and stabilize the cell structure to prevent collapse and sub-surface voids. In non-foam applications they are used as air release and antifoaming agents, as wetting agents, and are used to eliminate surface defects such as pin holes, orange peel, and sink marks.

Production
Polyurethanes are produced by mixing two or more liquid streams. The polyol stream contains catalysts, surfactants, blowing agents (when making polyurethane foam insulation) and so on. The two components are referred to as a polyurethane system, or simply a system. The isocyanate is commonly referred to in North America as the 'A-side' or just the 'iso'. The blend of polyols and other additives is commonly referred to as the 'B-side' or as the 'poly'. This mixture might also be called a 'resin' or 'resin blend'. In Europe the meanings for 'A-side' and 'B-side' are reversed. Resin blend additives may include chain extenders, cross linkers, surfactants, flame retardants, blowing agents, pigments, and fillers. Polyurethane can be made in a variety of densities and hardnesses by varying the isocyanate, polyol or additives.

Health and safety
Fully reacted polyurethane polymer is chemically inert. No exposure limits have been established in the U.S. by OSHA (Occupational Safety and Health Administration) or ACGIH (American Conference of Governmental Industrial Hygienists). It is not regulated by OSHA for carcinogenicity.

Polyurethanes are combustible. Decomposition from fire can produce significant amounts of carbon monoxide and hydrogen cyanide, in addition to nitrogen oxides, isocyanates, and other toxic products. Because of the flammability of the material, it has to be treated with flame retardants (at least in case of furniture), almost all of which are considered harmful. California later issued Technical Bulletin 117 2013 which allowed most polyurethane foam to pass flammability tests without the use of flame retardants. Green Science Policy Institute states: "Although the new standard can be met without flame retardants, it does NOT ban their use. Consumers who wish to reduce household exposure to flame retardants can look for a TB117-2013 tag on furniture, and verify with retailers that products do not contain flame retardants."

Liquid resin blends and isocyanates may contain hazardous or regulated components. Isocyanates are known skin and respiratory sensitizers. Additionally, amines, glycols, and phosphate present in spray polyurethane foams present risks.

Exposure to chemicals that may be emitted during or after application of polyurethane spray foam (such as isocyanates) are harmful to human health and therefore special precautions are required during and after this process.

In the United States, additional health and safety information can be found through organizations such as the Polyurethane Manufacturers Association (PMA) and the Center for the Polyurethanes Industry (CPI), as well as from polyurethane system and raw material manufacturers. Regulatory information can be found in the Code of Federal Regulations Title 21 (Food and Drugs) and Title 40 (Protection of the Environment). In Europe, health and safety information is available from ISOPA, the European Diisocyanate and Polyol Producers Association.

Manufacturing
The methods of manufacturing polyurethane finished goods range from small, hand pour piece-part operations to large, high-volume bunstock and boardstock production lines. Regardless of the end-product, the manufacturing principle is the same: to meter the liquid isocyanate and resin blend at a specified stoichiometric ratio, mix them together until a homogeneous blend is obtained, dispense the reacting liquid into a mold or on to a surface, wait until it cures, then demold the finished part.

Dispensing equipment
Although the capital outlay can be high, it is desirable to use a meter-mix or dispense unit for even low-volume production operations that require a steady output of finished parts. Dispense equipment consists of material holding (day) tanks, metering pumps, a mix head, and a control unit. Often, a conditioning or heater–chiller unit is added to control material temperature in order to improve mix efficiency, cure rate, and to reduce process variability. Choice of dispense equipment components depends on shot size, throughput, material characteristics such as viscosity and filler content, and process control. Material day tanks may be single to hundreds of gallons in size and may be supplied directly from drums, IBCs (intermediate bulk containers, such as caged IBC totes), or bulk storage tanks. They may incorporate level sensors, conditioning jackets, and mixers. Pumps can be sized to meter in single grams per second up to hundreds of pounds per minute. They can be rotary, gear, or piston pumps, or can be specially hardened lance pumps to meter liquids containing highly abrasive fillers such as chopped or hammer-milled glass fiber and wollastonite.

Tooling
Distinct from pour-in-place, bun and boardstock, and coating applications, the production of piece parts requires tooling to contain and form the reacting liquid. The choice of mold-making material is dependent on the expected number of uses to end-of-life (EOL), molding pressure, flexibility, and heat transfer characteristics.

RTV silicone is used for tooling that has an EOL in the thousands of parts. It is typically used for molding rigid foam parts, where the ability to stretch and peel the mold around undercuts is needed. The heat transfer characteristic of RTV silicone tooling is poor. High-performance, flexible polyurethane elastomers are also used in this way.

Epoxy, metal-filled epoxy, and metal-coated epoxy is used for tooling that has an EOL in the tens of thousands of parts. It is typically used for molding flexible foam cushions and seating, integral skin and microcellular foam padding, and shallow-draft RIM bezels and fascia. The heat transfer characteristic of epoxy tooling is fair; the heat transfer characteristic of metal-filled and metal-coated epoxy is good. Copper tubing can be incorporated into the body of the tool, allowing hot water to circulate and heat the mold surface.

Aluminum is used for tooling that has an EOL in the hundreds of thousands of parts. It is typically used for molding microcellular foam gasketing and cast elastomer parts, and is milled or extruded into shape.

Mirror-finish stainless steel is used for tooling that imparts a glossy appearance to the finished part. The heat transfer characteristic of metal tooling is excellent.

Finally, molded or milled polypropylene is used to create low-volume tooling for molded gasket applications. Instead of many expensive metal molds, low-cost plastic tooling can be formed from a single metal master, which also allows greater design flexibility. The heat transfer characteristic of polypropylene tooling is poor, which must be taken into consideration during the formulation process.

Applications
In 2007, the global consumption of polyurethane raw materials was above 12 million metric tons, and the average annual growth rate was about 5%. Revenues generated with PUR on the global market are expected to rise to approximately US$75 billion by 2022. As they are such an important class of materials, research is constantly taking place and papers published.

Effects of visible light
Polyurethanes, especially those made using aromatic isocyanates, contain chromophores that interact with light. This is of particular interest in the area of polyurethane coatings, where light stability is a critical factor and is the main reason that aliphatic isocyanates are used in making polyurethane coatings. When PU foam, which is made using aromatic isocyanates, is exposed to visible light, it discolors, turning from off-white to yellow to reddish brown. It has been generally accepted that apart from yellowing, visible light has little effect on foam properties. This is especially the case if the yellowing happens on the outer portions of a large foam, as the deterioration of properties in the outer portion has little effect on the overall bulk properties of the foam itself.

It has been reported that exposure to visible light can affect the variability of some physical property test results.

Higher-energy UV radiation promotes chemical reactions in foam, some of which are detrimental to the foam structure.

Hydrolysis and biodegradation
Polyurethanes may degrade due to hydrolysis. This is a common problem with shoes left in a closet, and reacting with moisture in the air.

Microbial degradation of polyurethane is believed to be due to the action of esterase, urethanase, hydrolase and protease enzymes. The process is slow as most microbes have difficulty moving beyond the surface of the polymer. Susceptibility to fungi is higher due to their release of extracellular enzymes, which are better able to permeate the polymer matrix. Two species of the Ecuadorian fungus Pestalotiopsis are capable of biodegrading polyurethane in aerobic and anaerobic conditions such as found at the bottom of landfills. Degradation of polyurethane items at museums has been reported. Polyester-type polyurethanes are more easily biodegraded by fungus than polyether-type.

title: Polyurethane