Table of Contents

Software Standard

Return to Internet standards (IETF standards), Web standards (W3C standards), Networking standards, Programming standards (ISO Programming standards) - Software engineering standards, Computer standards, Open Standards

A software standard is a standard, protocol, or other common format of a document, file, or data transfer accepted and used by one or more software developers while working on one or more than one computer programs. Software standards enable interoperability between different programs created by different developers.

Use

Software standards consist of certain terms, concepts, data formats, document styles and techniques agreed upon by software creators so that their software can understand the files and data created by a different computer program. To be considered a standard, a certain protocol needs to be accepted and incorporated by a group of developers who contribute to the definition and maintenance of the standard.

Some developers prefer using standards for software development because of the efficiencies it provides for code development<ref>

</ref> and wider user acceptance and use of the resulting application.<ref>

</ref>

For example, the protocols HTML, TCP/IP, SMTP, POP and FTP are software standards that application designers must understand and follow if their software expects to interface with these standards. For instance, in order for an email sent from Microsoft Outlook can be read from within the Yahoo! Mail application, the email will be sent using SMTP, which the different receiving program understands and can parse properly to display the email. Without a standardized technique to send an email, the two different programs would be unable to accurately share and display the delivered information.

Some widely used data formats, while understood and used by a variety of computer programs, are not considered a software standard. Microsoft Office file formats, such as .doc and .xls, are commonly converted by other computer programs to use, but are still owned and controlled by Microsoft, unlike text files (TXT or RTF.<ref>

</ref>)

Creation

In order for all parties to agree to a certain software standard that they all should use to make their software connect with each other, there are software standards organizations like W3C<ref>

</ref> and ISOC<ref>

</ref> that consist of groups of larger software companies like Microsoft and Apple Inc.. Representatives of these companies contribute their ideas about how to make a single, unified software standard to address the data problem they are trying to handle.

Complexity of a standard can vary depending on what kind of problem that they are trying to solve. For instance FTP (file transfer protocol) tries to solve a different problem than SMTP, which is concerned with sending and receiving email. Standards also need to be simple, maintainable and understandable. The software standard document that they create needs to detail every possible condition, types, elements, etc. in order to retain utility and serve the role for which it was created.

Open versus closed standards

A standard can be a closed standard or an open standard. The documentation for an open standard is open to the public and anyone can create a software that implements and uses the standard. The documentation and specification for closed standards are not available to the public, enabling its developer to sell and license the code to manage their data format to other interested software developers. While this process increases the revenue potential for a useful file format, it may limit acceptance and drive the adoption of a similar, open standard instead.<ref>

</ref>

See also

References

<!– Safety reason for software standard to-do: Economic reason for software standard to-do: put economic reasons here

Social reason for software standard to-do: put social reasons here

Incorrect implementation of standards or specifications by multiple organizations result in a requirement for implementation specific code and special case exceptions as a necessity for cross-platform interoperability. Notable modern examples include web browser compatibility and web-services interoperability. The arbitrariness of most software concepts, which is related to historical hardware and software implementation, lack of common standards worldwide, and economic pressures.

Sometimes software standards are controlled by private corporations (the Windows GUI interface is owned by Microsoft). Sometimes software standards are controlled by open, public, or non-profit organizations (the Secure Shell 2 protocol is 'owned' by the IETF).