Custom Search

Pages

Friday, November 19, 2010

Standard Of Software

Since software can be designed using many different programming languages and in many different operating systems and operating environments, software standard is needed so that different software can understand and exchange information between each other. For instance, an email sent from a Microsoft Outlook should be readable from Yahoo! Mail and vice versa.

Programming Tool

List of tools

Software tools come in many forms:
Binary compatibility analysis: icheck, ABI Compliance Checker
Bug Databases: Bugzilla, Trac, JIRA, LibreSource, SharpForge
Build Tools: Make, automake, Apache Ant, SCons, Rake, Flowtracer, cmake, qmake
Code coverage: C++test,GCT, Insure++, Jtest, CCover
Code Sharing Sites: Freshmeat, Krugle, Sourceforge. See also Code search engines.
Compilation and linking tools: GNU toolchain, gcc, Microsoft Visual Studio, CodeWarrior, Xcode, ICC
Debuggers: gdb, GNU Binutils, valgrind. Debugging tools also are used in the process of debugging code, and can also be used to create code that is more compliant to standards and portable than if they were not used.
Disassemblers: Generally reverse-engineering tools.
Documentation generators: Doxygen, help2man, POD, Javadoc, Pydoc/Epydoc, asciidoc
Formal methods: Mathematically-based techniques for specification, development and verification
GUI interface generators
Library interface generators: Swig
Integration Tools
Memory Use/Leaks/Corruptions Detection: dmalloc, Electric Fence, duma, Insure++. Memory leak detection: In the C programming language for instance, memory leaks are not as easily detected - software tools called memory debuggers are often used to find memory leaks enabling the programmer to find these problems much more efficiently than inspection alone.
Parser generators: Lex, Yacc
Performance analysis or profiling
Refactoring Browser
Revision control: Bazaar, Bitkeeper, Bonsai, ClearCase, CVS, Git, GNU arch, Mercurial, Monotone, Perforce, PVCS, RCS, SCM, SCCS, SourceSafe, SVN, LibreSource Synchronizer
Scripting languages: PHP, Awk, Perl, Python, REXX, Ruby, Shell, Tcl
Search: grep, find
Source-Code Clones/Duplications Finding
Source code formatting: indent
Source code generation tools
Static code analysis: C++test, Jtest, lint, Splint, PMD, Findbugs, .TEST, Cppcheck
Text editors: emacs, vi, vim
Unit Testing: C++test, API Sanity Autotest

Application software

Application software allows end users to accomplish one or more specific (not directly computer development related) tasks. Typical applications include:
industrial automation
business software
video games
quantum chemistry and solid state physics software
telecommunications (i.e., the Internet and everything that flows on it)
databases
educational software
medical software
molecular modeling software
image editing
spreadsheet
simulation software
Word processing
Decision making software

Programming software

Programming software usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way. The tools include:
compilers
debuggers
interpreters
linkers
text editors
An Integrated development environment (IDE) is a single application that attempts to manage all these functions.

System software

System software helps run the computer hardware and computer system. It includes a combination of the following:
device drivers
operating systems
servers
utilities
window systems
The purpose of systems software is to unburden the applications programmer from the often complex details of the particular computer being used, including such accessories as communications devices, printers, device readers, displays and keyboards, and also to partition the computer's resources such as memory and processor time in a safe and stable manner. Examples are - Microsoft Windows, Linux, and Mac OS X.

Types of software

Practical computer systems divide software systems into three major classes[citation needed]: system software, programming software and application software, although the distinction is arbitrary, and often blurred

The BIOS

As we mentioned earlier, the computer knows what to do by taking instructions from programs stored in RAM. The main instructions come from a program called the operating system, and those instructions direct traffic for other programs called applications.

When the computer is turned off, all the instructions copied into the RAM are gone. When the system is turned on again, it needs to go out to the disk, get the operating system and load it into RAM, but there are no instructions in the RAM to tell it how to do this. The solution to this problem is a set of instructions that stay in memory and don’t get lost when the computer is turned off.

This set of instructions is called the BIOS, for Basic Input Output System. Since the instructions don’t need to change, they can be stored in a different kind of chip than we use for RAM. It’s called ROM, for Read Only Memory. We say that the instructions in the BIOS are hard-wired, and instead of software they are called firmware.

The computer goes through a process called booting up when it is first turned on. This involves executing the BIOS instructions, loading the operating system from disk into RAM, and then turning control of the computer over to the operating system after everything checks out OK. The term refers to somebody pulling themselves up by their own bootstraps (without outside help, in other words). Any computer term that includes ‘boot’ will have something to do with this start-up process.