Paradigma Pengembangan Software

Label: ,


Assalamu'laikum para sahabat semua :D 



Alhamdulillah saya masih diberikan kesempatan dan kenikmatan hidup di malam terakhir bulan Ramadhan 1434 H  ini. Insya Allah saya akan menulis tentang PARADIGMA PENGEMBANGAN SOFTWARE. Judul tersebut merupakan salah satu tugas dari mata kuliah Rekayasa Perangkat Lunak yang sedang saya tempuh pada semester pendek tahun ajaran 2012/2013. Berbicara tentang paradigma memang sangat berat sekali menganai kata tersebut. Oke deh saya sederhanakan kata tersebut hehe. Sebetulnya paradigma bisa disebut juga sebagai sebuah metode. Ya mungkin metode lebih umum dikenal daripada paradigma hehe. Jadi, Paradigma = Metode. Dengan kalimat lain, judul tulisan ini bisa disebut juga Metode Pengembangan Software. 




Metode Pengembangan Software sangat banyak sekali, diantaranya ialah Model Sekuensial Linier, Model Prototype, Model RAD (Rapid Application Development),  Model Proses Perangkat Lunak Evolusioner,  Model Formal, Fourth Generation Techniques (4GT). Yang akan saya perjelas yaitu Metode Fourth Generation Techniques (4GT). 



Istilah generasi ke empat, mengarah ke perangkat lunak yang umum yaitu tiap pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada level tinggi.  Saat ini pengembangan perangkat lunak yang mendukung 4GT, berisi tool-tool berikut : i) Bahasa non prosedural untuk query basis data; ii)  Report generation; iii) Data manipulation ; iv) Interaksi layar ; v) Kemampuan grafik level tinggi ; vi) Kemampuan spreadsheet . Tiap tool ini ada tapi hanya untuk sauatu aplikasi khusus. 
Menggunakan perangkat bantu (tools) yang akan membuat kode sumber secara otomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakan untuk menggunakan perangkat lunak yang menggunakan bahasa khusus atau notasi grafik yang diselesaikan dengan syarat yang dimengerti pemakai. Cakupan aktivitas 4GT : 
1. Pengumpulan kebutuhan, idealnya pelanggan akan menjelaskan kebutuhan yang akan ditranslasikan ke prototype operasional.
2. Translasi kebutuhan menjadi prototype operasional, atau langsung melakukan implementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
3.  Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun 4GL akan digunakan.
4.    Pengujian.
5.    Membuat dokumentasi.
6.  Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat lunak lainnya.
Salah satu keuntungan penggunaan model 4GT adalah pengurangan waktu dan peningkatan produktivitas secara besar, sementara kekurangannya terletak pada kesulitan penggunaan perangkat bantu (tools) dibandingkan dengan bahsa pemrograman, dan juga kode sumber yang dihasilkannya tidak efisien.
Untuk aplikasi yang yang kecil, adalah mungkin untuk langsung berpindah dari pengumpulan kebutuhan ke implementasi dengan menggunakan 4GL. Tapi untuk aplikasi yang besar, dibutuhkan pengembangan strategi desain untuk sistem, walau digunakan 4GL. Penggunaan 4GT tanpa perencanaan yang matang (untuk proyek skala besar) akan meyebabkan kesulitan yang sama (kualitas dan pemeliharaan yang jelek, ketidakpuasan pelanggan) seperti dengan metode konvensional.
Model ini diaplikasikan untuk mengembangkan perangkat lunak yang memakai bentuk bahasas khusus atau notasi grafik  yang dieksekusi atau diselesaikan dengan syarat atau ketentuan yang dipahami oleh pemakai/user/costumer.





Sumber :
Jauhari, Jaidan. ___.“Modul Rekayasa Perangkat Lunak.”__:__.pdf.
http://heckerlaye.files.wordpress.com/2009/11/modul-rekayasa-perangkat-lunak.pdf
Pressman, Roger S. 2002.”Rekayasa Perangkat Lunak (Pendekatan Praktis).” Yogyakarta : Andi. 





Pemeliharaan Perangkat Lunak

Label: , , ,

Assalamu'alaikum para sahabat semua :D 

Alhamdulillah kita semua masih diberikan kesehatan dan masih diberikan kesempatan dalam menjalankan ibadah shaum yang menginjak hari ke 29. Ayo semangat mau lebaran :D haha
Sebelum lebaran, saya ingin memposting dulu tentang pemeliharaan sebuah perangkat lunak. Waahh rajin amat yah ? bukan rajin para sahabat, tapi melawan rasa malas yang tidak kunjung habis-habisnya. Sebenernya ni postingan untuk tugas RPL Semester Pendek saya. Daripada ngerjainnya sesudah lebaran, mendingan sekarang aja sambil ngabuburit :) hehe, oke langsung aja yah ke titik permasalahan yang di tulis pada judulnya :D

Dilihat dari judulnya "Pemeliharaan Perangkat Lunak", kalau diartikan secara kasar yaitu tahapan terakhir dalam proses pembuatan software, ya memang sangat sederhana sekali artinya. Namun pada prakteknya sangat rumit sekali, katanya hehe. Kita contohkan saja kasus yang lain, misalnya saja pada pembuatan rumah. Setelah selesai membuat atau membangun rumahnya, ya pastilah si pemilik rumah tersebut memelihara rumahya, memperbaiki genting yang bocor, membersihkan lantai, dsb. Itu semua merupakan bagian dari pemeliharaan. Sama halnya dengan pemeliharaan pada software, itu semua pasti dilakukan demi menghasilkan software yang sangat berkualitas. 
Definisi lain dari pemeliharaan software : 1) Suatu kombinasi dari berbagai tindakan yang dilakukan untuk menjaga sistem dalam atau memeperbaikinya sampai suati kondisi yang bisa diterima.  Pada bulan April 1970 didefinisikan sebuah istilah untuk Teknolgi Pemeliharaan yang mencakup pengertian yang lebih luas dari pengertian Pemeliharaan diatas. Istilah ini adalah Teroteknoloogi, yang artinya ialah siklus terkahir dari SDLC yaitu dengan pemeriksaan periodik, audit, dan permintaan pengguna akan menjadi sumber untuk melakukan perawatan diseluruh masa hidup software.

TUJUAN PEMELIHARAAN PERANGKAT LUNAK
Sistem perlu dipelihara karena beberapa hal, yaitu :
1.    Sistem memiliki kesalahan yang dulunya belum terdeteksi, sehingga kesalahan-kesalahan sistem perlu diperbaiki.
2.    Sistem mengalami perubahan-perubahan karena permintaan baru dari pemakai sistem.
3.    Sistem mengalami perubahan karena perubahan lingkungan luar (perubahan bisnis).
4.    Sistem perlu ditingkatkan.

Biaya pemeliharaan sistem sering diabaikan. Kenyataannya biaya pemeliharaan sistem merupakan biaya yang cukup besar. Biaya pemeliharaan perangkat lunak telah terus menerus naik selama 25 tahun terakhir. Beberapa perusahaan membelanjakan 80% atau lebih dari anggaran sistem mereka pada pemeliharaan perangkat lunak. 

JENIS-JENIS PEMELIHARAAN

Pemeliharaan Korektif

Pemeliharaan korektif adalah bagian pemeliharaan sistem yang tidak begitu tinggi nilainya dan lebih membebani, karena pemeliharaan ini mengkoreksi kesalahan-kesahan yang ditemukan pada saat sistem berjalan.

Umumnya pemeliharaan korektif ini mencakup kondisi penting atau bahaya yang memerlukan tindakan segera. Kemampuan untuk mendiagnosa atau memperbaiki kesalahan atau malfungsi dengan cepat sangatlah berharga bagi perusahaan.

Pemeliharaan Adaptif
Pemeliharaan adaptif dilakukan untuk menyesuaikan perubahan dalam lingkungan data atau pemrosesan dan memenuhi persyaratan pemakai baru.

Lingkungan tempat sistem beroperasi adalah dinamik, dengan demikian, sistem harus terus merespon perubahan persyaratan pemakai. Misalnya, Undang-Undang Perpajakan yang baru mungkin memerlukan suatu perubahan dalam kalkulasi pembayaran bersih.

Umumnya pemeliharaan adatif ini baik dan tidak dapat dihindari.

Pemeliharaan Penyempurnaan
Pemeliharaan penyempurnaan mempertinggi cara kerja atau maintainabilitas (kemampuan untuk dipelihara). Tindakan ini juga memungkinkan sistem untuk memenuhi persyaratan pemakai yang sebelumnya tidak dikenal.

Ketika membuat perubahan substansial modul apapun, petugas pemeliharaan juga menggunakan kesempatan untuk mengupgrade kode, mengganti cabang-cabang yang kadaluwarsa, memperbaiki kecerobohan, dan mengembangkan dokumentasi. 

Sebagai contoh, kegiatan pemeliharaan ini dapat berbentuk perekayasaan ulang atau restrukturisasi perangkat lunak, penulisan ulang dokumentasi, pengubahan format dan isi laporan, penentuan logika pemrosesan yang lebih efisien, dan pengembangan efisiensi pengoperasian perangkat.

Pemeliharaan Preventif
Pemeliharaan Preventif terdiri atas inspeksi periodik dan pemeriksaan sistem untuk mengungkap dan mengantisipasi permasalahan.

Karena personil pemeliharaan sistem bekerja dalam sistem ini, mereka seringkali menemukan cacat-cacat (bukan kesalahan yang sebenarnya) yang menandakan permasalahan potensial. Sementara tidak memerlukan tindakan segera, cacat ini bila tidak dikoreksi di tingkat awal, jelas sekali akan mempengaruhi baik fungsi sistem maupun kemampuan untuk memeliharanya dalam waktu dekat.    

MANFAAT PEMELIHARAAN SOFTWARE

Ada beberapa manfaat dari pemeliharaan software, yaitu sebagai berikut :
1. Dapat memastikan kesesuaian dengan kebutuhan fungsionalitas teknis software.
2. Dapat memastikan kesesuaian kebutuhan pihak manajerial mengenai jadwal dan budget.
3. Dapat meningkatkan efisiensi software berikut juga aktifitas pemeliharaannya.

PROCESS CONTROL BLOCK (PCB)

Label: ,

PROCESS CONTROL BLOCK
(PCB)
        PROCESS CONTROL BLOCK  (PCB) adalah struktur data yang dipakai oleh OS untuk mengelola proses.Hampir semua OS yang modern telah memuat PCB(Process Control Block) namun strukturnya berbeda-beda pada setiap OS tersebut.PCB  juga memuat informasi tentang proses, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Sebuah PCB ditunjukkan dalam gambar berikut.


 Sebagai contoh, struktur data yang mengendalikan beberapa PCB adalah process table. Bisa saja beberapa PCB ditaruh pada daftar dalam waktu yang bersamaan.Process table ini menggambarkan sistem tersebut ketika OS menemukan tiap-tiap PCB melalui proses ID.



                                           PCB dibagi 3 kelompok yaitu :

  • ·         Process identification data; selalu menyertakan sebuah identifier unik untuk prosesnya (hampir selalu bernilai integer) dan, dalam sebuah sistem multiuser-multitasking, data seperti identifier proses induk, identifier pengguna, identifier grup pengguna, dll. Proses ini sangan relevan, karena itu sering digunakan untuk referensi silang tabel OS, misalnya memungkinkan untuk mengidentifikasi proses yang menggunakan device I/O, atau daerah memori.

  • ·         Processor state data; adalah potongan-potongan informasi yang mendefinisikan status dari suatu proses ketika proses itu ditangguhkan, yang memungkinkan OS untuk melakukan restart proses nantinya dan masih dapat mengeksekusinya dengan benar. Hal ini selalu menyertakan isi dari register CPU tujuan.


·             Process control data; digunakan oleh OS untuk mengelola proses itu sendiri.

Tugas Statistika II

Label:


ASSEMBLY

Label: ,


Struktur Dasar Sistem Operasi

Label: ,

STRUKTUR DASAR SISTEM OPERASI

1. Sistem Monolitik/Struktur Sederhana (monolithic system)

Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan. Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai (user). Sistem operasi ditulis sebagai sekumpulan prosedur (a collection of procedures), yang dapat dipanggil setiap saat oleh pemakai saat dibutuhkan.

Kelemahan :
  • Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dilokalisasi.
  • Sulit dalam menyediakan fasilitas pengamanan.
  • Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh layanan yang disediakan kernel.
  • Tidak fleksibel.
  • Kesalahan pemograman satu bagian dari kernel menyebabkan matinya seluruh sistem.
Keunggulan :
  • Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat.
Evolusi :
Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik, yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan (di-link) menjadi satu ruang alamat. Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules, yaitu:
  • Bagian-bagian kernel terpenting berada di memori utama secara tetap.
  • Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run time).
Contoh :
Unix

2. Sistem Lapis (layered system)
Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana lapisan-lapisan bawa memberi layanan lapisan lebih atas.Struktur berlapis dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi sistem operasi. Tiap lapisan mempunyai fungsional dan antarmuka masukan-keluaran antara dua lapisan bersebelahan yang terdefinisi bagus. Sistem pertama yang dibuat dengan struktur ini adalah strukrur THE oleh E.W Dijkstra.
Lapis-lapis dalam sistem operasi ada 6 lapis, yaitu :
Lapis 5 - The operator     : untuk pemakai operator.
Lapis 4 - User programs    : untuk aplikasi program pemakai.
Lapis 3 - I/O management   : untuk menyederhanakan akses I/O pada level atas.
Lapis 2 – OP-Communication : untuk mengatur komunikasi antar proses.
Lapis 1 – Memory & drum management : untuk mengatur alokasi ruang memori atau drum magnetic.
Lapis 0 -Processor allocation & multiprogramming : untuk mengatur alokasi pemroses dan switching, multi programming dan pengaturan prosessor.

Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta layanan lapisan n-1 untuk membangunan layanan bagi lapisan n+1. Lapisan n dapat meminta layanan lapisan n-1. Kebalikan tidak dapat, lapisan n tidak dapat meminta layanan n+1. Masing-masing berjalan di ruang alamat-nya sendiri. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS. Sistem MULTICS terdiri 64 lapisan cincin dimana satu lapisan berkewenangan berbeda. Lapisan n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta layanan lapisan n-1, lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk melayani lapisan n.

Keunggulan :
Memiliki semua keunggulan rancangan modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan dapat dirancang, dikode dan diuji secara independen.
Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.

Kelemahan :
Fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati.

Contoh :
THE

3. Mesin Maya (virtual machine)
Mesin maya mempunyai sistem timesharing yang berfungsi untuk ,menyediakan kemampuan untuk multiprogramming dan perluasan mesin dengan antarmuka yang lebih mudah.
Struktur Mesin maya ( CP/CMS, VM/370 ) terdiri atas komponen dasar utama :
  •  Control Program, yaitu virtual machine monitor yang mengatur fungsi dari prosessor, memori dan piranti I/O. Komponen ini berhubungan langsung dengan perangkat keras.
  • Conventional Monitor System, yaitu sistem operasi sederhanayang mengatur fungsi dari proses, pengelolaan informasi dan pengelolaan piranti.

Awalnya struktur ini membuat seolah-olah pemakai mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan pemakai, mesin maya merupakan tiruan seratus persen atas mesin nyata.Semua pemakai diberi iluasi mempunyai satu mesain yang sama-sama canggih. Pendekatan ini memberikan fleksibilitas tinggi sampai memungkinkan system operasi-sistem operasi berbeda dapat dijalankan dimesin-mesin maya berbeda. Implementasi yang efisien merupakan masalah sulit karena sistem menjadi besar dan kompleks. Teknik ini mulanya digunakan pada IBM S/370. VM/370 menyediakan mesin maya untuk tiap pemakai. Bila pemakai log (masuk) sistem, VM/370 menciptakan satu mesin maya baru untuk pemakai itu. Teknik ini berkembang menjadi operating system emulator sehingga sistem operasi dapat menjalankan aplikasi-aplikasi untuk sistem operasi lain.

Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls yang dipanggil aplikasi dengan Win32 API (system calls di MS-Windows NT).
IBM mengembangkan WABI yang mengemulasikan Win32 API sehingga diharapkan sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS-Windows.

Contoh :
Linux telah membuat DOSEMU agar aplikasi-aplikasi untuk MS-DOS dapat dijalankan di Linux, WINE agar aplikasi untuk MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi-aplikasi untuk SCO-UNIX dapat dijalankan di Linux, dan sebagainya.

4. Client-Server Model
Sistem operasi merupakan kumpulan proses dengan proses-proses dikategorikan sebagai server dan client, yaitu :
  • Server, adalah proses yang menyediakan layanan.
  • Client, adalah proses yang memerlukan/meminta layanan.
  • Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai dengan percakapan client. Kode dapat diangkat ke level tinggi, sehingga kernel dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemaka. Kernel hanya mengatur komunikasi antara client dan server. Kernel yang ini popular dengan sebutan mikrokernel.
  • Permintaan pelayanan, seperti membaca sebuah blok file, sebuah user process (disebut client process) mengirimkan permintaan kepada sebuah server process, yang kemudian bekerja dan memberikan jawaban balik.
  • Keuntungan : kemampuan diaptasi untuk digunakan dalam distributed system.

Kelemahan :
  • Layanan dilakukan lambat karena harus melalui pertukaran pesan.
  • Pertukaran pesan dapat menjadi bottleneck.
  • Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses pemakai).

Kesulitan ini diatasi dengan :
  • Proses server kritis tetap di kernel, yaitu proses yang biasanya berhubungan dengan perangkat keras.
  • Mekanisme ke kernel seminimal mungkin,sehingga pengaksesan ruang pemakai dapat dilakukan dengan cepat. Untuk sistem-sistem besar dengan banyak server dikehendaki supaya client transparan dalam meminta layanan sehingga tidak menyulitkan pemogram

Keunggulan :
  • Pengembangan dapat dilakukan secara modular.
  • Kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu proses) tidak merusak subsistem-subsistem lain, sehingga tidak mengakibatkan satu sistem mati secara keseluruhan.
  • Mudah diadaptasi untuk sistem tersebar.


Contoh :
Windows 2000 Server, Linux.

5. Sistem Berorientasi Objek
Sisten operasi merealisasikan layanan sebagai kumpulan proses disebut sistem operasi bermodel proses. Pendekatan lain implementasi layanan adalah sebagai objek-objek. Sistem operasu yang distrukturkan menggunakan objek disebut sistem operasi berorientasi objek. Pendekatan ini dimaksudkan untuk mengadopsi keunggulan teknologi berorientasi objek.
Pada sistem yang berorientasi objek, layanan diimplementasikan sebagai kumpulan objek. Objek mengkapsulkan struktur data dan sekumpulan operasi pada struktur data itu. Tiap objek diberi tipe yang menandadi properti objek seperti proses, direktori, berkas, dan sebagainya. Dengan memanggil operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses dan dimodifikasi.
Model ini sungguh terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan.

Contoh : 
Eden, choices, x-kernel, medusa, clouds, amoeba, muse, dan sebagainya.

Widyatama Blog Contest



Tugas Statistika

Label: