Sabtu, 21 September 2013

BAB II Model Proses Perangkat Lunak

Model Proses Perangkat Lunak

2.1 Proses Perangkat Lunak
Sekumpulan aktifitas yang memiliki tujuan untuk pengembangan ataupun evolusi perangkat lunak dimana setiap aktifitas bersifat saling terkait (koheren) untuk menspesifikasikan, merancang, implementasi dan pengujian sistem perangkat lunak.
Aktifitas generic dalam semua proses perangkat lunak adalah :
~ Initial : proses perangkat lunak yang ditandai dengan ad hoc
~ Repeatable : proses-proses manajemen proyek dasar dibangun untuk menelusuri masalah biaya, jadwal, dan fungsionalitas. Disiplin proses yang perlu ada untuk mengulangi sukses-sukses proyek yang terdahulu dengan penerapan yang sama
~ Defined : proses perangkat lunak baik untuk aktifitas manajemen atau perekayasaan di dokumentasikan, distandarkan dan diintegrasikan ke dalam proses perangkat lunak organisasi besar. Semua proyek menggunakan versi proses organisasi yang di dokumentasikan dan disahkan untuk pengembangan dan pemeliharaan perangkat lunak
~ Managed : pengukuran detail terhadap proses perangkat lunak dan kualitas produksi dikumpulkan. Produk dan proses perangkat lunak dipahami secara kuantitatif dan dikontrol dengan menggunakan pengukuran secara detail
~ Optimizing : pertambahan proses yang terus menerus dimungkinkan oleh umpan balik kuantitatif dari proses dan dari gagasan inovatif pengujian serta teknologi


2.2 Pengembangan Perangkat Lunak
Pengembangan perangkat lunak adalah suatu proses dimana kebutuhan pemakai diterjemahkan menjadi produk lunak. Proses ini mencakup aktifitas penerjemahan kebutuhan pemakai menjadi kebutuhan perangkat lunak, transformasi kebutuhan perangkat lunak menjadi desain, penerapan desain menjadi kode program, uji coba kode program, dan instalasi serta pemeriksaan kebenaran perangkat lunak untuk operasional.
Berdasarkan pengertian tersebut, secara umum dapat dikatakan bahwa proses pengembangan perangkat lunak mengikuti tahap-tahap:
- Menentukan apa yang harus dikerjakan oleh perangkat lunak dalam satu rentang waktu tertentu
- Mendefinisikan bagaimana perangkat lunak dibuat, mencakup arsitektur perangkat lunaknya, antarmuka internal, algoritma dan sebagainya
- Penerapan (penulisan program) dan pengujian unit-unit program
- Integrasi dan pengujian modul-modul program 
- Validasi perangkat lunak secara keseluruhan (pengujian sistem)


2.3  Model Proses Perangkat Lunak
Model proses perangkat lunak merupakan suatu representasi proses perangkat lunak yang disederhanakan, dipresentasikan dan perspektif khusus. Contoh perspektif proses :
~ perspektif alur-kerja (work flow) : barisan kegiatan
~ perspektif alur-data (data flow) : alur informasi
~ perspektif peran atau aksi : siapa melakukan apa
Menurut Ian Somerville, model proses secara umum terdiri dari :
- Pendekatan Model Proses, seperti model sekuensial linier atau waterfall, model prototype, model RAS, dimana memisahkan dan membedakan antara spesifikasi dan pengembangan
- Pengembangan yang berevolusi, pendekatan yang melanjutkan aktifitas satu dan yang lainnya dari spesifikasi dan pengembangan serta validasi secara cepat
- Pengembangan sistem formal, pendekatan aktifitas berdasarkan suatu model sistem matematika yang ditransformasikan ke implementasi,
- Pengembangan sistem berbasis Re-use (pengguna ulang) komponen, sistem dibangun dari komponen yang sudah ada dengan fokus integrasi sistem


2.4  Model Sekuensial Linier (Waterfall)
Sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan.



Aktifitas Model Sekuensial Linier meliputi:
~ Rekayasa dan Pemodelan Sistem atau Informasi
 karena perangkat lunak merupakan bagian dari sebuah sistem (bisnis) yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan dengan elemen-elemen yang lain seperti perangkat lunak, manusia dan database.
~ Analisis kebutuhan perangkat lunak
proses pengumpulan kebutuhan difokuskan khususnya untuk perangkat lunak, perekayasa perangkat lunak (analisis) harus memahami domain permasalahan (problem domain), tingkah laku, unjuk kerja dan antar muka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak di dokumentasikan dan dilihat lagi dengan pelanggan.
~ Desain
desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda (struktur data, arsitektur perangkat lunak, representasi interface, dan detail algoritma) prosedural. Proses desain menerjemahkan syarat atau kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode (coding). Sebagaimana analisis, desain ini juga didokumentasikan.
~ Generasi Kode
desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca. langkah pembuatan kode meliputi pekerjaan dalam langkah ini, dan dapat dilakukan secara mekanis.
~ Pengujian (tes)
sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan sesudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan.
~ Pemeliharaan
perangkat lunak akan mengalami perubahan setelah disampaikan pada pelanggan (perkecualian yang mungkin adalah perangkat lunak yang diletakkan). Perubahan akan terjadi karena kesalahan-kesalahan karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.

Model Waterfall
adalah model yang paling lama dan banyak secara luas digunakan sebagai paradigmauntuk rekayasa software.
Keuntungan : langkah secra terurut, fokus, dan mudah diikuti
Permasalahan :
- Tidak fleksibel sebab proyek yang nyata jarang mengikuti aliran yang terurut untuk menyusun model
-  Sangat sulit untuk customer terhadap menhadapi semua kebutuhan yang eksplisit
- Customer harus memiliki kesabaran untuk menunggu keabsahan produk software
- Customer tercakup dalam awal proyek
- Pembuat sering ditunda secara tidak berhubungan diantara fase


2.5 Model Prototipe
Model prototipe ini dimulai dengan mengumpulkan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, dan mengidentifikasi segala kebutuhan yang diketahui
model prototipe

Secara ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi keutuhan perangkat lunak. Prototipe bisa menjadi paradigma yang efektif bagi rekayasa perangkat lunak. Kuncinya adalah mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan pengembang keduanya harus setuju bahwa prototipe dibangun untuk mekanisme pendefinisian kebutuhan. Prototipe kemudian disingkirkan dan perangkat lunak actual direkayasa dengan tertuju kepada kualitas dan kemampuan pemeliharaan.
Keuntungan: 
- mudah dan cepat identifikasi kebutuhan customer
- customer mengecek prototipe di awal tingkatan dan menyediakan input dan umpan baliknya
- Persetujuan yang baik dengan mengikuti kasus: customer tidak bisa menyediakan kebutuhan yang jelas, menggunakan teknologi baru, hardware dan algoritma
Masalah:
- developer biasa ikut membuat produk didasarkan pada prototipe 
- developer sering membuat perjanjian implementasi dalam memerintahkan untuk prototipe agar bekerja secara cepat

 
2.6 Model RAD
Rapid Application Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi "kecepatan tinggi" dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan merupakan "sistem fungsional yang utuh" dalam periode waktu yang sangat pendek (kira-kira 60-90 hari)
Pendekatan RAD melingkupi fase-fase sebagai berikut:
~ Pemodelan Bisnis
aliran informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut:
Informasi apa yang mengendalikan proses bisnis? Informasi apa yang dimunculkan? Siapa yang memunculkannya? Kemana informasi itu pergi? Siapa yang memprosesnya?
~ Pemodelan Data
aliran informasi yang didefinisikan sebagai bagian dari fase business modelling disaring kedalam serangkaian objek data yang dibutuhkan untuk mendukung bisnis tersebut.
~ Pemodelan Proses
aliran informasi yang didefinisikan di dalam fase data modelling ditransfirmasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus atau mendapatkan kembali sebuah objek data.
~ Pembentukan Aplikasi
RAD mengasumsikan pemakaian teknik geenerasi keempat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang ada atau diciptakan komponen yang bisa dipakai lagi.
~ Pengujian dan Turnover
karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu penguji. Tetapi komponen baru tersebut harus diuji dan semua interface harus dilatih secara penuh.

model RAD

Keuntungan : 
- waktu pembuatan yang pendek
- pengurangan biaya supaya software digunakan kembali dan konstruksi dasar komponen
Masalah :
- RAD butuh developer dan pelanggan yang diijinkan untuk menyusun
- pembuatan software  adalah spesifik proyek, dan tidak boleh dimodulkan secara baik
- kualitasnya tergantung pada kualitas dari komponen yang ada


2.7 Model Proses Perangkat Lunak Evolusione
Model proses klasik tidak dirancang untuk mengirimkan sistem yang produktif sehingga asumsinya pada:
- Sistem yang sempurna akan dikirimkan stelah urutan linier diselesaikan
- Customer mengetahui yang mereka inginkan ditingkatan awal
Realita dalam proses pemuatan software
- Banyaknya kebutuhan perubahan selama latihan pembuatan
- Banyaknya aktifitas iterasi dan bekerja sebab evolusi alami dari produksi software
Persetujuan yang sulit dengan evolusi produk, beberapa evolusi model proses yang disusun:
~ the increment model
~ the spiral model
~ the component assembly model (model rakitan komponen)
~ the concurrent development model (model perkembangan konkuren)

2.7.1 Incremental Model
merupakan kombinasi linier sekuensial model (diaplikasikan secara berulang) dan filosofi pengulangan dari prototyping model. Setiap tahapan linier sekuensial model menghasilkan deliverable increment bagi perangkat lunak, dimana increment pertamanya merupakan sebuah produk inti yang mewakili kebutuhan dasar sistem. Produk inti ini nantinya dikembangkan menjadi increment-increment selanjutnya setelah digunakan dan dievaluasi sampai didapat produk yang lengkap dan memenuhi kebutuhan pemakai.
Kelemahan:
- hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh
- penambahan staf dilakukan jika hasil increment akan dikembangkan labih lanjut
model incremental


2.7.2 Spiral Model
merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linier sekuensial model. Dalam model ini perangkat lunak dikembangkan dalam suatu seri incremental release. Spiral model dibagi menjadi 6 aktivitas kerangka kerja sebagai berikut:
1. Komunikasi dengan pemakai
2. Perencanaan
3. Analisis resiko
4. Rekayasa
5. Konstruksi dan pelepasan
6. Evaluasi
Kelemahan spiral model:
- sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikemdalikan
- memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengendalikannya supaya sukses
- belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru
model spiral


2.7.3 Model Rakitan Komponen
menggabungkan berbagai karakteristik dari spiral model. Pembuatan aplikasi dengan pendekatan model ini dibangun dari komponen-komponen perangkat lunak yang sudah dipaketkan sebelumnya dengan cakupan aktifitas sebagai berikut:
- mengidentifikasi calon-calon komponen (kelas objek)
- melihat komponen-komponen dalam pustaka
- mengekstrak komponen jika ada
- membangun komponen jika ada
- menyimpan komponen baru pada pustaka
- mengkonstruksi interaksi ke-n dari sistem
model rakitan komponen

2.7.4 Model Perkembangan Konkuren
model perkembangan konkuren juga disebut rekayasa konkuren. Model proses yang konkuren dapat disajikan secara skematis sebagai sederetan aktifitas teknik mayor, tugas-tugas, dan keadaan yang lain. Contohnya aktiftas rekayasa yang dibatasi untuk model spiral dipenuhi dengan melakukan prototyping atau pemodelan analisis, spesifikasi kebutuhan dan rancangan.

model perkembangan konkuren


2.8 Model Formal
metode formal mencakup sekumpulan aktifitas yang membawa kepada spesifikasi matematis perangkat lunak komputer. Metode ini memungkinkan perekayasa untuk mengkhususkan, mengembangkan, dan memverifikasi sistem berbasis komputer dengan menggunakan sistem matematis yang tepat. Variasi dalam pendekatan ini disebut juga clean-room rekayasa perangkat lunak.
Meskipun belum menjadi pendekatan utama, metode ini sudah dapat menjanjikan perangkat lunak yang bebas dari cacat atau kesalahan, tetapi perhatian tentang kemampuan aplikasinya sudah mulai disuarakan:
- Pengembangan model format banyak memakan waktu dan mahal
- Perlu latihan yang ekstensif
- Sulit untuk menggunakan model-model sebagai sebuah mekanisme komunikasi bagi pemakai yang secara teknik belum canggih

2.9 Teknik Generasi Keempat
menggunakan perangkat bantu yang akan membuat kode sumber secara otomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakan untuk mengembangkan perangkat lunak yang menggunakan bentuk bahasa khusus atau notasi grafik yang diselesaikan dengan syarat yang dimengerti pemakai.
Cakupan aktifitas 4GT:
~ Pengumpulan kebutuhan
~ Translasi kebutuhan menjadi prototype operasional atau langsung melakukan implementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil
~ Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun 4GL akan digunakan
~ Pengujian
~ Membuat dokumentasi
~ Melakukan seluruh aktifitas untuk mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat lunak lainnya.

Salah satu keuntungan menggunakan model 4GT adalah pengurangan waktu dan peningkatan produktifitas secara besar, sementara kekurangannya terletak pada kesulitan penggunaan perangkat bantu dibandingkan dengan bahasa pemrograman, dan juga kode sumber yang dihasilkan tidak efisien.











Jumat, 20 September 2013

BAB I Perangkat Lunak sebagai Produk

Perangkat Lunak sebagai Produk

1.1 Pengantar
Pada umumnya mahasiswa Teknik Informatika lebih mengutamakan pemrograman, karena menurut mereka itu adalah sebuah kemampuan inti yang harus di kuasai. Pada kenyataannya, banyak kemampuan lain yang  mungkin selama ini dianggap sebelah mata justru menjadi penopang dan penentuk proses membangun perangkat lunak kerja sama dalam tim, kemampuan berkomunikasi, kemampuan membuat dokumentasi, kemampuan wawancara, kemampuan cepat bidang lain di luar pemrograman dan sebagainya.

Dalam rekayasa perangkat lunak umumnya ada beberapa kegiatan yang senantiasa ada pada model proses apapun : identifikasi kebutuhan, desain, pengkodean, penerapan, dan pemeliharaan. 
Dari kegiatan-kegiatan yang berurutan tersebut, pengkodean baru dapat dilakukan jika kebutuhan sudah dikumpulkan dan diketahui lalu di desain. Pengkodean yang sering menjadi fokus mahasiswa ini tidak berhenti ketika selesai, tapi ada pemeliharaan yang pasti terkait juga dengan kebutuhan. Kegiatan lain yang menaungi rekayasa perangkat lunak adalah jaminan mutu perangkat lunak (SQA~Software Quality Assurance). Pada dasarnya, setiap kegiatan memiliki standar bagaimana kegiatan tersebut seharusnya dilakukan untuk menghasilkan produk yang diinginkan.

Pandangan masyarakat terhadap teknologi pada umunya selalu dikaitkan dengan mesin yang dipergunakan produk manufacture dan perangkat-perangkat yang dipergunakan untuk proyek-proyek sipil (bangunan, jembatan, jalan, bendungan, dll), serta komputer atau peralatan yang berkaitan dengan komputer. Lebih luas teknologi komputer memiliki arti pada semua peralatan elektronik atau elektromekanik yang dipergunakan sebagai pengendali peralatan yang ditujuan untuk membantu proses kerja. Perlu diingat bahwa selain perangkat komputer pada umumnya (personal computer, notebook, Tablet PC), peralatan pemroses dan penyimpan data yang tingkatnya sedikit lebih rendah juga diterapkan pada peralatan komunikasi yang kemudian menjadi smartphone, peralatan-peralatan pada pelayanan masyarakat (public information board), pengaturan lalu lintas, serta peralatan rumah tangga. Implementasi penggunaan komputer memang ditujukan untuk mensejahterakan dan memberikan rasa nyaman bagi kehidupan manusia. Pemakaian perangkat lunak dapat diimplementasikan pada peralatan yang paling sederhana sampai dengan perangkat lunak yang dipergunakan untuk proses pengendalian perjalanan ruang angkasa.

Dari uraian diatas, proses pengendalian yang dilakukan oleh komputer sebenarnya merupakan deret perintah yang dimengerti oleh komputer untuk melaksanakan suatu tugas yang dikehendaki pembuatannya, yang kemudian disebut perangkat lunak . Perangkat Lunak merupakan hal yang abstrak dan tidak nyata, tidak memiliki unsur fisik atau bukan merupakan unsur dari sebuah proses manufacture. Perangkat lunak sebagai sebuah produk merupakan proses urut-urutan logika yang dipergunakan untuk melaksanakan sesuatu fungsi yang dikehendaki, ketelitian dan dokumentasi yang jelas akan membantu melacak penyebab kesalahan bila program tersebut tidak berfungsi sebagaimana mestinya. Berbeda dengan perangkat kerassebagai produk manufacture dimana pada proses pembuatannya, didesain, digambar, ada penyambungan komponen-komponen  penyusunnya, diberikan kemasan kemudian didistribusikan secara fisik dari satu lokasi ke lokasi yang lain. Sehingga misal  terjadi kesalahan pada urut-urutan proses atau cacat produksi akan lebih mudah dilakukan koreksi, karena penyebabnya terlihat secara fisik.


1.2  Latar Belakang Disiplin Rekayasa Perangkat Lunak
Faktor-faktor yang melatarbelakangi munculnya RPL :
- Ketidakmampuan organisasi memprediksi waktu, usaha dan biaya untuk membangun perangkat lunak
- Perubahan nisbah/rasio biaya perangkat keras terhadap harga perangkat lunak
- Kemajuan pesat perangkat keras
- Kemajuan dalam teknik-teknik pembuatan perangkat lunak
- Tuntutan yang lebih tinggi terhadap jumlah perangkat lunak
- Tuntutan yang lebih tinggi terhadap mutu perangkat lunak
- Meningkatnya peran pemeliharaan


1.3 Perangkat Lunak
Definisi software sedikit lebih sulit bila dibanding dengan perangkat keras, tidak nampak ciri fisik yang dapat dipergunakan untuk mengenali perangkat lunak, tetapi nampak akibat yang ditimbulkan pada antar muka (interface) dan keluaran perangkat keras (output). Definisi perangkat keras tergantung pada waktu, dalam hal apa dan siapa yang mendefinisikan perangkat lunak tersebut. Dibawah ini adalah beberapa definisi perangkat lunak menurut para ahli, antara lain:

a. R. WILMAN & RIYAN
Software merupakan sebuah perangkat operasi kerja untuk menjalankan komponen hardware. Software bersifat maya, artinya software tidak terlihat, tetapi keberadaannya sangat dirasakan
b. WIWIT SISWOUTOMO
Software merupakan nyawa dari sebuah komputer. Tanpa perangkat lunak, komputer hanya sebuah perangkat keras mati yang tidak ada gunanya
c. FAUZIAH
Software adalah program untuk memasukkan data, mengecek data, menyimpan data, memperoleh data hasil, dan presentasi serta manipulasi data
d. JUNTAK TEAMWORK
Software merupakan konstruksi atau bangunan program yang telah disusun dan diatur sedemikian rupa, demi peruntukkan sebuah sistem kerja yang dijalankannya
e. WAHANA KOMPUTER
Software adalah perangkat lunak yang berfungsi untuk melakukan kontrol dan manajemen hardware. Software dalam komputer meliputi sistem operasi dan aplikasi
Hadirnya perangkat lunakseiring dengan perkembangan komputer yanh secara fisik memang ada dan dari sini kemudian rekayasa perangkat lunak mulai dikenal sebagi disiplin ilmu baru.
1.4  Jenis Perangkat Lunak
Pengelompokkan jenis perangkat lunak dapat dilakukan dengan mengelompokkan cara pembuatannya, pembuatan perangkat keras dapat dikelompokkan menjadi 2, yaitu:
a. Perangkat Lunak Generik (Generic Software)
merupakan perangkat lunak yang berdiri sendiri (stand alone) dengan menggunakan standar tertentu yang diproduksi oleh organisasi pengembang perangkat lunak (vendor) dan biasa dijual secara bebas dan siapapun dapat membeli. Contoh perangkat lunak generic antara lain: Office Application (aplikasi perkantoran), Database Engine (mesin data), Graphic Package (paket pengolah grafik), Programming Applicatio (paket pemrograman), dan lain sebagainya.
b. Perangkat Lunak Pesanan (Order Software)
merupakan perangkat lunak yang dipesan ole pelanggan tertentu kepada pengembang perangkat lunak (vendor) untuk memenuhi kebutuhan fungsi tertentu yang dikehendaki pemesan. Perangkat lunak yang dipesan secara khusus ini biasanya ditujukan untuk mendukung proses bisnis, mengatur perangkat elektromaknetik pada manufacture system control suatu aktifitas khusus (misal pelabuhan udara, pengatur lalu lintas jalan raya),
Sedangkan bila dikelompokkan berdasarkan penggunaanya dapat dikelompokkan dalam 8 kategori, yautu:
1. System Software
perangkat lunak yang bertanggung jawab untuk mengendalikan, mengintegrasikan, dan mengolah komponen perangkat keras atau perangkat lunak lainnya tanpa melihat jenjang dari perangkat lunak tersebut. Perangkat lunak ini pada umumnya memiliki fungsi dasar sistem operasi seperti menyalin (copy), memindahkan (transfer), menyimpan (save), menghapus (delete), mem-format, pengelolaan berkas(file manager), teks editor, pengendalian otentofikasi, pengendalian jaringan, pencetakan (print), dan penggunaan sumber daya yang terdapat pada perangkat keras lainnya.
2. Real-Time System
perangkat lunak yang digunakan untuk memonitor, meng-analisa, dan mengendalikan tiap peristiwa yang terjadi secara langsung. Perangkat lunak ini mengumpulkan data tiap kejadian kemudian menganalisa dan menaggapi hasil analisa dengan mengirimnya pada perangkat yang lain, contoh perangkat lunak pendeteksi gempa, pendeteksi tsunami, pendeteksi gunung berapi.
3. Business Software
perangkat keras yang dipergunakan untuk mengelola kerumitan proses bisnis dalam organisasi, perangkat ini biasanya ter-integrasi satu dengan yang lainnya membentuk sebuah jejaring system dalam organisasi yang kemudian di dalam organisasi disebut Management Information System. Misal penggunaan sistem penjualan, pergudangan, penggajian, kepegawaian, dan lain sebagainya.
4. Engineering and Scientific Software
perangkat keras yang disusun secara khusus mengikut sertakan rumus-rumus pada ilmu pengetahuan tertentu, perangkat lunak ini biasanya dilakukan untuk proses simulasi suatu kejadian.
5. Embedded Software 
perangkat lunak yang dirancang khusus untuk piranti modern cerdas, dimana fungsi dari perangkat lunak ini sebagai pengendali terhadap peralatan tersebut, misal keypad pada perangkat rumah tangga, panel control mobil, perangkat, instrumen pemutus arus pada pembangkit listrik.
6. Personal Software
perangkat lunak yang dibuat untuk membantu menyelesaikan atau memenuhi pekerjaan manusia secara individual sebagai contoh memainkan music atau video, pekerjaan perkantoran, mengkoleksi database, berkomunikasi dengan komunitas tertentu dan berbagai keperluan lainnya.
7. Web base Software
perangkat lunak yang dipergunakan untuk menjalankan berbagai perintah pada jejaring internet, berbagai format data dapat dikelola dengan menggunakan format HTML, PHP, ASP, dan ASPX.
8. Artificial Intelligence Software
perangkat lunak ini dibuat untuk menyelesaikan pekerjaan rumit dan non numerical algorithm, menggunakan metode neumal network


1.5 Perbedaan Karakteristik Perangkat lunak dibanding Perangkat Keras
sebagai "barang" yang terintegrasi dalam sebuah system computer, perangkat lunak memiliki perbedaan bila dibandingkan dengan perangkat keras antara lain:
a. Perangkat Lunak bukan produk pabrikan (dalam konsep pabrik secara klasik), perangkat keras bukan merupakan barang yang dibuat oleh pabrik, yaitu dimana sifatnya secara fisik tidak akan terlihat, control terhadap kualitas produk sesuai dengan ketelitian pembuatan algoritma. Kualitas software sangat ditentukan dan tergantung dari kualitas SDM yang terlibat didalamnya, sehingga bila dihitung maka sebagian besar biaya dipergunakan untuk pembiayaan SDM.
b. Perangkat lunak mengalami wear out (ke"aus-an"), berbeda dengan perangkat keras yang memiliki usia teknis tertentu pada batas waktu tertentu beberapa komponen akan mengalami kerusakan atau penurunan fungsi, kerusakan yang terjadi pada beberapa komponen perangkat keras selalu mempengaruhi kinerja perangkat keras bahkan terkadang berhenti sama sekai. Kerusakan pada perangkat keras ini dapat di ganti dengan komponen baru, sedangkan kerusakan yang terjadi pada perangkat lunak menunjukkan kesalahan awal pada saat perencanaan dan desain awal.
c. Sebagian besar perangkat lunak dibangun dan dikembangkan dengan menggunakan desain dan komponen software yang telah ada sebelumnya. Pengembang perangkat lunak dapat menggunakan algoritma, sub rutin, fungsi dan prosedur untuk membangun atau memperbarui perangkat lunak yang baru. Sebagai contoh untuk memperbarui tampilan antar muka (interface), sub-sub rutin, prosedur dan fungsi dari perangkat lunak lama masih digunakan (rense). Hal ini tidak terjadi pada perangkat keras, perangkat keras dibuat dengan berdasarkan penelitian, desain sirkuit, pemilihan kompatibilitas dan kemudian menggabungkan berbagai komponen elektronik pada papan sirkuit sesuai petunjuk perakitan. Pembuatan oerangkat keras yang baru menunjukkan sesuatu yang benar-benar baru.
1.6  Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak berasal dari 2 kata, yaitu Software (perangkat lunak) dan Engineering (rekayasa). Rekayasa Perangkat Lunak (software) adalah source code pada suatu program atau sistem perangkat lunak tidak hanya dokumentasi terhadap source code tapi juga dokumentasi terhadap sesuatu yang dibutuhkan selama pengembangan, instalasi penggunaan dan pemeliharaan sebuah sistem Engineering atau Rekayasa adalah aplikasi terhadap pendekatan sistematis yang berdasar atas ilmu pengetahuan dan matematis serta aplikasi tentang produksi terhadap struktur, mesin, produk, proses atau sistem.
Produk perangkat lunak mengadopsi pendekatan yang sistematis dan terorganisir terhadap pekerjaannya dan menggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tesredia. 
Rekayasa Perangkat Lunak juga merupakan pendekatan sistematis dan matematis untuk membangun, memelihara dan mengenyahkan perangkat lunak. Dari cara pandang lain, RPL adalah pendekatan sistematis untuk merekayasa perangakat lunak yang handal atau bermutu, tepat waktu dan dengan biaya yang optimal.


1.7 Karakteristik Perangkat Lunak
Kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak 
- Dapat terus dirawat dan dipelihara (maintainability)
- Dapat mengikuti perkembangan teknologi (dependability)
- Dapat mengikuti keinginan pengguna (robust)
- Efektif dan efisien dalam menggunakan energi dan penggunaannya
- Dapat memenuhi kebutuhan yang diinginkan (usability)


1.8 Mutu Perangkat Lunak 
Terdapat 3 pihak yang mempengaruhi mutu perangkat lunak, yaitu :
- Sponsor : seseorang atau organisasi yang membiayai atau membayar selama pengembangan atau perantaraan sistem software dan biasanya mempunyai respon terhadap pengembangan sistem software itu sendiri dengan melibatkan perhitungan biaya yang optimal
- User : setiap orang yang secara langsung berinteraksi terhadap eksekusi software, yang secara langsung memberi input ke komputer dan menggunakan atau menikmati output dari komputer
- Developer : seseorang atau organisasi yang memberikan modifikasi dan memelihara terhadap eror serta mengembangkan sistem software tersebut

1.9 Mitos Perangkat Lunak
~ Mitos Manajemen 
manajer yang b ertanggung jawab terhadap masalah perangkat lunak, seperti juga manajer pada kebanyakan disiplin, sering mengalami tekanan karena masalah pengaturan keuangan, menjaga jadwal agar tidak kacau dan peningkatan kualitas 
~Mitos Pelanggan 
pelanggan mempercayai mitos tentang perangkat lunak karena manajer dan para pelaksana yang bertanggung jawab atas masalah perangkat lunak hanya bekerja sedikit saja untuk memperbaiki kesalahan informasi. mitos ini membawa kearah pengharapan yang salah oleh pelanggan dan ketidakpuasan pengembang
~ Mitos Para Praktisi
pemrograman dilihat dari sebuah karya seni


1.10  Krisis Perangkat Lunak
- Masalah nyata yang sudah mengganggu perkembangan perangkat lunak
- Serangkaian masalah yang terjadi dalam perkembangan perangkat lunak komputer
- Masalah yang ada tidak hanya terbatas pada perangkat lunak yang tidak berfungsi dengan baik tapi juga pada penderitaan yang melingkupi masalah-masalah yang berhubungan dengan bagaimana mengembangkan perangkat lunak, bagaimana memelihara volume perangkat lunak yang sedang tumbuh dan bagaimana mengejar kebutuhan perangkat lunak lebih banyak lagi