Rabu, 13 Maret 2013

e. MODEL SPIRAL

Model spiral (spiral model) yang pada awalnya diusulkan oleh Boehm adalah model proses perangkat lunak yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Di dalam model spiral, perangkat lunak dikembangkan di dalam suatu deretan pertambahan.
Selama awal iterasi, rilis inkremental bisa merupakan sebuah model atau prototipe kertas. Selama iterasi berikutnya, sedikit demi sedikit dihasilkan versi sistem rekayasa yang lebih lengkap.
    Model spiral dibagi menjadi sejumlah aktifitas kerangka kerja, disebut juga wilayah tugas, diantara tiga sampai enam wilayah tugas :
  • Komunikasi pelanggan, tugas-tugas yang dibutuhkan utnuk membangun
    komunikasi yang efektif diantara pengembang dan pelanggan.
  • Perencanaan, tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-
    sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan.
  • Analisis resiko, tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko, baik
    manajemen maupun teknis.
  • Perekayasaan, tugas-tugas yang dibutuhkan untuk membangun satu atau lebih
    representasi dari aplikasi tersebut.
  • Konstruksi dan peluncuran, tugas-tugas yang dibutuhkan untuk mengkonstruksi,
    menguji, memasang (instal) dan memberikan pelayanan kepada pemakai
    (contohnya pelatihan dan dokumentasi).
  • Evaluasi pelanggan, tugas-tugas yang dibutuhkan untuk memperoleh umpan
    balik dari pelanggan dengan didasarkan pada evaluasi representasi perangkat
    lunak, yang dibuat selama masa perekayasaan, dan diimplementasikan selama
    pemasangan.
Model spiral menjadi sebuah pendekatan yang realistis bagi perkembangan system dan perangkat lunak skala besar. Karena perangkat lunak terus bekerja selama proses bergerak, pengembang dan pemakai memahami dan bereaksi lebih baik terhadap resiko dari setiap tingkat evolusi. Model spiral menggunakan prototipe sebagai mekanisme pengurangan resiko. Tetapi yang lebih penting lagi,
model spiral memungkinkan pengembang menggunakan pendekatan prototipe pada setiap keadaan di dalam evolusi produk. Model spiral menjaga pendekatan langkah demi langkah secara sistematik seperti yang diusulkan oleh siklus kehidupan klasik, tetapi memasukkannya ke dalam kerangka kerja iterative yang secara realistis merefleksikan dunia nyata.
d. MODEL PROSES INCREMENTAL

Pada tahun 1971 Harlan Mills (IBM) mengusulkan semestinya perkembangansoftware lebih tepat daripada membuatnya. Kita mulai membangun system sangat sederhanayang mendukung, memiliki fungsi sederhana, kemudian menambahkan dan mengembangkansoftware tersebut. Semestinya software pengembangan seperti bunga atau pohon. Nama lainperangkat lunak tersebut adalah incremental model

Model incremental (Incremental waterfall model) merupakan perbaikan dari modelwaterfall dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalahmembangun software secara meningkat (increment) berdasarkan kemampuan fungsional.Model incremental ini diaplikasikan pada sistem pakar dengan penambahan rules yangmengakibatkan bertambahnya kemampuan fungsional sistem. Model incremental merupakanmodel continous rapid prototype dengan durasi yang diperpanjang hingga akhir prosespengembangan. Pada model prototipe biasa, prototipe hanya dibuat pada tahap awal untuk mendapatkan kebutuhan user.Model Incremental dalam rekayasa perangkat lunak, menerapkan rekayasa perangkatlunak perbagian, hingga menghasilkan perangkat lunak yang lengkap. Proses membangunberhenti jika produk telah mencapai seluruh fungsi yang diharapkan.Pada awal tahapan dilakukan penentuan kebutuhan dan spesifikasi. Kemudian dilakukanperancangan arsitektur software yang terbuka, agar dapat diterapkan pembangunan per-bagian pada tahapan selanjutnya.

Tahapan Incremental Model

1.Requirement
2.Specification
3.Architecture Design
Incremental model menerapkan rangkaian linear. Setiap rangkaian linear mendelivery increment dari software. Sebagai contoh, software word-processing, dibangun menggunakan incremental model, mendelivery fungsi dasar file management, editing, dan fungsi document production pada increment pertama. Kemampuan editing, dan fungsi document production yang lebih baik pada increment kedua, checking dan grammar spelling pada increment ketiga. Proses akan diulangi sampai produk yang lengkap telah dihasilkan. Jika menggunakan Incremental model, increment yang pertama merupakan inti product. Incremental model fokus pada pendeliverian opertional product pada tiap increment.
Kelebihan Model Incremental

1.     Penambahan kemampuan fungsional akan lebih mudah diuji, diverifikasi, dan divalidasi dandapat menurunkan biaya yang dikeluarkan untuk memperbaiki system.
2.     Nilai penggunaan dapat ditentukan pada setiap increament sehingga fungsionalitas sistemdisediakan lebih awal
3.           Increment awal berupa prototype untuk membantu memahami kebutuhan pada incrementberikutnya.
4.     Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem.
5.     Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji

Kekurangan Model Incremental

1.     Tiap bagian tidak dapat diintegrasikan
2.     Setiap tambahan yang dibangun harus dimasukkan kedalam struktur yang ada tanpamenurunkan kualitas dari yang telah dibangun system tersebut sampai saat ini.
3.     Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanju
c. MODEL RAD ( Rapid Aplication Development )

RAD merupakan incremental software process yang menekankan pada siklus development yang singkat. Model ini mengunakan pembuatan berdasarkan komponen, menekankan penggunaan kembali code dan code generation. Jika requirement telah diketahui dengan pasti dan scope project mendesak, RAD proses memungkinkan team development untuk sistem fungsional keseluruhan dalam periode waktu yang sangat singkat (misalnya 60-90 hari). RAD model dapat digunakan untuk project yang dapat dipisah, misalnya ada 1 project besar, dibagi 3, dikerjakan oleh team yang berbeda-beda (dari analisis sampai testing) kemudian diintegrasikan. Jika menggunkan RAD model, kualitas team harus solid dan punya disiplin tinggi. Kekurangan : (1). untuk project yang besar dan membutuhkan sumber daya manusia yang cukup. (2) Jika developer dan customer berkomitmen untuk menyelesaikan project dalam waktu yang singkat, maka project akan gagal. (3). Jika pemodulan project tidak tepat, maka pembangunan komponen untuk RAD akan bermasalah.
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user dan selanjutnya disingkirkan.[1] Working model digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem final. 
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
1.   Component based construction ( pemrograman berbasis komponen bukan prosedural).
2.   Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
3.   Pembangkitan kode program otomatis/semi otomatis.
4.   Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
Jika keutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.

KELEMAHAN
Beberapa hal (kelebhan dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :
1.   Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
2.   Model ini cocok untuk proyek dengan skala besar.
3.   Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
4.   kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
5.   sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
6.   penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
7.   proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
8.   risiko teknis yang tinggi juga kurang cocok untuk model ini.

KELEBIHAN
1.     Fleksibilitas yang lebih besar
2.     Sangat mengurangi manual coding
3.     Peningkatan keterlibatan pengguna
4.     Mungkin lebih sedikit cacat
5.     Mungkin dikurangi biaya
6.     Singkat siklus pengembangan

LANJUTAN PEMBAHASAN

b. Model Prototyping 

Prototype adalah sebuah Javascript Framework yang dibuat untuk lebih memudahkan proses dalam membangun aplikasi berbasis web.
Paradigma dari metode prototyping adalah sistem informasi yang menggambarkan hal-hal penting dari sistem informasi yang akan datang. Prototipe sistem informasi bukanlah merupakan sesuatu yang lengkap, tetapi sesuatu yang harus dimodifikasi kembali, dikembangkan, ditambahkan atau digabungkan dengan sistem informasi yang lain bila perlu.
Model ini digunakan jika customer tidak menjelaskan detail kebutuhan input, proses atau output, sehingga developer tidak dapat memastikan algoritma yang akan dipakai, kesesuaian sistem operasi atau bentuk user interface. Prototyping model dimulai dengan mendengarkan kebutuhan user. Engineer dan customer bertemu dan menentukan semua tujuan software dan menentukan kebutuhan-kebutuhan. Developer kemudian membangun prototype dan user menguji coba prototype untuk memberikan feedback. Prototype dapat dijalankan sebagai sistem yang pertama. User bisa mendapatkan pengertian dari sistem yang sesungguhnya dan developer dapat membangun sistem dengan segera. Kekurangan : kontrak akan merugikan, dirugikan oleh keinginan customer yang meminta penambahan-penambahan. Kelebihan : akan mengurangi waktu pembuatan program, kebutuhan customer akan lebih terpenuhi dengan baik, jika kebutuhannya belum jelas, maka dengan prototype akan lebih menguntungkan.

  • Empat langkah yang menjadi karakteristik metode Prototyping yaitu
1.     Pemilihan fungsi 
=> Mengacu pada pemilahan fungsi yang harus ditampilkan oleh prototyping. Pemilahan harus selalu  dilakukan berdasarkan pada tugas-tugas yang relevan yang sesuai dengan contoh kasus yang akan diperagakan
            2. Penyusunan Sistem Informasi
            => Bertujuan untuk memenuhi permintaan akan tersedianya prototype
            3. Evaluasi
           4. Penggunaan Selanjutnya
Tahapan-tahapan Prototyping

1.    Pengumpulan kebutuhan : Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
2.    Membangun prototyping : Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output)
3.    Evaluasi prototyping : Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangu langkah 1, 2 , dan 3.
4.   Mengkodekan sistem : Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai
5.    Menguji sistem : Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain
6.    Evaluasi Sistem : Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
7.    Menggunakan sistem : Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Jenis-jenis Prototyping

  • Feasibility prototyping – digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.
  • Requirement prototyping – digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
  • Desain Prototyping -  digunakan untuk mendorong perancangan system informasi yang akan digunakan.
  • Implementation prototyping – merupakan lanjytan dari rancangan protipe, prototype ini langsung disusun sebagai suatu system informasi yang akan digunakan.


Teknik-teknik Prototyping meliputi 

1. Perancangan Mode
2. Perancangan Dialog
3. Simulasi

Keunggulan dan Kelemahan Prototyping

Keunggulan Prototyping :
1.     End user dapat berpartisipasi aktif
2.     Penentuan kebutuhan lebih mudah diwujudkan
3.     Mempersingkat waktu pengembangan SI
1.     Adanya komunikasi yang baik antara pengembang dan pelanggan
2.     Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
3.     Pelanggan berperan aktif dalam pengembangan sistem
4.     Lebih menghemat waktu dalam pengembangan sistem
5.     Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.

Kelemahan Prototyping :
1.     Proses analisis dan perancangan terlalu singkat
2.     Mengesampingkan alternatif pemecahan masalah
3.     Bisanya kurang fleksible dalam mengahadapi perubahan
4.     Prototype yang dihasilkan tidak selamanya mudah dirubah
5.     Prototype terlalu cepat selesai

Add caption
1. Ada beberapa model proses yang dapat digunakan untuk menggembangkan perangkat lunak. 
    Jelaskan apa yang di maksud dengan model-model proses berikut : 
    a. Waterfall 
    b. Prototyping 
    c. RAD ( Rapid Application Development ) 
    d. Incremental 
    e. Spiral 

PEMBAHASAN : 
a.
Model sekuensial linear disebut juga model waterfall atau air terjun.  Model ini peertama kali muncul pada tahun1970 yang diperkenalkan oleh WinstonW.Royce. walaupun sudah dikenal dalam waktu yang lama dan sering di anggap kuno tetapi model ini paling banyak dipakai dalam industri perangkat lunak.
Model sekuensial linear berisi rangkaian proses yang disajikan secara terpisah, yaitu analisis kebutuhan,perancangan,pemgkodean,pemgujian, seta implementasi dan pemeliharaan. Setelah setiap proses dilakukan, proses tersebut ditutup dan pengembangan dilanjutkan pada proses berikutnya.

Untuk mengatasi kekurangna-kekurangan tersebut, dibuatlah model sekuensial linear yang dimodifikasis. Keunggulan model ini dibandingkan model sekuensial linear biasa adalah model ini memungkinkan tahap-tahap yang telah dilalui ditinjau kembali sehinnga jika ternyata terjadi  kesalahan atau kekurangan dalam menentukan kebutuhan di tahap awal, bisa dilakukan perbaikan atau peambahan lagi.
Model sekuensial linier melingkupi aktivitas – aktivitas sebagai berikut :

1   Rekayasa dan pemodelan sistem/informasi
Karena sistem merupakan bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software harus berhubungan dengan elemen-elemen yang lain seperti software, manusia, dan database. Rekayasa dan anasisis system menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta disain tingkat puncak. Rekayasa informasi mancakup juga pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis.

2    Analisis kebutuhan Software
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khusunya pada software. Untuk memahami sifat program yang dibangun, analis harus memahami domain informasi, tingkah laku, unjuk kerja, dan interface yang diperlukan. Kebutuhan baik untuk sistem maupun software didokumentasikan dan dilihat lagi dengan pelanggan.

3   Desain
Desain software sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Proses desain menterjemahkan syarat/kebutuhan ke dalam sebuah representasi software yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi software.

4   Generasi Kode
Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.

5   Pengujian
Sekali program dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal software, memastikan bahwa semua pernyataan sudah 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.

6   Pemeliharaan
Software akan mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah software yangdilekatkan). Perubahan akan terjadi karena kesalahan – kesalahan ditentukan, karena software harus disesuaikan untuk mengakomodasi perubahan – perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan software mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.

KEKURANGAN MODEL SEKUENSIAL LINEAR

Masalah yang kadang terjadi ketika model sekuensial linier diaplikasikan adalah :
 
1.  Jarang sekali proyek nyata mengikuti aliran sekuensial yang dianjurkan oleh model. Meskipun model linier bisa mengakomodasi iterasi, model ini melakukannya dengan cara tidak langsung. Sebagai hasilnya, perubahan – perubahan dapat menyebabkan keraguan pada saat tim proyek berjalan.
 
2.  Kadang – kadang sulit bagi pelanggan untuk menyatakan semua kebutuhannya secara eksplisit. Model linier sekuensial memerlukan halini dan mengalami kesulitan untuk mengakomodasi ketidakpastiannatural yang ada pada bagian awal beberapa proyek.
 
3.  Pelanggan harus bersifat sabar. Sebuah versi kerja dari program – program kerja itu tidak akan diperoleh sampai akhir waktu proyek dilalui. Sebuah kesalahan besar, jika tidak terdeteksi sampai program yang bekerja tersebut dikaji ulang, bisa menjadi petaka.
 
4.  Pengembang sering melakukan penundan yang tidak perlu. Sifat alami dari siklus kehidupan klasik membawa kepada blocking state di mana banyak anggota tim proyek harus menunggu tim yang lain untuk melengkapi tugas yang saling memiliki ketergantungan. Blocking state cenderung menjadi lebih lazim pada awal dan akhir sebuah proses sekuensial linier.


KELEBIHAN MODEL SEKUENSIL LINIER

1.  software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
 
     2. Document pengembangan sistem sangat terorganisir, karena setiap fase harus         terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.

FASE MODEL AIR TERJUN (waterfall ) :
1. Analisis kebutuhan dan pendefinisiannya.
2. Perancangan sistem dan perangkat lunak.
3. Implementasi dan unit testing
4. Integrasi dan pengujian sistem
5. Pengoperasian dan perawatan.
Proses kembali ke state sebelumnya untuk mengantisipasi perubahan setelah proses menuju ke suatu state dibawahnya adalah sangat sulit.

Kamis, 07 Maret 2013

perangkat lunak


Kualitas Perangkat Lunak 
 
Ukuran kualitas perangkat lunak dilihat dari atribut antara lain :
  1. Maintainability, yaitu tingkat kemudahan perangkat lunak tersebut dalam mengakomodasi perubahan-perubahan
  2. Dependability, ketidakbergantungan perangkat lunak dengan elemen-elemen sistem lainnya atau sistem secara keseluruhan.Artinya kegagalan elemen lain tidak mempengaruhi performansi perangkat lunak
  3. Efficiency, menyangkut waktu eksekusi
  4. Usability, yaitu atribut yang menunjukkan tingkat kemudahan pengoperasian perangkat lunak

Aplikasi Perangkat Lunak 
 
Pressman [PRE01] mendefinisikan aplikasi perangkat lunak sebagai berikut:
Perangkat lunak sistem
Suatu perangkat lunak yang berfungsi melayani perangkat lunak lain, seperti : kompilator, editor, sistem operasi, utilitas, da lain-lain.
 
  • Perangkat lunak Real time (waktu nyata)
Suatu perangkat lunak yang berfungsi mengendalikan, memonitor atau menganalisis kejadian (event) yang terjadi pada keadaan nyata.
Perangkat lunak ini mempunyai komponen sebagai
berikut :
• komponen pengumpul data : mengumpulkan & memformat informasi dari lingkungan eksternal
• komponen analisis: melakukan transformasi informasi yang dibutuhkan aplikasi
• komponen control/output: merespon lingkungan eksternal
• komponen pemonotoran : mengkoordinasi seluruh komponen sehingga respon real time yang diinginkan dapat tercapai. 

  • Perangkat lunak bisnis
Perangkat lunak yang mengakses satu atau lebih basisdata besar yang berisi informasi bisnis, sebagai contoh sistem payroll, sistem invetori, dan lain-lain.
 
  •  Perangkat lunak keteknikan dan keilmuan
Perangkat lunak ini banyak membantu memecahkan permasalahan di bidang astronomi, vulkanologi, 
automotive stress analysis, molecularbiology, automotive manufacturing, ComputerAided Design (CAD), dan lain-lain
ƒ
  • Embedded Software
embedd software Perangkat lunak yang ditanam pada suatu chip (EEPROM). Perangkat lunak ini terintegrasi
dengan perangkat keras dan berfungsi mengatur kinerja dari perangkat keras tersebut. 
Sebagai contoh :
microwave oven, telpon genggam, pengaturan avionik pesawat udara, dan lain-lain. 
Perangkat lunak Komputer personal (PC) Perangkat lunak yang dioperasikan di PC, seperti : pengolah kata, 
multimedia, DBMS. 
 
  • Perangkat lunak Kecerdasan Buatan
Perangkat lunak yang menerapkan algoritma nonnumerik untuk memecahkan permasalahan yang kompleks.
Contoh :
perangkat lunak kecerdasan buatan, sistem pakar, dan lain-lain. 
 
 
PROSES PERANGKAT LUNAK 
 
Proses perangkat lunak adalah sebuah kerangka kerja untuk membangun perangkat lunak yang 
berkualitas tinggi

dapat dilihat bahwa tujuan utama rekayasa perangkat lunak adalah pencapaian kualitas (“Quality Focus”).
Kualitas ini diterjemahkan ke dalam ukuran-ukuran(metrics), meliputi maintaiability, dependability,usability,
dan efificientcy yang sudah diterangkan diatas.
 
Proses : mendefinisikan kerangka kerja (frame work), sehingga pembangunan perangkat lunak dapat dilakukan 
secara sistematis.
 
Metode : mendefinisikan bagaimana perangkat lunak dibangun, meliputi metode-metode yang digunakan 
dalam melakukan analisis kebutuhan, perancangan, implementasi dan pengujian.
Sebagai contoh : metode terstruktur, metode berorientasi objek, dan lain-lain.
 
Alat Bantu : perangkat yang bersifat otomatis maupun semiotomatis yang berfungsi mendukung tiap tahap 
pembangunan perangkat lunak. 
Contoh : CASE, CAD, dan lain-lain. 
 
 
MODEL PROSES
 
Fungsi utama model proses pengembangan perangkat lunak adalah :
  • menentukan tahap-tahap yang diperlukan untuk pengembangan perangkat lunak.
  • ƒmenentukan urutan pelaksanaan dari tahap- tahap tersebut dalam rangka pengembangan perangkat lunak.
  • menentukan kriteria transisi/perpindahan dari satu tahap ke tahap berikutnya. 
 
a. Model Linier Sekuensi
al Gambar 2.6 Model LinierSekuensial [PRE01 ]

ANALYSIS ----->  DESIGN ------> CODE -------> TEST 


Analysis  : merupakan tahap untuk menganalisis hal-hal yang diperlukan dalam pelaksanaan perancangan (Design) pembangunan perangkat lunak . Hasil analisis didokumentasikan dan dikaji ulang oleh customer.

Perancangan (Design) : tahap ini merupakan tahap penerjemahan dari kebutuhan fungsional dan
implementasi data yang telah dianalisis ke dalam bentuk yang mudah untuk dimengerti oleh programmer.
 
Implementasi ( Code Generation ) : mengimplementasikan hasil rancangan ke dalam bahasa pengujian (Testing) pemrograman 
komputer yang telah ditentukan 
 
Pengujian (Testing) : Uji coba perangkat lunak yang terfokus pada logika internal dari perangkat lunak dan kesesuaian perangkat
lunak  yang dibangun dengan kebutuhan fungsional yang di definisikan.
 
Model proses ini sering disebut juga dengan model proses waterfall. Tiap tahap pada proses model ini diakhiri dengan proses 
dokumentasi. Oleh karena itu model ini juga sering disebut dengan model Document Driven Software Process.
 
b. Model Prototyping 
 
Tidak semua custumer mampu mendefinisikan kebutuhannya secara detail. Oleh karena itu diperlukan prototype untuk mengeksplorasi kebutuhan custumer. Dengan melihat prototype custumer dapat mengevaluasinya dan memberikan masukan - masukan pada pengem
bang sehingga prototype yang dibangun semakin mendekati kebutuhan yang sebenarnya. 
model ini sering di kenal sebagai  " Code Driven Software Process " dan merupakan salah satu proses perangkat lunak yang banyak  digunakan saat ini. Model prototyping banyak memanfaatkan 4GL dan Application Generator. 
Dibandingkan dengan metode linier sekuansial model ini memiliki produktivitas lebih baik namun kelengkapan  fungsi   dari sistem dan keterpaduan ( integrasi )sistem kurang baik. 

c. Model Spiral 

Model ini sering dikenal sebagai Risk Driven Software Process. Model ini sesuai untuk pengembangan proyek yang berskala besar 
dengan memperhatikan pengaruh resiko dari segi finansial maupun keamanan ( jiwa manusia ). 
Model ini merupakan kombinasi dari linier sekuansial. prototyping, dan Risk Analysisi. pada tiap  akhir tahap di buat dokumen hasil 
analisi resiko.