“S” – IT Outsourcing Vocabulary

  • S Programming Language – S programming language, developed primarily by John Chambers and (in earlier versions) Rick Becker and Allan Wilks of Bell Laboratories, is a programming language and software environment for statistical computing and graphics. There are two implementations of S programming language: the R programming language, and Insightful’s S-PLUS.
  • S/W: Software – Software, sometimes abreviated s/w, is also called a computer program that enables a computer to perform a specific task, as opposed to the physical components of the system (hardware). This includes application software such as a word processor, which enables a user to perform a task, and system software such as an operating system, which enables other software to run properly, by interfacing with hardware and with other software. Programs stored on non-volatile storage built from integrated circuits (e.g. ROM or PROM) are usually called firmware.
  • SAA: Systems Application Architecture – Systems Application Architecture(SAA) is a set of interfaces, programming languages, and procedure libraries, guidelines, and protocols developed by IBM to encourage the development of software that is consistent regardless of hardware or operating system.
  • Sandbox – Sandbox is a testing environment used by many program systems with limited access and resources usage. It is a protective mechanism used by some programming environments to test additons of pre-launched codes or to-be published contents.
  • Sandwich Test – Sandwich Test refers to a type of software integration test that combines bottom-up testing and top-down testing.
  • SAPI: Scheduling Application Programming Interface – Scheduling Application Programming Interface(SAPI) is an application programming interface for business scheduling software such as Microsoft Schedule+.
  • SAPI: Speech Application Programming Interface – Speech Application Programming Interface(SAPI) is an application programming interface (API) from Microsoft that enables speech synthesis and speech recognition programs to communicate with the Windows operating systems. A number of versions of the SAPI have been released, which have shipped either as part of a Speech SDK, or as part of the Windows OS itself. Applications that use SAPI include Microsoft Office, Microsoft Agent and Microsoft Speech Server.
  • SCADA: Supervisory Control and Data Acquisition – SSupervisory Control and Data Acquisition (SCADA) is a system that collects data from sensors locally or in remote locations and sends them to a central computer for management and control. SCADA systems are used in industrial and civil engineering applications to control distributed systems from a master location. SCADA is a very broad umbrella that describes solutions across a large variety of industries, including but not limited to the following: * Electric power generation, transmission and distribution* Environmental control systems* Traffic signals* Water management systems* Mass transit systems* Manufacturing systems
  • SCANDISK – SCANDISK or Scandisk is a command in DOS and Microsoft Windows systems which verifies hard disk or floppy disk for file system integrity. It is similar to fsck command in Unix. Under Windows 2000 and Windows XP, CHKDSK has replaced SCANDISK for checking disk surface for bad sectors and fixing errors.
  • SCCS: Source Code Control System – Source Code Control System (SCCS) was the first source code revision control system, originally developed at Bell Labs in 1972 for an IBM System/370 computer running OS/MVT, and was later ported to a PDP-11 running Unix. Today, SCCS is generally considered obsolete.
  • Scientific Computing – Scientific computing, also known as computational science, is the field of study concerned with constructing mathematical models and numerical solution techniques and using computers to analyze and solve scientific and engineering problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines such as Physics.
  • SCM: Software Configuration Management – Software Configuration Management (SCM), part of configuration management (CM), is a set of activities designed to control change by identifying the software work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made. In other words, SCM is a methodology to control and manage a software development project.
  • SCM: Source Configuration Management – Source configuration management (SCM) is often used to indicate that a variety of artifacts may be managed and versioned, including software code, documents, design models, and even the directory structure itself. It is part of the Software Configuration Management.
  • Screen Scraper – Screen scraper is a type of software that allows a PC to intercept character-based data from a mainframe and present it in an easier to understand graphical user interface (GUI ). Newer screen scrapers present the information in HTML, so it can be accessed with a browser. The key element that distinguishes screen scraping from regular parsing is that the output being scraped was nominally intended for human consumption, not machine interpretation. There are a number of synonyms for screen scraping, including: Data scraping, data extraction, web scraping, page scraping, web page wrapping and HTML scraping (the last four being specific to scraping web pages).
  • ScreenCam – ScreenCam is an early Screencast program from Lotus that can be used to make movies demonstrating how software works by moving through actions on the screen.Voice can be added, and a ScreenCam player can be included with the movie file so that it runs by itself.
  • Screencast – A screencast is a digital recording of computer screen output, often containing audio narration. Early screencast products such as Lotus ScreenCam produced large files and had limited editing features. More recent products support more compact file formats such as Macromedia Flash and have more sophisticated editing features allowing changes in sequence, mouse movement, and audio.
  • Script – Script, in computer programming, is a type of macro or batch file which contains a list of commands that can be executed without user interaction. A script language is a simple programming language with which you can write scripts. Apple Computer uses the term script to refer to programs written in its HyperCard or AppleScript language.
  • Scripting Languages – Scripting languages, commonly called scripting programming languages or script languages, are computer programming languages created to shorten the traditional edit-compile-link-run process. Early script languages were often called batch languages or job control languages. Scripting languages can be interpreted or compiled, but because interpeters are simpler to write than compilers, they are interpreted at least as often as they are compiled.
  • SDD: Software Description Database – Software Description Database (SDD) is a database of software and documents available on the Internet, with short descriptions, which can be accessed via Archie.
  • SDK: Software Development Kit – Software Development Kit(SDK), also known as Software Developers Kit, is a set of tools to help programmers write new applications and interfaces, based on an existing system. The kit usually provides tools for creating menus, icons, dialog boxes, etc., and for interfacing the application with the operating system(s) it will be used with.
  • SDL: Simple DirectMedia Layer – Simple DirectMedia Layer (SDL) is a cross-platform multimedia library that creates an abstraction over various platforms’ graphics, sound, and input APIs, allowing a developer to write a computer game or other multimedia application once and run it on GNU/Linux, Windows, Mac OS Classic, Mac OS X, BeOS and a few other unofficially ported platforms. It manages video, events, numeric audio, CD-ROM sound, threads, and timers.
  • SDLC: Systems Development Life Cycle – Systems Development Life Cycle(SDLC) is defined by the United States Department of Justice as a software development process, although it is also a distinct process independent of software or other Information Technology considerations. It is used by a system analyst to develop an information system, including requirements, validation, training, and user ownership through investigation, analysis, design, implementation, and maintenance. SDLC is a systems approach to problem solving and is made up of several phases, each comprised of multiple steps:
  • The software concept – identifies and defines a need for the new system.
  • A requirements analysis – analyzes the information needs of the end users.
  • The architectural design – creates a blueprint for the design with the necessary specifications for the hardware, software, people and data resources.
  • Coding and debugging – creates and programs the final system.
  • System testing – evaluates the system’s actual functionality in relation to expected or intended functionality.
  • SDML: Signed Document Markup Language – Signed Document Markup Language(SDML) is a specification of a generic method for digitally signing a document, a section of a document, or multiple documents together. SDML requires the use of public key cryptography and can be used with web pages, e-mail messages or any text based documents. SDML is a generalization of the Financial Services Markup Language (FSML). SDML may be used for electronic funds transfer, electronic commerce, or any other signed contract or agreement.
  • SDR: Software-Defined Radio – A software-defined radio (SDR) system is a radio communication system which uses software for the modulation and demodulation of radio signals. An SDR performs significant amounts of signal processing in a general purpose computer, or a reconfigurable piece of digital electronics. The goal of this design is to produce a radio that can receive and transmit a new form of radio protocol just by running new software.
  • SE: Software Engineer – Software engineer(SE) is a person who designs and programs system-level software, such as operating systems, database management systems (DBMSs) and embedded systems. An software engineer requires the discipline of designing, creating, and maintaining software by applying technologies and practices from computer science, project management, engineering, application domains and other fields.
  • Seahorse – Seahorse is a GNOME front-end application for managing PGP keys, written by Jacob Perkins. Seahorse integrates with Nautilus, gedit for encryption, decryption and other operations. It has HKP key server support. The program is based on GNU Privacy Guard (GPG) and is released under the GNU General Public License.
  • Search Engine – A search engine is a computer system designed to help find information over a computer network such as the World Wide Web, inside a corporate or proprietary network or a personal computer. The search engine allows one to ask for content meeting specific criteria (typically those containing a given word or phrase) and retrieves a list of references that match those criteria. Search engines use regularly updated indexes to operate quickly and efficiently. Without further qualification, search engine usually refers to a Web search engine, which searches for information on the public Web. Other kinds of search engine are enterprise search engines, which search on intranets, personal search engines, which search individual personal computers, and mobile search engines. However, while different selection and relevance criteria may apply in different environments, the user will probably perceive little difference between operations in these.
  • Search Service – Search service is an online service which can trawl through the contents of the Web (Websites, newsgroups, email addresses) looking for specific phrases or words. A search engine is required to provide the search services, which asks the user to input keywords and then provides a list of web sites that contain your chosen words.
  • Second Generation Language – Second generation language (2GL), also known as second-generation programming language, usually refer to some form of assembly language. Unlike first-generation programming languages, the code can be read and written fairly easily by a human, but it must be converted into a machine readable form in order to run on a computer. The conversion process is simply a mapping of the assembly language code into binary machine code (the first-generation language). The language is specific to and dependent on a particular processor family and environment. Since it is the native language of a processor it has significant speed advantages, but it requires more programming effort and is difficult to use effectively for large applications.
  • Second-System Effect – In computing, the second-system effect, also known as second-system syndrome, refers to the phenomenon when one is designing the successor to a relatively small, elegant, and successful system to become grandiose in one’s success and design an elephantine feature-laden monstrosity, for example, the jump from a set of simple operating systems on the IBM 700/7000 series to OS/360 on the 360 series.
  • Security-Enhanced Linux – Security-Enhanced Linux (SELinux) is a version of the Linux kernel and utilities, which contains support for mandatory access controls based on the principle of least privilege. It is not a Linux distribution, but rather a set of modifications that can be applied to Linux operating systems and some non-Linux systems like BSD.
  • SEI: Software Engineering Institute – The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University, with offices in Pittsburgh, Pennsylvania; Frankfurt, Germany; Redstone Arsenal, Alabama, and Arlington, Virginia. The SEI publishes books on software engineering for industry, government and military applications and practices. They are most famous for the software Capability Maturity Model, (now CMMI), which ranks a software development environment according to its capability of producing quality software.
  • Self-Extracting File – Self-extracting file is a type of file that contains other files that have been compressed through a ZIP or other compression program for more efficient transfer of the data. The self-extracting file contains within it the program software needed to un-compress (unzip) the file and execute the intended application. The end user can simply executing the file without any special software to execute the file.
  • SEQUEL: Structured English Query Language – Structured English Query Language (“SEQUEL”), originally designed by an IBM research center in 1974 and 1975, was designed to manipulate and retrieve data stored in System R. The SEQUEL is the base for the standard database query language SQL, which is widely used today.
  • Server Application – Server applications are a type of software used by an application server in providing a service to a client. Server applications include web service applications, database applications, etc.
  • Service Oriented Analysis – Service Oriented Analysis is a process in the Service Oriented Architecture (SOA), which generally refers to a pre-design effort centered around the definition of conceptual services or a conceptual service-oriented architecture. Much like object-oriented analysis, the goal is often to achieve an ideal representation. IBM provides a variation of service-oriented analysis as part of its SOAD framework.
  • SP: Service pack – Service pack(SP), typically a cumulative set of hotfixes, resers to an update to a software version that fixes an existing problem, or provides enhancements to the product that will appear in the next version of the product. When the new product version is released, it usually contains the fixes and updates from the service pack. Service packs can either be downloaded or ordered directly from the software vendor.
  • SFA: Sales Force Automation – Sales force automation(SFA) is a process of using software to automate the sales functions and process in a business, including order processing, contact management, information sharing, inventory monitoring and control, order tracking, customer management, sales forecast analysis and employee performance evaluation.
  • SGML Application – SGML application refers to a markup language written in Standard Generalized Markup Language (SGML). SGML is a meta-language – a language for writing markup languages. HTML is an example of the SGML application.
  • SGML: Standard Generalized Markup Language – Standard Generalized Markup Language(SGML) is a metalanguage for how to specify a document markup language or tag set. Such a specification is itself a document type definition (DTD). SGML is a descendant of IBM’s Generalized Markup Language (GML). SGML is based on the idea that documents have structural and other semantic elements that can be described without reference to how such elements should be displayed. The actual display of such a document may vary, depending on the output medium and style preferences. SGML provides a variety of markup syntaxes that can be used for many applications. By changing the SGML Declaration one does not even need to use “angle brackets” although they are the norm, the so-called concrete reference syntax. SGML was originally designed to enable the sharing of machine-readable documents in large projects in government, legal and the aerospace industry, which have to remain readable for several decadesa very long time in information technology. It has also been used extensively in the printing and publishing industries, but its complexity has preventedits widespread application for small-scale general-purpose use.
  • Shareaza – Shareaza is a Windows€“based peer-to-peer client which supports the Gnutella, Gnutella2, EDonkey Network, and BitTorrent network protocols and which can handle magnet links, ed2k links, Piolet links, and the now deprecated Gnutella links. It was originally developed as closed-sourcefreeware by Michael Stokes, and is now open-source under the GPL.
  • Shareware – Shareware is a type of software distributed on the basis of an honor system. Most shareware is delivered free of charge, but the author usually requests that you pay a small fee if you like the program and use it regularly. By sending the small fee, you become registered with the producer so that you can receive service assistance and updates. You may re-distribute shareware to others, but they too are expected to pay a fee if they use the product and like it. Sometmes, shareware is a light version of a commercial software, which has price. The author of the shareware expects a portion of users of the shareware to purchase the full commercial version if they like it.
  • Shelfware – Shelfware refers to the software that gets purchased by a company or individual that ends up sitting on a shelf somewhere and not being used.
  • Shell – A shell, in computer technologies, refers to the interface between the user and the computer’s operating system. The shell interprets commands entered by the user, and passes them on to the operating system. A shell usually implies an interface with a command syntax (think of the DOS operating system and its “C:>” prompts and user commands such as “dir” and “edit”). DOS shells are COMMAND.COM and DOS shell; some UNIX shells are the Bourne shell (sh), the C shell (csh), and the Korn shell (ksh).
  • Shockwave – Shockwave is an application that enables interactive and multimedia features, such as movies, sounds, and animations, to be embedded in Web pages. Shockwave allows developers to add items created with conventional authoring tools such as Director or Freehand.
  • Shoutcast – Shoutcast is a software application for streaming MP3s. The official Shoutcast website has addresses for many stations which are like radio stations. You enter the URL in your MP3 player for the station you selected, then the MP3s are downloaded while playing.
  • SIGGRAPH: Special Interest Group in Graphics – Special Interest Group in Graphics(SIGGRAPH) is the name of the annual conference on computer graphics convened by the ACM SIGGRAPH organization. The first SIGGRAPH conference was in 1974. The conference is attended by tens of thousands of computer professionals.
  • SIIA: Software & Information Industry Association – Software & Information Industry Association (SIIA) is a trade association for the software industry.
  • SIT: System Integration Testing – The System Integration Testing(SIT), also known as integration testing, is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. Integration testing takes as its input modules that have been checked out by unit testing, groups them in larger aggregates, applies tests defined in an Integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. The purpose of Integration testing is to verify functional, performance and reliability requirements placed on major design items.
  • SLOC: Source Lines of Code – Source lines of code (SLOC) is a software metric used to measure the amount of code in a software program. SLOC is typically used to estimate the amount of effort that will be required to develop a program, as well as to estimate productivity or effort once the software is produced.
  • Smalltalk – Smalltalk is an object-oriented, dynamically typed, reflective programming language. It was designed and created in part for educational use, more so for Constructivist teaching, at Xerox PARC during the 1970s. The language was generally released as Smalltalk-80 and has been widely used since. Smalltalk is in continuing active development, and has gathered a loyal community of users around it.
  • SOA: Service-Oriented Architecture – Service-Oriented Architecture expresses a perspective of software architecture that defines the use of services to support the requirements of software users. In an SOA environment, resources on a network are made available as independent services that can be accessed without knowledge of their underlying platform implementation. SOA is a style of multi-tier computing that helps organizations share logic and data among multiple applications and usage modes. A number of common terms have surfaced in association with structured service and SOA delivery processes:
    • service-oriented analysis
    • service-oriented design
    • service-oriented analysis and design (SOAD)
    • service-modeling
    • service-oriented modeling
    • service-oriented modeling and architecture (SOMA)
  • SOAD: Service-Oriented Analysis and Design – Service-oriented analysis and design (SOAD), also known as service-oriented modeling, is an IBM defined process following the Service Oriented Architecture (SOA), which is an approach to software modeling and development specially designed for service-oriented architecture (SOA). SOAD adds innovations for service repositories, service orchestration, and the enterprise service bus. It also helps design, build, aggregate, and deploy applications as Web services based on SOAP, WSDL and UDDI technologies.
  • SOAR Cognitive Architecture – SOAR (also spelled Soar) is a symbolic cognitive architecture, created by John Laird, Allen Newell, and Paul Rosenbloom at Carnegie Mellon University. It is both a view of what cognition is and an implementation of that view through a computer programming architecture for Artificial Intelligence (AI). Since its beginnings in 1983 and its presentation on a paper in 1987 it has been widely used by AI researchers to model different aspects of human behavior.
  • Social Software – Social software is a type of software that enables people to rendezvous, connect or collaborate through computer-mediated communication and to form online communities. Broadly conceived, this term could encompass older media such as mailing lists and Usenet, but some would restrict its meaning to more recent software genres such as blogs and wikis. Others suggest that the term social software is best used not to refer to a single type of software, but rather to the use of two or more modes of computer-mediated communication that result in community formation. In this view, people form online communities by combining one-to-one (e.g., email and instant messaging), one-to-many (Web pages and blogs), and many-to-many (wikis) communication modes. In many online communities, real life meetings become part of the communication repertoire.
  • SoftICE – SoftICE is a kernel mode debugger for Microsoft Windows. It is designed to run underneath Windows such that the operating system is unaware of its presence. Unlike an application debugger, SoftICE is capable of suspending all operations in Windows when instructed. For driver debugging this is critcal due to how hardware is accessed and the kernel of the operating system functions.
  • Softimage|XSI – Softimage|XSI is a high-end three-dimensional (3D) graphics application developed by Softimage, Co., a subsidiary of Avid Technology, Inc., which is used predominantly in the film, gaming and advertising industries for the production of 3D environments and scenes.
  • Software – Software, sometimes abreviated s/w, is also called a computer program that enables a computer is also called a computer program that enables a computer to perform a specific task, as opposed to the physical components of the system (hardware). This includes application software such as a word processor, which enables a user to perform a task, and system software such as an operating system, which enables other software to run properly, by interfacing with hardware and with other software. Programs stored on non-volatile storage built from integrated circuits (e.g. ROM or PROM) are usually called firmware.
  • Software Agent – A software agent is an unit or component in a logical model that describes software that acts for a user or other program in a relationship of agency. A software agent is typically a piece of autonomous, or semi-autonomous proactive and reactive, computer software. Many individual communicative software agents may form a multi-agent system multi-agent system (MAS) is a system composed of several agents, capable of mutual interaction. The interaction can be in the form of message passing or producing changes in their common environment. The agents can be autonomous entities, such as software agents or robots.
  • Software Architecture – Software Architecture refers to a static framework or structure that provides the form of a software system and the conventions, policies, and mechanisms for composing itself with subsystems, or component parts, that can populate the architecture. The architecture defines how the parts relate to each other including constraints governing how they can relate, or there are interfaces that define how the parts intercommunicate.
  • Software Audit – Software audit refers to the investigation of the software installed on the computers in an organisation with the purpose of ensuring that it is all legal and authorised. Software audits minimise the risk of prosecution for software piracy due to the use of unlicensed software. In addition to enforce software usage policy, the risk of viruses is minimised by preventing uncontrolled software copying.
  • Software Blacklist – Software blacklisting is a tool used by manufacturers of software and music on CD and DVD, which will audit the user’s computer for certain types of virtual CD and CD authoring software. If blacklisted software is found then certain actions are taken by the software on the game or music disc. Examples would be allowing the copying of the game to take place, but crashing the copied game when attempting to start it; allowing copies of games that will malfunction in subtle ways; simply disallowing the game to be run while this software exists etc.
  • Software Cracking – Software cracking refers to the modification of software to remove encoded copy prevention. Distribution of cracked software is generally an illegal act of copyright infringement.
  • Software Engineering – Software engineering refers to a systematic approach to the analysis, design, implementation and maintenance of software, in which technologies and practices from computer science, project management, engineering, application domains and other fields, are applied. There are various models of the software life-cycle, and many methodologies for the different phases.
  • Software Entropy – Software entropy refers to the tendency for software, over time, to become difficult and costly to maintain. A software system that undergoes continuous change, such as having new functionality added to its original design or fitting into the latest technology environment, will eventually become more complex and disorganized as it grows, losing its original design structure. At some point, it may be better to redesign the software in order to support the changes rather than building on the existing program, which, however, maybe quite costly and introduce new bugs and problems.
  • Software Environment – Software environment typically refers the environment to support an application, which may include the operating system, the database system, specific development tools or compiler.
  • Software Generic – Software Generic refers to the system operating software release for general availability, for example, SUN Solaris 10 etc.
  • Software Genre – Software Generic refers to the system operating software released for general availability, for example, SUN Solaris 10 etc.
  • Software Hoarding – Software hoarding is the creation of proprietary software products based on free licensed software. This software forking can cause interoperability problems leading to vendor lock-in, as well as a limitation of knowledge. The practice of software hoarding was the impetus for the creation of copyleft. Software hoarding is legal unless restricted by copyleft or a similar license, but it is considered immoral by the more ideological proponents of free software.
  • Software License – A software license is an agreemt with certain terms and conditions that grant permission to do things with computer software that would otherwise be prohibited by copyright law. If one does not follow the terms of the license, then he or she is subject to the normal restrictions of copyright law. For example, a software license might give permission to use and to make copies of the software. A copyright holder of software may offer a software license unilaterally, or as part of a software license agreement with another party. There are a variety of different types of software licenses. Some are based on the number machines on which the licensed program can run whereas others are based on the number of users that can use the program. Most personal computer software licenses allow you to run the program on only one machine and to make copies of the software only for backup purposes. Some licenses also allow you to run the program on different computers as long as you don’t use the copies simultaneously.
  • Software Licensing – Software licensing refers to the practice of allowing an individual or group to use (or to do other things such as copy) a piece of software, by the copyright owner of the software. Nearly all software applications are licensed rather than sold. A software is licensed by owners in a variety of ways, including: shrink wrap contract accompanying the software, free software license accompanying open-source software which is typically made freely available in source code form, and enterprise software licenses which are agreements the terms of which are specifically negotiated between the licensee and licensor.
  • Software Life-Cycle – Software life-cycle, a terms used in the software engineering, refers to the phases a software product goes through between when it is conceived and when it is no longer available for use. The software life-cycle typically includes the following: requirements analysis, design, construction, testing (validation), installation, operation, maintenance, and retirement.
  • Software Metric – A software metric is a quantitative measure of some property of a piece of software or its specifications. Common software metrics include:
    • order of growth
    • source lines of code
    • cyclomatic complexity
    • function points
    • bugs per line of code
    • code coverage
    • Number of lines of customer requirements.
    • number of classes and interfaces
    • Robert Cecil Martin’s software package metrics
    • cohesion
    • Coupling
  • Software Package – A software package is a method for the distribution and installation of software on computer systems. The most common type of software package is that found sold in stores, such as a popular word processor. A user would purchase the software, then follow the given instructions to install the software on their home machine. Packaged software is generally designed to appeal to a large audience of users, and although the programs may be tailored to a user’s taste by setting various preferences, it is not as individualized as custom-designed and custom-programmed software.
  • Software Pipelining – Software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Software pipelining is a type of out-of-order execution, except that the reordering is done by a compiler (or in the case of hand written assembly code, by the programmer) instead of the processor. Some computer architectures have explicit support for software pipelining, notably Intel’s IA-64 architecture.
  • Software Piracy – Software piracy refers to the unauthorized duplication and use of computer software. Although some software piracy is done by companies for financial gain, most piracy is done by private individuals who lend discs to friends or copy programs from the workplace to their computers at home. Because computer data is so easy to duplicate, and the use of unauthorized software is so hard to detect, it appears impossible to stop software piracy. In old days, software vendors sell each copy of their software with a dongle €“ a coded plug that must actually be fitted to the computer for the software to function.
  • Software Project Life Cycle – Software project life cycle refers to the various stages of development of a program (software), from the identification of requirements, design, coding, testing to the installation, maintenance, and support of the finished program.
  • Software Rot – Software rot, also known as code rot or software decay, is a type of bit rot. It describes the perceived slow deterioration of software overtime, that will eventually lead to it becoming faulty, unusable, or otherwise in need of maintenance. Software rot comes in two forms: 1) Dormant Rot: Software that is not (yet) being used gradually becomes unusable as the remainder of the application changes. It has been observed that un-used software has a half life of perhaps one year; 2) Active Rot: Software that is being continuously modified tends to lose its integrity over time.
  • Software Sampler – A software sampler, similar to a software synthesizer, is a software synthesizer generates sounds algorithmically from Mathematically -described tones or short-term waveforms (i.e., less than 100ms in length). A software sampler always reproduces samples, often much longer than a second, as the first step of its algorithm.
  • Software Suite – Software suite refers to a collection of programs sold together as one package. Programs within the suite are generally supplementary to each other in functions. For example, an office software suite might include a word processor, a spreadsheet, a presentation program, and a database program.Some software suites are Lotus SmartSuite, Novell PerfectOffice, and ClarisWorks.
  • Software Theft – Software theft, also known as software piracy, refers to the unauthorized duplication and use of computer software. Although some software piracy is done by companies for financial gain, most piracy is done by private individuals who lend discs to friends or copy programs from the workplace to their computers at home. Because computer data is so easy to duplicate, and the use of unauthorized software is so hard to detect, it appears impossible to stop software piracy. In old days, software vendors sell each copy of their software with a dongle €“ a coded plug that must actually be fitted to the computer for the software to function.
  • Software Tool – Software tool, also known as programming tool, is a program or application that software developers use to create, debug, or maintain other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object.
  • SoftwareValet – SoftwareValet is a software installer for BeOS, originally developed by Starcode Software and included with BeOS since 1998. It was originally developed for web deployment of applications, where a user would click on an ‘Install with SoftwareValet’ link on a website, and the BeOS web browser at the time, NetPositive, would launch SoftwareValet.
  • Source Code – Source code, just called source or code, is any series of statements written in some high level computer programming language. The term is typically used in the context of a particular piece of computer software. A computer program’s source code is the collection of files that can be converted from human-readable form to an equivalent computer-executable form in machine language. The source code is either converted into an executable file by a compiler for a particular computer architecture, or executed on the fly from the human readable form with the aid of an interpreter.
  • Source Code Repository – A source code repository is a place where large amounts of source code are kept, either publicly or privately. They are often used by multi-developer projects to handle various versions in which developers submit various patches of code in an organized fashion. CVS is a popular GNU project to handle these issues and is common in open source projects.
  • Source Language – Source language refers to the computer programming language in which a source program or source code is written. Source languages are classified as either high-level languages or low-level languages, according to whether each notation in the source language stands for many or only one instruction in machine code. Programs in high-level languages are translated into machine code by either a compiler or an interpreter program. Low-level programs are translated into machine code by means of an assembler program. The program, before translation, is called the source program; after translation into machine code it is called the object program.
  • Source Program – Source program refers to a program written in a source language, which is are classified as either high-level languages or low-level languages, according to whether each notation in the source language stands for many or only one instruction in machine code. Programs in high-level languages are translated into machine code by either a compiler or an interpreter program. Low-level programs are translated into machine code by means of an assembler program. The program, before translation, is called the source program; after translation into machine code it is called the object program.
  • SourceForge – SourceForge is the world’s largest Open Source software development project facilitated through a web site (SourceForge.net, owned by OSTG, Inc. (“Open Source Technology Group”)), hosting more than 100,000 projects and over 1,000,000 registered users with a centralized resource for managing projects, issues, communications, and code. SourceForge.net has the largest repository of Open Source code and applications available on the Internet, and hosts more Open Source development products than any other site or network worldwide. SourceForge.net provides a wide variety of servicesto projects we host, and to the Open Source community.
  • SOX Unix – SOX Unix(SOX) is a UNIX clone developed from scratch in Brazil in late 1980s by Computadores e Sistemas Brasileiros SA (now Cobra Tecnologia). Certified as UNIX-compatible by X/Open (through Unisoft) in early 1989, SOX was one of the first re-implementation of UNIX fully independent of AT&T that passed the X/Open verification tests, and the only one ever completed 100% outside the United States.
  • SoX: Sound eXchange – Sound eXchange (SoX) is a free digital audio editor which is licensed under the GPL and distributed by Chris Bagwell through Sourceforge. SoX is written in standard C, with a command-line interface.
  • Sparse Conditional Constant Propagation – Sparse conditional constant propagation is an optimization frequently utilized in compilers after conversion to static single assignment form (SSA). It simultaneously removes dead code and propagates constants throughout a program. It must be noted, however, that it is strictly more powerful than applying dead code elimination and constant propagation in any order or any number of repetitions.
  • Spell Checker – Spell checker is a program that checks the spelling of words in a text or other document. Spell checkers are particularly valuable for catching typos. Some spell checker comes with grammer and syntax checking too. Many word processors come with a built-in spell checker, but you can also purchase stand-alone utilities.
  • Spider-Man Cartoon Maker – The Spider-Man Cartoon Maker was a recreational software package that allows the user to create animations with a minimal level of sophistication by utilising a library of backdrops, animations and sound effects from the 1994 Marvel Comics television series, Spider-Man: The Animated Series.
  • Spiral Model – The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Spiral model uses the waterfall model for each step, with the aim of managing risk. In the spiral model, developers define and implement features in order of decreasing priority.
  • SPOF: Single Point of Failure – Single point of failure(SPOF) is a generic phrase for any component of a system that upon failure will cause a malfunction in the entire system. A SPOF can be a hardware or electrical component or a software component. This can be as simple as a process failure or as catastrophic as a computer system crash.
  • Spreadsheet – Spreadsheet typically refers to a table of values arranged in rows and columns. Each value can have a predefined relationship to the other values. If you change one value, therefore, you may need to change other values as well. There are many spreadsheet applications available that enable users to create and operate the data in the table efficiently.
  • Spreadsheet Applications – Spreadsheet applications, sometimes simply referred to as spreadsheets, are computer programs that enable user to create and manipulate spreadsheets electronically. In a spreadsheet application, each value sits in a cell. Different data types can be assigned to each cell and how different cells depend on one another. The relationships between cells are called formulas, and the names of the cells are called labels.
  • Sproc: Stored Procedure – Stored procedure, also known as sproc, is a SQL program which is physically stored within a database and executed by calling it directly from the client or from a database trigger. The exact implementation of a stored procedure varies from one database to another. In most cases however, stored procedures allow for an API to be defined for a database, rather than having a client application interact with the tables and other database objects directly. When the SQL procedure is stored in the database, it does not have to be replicated in each client. This saves programming effort especially when different client user interfaces and development systems are used. Triggers and stored procedures are built into DBMSs used in client/server environments.
  • SQL: Structured Query Language – Structured query language(SQL) is an ANSI/ISO standardized query language used to create, modify, retrieve and manipulate data from relational database management systems. The original version called SEQUEL (structured English query language) was designed by an IBM research center in 1974 and 1975. SQL was first introduced as a commercial database system in 1979 by Oracle Corporation.
  • SQLite – SQLite, a public domain project, is an ACID-compliant relational database management system contained in a relatively small C library. Unlike the usual client-server paradigm, the SQLite engine is not a standalone process with which the program communicates, but is linked in and thus becomes an integral part of the program. Therefore, the primary communication protocol is direct API calls within the programming language. This can have a positive impact on the amount of overhead, latency time and overall simplicity.
  • Squeez Utility – Squeez is a shareware file archiver and data compression utility by Speedproject. It supports 13 different compression algorithms. The software reads and writes files in the formats ZIP, RAR, SQX, ACE, ARJ, BZIP, GZIP, LZH, TAR, UUE, JAR, CAB and 7z.
  • Squish of FidoNet – Squish is both the name of a FidoNet mail tossing application originally designed for DOS and OS/2, and the name of the primary mail storage format in which this application stores FidoNet and other local BBS messages. Before Squish, open storage formats for FidoNet and Bulletin Board messages were relatively slow and inefficient.
  • SR: Service Release – Service Release (SR) refers to a special software release including service packs (SP) and the original product.
  • Srvany – Srvany is a Microsoft Windows 2000/2003/XP Server Resource Kit utility that can be used to enable applications to run as services.
  • SSA: Static Single Assignment Form – Static single assignment form (SSA form or SSA) is an intermediate representation (IR) in which every variable is assigned exactly once. Existing variables in the original IR are split into versions, new variables typically indicated by the original name with a subscript, so that every definition gets its own version. In SSA form, use-def chains are explicit and each contains a single element.
  • SSADM: Structured Systems Analysis and Design Method – Structured Systems Analysis and Design Method (SSADM) is a system approach to the analysis and design of information systems. SSADM was produced for the CCTA, a UK government office concerned with the use of technology in government, from 1980 onwards. The names of “Structured Systems Analysis and Design Method” and “SSADM” are now Registered Trade Marks of the Office of Government Commerce (OGC), which is an Office of the United Kingdom’s Treasury. SSADM is a waterfall method by which an IS design can be arrived at; SSADM can be thought to represent a pinnacle of the rigorous document-led approach to system design, and contrastswith more contemporary Rapid Application Development methods such as DSDM.
  • Stack of Data Structure – In computer science, a stack is a temporary abstract data type and data structure based on the principle of Last In First Out (LIFO). Stacks are used extensively at every level of a modern computer system. For example, a modern PC uses stacks at the architecture level, which are used to run an operating system. The operating system also uses stacks, which are used to run a Java Virtual Machine, which is stack oriented, and the Java language itself has a class called “Stack”, which can be used by the programmer. The stack is ubiquitous.
  • Startup Code – Startup code refers to a piece of assembly language code that prepares the way for software written in a high-level language. Startup code usually initializes code and data segments, safes I/O, and sets up chip selects and wait states. Most cross-compilers come with startup code that a user can modify, compile, and link with embedded programs.
  • Static Class – Static class is a concept in C# programming. Static classes and class members are used to create data and functions that can be accessed without creating an instance of the class. Static class members can be used to separate data and behavior that is independent of any object identity: the data and functions do not change regardless of what happens to the object. Static classes can be used when there is no data or behavior in the class that depends on object identity.
  • Static Code Analysis – Static code analysis is a set of methods for analysing software source code or object code in an effort to gain understanding of what the software does and establish certain correctness criteria. The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding or program comprehension.
  • Static Library – In computer science, a static library, also referred to as a statically linked library, is a computer library in which links are resolved at compile-time by a linker. Static libraries may be merged with other libraries and executables to form a single object file, or they may be loaded at runtime into the address space of the linking executable or library, at a static memory offset determined at link-time.
  • STL: Standard Template Library – The Standard Template Library (STL) is a C++ library of container classes, algorithms, and iterators; it provides many of the basic algorithms and data structures of computer science. The STL is a generic library, meaning that its components are heavily parameterized: almost every component in the STL is a template. STL was developed by Alexander Stepanov and Meng Lee at Hewlett-Packard. It is based on their research in the field of generic programming.
  • Strength Reduction – Strength reduction is a compiler optimization where a function of some systematically changing variable is calculated more efficiently by using previous values of the function. In a procedural programming language this would apply to an expression involving a loop variable and in a declarative language it would apply to the argument of a recursive function.
  • String Intern Pool – In some modern programming languages, including Java and C#, the string intern pool is a data structure managed internally by the platform or virtual machine to facilitate efficient implementation of certain string processing tasks. The pool contains a single copy (called the intern) of each distinct string that is currently represented by a string object in the system. By invoking a method of the string class (for example String.intern() in Java), the programmer has access to this unique string object.
  • Structured Analysis – Structured analysis is one of requirements analysis methods used in software engineering. Structure analysis includes a few approaches: 1) Data Flow Diagrams to show information flow and processing in a system. 2) Structure Charts show module structure and calling relationships. 3) State models include diagrams and tables that show the significant states in a system, events that cause transitions between states and the actions that result. 4) Task diagrams show threads of execution and the real-time operating system services like queues, event flags and semaphores that connect them in a multi-tasking environment.
  • Structured Design – Structured design is one of systematic top-down design techniques used in software engineering, usually after structured analysis. The goal of structured design is to produce design specifcations of a system, based on the system requirements generated from the structured analysis.
  • Structured Programming – Structured programming refers to a software development technique that includes structured analysis and design and results in the development of a structured program. Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms.
  • StuffIt Expander – StuffIt Expander, published by Aladdin Systems, is program for the Macintosh used to decompress files after downloading and makes them usable by your computer. StuffIt Expander is similar to an unzipping program in a PC.
  • Subversion – Subversion is an open source application used for revision control. It is sometimes abbreviated to svn in reference to the name of its command line interface. Subversion is designed specifically to be a modern replacement for Concurrent Versions System (CVS) and shares a number of the same key developers.
  • Subweb – Subweb, a term introduced by Microsoft, refers to certain portion of a website that has special style and restrictions when access. There is a feature within FrontPage that allows a section (contained within a folder, or directory) to be converted into a website in its own right. It is not seen as another site by the server, however, and so is known as a “subweb” of the current website. If you have the parent web open in FrontPage and click to go into the subweb, FrontPage opens it in a new window, strengthening the impression that you are dealing with a separate entity. In the new window, you can treat the subweb as though it was a separate website with its own theme, etc..
  • SuperCollider Programming Language – SuperCollider, released in 2002 by its author, James McCartney, under the free software GPL license, is a real time audio synthesis programming language. Since then it has been evolving into a system used and further developed by both scientists and artists working with sound. It is an efficient and expressive dynamic programming language which makes it an interesting framework for acoustic research, algorithmic music and interactive programming.
  • SVK – SVK is a decentralized version control system written in Perl, with a design comparable to BitKeeper and GNU arch. The primary author of svk is Chia-liang Kao, and it is distributed under Perl’s Artistic License as well as GPL.
  • Sweep Software – Sweep is an open source, multiplatform digital audio editor and live playback tool for GNU/Linux, BSD and compatible systems. It is able to handle many sound formats, including MP3, WAV and Vorbis. The most notable feature of Sweep is its stylus-like cursor tool called Scrubby.The program is licensed under the GPL and it is included in most modern Linux distributions.
  • Sybase SQL Server – Sybase SQL Server, a relational database management system of Sybase Corporation, was originally created for UNIX platforms in 1987. In 1988, SQL Server for OS/2 was co-developed for the PC by Sybase, Microsoft, and Ashton-Tate. In 1995, Sybase released SQL Server 11.
  • Symbolic Inference – Symbolic inference refers to the derivation of new facts from known facts and inference rules. This is one of the fundamental operations of artificial intelligence and logic programming languages like Prolog.
  • Syntax – Syntax, in computer science, refers to the spelling and grammar of a programming language. Computers are inflexible machines that understand what you type only if you type it in the exact form or sytax that the computer expects. Each program defines its own syntactical rules that control which words the computer understands, which combinations of words are meaningful, and what punctuation is necessary. The analysis of a program’s syntax is usually performed using an automatically generated program known as a parser which often builds an abstract syntax tree.
  • Sysadmin: System Administrator – A system administrator, or sysadmin, is a person employed to maintain and operate a computer system or network for a company or other organization. System administrators are often members of an information technology department.
  • System Call – System call is the mechanism used by an application program to request service from the operating system or more specifically, the operating system kernel. System calls often use a special CPU instruction which causes the processor to transfer control to more privileged code, as previously specified by the more privileged code. This allows the more privileged code to specify where it will be entered as well as important processor state at the time of entry. When the system call is invoked, the program which invoked it is interrupted, and information needed to continue its execution later is saved. The processor then begins executing the higher privileged code, which, by examining processor state set by the less privileged code and/or its stack, determines what is being requested. When it is finished, it returns to the program, restoring the saved state, and the program continues executing.
  • System Integrator – System integrator is a person or company that specializes in integrating systems. System integrators may work in many fields. In Information Technology (IT), system integrators integrate multiple systems for inputting, processing, interpreting, storing, and categorizing data. For example, a system integrator may build an IT solution integrating an Oracle based inventory tracking system, an OnBase document management system, a Microsoft CRM system, a group of Panasonic scanners, and a Rimage storage system to produce an overall solution for the customer.
  • System Resource – System Resource refers to the tools, typically part of an OS, used by either hardware or software to communicate with each other, for example, to alert software of a need or by software to control a function of hardware. In the Windows operating system, there are two kinds system resources: User Resources, and GDI (Graphic Device Interface) Resources. The User component manages input from the keyboard, mouse, and other input devices and output to the user interface (windows, icons, menus, and so on). It also manages interaction with the sound driver, timer, and communications ports. The Graphics Device Interface (GDI) is the graphical system that manages what appears on the screen. It also provides graphics support for printers and other output devices. It draws graphic primitives, manipulates bitmaps, and interacts with device-independent graphics drivers, including those for display and printer output device drivers.
  • System Software – System software, also known as system program, is a type of software which includes the operating system and all utility programs that manage computer resources at a low level. System programs include operating systems, database managers, drivers, communications and messaging protocols, basic input/output system, compilers, loaders, linkers, and debuggers, etc.
  • Systems Administration – Systems administration refers to the duties of installing, supporting, and maintaining servers or other computer systems, and planning for and responding to service outages and other problems. Other duties may include scripting or light programming, project management for systems-related projects, supervising or training computer operators, and being the equivalent of a handyman for computer problems beyond the knowledge of technical support staff.
  • Systems Analysis – Systems analysis is the process of analysis of complex, large scale systems and the interactions within those systems. It involves the investigation of a business activity or clerical procedure, with a view to deciding if and how it can be computerized. The analyst discusses the existing procedures with the people involved, observes the flow of data through the business, and draws up an outline specification of the required computer system. The next step is systems design. Typically, an automated tool is used to facilitate the systems analysis. Tools in use for this purpose include Yourdon, SSADM (Structured Systems Analysis and Design Methodology), and Soft Systems Methodology.
  • Systems Management – Systems management refers to enterprise-wide administration of distributed computer systems. System management software that manages computer systems in an enterprise may include any and all of the following functions: software distribution and upgrading, user profile management, version control, backup & recovery, printer spooling, job scheduling, virus protection and performance and capacity planning. Microsoft’s Systems Management Server and Novell’s ZENworks are examples of systems management applications. Depending on organizational philosophy, systems management may include network management or come under it. The most known systems management systems are IBM Tivoli Framework, Microsoft Systems Management Server, HP OpenView, LANDesk, Novell ZENworks and CA Unicenter.
  • Systems Program – System program, also known as system software, is a type of software which includes the operating system and all utility programs that manage computer resources at a low level. System programs include operating systems, database managers, drivers, communications and messaging protocols, basic input/output system, compilers, loaders, linkers, and debuggers, etc.
  • Systems Programmer – Systems programmer may refer to two types of jobs in an oganization: 1) a person who writes system programs, or 2) a person who oversees the computer systems and is responsible for the installation and integration of new hardware and software.