440 likes | 827 Views
Proses Perangkat Lunak. Sasaran. Menjelaskan apa yang dimaksud model proses M enjelaskan tiga model proses generik M enjelaskan kerangka model proses. Cakupan Topik. Model proses perangkat lunak Iterasi proses Aktivitas-aktivitas proses Rational Unified Process
E N D
Sasaran • Menjelaskan apa yang dimaksud model proses • Menjelaskan tiga model proses generik • Menjelaskan kerangka model proses
Cakupan Topik • Model proses perangkat lunak • Iterasi proses • Aktivitas-aktivitas proses • Rational Unified Process • Computer Aided Software Engineering
Proses Perangkat Lunak • Serangkaian proses terstruktur yang dibutuhkan untuk mengembangkan sistem • Spesifikasi • Perancangan • Validasi • Evolusi • Model proses perangkat lunak adalah gambaran abstrak dari suatu proses. Model ini menyajikan deskripsi suatu proses dari beberapa sudut pandang tertentu.
Model Proses PL Generik • Model waterfall • Memisahkan dan membedakan fase-fase spesifikasi dan pengembangan. • Pengembangan evolusioner • Spesifikasi, pengembangan, dan validasi bercampur aduk • RPL berbasis komponen • Sistem dirakit dari komponen yang ada. • Ada banyak varian dari model ini misalnya pengembangan formal yang menggunakan proses mirip waterfall tapi spesifikasinya adalah spesifikasi formal yang disesuaikan melalui beberapa tahapan sampai menjadi rancangan yang bisa diimplementasi.
Fase Model Waterfall • Analisis dan definisi kebutuhan • Perancangan sistem dan perangkat lunak • Implementasi dan pengujian unit • Operasi dan pemeliharaan • Masalah utama dari model ini adalah kesulitan untuk mengakomodasi perubahan setelah proses berjalan. Satu fase harus selesai sebelum pindah ke fase selanjutnya.
Masalah Model Waterfall • Pembagian proyek yang tidak fleksibel menjadi tahapan yang berbeda membuatnya susah untuk menanggapi kebutuhan pelanggan yang berubah. • Oleh sebab itu, model ini hanya cocok jika kebutuhan sudah dimengerti dengan baik dan perubahan terbatas selama proses perancangan. • Tidak banyak bisnis yang memiliki kebutuhan yang stabil. • Model ini kebanyakan digunakan untuk proyek rekayasa sistem besar yang sistemnya dikembangkan pada beberapa tempat.
Pengembangan Evolusioner • Pengembangan eksploitori • Tujuannya adalah bekerja dengan pelanggan dan mengevolusi sistem akhir dari spesifikasi kerangka awal. Harus dimulai dengan kebutuhan yang telah dimengerti dengan baik dan menambahkan fitur ketika diusulkan pelanggan. • Throw-away prototyping • Tujuannya adalah mengerti kebutuhan sistem. Harus dimulai dengan kebutuhan yang tidak dimengerti dengan baik untuk menjelaskan apa yang benar-benar dibutuhkan.
Pengembangan Evolusioner • Masalah • Kurangnya visibilitas proses • Sistem seringkali berstruktur buruk • Keahlian khusus mungkin dibutuhkan. • Penerapan • Untuk sistem interaktif ukuran sedang • Untuk bagian dari sistem besar (misalnya antarmuka pengguna) • Untuk sistem umur pendek
RPL Berbasis Komponen • Berdasarkan pada penggunaan ulang sistematis di mana sistem diintegrasikan dari komponen-komponen yang ada atau sistem COTS. • Tahapan proses • Analisis komponen • Modifikasi kebutuhan • Perancangan sistem dengan penggunaan ulang • Pengembangan dan itegrasi • Pendekatan ini semakin banyak digunakan ketika standar komponen muncul.
Iterasi Proses • Kebutuhan sistem SELALU berevolusi sepanjang proyek sehingga iterasi proses dimana tahapan lebih awal dikerja ulang selalu menjadi bagian proses untu sistem besar. • Iterasi dapat diterapkan pada model proses generik manapun. • Dua pendekatan (yang berhubungan) • Pengembangan meningkat; • Pengembangan spiral.
Pengembangan Meningkat • Pengembangan dan penyerahan dibagi menjadi beberapa bagian yang meningkat dengan tiap peningkatan menghasilkan bagian fungsionalitas yang dibutuhkan. • Kebutuhan pengguna diprioritaskan dan kebutuhan prioritas tertinggi dimasukkan dalam bagian awal. • Sekali pengembangan bagian dimulai, kebutuhan dibekukan meskipun untuk peningkatan selanjutnya dapat terus berevolusi.
Kelebihan Pengembangan Meningkat • Nilai pelanggang dapat dihasilkan dengan tiap peningkatan sehingga fungsionalitas sistem tersedia lebih awal. • Bagian awal berlaku sebagai purwarupa untuk membantu memperoleh kebutuhan untuk peningkatan selanjutnya. • Tingkat kegagalan keseluruhan proyek yang lebih kecil • Layanan sistem prioritas tertinggi cenderung untuk menerima pengujian terbesar.
Pemrograman Ekstrim • Pendekatan pengembangan berdasarkan pada pengembangan dan penyampaian bagian yang sangat kecil dari fungsionalitas. • Bersandarkan pada peningkatan kode konstan, keterlibatan pengguna dalam tim pengembangan dan pemrograman.
Pengembangan Spiral • Proses diwakili sebagai spiral dari pada sebagai urutan aktivitas. • Tiap putaran dalam spiral mewakili satu fase dalam proses. • Tidak ada fase tetap seperti spesifikasi atau perancangan – putaran dalam spiral dipilih berdasarkan apa yang dibutuhkan. • Resiko dinilai secara eksplisit dan diselesaikan sepanjang proses.
Sektor Model Spiral • Penentuan tujuan • Tujuan spesifik untuk fase diidentifikasi • Penilaian dan pengurangan resiko • Resiko dinilai dan dilakukan aktivitas untuk mengurangi resiko utama. • Pengembangan dan validasi • Model pengembangan untuk sistem yang dipilih dapat berupa model generik manapun. • Perencanaan • Proyek diulas dan fase selanjutnya dari spiral direncanakan.
Aktivitas Proses • Spesifikasi perangkat lunak • Perancangan dan implementasi perangkat lunak • Validasi perangkat lunak • Evolusi perangkat lunak
Spesifikasi Perangkat Lunak • Proses penentuan layanan apa yang dibutuhkan dan batasan pada operasi dan pengembangan sistem. • Proses rekayasa kebutuhan • Studi kelayakan; • Elisitasi dan analisis kebutuhan; • Spesifikasi kebutuhan; • Validasi kebutuhan.
Perancangan dan Implementasi • Proses mengkonversi spesifikasi sistem menjadi sistem yang dapat dijalankan. • Perancangan perangkat lunak • Perancangan struktur perangkat lunak yang merealisasikan spesifikasi; • Implementasi • Menerjemahkan struktur ini ke dalam program yang dapat dijalankan; • Aktivitas perancangan dan implementasi berhubungan dekat dan mungkin saling tumpang tindih.
Aktivitas Proses Perancangan • Perancangan arsitektur • Spesifikasi abstrak • Perancangan antarmuka • Perancangan komponen • Perancangan struktur data • Perancangan algoritma
Metode Terstruktur • Pendekatan sistematis untuk mengembangkan perancangan perangkat lunak. • Rancangan biasanya didokumentasikan sebagai satu set model grafis. • Model-model • Model objek; • Model urutan; • Model perubahan status; • Model struktural; • Model aliran data.
Pemrograman dan Debugging • Penerjemahan suatu rancangan menjadi program dan menghilangkan kesalahan dari program tersebut. • Pemrograman merupakan aktivitas perorangan – tidak ada proses pemrograman. • Para pemrogram melaksanakan pengujian program untuk menemukan kegagalan dalam program dan menghilangkan kegagalan ini dalam proses debugging.
Validasi Perangkat Lunak • Verifikasi dan validasi (V & V) ditujukan untuk menunjukkan bahwa sistem sesuai dengan spesifikasinya dan memenuhi kebutuhan pelanggan sistem. • Melibatkan proses pengecekan dan pengulasan serta pengujian sistem. • Pengujian sistem melibatkan eksekusi sistem dengan kasus pengujian yang dikembangkan dari spesifikasi data sebenarnya yang akan diproses oleh sistem.
Tahapan Pengujian • Pengujian komponen atau unit • Komponen secara terpisah diuji; • Komponen mungkin berupa fungsi atau objek atau pengelompokan koheren dari entitas ini. • Pengujian sistem • Pengujian sistem sebagai keseluruhan. Pengujian sifat munculan merupakan hal yang penting. • Pengujian penerimaan • Pengujian dengan data pelanggan untuk memeriksa bahwa sistem memenuhi kebutuhan pelanggan.
Evolusi Perangkat Lunak • Perangkat lunak pada dasarnya fleksibel dan dapat berubah. • Karena perubahan kebutuhan melalui situasi bisnis yang berubah, perangkat lunak yang mendukung bisnis harus juga berevolusi dan berubah. • Meskipun telah ada batas antara pengembangan dan evolusi (pemeliharaan), ini menjadi semakin tidak relevan karena semakin sedikit sistem yang benar-benar baru.
RUP • Model proses modern dikembangkan dari pengerjaan UML dan proses yang berkaitan. • Normalnya dideskripsikan dari 3 sudut pandang • Sudut pandang dinamis yang menunjukkan fase-fase • Sudut pandang statis yang menunjukkan aktivitas- aktivitas proses • Sudut pandang praktek yang menganjurkan praktek yang baik.
Fase RUP • Permulaan • Membuat kasus bisnis untuk sistem. • Perluasan • Mengembangkan pemahaman dari ranah masalah dan arsitektur sistem. • Konstruksi • Perancangan sistem, pemrograman, dan pengujian. • Transisi • Memasang sistem padal lingkungan operasinya.
Praktek Yang Baik RUP • Mengembangkan sistem secara iteratif • Mengelola kebutuhan • Menggunakan arsitektur berbasis komponen • Secara visual memodelkan perangkat lunak • Memverifikasi mutu perangkat lunak • Mengendalikan perubahan terhadap perangkat lunak
CASE • Computer-aided software engineering (CASE) adalah perangkat lunak yang mendukung proses pengembangan dan evolusi perangkat lunak. • Otomasi aktivitas • Penyunting grafis untuk pengembangan model sistem; • Kamus data untuk mengelola entitas rancangan; • Pembangun antarmuka pengguna grafis bagi konstruksi antarmuka pengguna; • Debugger untuk mendukung pencarian kegagalan program; • Penertemah terotomasi untuk membangkitkan versi baru program.
Hal-hal Penting • Proses perangkat lunak adalah aktivitas yang terlibat dalam memproduksi dan mengevolusi sistem perangakat lunak. • Model proses adalah gambaran abstrak dari proses-proses ini. • Aktivitas umumnya adalah spesifikasi, perancangan dan implementasi, validasi dan evolusi. • Model proses generic menggambarkan organisasi proses perangkat lunak. Contohnya adalah model waterfall, pengembangan evolusioner, dan RPL berbasis komponen. • Model proses iteratif menggambarkan proses perangkat lunak sebagai siklus aktivitas.
Hal-hal Penting • Rekayasa kebutuhan merupakan proses pengembangan spesifikasi perangkat lunak. • Proses perancangan dan implementasi mengubah spesifikasi menjadi program yang dapat dijalankan. • Validasi melibatkan pemeriksaan bahwa sistem memenuhi spesifikasinya dan keperluan pengguna.