Rabu, 26 September 2018

Pertemuan Ketiga: "Pengenalan Incremental Model"


Incremental model adalah model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap. dilain pihak ada mengartikan model incremental sebagai  perbaikan dari  Model Waterfall dan sebagai standar pendekatan topdown. Layaknya Model Waterfall, model ini pun juga memiliki tahapan tahapan untuk perancangan perangkat lunaknya, yaitu:

  1. Requirement, Requirment adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan.
  2. Specification, Specificationadalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
  3. Architecture Design, adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
  4. Code setelah melakukan proses desain selanjutnya ada pengkodean.
  5. Test merupakan tahap pengujian dalam model ini.
 

gambar 1.2 desain pemodelan Incremental

Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak harus menunggu modul pertama selesai hingga dikirim ke user. Beberapa Kelebihan Dari Mode Incremental atara lain :
  1. Merupakan model dengan manajemen yang sederhana.
  2. Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
  3. Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada increment sistem yang paling bawah.
  4. Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal.
  5. Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem.
  6. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.
Kelemahannya adalah :
  1. kemungkinan tiap bagian tidak dapat diintegrasikan.
  2. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung.
  3. Harus Open Architecture.
  4. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.

Kamis, 13 September 2018

Pertemuan Kedua: Materi Pengenalan Rekayasa Perangkat Lunak



A.  Faktor-Faktor Yang Melatarbelakangi Munculnya Rekayasa Perangkat Lunak:
  • Ketidakmampuan organisasi memprediksi waktu,usaha dan biaya untuk membangun perangkat lunak.
  • Perubahan nisbah atau rasio biaya perangkat keras terhadap harga perangkat lunak.
  • Kemajuan pesat perangkatt lunak.
  • 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.
B.  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.
  • Penyebab krisis atau penderitaan Perangkat lunak dapat ditelusuri dengan sebuah mitologi yang muncul selama masa sejarah awal erkembangan perangkat lunak.
  • Mitos perangkat lunak ini berbicara atas salah informasi dan keraguan. Masa sekarang kebanyakan kaum profesional memiliki banyak pengetahuan mengetahui berbagai mitos di bidang ilmu yang digelutinya (sikap yang salah yang menyebabkan masalah yang serius bagi manajer serta masyarakat teknis). Hal ini terlihat berbagai sisi pandang dari pihak Manajer/Sponsor, Pelanggan atau Pengembang/Praktisi. 
C.  Rekayasa Perangkat Lunak

Perangkat Lunak Merupakan program-program komputer dan dokumentasi yang berkaitan. Produk perangkat lunak dibuat untuk pelanggan tertentu ataupun untuk pasar umum terdiri dari:
>Generik: dibuat untuk dijual ke suatu kumpulan pengguna yang berbeda,
>Bespoke (custom): dibuat untuk suatu pengguna tunggal sesuai dengan spesifikasinya. 

Rekayasa perangkat lunak berasal dari 2 kata yaitu Software(Perangkat Lunak) dan Engineering (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 tersedia, Rekayasa Perangkat Lunak adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek dan juga Rekayasa Perangkat Lunak (RPL) juga merupakan pendekatan sistematis dan matematis untuk membangun, memelihara dan mengenyahkan perangkat lunak. Dari cara pandang lain, RPL adalah pendekatan sistematis untuk merekayasa perangkat lunak yang handal/bermutu, tepat waktu dan dengan biaya yang optimal.

D.  Mutu Perangkat Lunak


Terdapat 3 pihak yang mempengaruhi mutu perangkat lunak yaitu:

a.  Sponsor
Seseorang atau organisasi yang membiayai/membayar selama pengembangan atau perantaraan sistem software dan biasanya mempunyai respon terhadap pengembangan sistem software itu sendiri dengan melibatkan perhitungan biaya yang optimal.

b.  User
Setiap orang yang secara langsung berinteraksi terhadap eksekusi software, yang secara langsung memberi input ke komputer dan menggunakan/menikmati output dari komputer.

c.  Developer

Seseorang atau organisasi yang memberikan modifikasi dan memelihara terhadap error serta mengembangkan sistem software tersebut.

E.  Kategori Perangkat Lunak

Kategori Perangkat lunak secara umum dapat dikelompokkan sebagai berikut:

  1. Perangkat Lunak Sistem, Sekumpulan program yang ditulis untuk melayani program-program yang lain. Seperti kompiler, editor dan utilitas pengatur file.
  2. Perangkat Lunak Real-Time, program-program yang memonitor, menganalisi, mengontrol kejadian dunia nyata pada saat terjadinya  (real-time event).
  3. Perangkat Lunak Bisnis, memroses informasi bisnis spt payroll, inventory dll.
  4. Perangkat Lunak Teknik dan Ilmu Pengetahuan, ditandai dengan penggunaan algoritma number crunching.
  5. Embedded Software, produk yang ada dalam read-only memory dan dipakai untuk mengontrol hasil dan sistem untuk keperluan konsumen dan pasar industri. 
  6. Perangkat Lunak Komputer Personal, sesuai kebutuhan personal spt pengolah kata,angka dan manajamen database.
  7. Perangkat Lunak Kecerdasan Buatan, menggunakan algoritma non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara langsung.
F.  Karakteristik Perangkat Lunak 

Dalam Buku Software Engineering Ian Sommerville, Perangkat Lunak mempunyai Karakteristik sebagai berikut:
  1. Maintanability (Dapat Dirawat),Perangkat Lunak harus dapat memenuhi perubahan kebutuhan.
  2. Dependability, Perangkat Lunak harus dapat dipercaya. 
  3. Efisiensi, Perangkat Lunak harus efisien dalam penggunaan resource.
  4. Usability, Perangkat Lunak harus dapat digunakan sesuai dengan yang direncanakan.
Suatu proses model adalah suatu representasi abstrak suatu model. Proses model menampilkan suatu deskripsi suatu proses dari beberapa perspektif tertentu, Proses Perangkat Lunak dapat dikatakan sebagai aktifitas yang saling terkait (koheren) untuk menspesifikasikan, merancang, implementasi dan pengujian sistem perangkat lunak. 

G.  Karateristik Proses Perangkat Lunak

Karakteristik Proses Perangkat Lunak terdiri dari: 
  1. Understandability, membuat proses secara eksplisit didefinisikan dan bagaimana sehingga mudah untuk mengerti definisi proses. 
  2. Visibility, Aktifitas proses menghasilkan hasil yang jelas sehingga tahapan proses yang dilakukan terlihat.
  3. Supportability, Aktifitas Proses dapat didukung atas CASE tools.
  4. Acceptability, Penerimaan atas proses yang terdefinisi dan yang digunakan oleh Engineer selama pembangunan Produk Perangkat Lunak. 
  5. Reliability, Proses didesain dalam suatu metode untuk dihindarkan dari kesalahan.
  6. Robustness, Proses dapat meneruskan dalam masalah yang tidak diharapkan terjadi. 
  7. Maintainabiity, Proses yang merefleksi atas perubahan thd permintaan atau perbaikan proses yang diidentifikasi.
  8. Rapidity, bagaimana cepat dapat berjalan atas proses pengiriman atau implementasi sebuah sistem dari Spesifikasi yang ada sampai selesai.
H.  Daur Hidup Pembangunan Perangkat Lunak

Di dalam pengembangan rekayasa perangkat lunak biasanya dipandu dengan pemodelan dengan Daur Hidup Perangkat Lunak (Software Development Life Cycle). 
Tak ada standar sehingga bervariasi model proses u/ menggambarkan rekayasa daur hidup perangkat lunak namun tahap-tahap yang prinsipal terhadap pemetaan model proses kedalam aktifitas pengembangan yang fundamental adalah sebagai berikut:
  1. Requirement Analysis and definition.
  2. System and Software Design. 
  3. Implementation and unit testing. 
  4. Integration and system Testing 
  5. Operation and maintenance.
I.  Model Proses Perangkat Lunak 

Model proses perangkat lunak merupakan suatu representasi proses perangkat lunak yang disederhanakan, direpresentasikan dari prespektif khusus. Contoh prespektif proses:
  1. Perspektif Alur-kerja (workflow) - barisan kegiatan.
  2. Perspektif Alur Data (Data flow) – alur informasi. 
  3. Perspektif Peran/Aksi – siapa melakukan apa. 
Menurut Ian Somerville, Model proses secara umum terdiri dari: 
  • Pendekatan Model Air terjun (Water fall), Menempatkan semua aktifitas sesuai dengan tahapan pada model Waterfall dengan 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 bersasar suatu model sistem matematika yang ditransformasikan ke implementasi. 
  • Pengembangan Sstem berbasis Re-use (penggunaan ulang) komponen, sistem dibangun dari komponen yang sudah ada dengan fokus integrasi sistem. 
a.  Model Waterfall (Air Terjun)

Fase Model Air Terjun:
  • Analisis Kebutuhan dan pendefinisiannya.
  • Perancangan sistem dan Perangkat Lunak.
  • Implementasi dan unit testing.
  • Integrasi dan pengujian sistem.
  • Pengoperasian dan perawatan 
Masalah pada Model Air Terjun:
  • Partisi projek ke stages yang berbeda tidak fleksibel. 
  • Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna.
  • Oleh sebab itu model ini hanya cocok digunakan apabila kebutuhan pengguna sudah dimengerti dengan baik.


Pertemuan Ketujuh: "Tugas Critical Path Method"

Pengertian Critical Path Method A.  Pengertian Critical Path Method Critical Path Method (CPM) adalah teknik menganalisis jaringan keg...