Komputer adalah alat yang
dipakai untuk mengolah data menurut prosedur
yang telah dirumuskan. Kata computer semula dipergunakan untuk
menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika,
dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada
mesin itu sendiri. Asal mulanya, pengolahan informasi hampir eksklusif
berhubungan dengan masalah aritmatika, tetapi komputer modern dipakai untuk
banyak tugas yang tidak berhubungan dengan matematika.
Dalam arti seperti itu terdapat alat seperti slide
rule, jenis kalkulator mekanik
mulai dari abakus
dan seterusnya, sampai semua komputer elektronik
yang kontemporer. Istilah lebih baik yang cocok untuk arti luas seperti
"komputer" adalah "yang mengolah informasi"
atau "sistem
pengolah informasi." Selama
bertahun-tahun sudah ada beberapa arti yang berbeda dalam kata
"komputer", dan beberapa kata yang berbeda tersebut sekarang disebut
disebut sebagai komputer.
Kata computer secara umum pernah dipergunakan
untuk mendefiniskan orang yang melakukan perhitungan aritmatika, dengan atau
tanpa mesin pembantu. Menurut Barnhart Concise Dictionary of Etymology,
kata tersebut digunakan dalam bahasa Inggris pada tahun 1646 sebagai kata untuk
"orang yang menghitung" kemudian menjelang 1897 juga digunakan
sebagai "alat hitung mekanis". Selama Perang Dunia II kata tersebut
menunjuk kepada para pekerja wanita Amerika
Serikat dan Inggris
yang pekerjaannya menghitung jalan artileri perang dengan mesin hitung.
Charles Babbage mendesain salah satu
mesin hitung pertama yang disebut mesin analitikal. Selain itu, berbagai alat
mesin sederhana seperti slide rule juga sudah dapat dikatakan sebagai
komputer .
Jenis
Sekalipun demikian, definisi di atas mencakup banyak
alat khusus yang hanya bisa memperhitungkan satu atau beberapa fungsi. Ketika
mempertimbangkan komputer modern, sifat mereka yang paling penting yang
membedakan mereka dari alat menghitung yang lebih awal ialah bahwa, dengan pemrograman
yang benar, semua komputer dapat mengemulasi
sifat apa pun (meskipun barangkali dibatasi oleh kapasitas penyimpanan dan
kecepatan yang berbeda), dan, memang dipercaya bahwa mesin sekarang bisa meniru
alat perkomputeran yang akan kita ciptakan pada masa depan (meskipun niscaya
lebih lambat). Dalam suatu pengertian, batas kemampuan ini adalah tes yang
berguna karena mengenali komputer "maksud umum" dari alat maksud
istimewa yang lebih awal. Definisi dari "maksud umum" bisa
diformulasikan ke dalam syarat bahwa suatu mesin harus dapat meniru Mesin
Turing universal. Mesin yang mendapat definisi ini dikenal
sebagai Turing-lengkap,
dan yang pertama mereka muncul pada tahun 1940 di tengah kesibukan perkembangan
di seluruh dunia. Lihat artikel sejarah perkomputeran
untuk lebih banyak detail periode ini.
Komputer benam
Pada sekitar 20 tahun yang lalu , banyak alat rumah
tangga, khususnya termasuk panel dari permainan
video tetapi juga mencakup telepon
genggam, perekam kaset video, PDA dan banyak
sekali dalam rumahtangga, industri, otomotif, dan alat elektronik lain, semua
berisi sirkuit elektronik yang seperti komputer yang memenuhi syarat
Turing-lengkap di atas (dengan catatan bahwa program dari alat ini seringkali
dibuat secara langsung di dalam chip ROM
yang akan perlu diganti untuk mengubah program mesin). Komputer maksud khusus
lainnya secara umum dikenal sebagai "mikrokontroler"
atau "komputer benam" (embedded
computer). Oleh karena itu, banyak yang membatasi definisi komputer kepada
alat yang maksud pokoknya adalah pengolahan informasi, daripada menjadi bagian
dari sistem yang lebih besar seperti telepon, oven mikrowave,
atau pesawat terbang, dan bisa diubah
untuk berbagai maksud oleh pemakai tanpa modifikasi fisik. Komputer
kerangka utama, minikomputer,
dan komputer pribadi (PC)
adalah macam utama komputer yang mendapat definisi ini.
Komputer pribadi
Artikel
utama untuk bagian ini adalah: Komputer
pribadi
Komputer pribadi atau personal computer (PC)
adalah istilah untuk komputer yang dikenal dan diketahui orang pada umumnya
sehingga banyak orang yang tak akrab dengan bentuk komputer lainnya. Hanya
orang-orang tertentu saja yang memakai istilah ini secara eksklusif untuk
menunjukkan istilah yang lebih spesifik dan tepat.
Bagaimana komputer
bekerja
Saat teknologi yang dipakai pada komputer digital
sudah berganti secara dramatis sejak komputer pertama pada tahun 1940-an
(lihat Sejarah
perangkat keras menghitung untuk lebih banyak detail),
komputer kebanyakan masih menggunakan arsitektur Von
Neumann, yang diusulkan pada awal 1940-an oleh John
von Neumann.
Arsitektur
Von Neumann menggambarkan komputer dengan empat bagian utama: Unit Aritmatika dan
Logis (ALU), unit
kontrol, memori, dan alat masukan
dan hasil (secara kolektif dinamakan I/O). Bagian ini dihubungkan oleh berkas
kawat, "bus"
Memori
modul memori RAM
Di sistem ini, memori
adalah urutan byte
yang dinomori (seperti "sel" atau "lubang burung dara"),
masing-masing berisi sepotong kecil informasi. Informasi ini mungkin menjadi
perintah untuk mengatakan pada komputer apa yang harus dilakukan. Sel mungkin
berisi data yang
diperlukan komputer untuk melakukan suatu perintah. Setiap slot mungkin berisi
salah satu, dan apa yang sekarang menjadi data mungkin saja kemudian menjadi
perintah.
Memori menyimpan berbagai bentuk informasi sebagai
angka biner. Informasi yang belum berbentuk biner akan dipecahkan (encoded)
dengan sejumlah instruksi yang mengubahnya menjadi sebuah angka atau urutan
angka-angka. Sebagai contoh: Huruf F disimpan sebagai angka desimal 70 (atau
angka biner) menggunakan salah satu metode pemecahan. Instruksi yang lebih
kompleks bisa digunakan untuk menyimpan gambar, suara, video, dan berbagai
macam informasi. Informasi yang bisa disimpan dalam satu sell dinamakan sebuah
byte.
Secara umum, memori bisa ditulis kembali lebih jutaan
kali - memori dapat diumpamakan sebagai papan tulis dan kapur yang dapat
ditulis dan dihapus kembali, daripada buku tulis dengan pena yang tidak dapat
dihapus.
Ukuran masing-masing sel, dan jumlah sel, berubah
secara hebat dari komputer ke komputer, dan teknologi dalam pembuatan memori
sudah berubah secara hebat - dari relay elektromekanik, ke tabung yang diisi
dengan air raksa (dan kemudian pegas) di mana pulsa akustik terbentuk, sampai
matriks magnet permanen, ke setiap transistor, ke sirkuit terpadu dengan jutaan
transistor di
atas satu chip silikon.
Pemrosesan
Unit Pengolah Pusat atau CPU
(Central processing Unit) berperan untuk memproses perintah yang diberikan oleh
pengguna komputer, mengelolanya bersama data-data yang ada di komputer. Unit
atau peranti pemprosesan juga akan berkomunikasi dengan peranti input , output
dan storage untuk melaksanakan instruksi yang saling terkait.
Contoh sebuah CPU dalam kemasan Ball
Grid Array (BGA) ditampilkan terbalik dengan menunjukkan kaki-kakinya.
Dalam arsitektur von Neumann yang asli, ia menjelaskan
sebuah Unit Aritmatika dan Logika, dan sebuah Unit Kontrol. Dalam
komputer-komputer modern, kedua unit ini terletak dalam satu sirkuit terpadu
(IC - Integrated Circuit), yang biasanya disebut CPU (Central Processing Unit).
Unit
Aritmatika dan Logika, atau Arithmetic Logic Unit
(ALU), adalah alat yang melakukan pelaksanaan dasar seperti pelaksanaan
aritmatika (tambahan, pengurangan, dan semacamnya), pelaksanaan logis (AND,
OR, NOT), dan pelaksanaan perbandingan (misalnya,
membandingkan isi sebanyak dua slot untuk kesetaraan). Pada unit inilah
dilakukan "kerja" yang sebenarnya.
Unit kontrol menyimpan perintah
saat ini yang dilakukan oleh komputer, memerintahkan ALU untuk melaksanaan dan
mendapatkan kembali informasi (dari memori) yang diperlukan untuk melaksanakan
perintah itu, dan memindahkan kembali hasil ke lokasi memori yang sesuai. Unit
ini berfungsi mengontrol pembacaan instruksi program komputer.
Masukan dan hasil
I/O membolehkan komputer
mendapatkan informasi dari dunia luar, dan menaruh hasil kerjanya di sana,
dapat berbentuk fisik (hardcopy) atau non fisik (softcopy). Ada berbagai macam
alat I/O, dari yang akrab keyboard, monitor
dan disk
drive, ke yang lebih tidak biasa seperti webcam
(kamera web, pencetak, pemindai, dan sebagainya.
Yang dimiliki oleh semua alat masukan biasa ialah
bahwa mereka meng-encode
(mengubah) informasi dari suatu macam ke dalam data
yang bisa diolah lebih lanjut oleh sistem komputer digital. Alat output, men-decode
data ke dalam informasi yang bisa dimengerti oleh pemakai komputer. Dalam
pengertian ini, sistem komputer digital adalah contoh sistem pengolah data.
Instruksi
Perintah yang dibicarakan di atas bukan perintah
seperti bahasa manusiawi. Komputer hanya mempunyai perintah sederhana dalam
jumlah terbatas yang dirumuskan dengan baik. Perintah biasa yang dipahami
kebanyakan komputer ialah "menyalin isi sel 123, dan tempat tiruan di sel
456", "menambahkan isi sel 666 ke sel 042, dan tempat akibat di sel
013", dan "jika isi sel 999 adalah 0, perintah berikutnya anda di sel
345".
Instruksi diwakili dalam komputer sebagai nomor - kode
untuk "menyalin" mungkin menjadi 001, misalnya. Suatu himpunan
perintah khusus yang didukung oleh komputer tertentu diketahui sebagai bahasa
mesin komputer. Dalam praktiknya, orang biasanya tidak
menulis perintah untuk komputer secara langsung di bahasa mesin tetapi memakai bahasa pemrograman "tingkat
tinggi" yang kemudian diterjemahkan ke dalam bahasa mesin secara otomatis
oleh program komputer khusus (interpreter dan kompiler). Beberapa bahasa
pemrograman berhubungan erat dengan bahasa mesin, seperti assembler
(bahasa tingkat rendah); di sisi lain, bahasa seperti Prolog
didasarkan pada prinsip abstrak yang jauh dari detail pelaksanaan sebenarnya
oleh mesin (bahasa tingkat tinggi)
Arsitektur
Komputer kontemporer menaruh ALU
dan unit kontrol ke dalam satu sirkuit
terpadu yang dikenal sebagai Unit Pemroses Sentral
atau CPU. Biasanya, memori komputer ditempatkan di atas beberapa sirkuit
terpadu yang kecil dekat UPS. Alat yang menempati sebagian besar ruangan dalam
komputer adalah ancilliary sistem (misalnya, untuk menyediakan tenaga listrik)
atau alat I/O.
Beberapa komputer yang lebih besar berbeda dari model
di atas di satu hal utama - mereka mempunyai beberapa UPS dan unit kontrol yang
bekerja secara bersamaan. Terlebih lagi, beberapa komputer, yang dipakai
sebagian besar untuk maksud penelitian dan perkomputeran ilmiah, sudah berbeda
secara signifikan dari model di atas, tetapi mereka sudah menemukan sedikit
penggunaan komersial.
Fungsi dari komputer secara prinsip sebenarnya cukup
sederhana. Komputer mencapai perintah dan data dari memorinya. Perintah dilakukan,
hasil disimpan, dan perintah berikutnya dicapai. Prosedur ini berulang sampai
komputer dimatikan.
Program
Program komputer adalah daftar besar
perintah untuk dilakukan oleh komputer, barangkali dengan data di dalam tabel.
Banyak program komputer berisi jutaan perintah, dan banyak dari perintah itu
dilakukan berulang kali. Sebuah komputer pribadi modern yang umum (pada tahun 2003)
bisa melakukan sekitar 2-3 miliar perintah dalam
sedetik. Komputer tidak mendapat kemampuan luar biasa mereka lewat kemampuan
untuk melakukan perintah kompleks. Tetapi, mereka melakukan jutaan perintah
sederhana yang diatur oleh orang pandai, pemrogram. "Programmer Baik
memperkembangkan set-set perintah untuk melakukan tugas biasa (misalnya,
menggambar titik di layar) dan lalu membuat set-set perintah itu tersedia kepada
programmer lain." Dewasa ini, kebanyakan komputer kelihatannya melakukan
beberapa program sekaligus. Ini biasanya diserahkan ke sebagai tugas
ganda. Pada kenyataannya, UPS melakukan perintah dari satu
program, kemudian setelah beberapa saat, UPS beralih ke program kedua dan
melakukan beberapa perintahnya. Jarak waktu yang kecil ini sering diserahkan ke
sebagai irisan waktu (time-slice). Ini menimbulkan khayal program lipat
ganda yang dilakukan secara bersamaan dengan memberikan waktu UPS di antara
program. Ini mirip bagaimana film adalah rangkaian kilat saja masih
membingkaikan. Sistem operasi adalah program yang
biasanya menguasai kali ini membagikan
Sistem operasi
Sistem operasi ialah semacam
gabungan dari potongan kode yang berguna. Ketika semacam kode komputer dapat
dipakai secara bersama oleh beraneka-ragam program komputer, setelah
bertahun-tahun, pemrogram (programmer) akhirnya memindahkannya ke dalam sistem
operasi.
Sistem operasi, menentukan program mana yang akan
dijalankan, kapan, dan alat yang mana (seperti memori atau I/O) yang mereka
gunakan. Sistem operasi juga memberikan layanan (service) kepada program lain,
seperti kode yang membolehkan pemrogram untuk menulis program untuk suatu mesin
tanpa perlu mengetahui detail dari semua alat elektronik yang terhubung pada
komputer.
Penggunaan komputer
Anak-anak sedang belajar penggunaan komputer bersama
sang guru.
Komputer digital pertama, memiliki ukuran yang besar
dan membutuhkan biaya besar untuk pembuatannya. Komputer pada masa itu umumnya
digunakan untuk mengerjakan perhitungan ilmiah. ENIAC,
komputer awal AS semula didesain untuk memperhitungkan tabel ilmu balistik
untuk persenjataan (artileri), menghitung kerapatan penampang neutron untuk
melihat jika bom hidrogen
akan bekerja dengan semestinya (perhitungan ini, yang dilakukan pada Desember
1945 sampai Januari 1946 dan melibatkan dala dalam lebih dari satu juta kartu punch,
memperlihatkan bentuk lalu di bawah pertimbangan akan gagal). CSIR Mk 1/CSIRAC,
komputer pertama Australia, mengevaluasi pola curah hujan untuk tempat
penampungan dari Snowy Mountains,
suatu proyek pembangkitan Hidroelektrik
besar. Selain itu juga dipakai dalam kriptanalisis,
misalnya komputer elektronik digital
yang pertama, Colossus, dibuat selama Perang
Dunia II. Akan tetapi, visionaris awal juga menyangka bahwa
pemrograman itu akan membolehkan main catur, memindahkan gambar dan penggunaan
lain.
Orang-orang di pemerintah dan perusahaan besar juga
memakai komputer untuk mengotomasikan banyak koleksi data
dan mengerjakan tugas yang sebelumnya dikerjakan oleh manusia - misalnya,
memelihara dan memperbarui rekening dan inventaris. Dalam bidang pendidikan,
ilmuwan di berbagai bidang mulai memakai komputer untuk analisis mereka
sendiri. Penurunan harga komputer membuat mereka dapat dipakai oleh organisasi
yang lebih kecil. Bisnis, organisasi, dan pemerintah sering menggunakan amat banyak
komputer kecil untuk menyelesaikan tugas bahwa dulunya dilakukan oleh komputer
kerangka utama yang mahal dan besar. Kumpulan komputer yang lebih kecil di satu
lokasi diserahkan ke sebagai perkebunan server.
Dengan penemuan mikroprosesor di
1970-an,
menjadi mungkin menghasilkan komputer yang sangat murah. PC menjadi populer untuk banyak
tugas, termasuk menyimpan buku, menulis dan mencetak dokumen. Perhitungan
meramalkan dan lain berulang matematika dengan lembatang
sebar, berhubungan dengan e-pos
dan, Internet.
Namun, ketersediaan luas komputer dan mudah customization sudah melihat mereka
dipakai untuk banyak maksud lain.
Sekaligus, komputer kecil, biasanya dengan mengatur
memrogram, mulai menemukan cara mereka ke dalam alat lain seperti peralatan
rumah, mobil, pesawat terbang, dan perlengkapan industri. Yang ini prosesor benam
menguasai kelakuan alat seperti itu yang lebih mudah, membolehkan kelakuan
kontrol yang lebih kompleks (untuk kejadian, perkembangan anti-kunci rem di
mobil). Saat abad kedua puluh satu dimulai, kebanyakan alat listrik, kebanyakan
bentuk angkutan bertenaga, dan kebanyakan batas produksi pabrik dikuasai di
samping komputer. Kebanyakan insinyur meramalkan bahwa ini cenderung kepada
akan terus.
Bagian-bagian
komputer
Komputer terdiri atas 2 bagian besar yaitu perangkat
lunak (software)
dan perangkat keras (hardware).
Perangkat keras
- Pemroses atau CPU sebagai unit yang mengolah data
- Memori RAM, tempat menyimpan data sementara
- Hard drive, media penyimpanan semi permanen
- Perangkat masukan, media yang digunakan untuk memasukkan data untuk diproses oleh UPS, seperti mouse, keyboard, dan tablet
- Perangkat keluaran, media yang digunakan untuk menampilkan hasil keluaran pemrosesan CPU, seperti monitor,speaker,plotter,proyektor dan printer
Perangkat lunak
- Sistem operasi
Program dasar pada komputer yang menghubungkan pengguna dengan hardware komputer. Sistem operasi yang biasa digunakan adalah Linux, Windows, dan Mac OS. Tugas sistem operasi termasuk (namun tidak hanya) mengatur eksekusi program di atasnya, koordinasi input, output, pemrosesan, memori, serta instalasi software. - Program komputer
Merupakan aplikasi tambahan yang dipasang sesuai dengan sistem operasinya
Slot pada komputer
- ISA/PCI, slot untuk masukan kartu tambahan non-grafis
- AGP/PCIe, slot untuk masukan kartu tambahan grafis
- IDE/SCSI/SATA, slot untuk hard drive/ODD
- USB, slot untuk masukan media plug-and-play (colok dan mainkan, artinya perangkat yang dapat dihubungkan ke komputer dan langsung dapat digunakan)
Jenis komputer
- Komputer analog
- Komputer pulsa
- Mikrokomputer
- Komputer rumah (home computer)
- Komputer pribadi (PC)
- Server
- Minikomputer
- Mainframe computer
- Superkomputer
Computer software, or just software,
is a collection of computer
programs and related data
that provides the instructions for telling a computer
what to do and how to do it. Software refers to one or more computer programs
and data held in the storage of the computer. In other words, software is a set
of programs, procedures, algorithms and its documentation
concerned with the operation of a data processing system. Program software
performs the function of the program it
implements, either by directly providing instructions to
the computer hardware or by serving as input to another piece of software. The term
was coined to contrast to the old term hardware
(meaning physical devices). In contrast to hardware, software "cannot be
touched".[1]
Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the
term includes data that has not traditionally been associated with computers,
such as film, tapes, and records.[2]
Computer software is so
called to distinguish it from computer
hardware, which encompasses the physical interconnections and
devices required to store and execute (or run) the software. At the lowest
level, executable code consists of machine language instructions specific to an
individual processor. A machine language consists of groups of binary values
signifying processor instructions that change the state of the computer from
its preceding state. Programs are an ordered sequence of instructions for
changing the state of the computer in a particular sequence. It is usually
written in high-level
programming languages that are easier and more efficient for humans to use
(closer to natural language) than machine
language. High-level languages are compiled or interpreted into machine
language object code. Software may also be written in an assembly
language, essentially, a mnemonic representation of a machine
language using a natural language alphabet. Assembly language must be assembled
into object code via an assembler.
History
This section may need to be rewritten entirely to
comply with Wikipedia's quality standards.
You
can help. The discussion
page may contain suggestions. (January 2012)
|
The first theory about software was proposed by Alan
Turing in his 1935 essay Computable numbers with an
application to the Entscheidungsproblem (decision problem).[3]
Colloquially, the term is often used to mean application software. In computer science
and software engineering, software is all information
processed by computer system, programs and data.
The academic fields studying software are computer
science and software engineering.
As more and more programs enter the realm of firmware,
and the hardware itself becomes smaller, cheaper and faster as predicted by Moore's
law, elements of computing first considered to be
software, join the ranks of hardware. Most hardware companies today have more
software programmers on the payroll than hardware designers[citation needed],
since software tools have automated many tasks of Printed circuit board
engineers. Just like the Auto
industry, the Software
industry has grown from a few visionaries operating out of
their garage with prototypes. Steve
Jobs and Bill
Gates were the Henry
Ford and Louis
Chevrolet of their times[citation needed],
who capitalized on ideas already commonly known before they started in the
business. In the case of Software development, this moment is
generally agreed to be the publication in the 1980s of the specifications for
the IBM Personal Computer
published by IBM
employee Philip Don Estridge. Today his move
would be seen as a type of crowd-sourcing.
Until that time, software was bundled
with the hardware by Original equipment
manufacturers (OEMs) such as Data
General, Digital
Equipment and IBM[citation needed].
When a customer bought a minicomputer,
at that time the smallest computer on the market, the computer did not come
with Pre-installed software,
but needed to be installed by engineers employed by the OEM. Computer hardware
companies not only bundled their software, they also placed demands on the
location of the hardware in a refrigerated space called a computer
room. Most companies had their software on the books for 0
dollars, unable to claim it as an asset (this is similar to financing of
popular music in those days). When Data General introduced the Data
General Nova, a company called Digidyne wanted to use its RDOS
operating system on its own hardware clone. Data General
refused to license their software
(which was hard to do, since it was on the books as a free asset), and claimed
their "bundling rights". The Supreme
Court set a precedent called Digidyne v. Data General in
1985. The Supreme Court let a 9th circuit decision stand, and Data General was
eventually forced into licensing the Operating System software because it was
ruled that restricting the license to only DG hardware was an illegal tying
arrangement.[4]
Unable to sustain the loss from lawyer's fees, Data General ended up being
taken over by EMC Corporation. The Supreme Court
decision made it possible to value software, and also purchase Software
patents.
There are many successful companies today that sell
only software products, though there are still many common software licensing
problems due to the complexity of designs and poor documentation, leading to patent
trolls.
With open software specifications and the possibility
of software licensing, new opportunities arose for software tools that then
became the de facto standard, such as DOS for
operating systems, but also various proprietary word processing and spreadsheet
programs. In a similar growth pattern, proprietary development methods became
standard Software development
methodology.
Types of software
A layer structure showing where the operating
system software and application software are situated while
running on a typical desktop
computer
Software includes all the various forms and roles that
digitally stored data may have and play in a computer (or similar
system), regardless of whether the data is used as code for a CPU, or
other interpreter, or whether it
represents other kinds of information.
Software thus encompasses a wide array of products that may be developed using
different techniques such as ordinary programming languages, scripting languages, microcode,
or an FPGA
configuration.
The types of software include web
pages developed in languages and frameworks like HTML, PHP, Perl, JSP, ASP.NET, XML,
and desktop applications like OpenOffice.org, Microsoft
Word developed in languages like C, C++, Objective-C, Java, C#,
or Smalltalk. Application software usually runs on an
underlying software operating
systems such as Linux or
Microsoft Windows. Software (or firmware)
is also used in video games and for the
configurable parts of the logic systems of automobiles, televisions,
and other consumer electronics.
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.
System software
Main article: System
software
System software is computer
software designed to operate the computer
hardware, to provide basic functionality, and to provide a
platform for running application software.[5][6]
System software includes device
drivers, operating
systems, servers, utilities,
and window systems.
System software is responsible for managing a variety
of independent hardware components, so that they can work together
harmoniously. Its purpose is to unburden the application software 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.
Programming software
Main article: Programming
tool
Programming software include tools in the form of
programs or applications that software developers use to create, debug,
maintain, or otherwise support other programs and applications. The term
usually refers to relatively simple programs such as compilers, debuggers, interpreters, linkers, and text
editors, that can be combined together to accomplish a task,
much as one might use multiple hand tools to fix a physical object. Programming
tools are intended to assist a programmer in writing computer
programs, and they may be combined in an integrated
development environment (IDE) to more easily manage all
of these functions.
Application software
Main article: Application software
Application software is developed to
perform in any task that benefits from computation. It is a set of programs
that allows the computer to perform a specific data processing job for the
user. It is a broad category, and encompasses software of many kinds,
including the internet browser being used to
display this page.
Software topics
Architecture
See also: Software architecture
Users often see things differently than programmers.
People who use modern general purpose computers (as opposed to embedded
systems, analog
computers and supercomputers)
usually see three layers of software performing a variety of tasks: platform,
application, and user software.
- Platform software: Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer. On a PC you will usually have the ability to change the platform software.
- Application software: Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are usually independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications.
- User-written software: End-user development tailors systems to meet users' specific needs. User software include spreadsheet templates and word processor templates. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. Depending on how competently the user-written software has been integrated into default application packages, many users may not be aware of the distinction between the original packages, and what has been added by co-workers.
Documentation
Main article: Software documentation
Most software has software documentation so
that the end
user can understand the program, what it does, and how to
use it. Without clear documentation, software can be hard to use—especially if
it is very specialized and relatively complex like Photoshop or
AutoCAD.
Developer documentation may also exist, either with
the code as comments and/or as separate files, detailing how the programs works
and can be modified.
Library
Main article: Software
library
An executable is almost always not sufficiently
complete for direct execution. Software
libraries include collections of functions
and functionality that may be embedded in other applications. Operating systems
include many standard Software libraries, and applications are often
distributed with their own libraries.
Standard
Main article: Software
standard
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.
Execution
Main article: Execution (computing)
Computer software has to be "loaded" into
the computer's storage (such as the hard
drive or memory).
Once the software has loaded, the computer is able to execute the
software. This involves passing instructions
from the application software, through the system
software, to the hardware which ultimately receives the instruction as machine
code. Each instruction causes the computer to carry out an
operation – moving data, carrying out a computation,
or altering the control flow of instructions.
Data movement is typically from one place in memory to
another. Sometimes it involves moving data between memory and registers which
enable high-speed data access in the CPU. Moving data, especially large amounts
of it, can be costly. So, this is sometimes avoided by using
"pointers" to data instead. Computations include simple operations
such as incrementing the value of a variable data element. More complex
computations may involve many operations and data elements together.
Quality and
reliability
Software quality is very important, especially for commercial and system software
like Microsoft Office, Microsoft
Windows and Linux.
If software is faulty (buggy), it can delete a person's work, crash the
computer and do other unexpected things. Faults and errors are called "bugs."
Many bugs are discovered and eliminated (debugged) through software
testing. However, software testing rarely – if
ever – eliminates every bug; some programmers say that "every program
has at least one more bug" (Lubarsky's Law). All major software companies,
such as Microsoft, Novell and Sun
Microsystems, have their own software testing departments with the
specific goal of just testing. Software can be tested through unit
testing, regression testing and other methods,
which are done manually, or most commonly, automatically, since the amount of
code to be tested can be quite large. For instance, NASA
has extremely rigorous software testing procedures for many operating systems
and communication functions. Many NASA based operations interact and identify
each other through command programs called software. This enables many people
who work at NASA to check and evaluate functional systems overall. Programs
containing command software enable hardware engineering and system operations
to function much easier together.
License
Main article: Software
license
The software's license gives the user the right to use
the software in the licensed environment. Some software comes with the license
when purchased off the shelf, or an OEM license when bundled with hardware.
Other software comes with a free software license,
granting the recipient the rights to modify and redistribute the software.
Software can also be in the form of freeware or
shareware.
Patents
Software can be patented in some but not all
countries; however, software
patents can be controversial in the software industry with
many people holding different views about it. The controversy over software
patents is about specific algorithms or
techniques that the software contains, which may not be duplicated by others
and considered intellectual property
and copyright infringement
depending on the severity.
Design and
implementation
Design and implementation of software varies depending
on the complexity of the software. For instance, design and creation of Microsoft
Word software will take much more time than designing and
developing Microsoft Notepad because of the
difference in functionalities in each one.
Software is usually designed and created
(coded/written/programmed) in integrated
development environments (IDE) like Eclipse, Emacs
and Microsoft Visual Studio
that can simplify the process and compile
the program. As noted in different section, software is usually created on top
of existing software and the application
programming interface (API) that the underlying software provides like GTK+,
JavaBeans or Swing. Libraries (APIs)
are categorized for different purposes. For instance, JavaBeans
library is used for designing enterprise applications, Windows
Forms library is used for designing graphical user
interface (GUI) applications like Microsoft
Word, and Windows Communication
Foundation is used for designing web
services. Underlying computer programming concepts
like quicksort, hashtable, array,
and binary tree can be useful to
creating software. When a program is designed, it relies on the API. For
instance, if a user is designing a Microsoft Windows desktop application,
he/she might use the .NET
Windows Forms library to design the desktop application and call its APIs like Form1.Close()
and Form1.Show()[7] to
close or open the application and write the additional operations him/herself
that it need to have. Without these APIs, the programmer needs to write these
APIs him/herself. Companies like Sun
Microsystems, Novell, and Microsoft
provide their own APIs so that many applications are written using their software
libraries that usually have numerous APIs in them.
Computer software has special economic characteristics
that make its design, creation, and distribution different from most other
economic goods.[specify][8][9]
A person who creates software is called a programmer, software
engineer, software developer, or "code
monkey", terms that all have a similar meaning.
Industry and
organizations
Main article: Software
industry
A great variety of software companies and programmers
in the world comprise a software industry. Software can be quite a profitable
industry: Bill Gates, the founder of Microsoft
was the richest person in the world in 2009 largely by selling the Microsoft
Windows and Microsoft
Office software products. The same goes for Larry
Ellison, largely through his Oracle
database software. Through time the software industry has
become increasingly specialized.
Non-profit software organizations include the Free Software Foundation, GNU
Project and Mozilla Foundation. Software standard
organizations like the W3C, IETF
develop software standards so that most software can interoperate through
standards such as XML, HTML, HTTP or
FTP.
Other well-known large software companies include Novell, SAP, Symantec, Adobe
Systems, and Corel,
while small companies often provide innovation
0 komentar:
Posting Komentar