Minggu, 08 Februari 2015

Perangkat Lunak

Perangkat Lunak

 

 Perangkat lunak komputer, atau hanya perangkat lunak adalah setiap set instruksi dapat dibaca oleh mesin yang mengarahkan komputer prosesor 's untuk melakukan operasi tertentu. Perangkat lunak komputer berbeda dengan perangkat keras komputer , yang merupakan komponen fisik komputer. Hardware komputer dan software membutuhkan satu sama lain dan tidak dapat digunakan secara realistis tanpa yang lain. Menggunakan analogi musik, perangkat keras seperti alat musik dan perangkat lunak seperti catatan dimainkan pada instrumen itu.

Perangkat lunak komputer meliputi program komputer , perpustakaan dan dokumentasi yang terkait. Perangkat lunak Kata ini juga kadang-kadang digunakan dalam arti yang lebih sempit, yang berarti aplikasi perangkat lunak saja. Software disimpan dalam memori komputer dan tidak berwujud, yaitu tidak bisa disentuh. 
Pada tingkat terendah, kode executable terdiri dari instruksi bahasa mesin yang spesifik untuk individu prosesor - biasanya central processing unit (CPU). Sebuah bahasa mesin terdiri dari kelompok nilai biner menandakan instruksi prosesor yang mengubah keadaan komputer dari keadaan sebelumnya nya. Sebagai contoh, sebuah instruksi dapat mengubah nilai yang tersimpan di lokasi penyimpanan tertentu di dalam komputer - efek yang tidak langsung diamati kepada pengguna. Instruksi juga (tidak langsung) menyebabkan sesuatu untuk muncul di layar sistem komputer - perubahan keadaan yang harus dilihat oleh pengguna. Prosesor melaksanakan instruksi dalam urutan mereka disediakan, kecuali diperintahkan untuk "melompat" ke instruksi yang berbeda, atau terganggu.
Software yang ditulis dalam bahasa mesin yang dikenal sebagai "kode mesin". Namun, dalam praktiknya, software biasanya ditulis dalam bahasa pemrograman tingkat tinggi yang lebih mudah dan lebih efisien bagi manusia untuk menggunakan (lebih dekat dengan bahasa alami ) daripada bahasa mesin. Bahasa tingkat tinggi diterjemahkan, menggunakan kompilasi atau interpretasi atau kombinasi dari dua, ke dalam bahasa mesin. Software juga dapat ditulis dalam tingkat rendah bahasa assembly , pada dasarnya, samar-samar mnemonic representasi dari bahasa mesin menggunakan alfabet bahasa alami. Bahasa assembly diterjemahkan ke dalam kode mesin menggunakan assembler

  .

Sejarah Perangkat Lunak

 Garis ( algoritma ) untuk apa yang akan menjadi bagian pertama dari perangkat lunak ditulis oleh Ada Lovelace di abad ke-19, untuk mesin analitis yang direncanakan. Namun, baik mesin analitis maupun software untuk itu yang pernah dibuat.

Teori pertama tentang perangkat lunak - sebelum penciptaan komputer seperti yang kita tahu mereka hari ini - diusulkan oleh Alan Turing dalam jumlah Computable 1935 esainya dengan aplikasi untuk Entscheidungsproblem (masalah keputusan).
Hal ini akhirnya menyebabkan penciptaan bidang akademik kembar ilmu komputer dan rekayasa perangkat lunak, yang keduanya perangkat lunak studi dan penciptaan. Ilmu komputer lebih teoritis (esai Turing adalah contoh dari ilmu komputer), sedangkan rekayasa perangkat lunak difokuskan pada masalah yang lebih praktis.
Namun, sebelum tahun 1946, software seperti sekarang kita mengerti - program yang tersimpan dalam memori disimpan-program komputer digital - belum ada. Perangkat komputasi elektronik pertama malah rewired untuk "memprogram ulang" mereka.


Jenis perangkat lunak

 Berdasarkan tujuan, perangkat lunak komputer dapat dibagi menjadi:

  • Perangkat lunak aplikasi , yang menggunakan sistem komputer untuk melakukan fungsi khusus atau menyediakan fungsi hiburan di luar operasi dasar komputer itu sendiri. Ada berbagai jenis perangkat lunak aplikasi, karena berbagai tugas yang dapat dilakukan dengan komputer modern begitu besar - lihat daftar perangkat lunak .
  • Sistem perangkat lunak , yang dirancang untuk secara langsung mengoperasikan perangkat keras komputer ., untuk menyediakan fungsionalitas dasar yang dibutuhkan oleh pengguna dan perangkat lunak lainnya, dan untuk menyediakan platform untuk menjalankan aplikasi perangkat lunak [3] Sistem perangkat lunak meliputi:
    • Sistem operasi , yang merupakan koleksi penting dari perangkat lunak yang mengelola sumber daya dan menyediakan layanan umum untuk perangkat lunak lain yang berjalan "di atas" dari mereka. Program Pengawas , boot loader , kerang dan sistem jendela adalah bagian inti dari sistem operasi. Dalam prakteknya, sistem operasi dibundel dengan software tambahan (termasuk perangkat lunak aplikasi) sehingga pengguna dapat berpotensi melakukan beberapa pekerjaan dengan komputer yang hanya memiliki sistem operasi.
    • Driver perangkat , yang beroperasi atau mengontrol jenis tertentu dari perangkat yang terpasang pada komputer. Setiap perangkat membutuhkan setidaknya satu yang sesuai driver perangkat; karena komputer biasanya memiliki minimal setidaknya satu perangkat input dan setidaknya satu perangkat output, komputer biasanya membutuhkan lebih dari satu device driver.
    • Utilitas , yang merupakan program komputer yang dirancang untuk membantu pengguna dalam pemeliharaan dan perawatan komputer mereka.
Perangkat lunak berbahaya atau malware , yang merupakan program komputer yang dikembangkan untuk menyakiti dan mengganggu komputer. Dengan demikian, malware tidak diinginkan. Malware sangat erat kaitannya dengan kejahatan yang berkaitan dengan komputer, meskipun beberapa program berbahaya mungkin telah dirancang sebagai lelucon praktis .


Alam, atau domain eksekusi

  • Aplikasi desktop seperti browser web dan Microsoft Office , serta smartphone dan tablet aplikasi (disebut " apps "). (Ada dorongan di beberapa bagian dari industri perangkat lunak untuk menggabungkan aplikasi desktop dengan aplikasi mobile, sampai batas tertentu. Windows 8 , dan kemudian Ubuntu Sentuh , mencoba untuk memungkinkan gaya yang sama dari aplikasi user interface untuk digunakan pada desktop dan laptop, perangkat mobile, dan tablet hybrid.)
  • JavaScript skrip buah perangkat lunak tradisional tertanam dalam halaman web yang dijalankan secara langsung di dalam web browser ketika halaman web dimuat tanpa perlu plugin browser web. Software yang ditulis dalam bahasa pemrograman lain juga dapat dijalankan dalam browser web jika perangkat lunak baik diterjemahkan ke dalam JavaScript, atau jika sebuah plugin web browser yang mendukung bahasa yang diinstal; contoh yang paling umum dari yang terakhir ini ActionScript script, yang didukung oleh Adobe Flash Plugin.
  • Perangkat lunak server , termasuk:
    • Aplikasi web , yang biasanya dijalankan di web server dan output yang dihasilkan secara dinamis halaman web ke web browser, misalnya menggunakan PHP , Java atau ASP.NET , atau bahkan JavaScript yang berjalan di server . Di zaman modern ini biasanya mencakup beberapa JavaScript untuk dijalankan di web browser juga, dalam hal ini mereka biasanya berjalan sebagian di server, sebagian di browser web.
  • Plugin dan ekstensi perangkat lunak yang meluas atau memodifikasi fungsi software lain, dan memerlukan perangkat lunak yang digunakan untuk fungsi;
  • Embedded software berada sebagai firmware dalam embedded system , perangkat yang didedikasikan untuk penggunaan tunggal atau beberapa kegunaan seperti mobil dan televisi (meskipun beberapa perangkat embedded seperti chipset nirkabel dapat sendiri menjadi bagian dari, non-embedded system komputer biasa seperti PC atau smartphone ). [4] Dalam konteks sistem embedded kadang-kadang ada perbedaan yang jelas antara perangkat lunak sistem dan perangkat lunak aplikasi. Namun, beberapa embedded system menjalankan embedded system operasi , dan sistem ini melakukan mempertahankan perbedaan antara perangkat lunak sistem dan perangkat lunak aplikasi (meskipun biasanya hanya akan ada satu, tetap, aplikasi yang selalu berlari).
  • Microcode adalah, jenis yang relatif jelas khusus dari perangkat lunak tertanam yang memberitahu prosesor itu sendiri bagaimana untuk mengeksekusi kode mesin, sehingga sebenarnya tingkat yang lebih rendah daripada kode mesin. [5] Hal ini biasanya eksklusif untuk produsen prosesor, dan setiap microcode pemasyarakatan diperlukan pembaruan perangkat lunak yang disediakan oleh mereka untuk pengguna (yang jauh lebih murah daripada pengiriman prosesor penggantian hardware). Jadi programmer biasa tidak akan pernah berharap untuk harus berurusan dengan itu.

Tool pemrograman

Alat pemrograman juga software dalam bentuk program atau aplikasi yang pengembang perangkat lunak (juga dikenal sebagai programmer, coders, hacker atau insinyur perangkat lunak) digunakan untuk membuat, men-debug , mempertahankan (yaitu meningkatkan atau memperbaiki), atau mendukung perangkat lunak. Software ditulis dalam satu atau lebih bahasa pemrograman; ada banyak bahasa pemrograman yang ada, dan masing-masing memiliki setidaknya satu implementasi, yang masing-masing terdiri dari set sendiri alat-alat pemrograman. Alat-alat ini mungkin relatif program mandiri seperti compiler , debugger , juru , linker , dan editor teks , yang dapat dikombinasikan bersama-sama untuk menyelesaikan tugas; atau mereka dapat membentuk lingkungan pengembangan terpadu (IDE), yang menggabungkan banyak atau semua fungsi alat mandiri tersebut. IDE dapat melakukannya dengan baik menerapkan alat individu yang relevan atau dengan re-melaksanakan fungsi mereka dengan cara yang baru. IDE dapat membuat lebih mudah untuk melakukan tugas-tugas tertentu, seperti mencari di file dalam suatu proyek tertentu. Banyak implementasi bahasa pemrograman menyediakan pilihan untuk menggunakan kedua alat individu atau IDE.

Topik Software

Arsitektur

Pengguna sering melihat hal-hal yang berbeda dari pemrogram. Orang-orang yang menggunakan komputer yang modern tujuan umum (sebagai lawan embedded system , komputer analog dan superkomputer ) biasanya melihat tiga lapisan perangkat lunak melakukan berbagai tugas: platform, aplikasi, dan pengguna perangkat lunak.
  • Platform perangkat lunak: Landasan termasuk firmware , driver perangkat , sebuah sistem operasi , dan biasanya antarmuka pengguna grafis yang, secara total, memungkinkan pengguna untuk berinteraksi dengan komputer dan yang periferal (peralatan yang terkait). Platform perangkat lunak sering datang dibundel dengan komputer. Pada PC yang biasanya akan memiliki kemampuan untuk mengubah platform perangkat lunak.
  • Aplikasi software: Aplikasi software atau Aplikasi adalah apa yang kebanyakan orang pikirkan ketika mereka berpikir tentang perangkat lunak. Contoh umum termasuk suite kantor dan video game. Aplikasi perangkat lunak sering dibeli secara terpisah dari perangkat keras komputer. Kadang-kadang aplikasi yang dibundel dengan komputer, tetapi itu tidak mengubah fakta bahwa mereka menjalankan aplikasi independen. Aplikasi biasanya program independen dari sistem operasi, meskipun mereka sering dirancang untuk platform tertentu. Sebagian besar pengguna memikirkan kompiler, database, dan lain "perangkat lunak sistem" sebagai aplikasi.
  • Pengguna perangkat lunak yang ditulis: pengembangan pengguna akhir penjahit sistem untuk memenuhi kebutuhan spesifik pengguna. Pengguna perangkat lunak termasuk spreadsheet template dan pengolah kata template. Bahkan filter email adalah jenis perangkat lunak pengguna. Pengguna membuat software ini sendiri dan sering mengabaikan betapa pentingnya. Tergantung pada seberapa kompeten pengguna perangkat lunak yang ditulis telah diintegrasikan ke dalam paket aplikasi default, banyak pengguna mungkin tidak menyadari perbedaan antara paket yang asli, dan apa yang telah ditambahkan oleh rekan kerja.

Eksekusi

Perangkat lunak komputer harus "dimuat" ke dalam penyimpanan komputer (seperti hard drive atau memori ). Setelah perangkat lunak telah dimuat, komputer ini mampu menjalankan perangkat lunak. Ini melibatkan melewati instruksi dari perangkat lunak aplikasi , melalui perangkat lunak sistem, untuk perangkat keras yang akhirnya menerima instruksi sebagai kode mesin . Setiap instruksi menyebabkan komputer untuk melakukan operasi - memindahkan data yang , melaksanakan perhitungan , atau mengubah aliran kontrol instruksi.
Pergerakan data biasanya dari satu tempat dalam memori yang lain. Kadang-kadang melibatkan data yang bergerak antara memori dan register yang memungkinkan akses data kecepatan tinggi dalam CPU. Memindahkan data, terutama dalam jumlah besar itu, dapat mahal. Jadi, ini kadang-kadang dihindari dengan menggunakan "pointer" untuk data, bukan. Perhitungan termasuk operasi sederhana seperti incrementing nilai elemen data variabel. Lebih perhitungan yang rumit dapat melibatkan banyak operasi dan elemen data bersama-sama.

Kualitas dan kehandalan

Kualitas Software ini sangat penting, terutama untuk komersial software dan sistem seperti Microsoft Office , Microsoft Windows dan Linux . Jika perangkat lunak rusak (kereta), dapat menghapus pekerjaan seseorang, crash komputer dan melakukan hal-hal tak terduga lainnya. Kesalahan dan kesalahan yang disebut " bug . " Software ini sering juga menjadi korban untuk apa yang dikenal sebagai penuaan software , penurunan kinerja progresif yang dihasilkan dari kombinasi bug tak terlihat.
Banyak bug yang ditemukan dan dihilangkan (debugged) melalui pengujian perangkat lunak . Namun, pengujian perangkat lunak jarang - jika pernah - menghilangkan setiap bug; beberapa programmer mengatakan bahwa "setiap program memiliki setidaknya satu lagi bug" (Hukum Lubarsky itu).Dalam terjun metode pengembangan perangkat lunak, tim pengujian yang terpisah biasanya digunakan, tetapi dalam pendekatan baru, secara kolektif disebut pengembangan perangkat lunak tangkas , pengembang sering melakukan semua pengujian mereka sendiri, dan menunjukkan perangkat lunak untuk pengguna / klien secara teratur untuk mendapatkan umpan balik. Software dapat diuji melalui unit testing , pengujian regresi dan metode lainnya, yang dilakukan secara manual, atau paling sering, secara otomatis, karena jumlah kode yang akan diuji dapat cukup besar. Misalnya, NASA memiliki prosedur pengujian perangkat lunak yang sangat ketat untuk berbagai sistem operasi dan fungsi komunikasi. Banyak operasi berbasis NASA berinteraksi dan mengidentifikasi satu sama lain melalui program perintah. Hal ini memungkinkan banyak orang yang bekerja di NASA untuk memeriksa dan mengevaluasi sistem fungsional secara keseluruhan. Program yang berisi perangkat lunak perintah memungkinkan rekayasa hardware dan sistem operasi berfungsi lebih mudah bersama-sama.

Lisensi

Lisensi perangkat lunak memberikan pengguna hak untuk menggunakan perangkat lunak dalam lingkungan berlisensi, dan dalam kasus lisensi perangkat lunak bebas , juga memberikan hak-hak lain seperti hak untuk membuat salinan.
Software proprietary dapat dibagi menjadi dua jenis:
  • freeware , yang meliputi kategori "percobaan gratis" perangkat lunak atau " freemium "software (di masa lalu, istilah shareware sering digunakan untuk percobaan gratis / software freemium). Seperti namanya, freeware dapat digunakan secara gratis, meskipun dalam kasus percobaan gratis atau software freemium, ini kadang-kadang hanya berlaku untuk jangka waktu terbatas atau dengan fungsi terbatas.
  • perangkat lunak yang tersedia untuk biaya, sering tidak tepat disebut " perangkat lunak komersial ", yang hanya dapat secara legal digunakan pada pembelian lisensi.
Perangkat lunak open source , di sisi lain, datang dengan lisensi perangkat lunak bebas , pemberian penerima hak untuk memodifikasi dan mendistribusikan perangkat lunak.

Paten

Paten perangkat lunak, seperti jenis paten, yang secara teoritis seharusnya memberikan seorang penemu eksklusif, lisensi waktu terbatas untuk ide rinci (misalnya algoritma) tentang bagaimana menerapkan sebuah software, atau komponen software. Ide untuk hal-hal yang berguna bahwa perangkat lunak bisa dilakukan, dan kebutuhan pengguna, tidak seharusnya dipatenkan, dan implementasi konkret (yaitu paket perangkat lunak yang sebenarnya melaksanakan paten) tidak seharusnya dipatenkan baik - yang terakhir sudah dilindungi oleh hak cipta, umumnya secara otomatis. Jadi paten perangkat lunak yang seharusnya untuk menutupi area tengah, antara kebutuhan dan implementasi konkret. Di beberapa negara, persyaratan untuk penemuan diklaim memiliki efek pada dunia fisik juga dapat menjadi bagian dari persyaratan untuk paten perangkat lunak yang akan diselenggarakan valid - meskipun software karena semua berguna memiliki efek pada dunia fisik, persyaratan ini mungkin terbuka untuk diperdebatkan.
Paten perangkat lunak yang kontroversial di industri perangkat lunak dengan banyak orang memiliki pandangan yang berbeda tentang mereka. Salah satu sumber kontroversi adalah bahwa perpecahan tersebut antara ide awal dan paten tampaknya tidak akan dihormati dalam praktek oleh pengacara paten - misalnya paten untuk Aspek-Oriented Programming (AOP), yang konon mengklaim hak atas alat pemrograman mengimplementasikan ide AOP, bagaimanapun dilaksanakan. Sumber lain kontroversi adalah efek pada inovasi, dengan banyak ahli dibedakan dan perusahaan perangkat lunak yang berdebat adalah suatu bidang yang bergerak cepat yang paten perangkat lunak hanya membuat biaya litigasi tambahan luas dan risiko, dan benar-benar menghambat inovasi. Dalam kasus perdebatan tentang paten perangkat lunak di luar AS, argumen telah dibuat bahwa perusahaan Amerika yang besar dan pengacara paten cenderung menjadi penerima manfaat utama yang memungkinkan atau terus memungkinkan paten perangkat lunak.

Desain dan implementasi

Desain dan implementasi perangkat lunak bervariasi tergantung pada kompleksitas perangkat lunak. Misalnya, desain dan penciptaan Microsoft Word mengambil lebih banyak waktu daripada merancang dan mengembangkan Microsoft Notepad tersebut karena memiliki lebih banyak fungsi dasar.
Software ini biasanya dirancang dan dibuat (alias kode / ditulis / diprogram) di lingkungan pengembangan terpadu (IDE) seperti Eclipse , IntelliJ dan Microsoft Visual Studio yang dapat menyederhanakan proses dan mengkompilasi perangkat lunak (jika ada). Seperti tercantum dalam bagian yang berbeda, perangkat lunak biasanya dibuat di atas perangkat lunak yang ada dan antarmuka pemrograman aplikasi (API) bahwa perangkat lunak yang mendasari menyediakan seperti GTK + , JavaBeans atau swing . Perpustakaan (API) dapat dikategorikan oleh tujuan mereka. Sebagai contoh, Spring Framework digunakan untuk mengimplementasikan aplikasi perusahaan , yang Windows Forms perpustakaan digunakan untuk merancang antarmuka pengguna grafis (GUI) aplikasi seperti Microsoft Word , dan Windows Communication Foundation digunakan untuk merancang layanan web . Ketika program didesain, hal itu bergantung pada API. Misalnya, jika pengguna adalah merancang aplikasi desktop Microsoft Windows, ia mungkin menggunakan NET Windows Forms perpustakaan untuk merancang aplikasi desktop dan panggil API-nya seperti Form1.Close () dan Form1.show () untuk menutup atau membuka aplikasi, dan menulis operasi tambahan dia / dirinya sendiri bahwa ia perlu memiliki. Tanpa API ini, pemrogram perlu menulis API ini dia / dirinya sendiri. Perusahaan seperti Oracle dan Microsoft menyediakan API mereka sendiri sehingga banyak aplikasi yang ditulis menggunakan mereka perpustakaan software yang biasanya memiliki banyak API di dalamnya.
Struktur data seperti tabel hash , array , dan pohon biner , dan algoritma seperti quicksort , dapat berguna untuk membuat perangkat lunak.
Perangkat lunak komputer memiliki karakteristik khusus ekonomi yang membuat desain, pembuatan, dan distribusi yang berbeda dari kebanyakan barang ekonomi lainnya. [ menentukan ] [8] [9]
Seseorang yang menciptakan perangkat lunak disebut programmer , software engineer atau pengembang perangkat lunak , istilah yang semua memiliki arti yang sama. Istilah yang lebih informal bagi programmer juga ada seperti "coder" dan " hacker "- meskipun penggunaan kata yang terakhir dapat menyebabkan kebingungan, karena lebih sering digunakan untuk berarti seseorang yang secara ilegal membobol sistem komputer .

Industri dan organisasi

Sejumlah besar perusahaan perangkat lunak dan programmer di dunia terdiri dari industri perangkat lunak. Software dapat cukup menguntungkan industri: Bill Gates , pendiri Microsoft adalah orang terkaya di dunia pada tahun 2009, terutama karena kepemilikannya atas sejumlah besar saham di Microsoft, perusahaan yang bertanggung jawab untuk Microsoft Windows dan Microsoft Office produk perangkat lunak .
Organisasi perangkat lunak non-profit termasuk Free Software Foundation , GNU Project dan Mozilla Foundation . Software organisasi standar seperti W3C , IETF mengembangkan standar software direkomendasikan seperti XML , HTTP dan HTML , sehingga perangkat lunak yang dapat beroperasi melalui standar tersebut.
Terkenal perusahaan software besar lainnya termasuk Oracle , Novell , SAP , Symantec , Adobe Systems , dan Corel , sementara perusahaan kecil sering memberikan inovasi.

sumber : http://en.wikipedia.org/wiki/Software 


Tidak ada komentar:

Posting Komentar