Minggu, 12 Juli 2020

TUGAS 14 - REKAYASA PERANGKAT LUNAK

IMPLEMENTASI dan PEMELIHARAAN 



1. IMPLEMENTASI PL 

• Perancangan dan implementasi PL adalah tahap dalam proses RPL dimana dikembangkan sistem PL yang dapat dieksekusi. 

• Implementasi adalah proses mewujudkan desain sebagai sebuah program. 

• RPL mencakup semua kegiatan yang terlibat dalam pengembangan PL dari persyaratan awal sistem hingga pemeliharaan dan pengelolaan sistem yang digunakan. 

• Implementasi dapat melibatkan pengembangan program atau menyesuaikan dan mengadaptasi sistem generik, off-the-shelf untuk memenuhi persyaratan khusus dari suatu organisasi.
Aspek implementasi yang sangat penting untuk RPL: 

1. Reuse
Sebagian besar PL modern dibangun dengan menggunakan kembali komponen atau sistem yang ada. 

2. Configuration Management 
Selama proses pengembangan, banyak versi yang berbeda dari setiap komponen PL. 

3. Host-Target Development
Produksi PL biasanya tidak dijalankan pada komputer yang sama dengan lingkungan pengembangan PL. Pengembangan pada satu komputer (sistem host) dan dijalankan pada komputer yang terpisah (sistem target).

A. Reuse 
Penggunaan ulang (reuse) PL dimungkinkan pada sejumlah level yang berbeda: 

1. Tingkat Abstraks. Pada tingkat ini, tidak menggunakan reuse software secara langsung tetapi menggunakan pengetahuan abstraksi dalam desain PL menggunakan pola desain dan pola arsitektur. 
2. Tingkat Objek. Pada tingkat ini, langsung menggunakan reuse objects dari library daripada menulis kode sendiri. 
3. Tingkat Komponen. Komponen adalah kumpulan objek dan kelas objek yang beroperasi bersama untuk menyediakan fungsi dan layanan terkait. Pada tingkat ini harus menyesuaikan dan memperluas komponen dengan menambahkan beberapa kode sendiri. 
4. Tingkat Sistem. Pada tingkat ini, menggunakan kembali seluruh sistem aplikasi. Biasanya melibatkan beberapa jenis konfigurasi sistem. Dapat dilakukan dengan menambahkan dan memodifikasi kode atau dengan menggunakan antarmuka konfigurasi sistem sendiri. Keuntungan menggunakan reuse software yang ada: 
a. Dapat mengembangkan sistem baru dengan lebih cepat 
b. Dengan risiko pengembangan yang lebih sedikit dan juga biaya yang lebih rendah 
c. Karena reuse software yang digunakan telah diuji dalam aplikasi lain, sehingga lebih dapat diandalkan daripada PL baru

Biaya yang terkait dengan penggunaan kembali: 
1. Biaya waktu yang dihabiskan dalam mencari PL untuk digunakan kembali dan menilai apakah sudah memenuhi kebutuhan atau tidak, dan menguji PL untuk memastikan bahwa dapat bekerja di lingkungan sistem. 
2. Biaya membeli PL yang dapat digunakan kembali. 
3. Biaya untuk adaptasi dan mengkonfigurasi komponen PL/sistem yang dapat digunakan kembali. 
4. Biaya untuk mengintegrasikan elemen reuse software yang dapat digunakan satu sama lain (jika menggunakan PL dari sumber yang berbeda) dan dengan kode baru yang telah dikembangkan. 

B. Manajemen Konfigurasi (Configuration Management) 
• Manajemen konfigurasi merupakan proses rekayasa sistem untuk menetapkan dan mempertahankan konsistensi dari kinerja produk, fungsional, dan atribut fisik dengan persyaratan, desain, dan informasi operasional sepanjang hidupnya 
• Tujuan dari manajemen konfigurasi adalah untuk mendukung proses integrasi sistem sehingga semua pengembang dapat mengakses kode dan dokumen dengan cara yang terkontrol, mencari tahu perubahan yang telah dibuat, dan mengkompilasi dan menghubungkan komponen untuk membuat sistem 
Tiga aktivitas dasar manajemen konfigurasi: 
1. Version Management, dukungan diberikan untuk melacak berbagai versi komponen PL, mencakup fasilitas untuk mengkoordinasikan pengembangan oleh beberapa programmer. 
2. Integrasi sistem, dukungan disediakan untuk membantu pengembang menentukan versi komponen yang digunakan untuk membuat setiap versi sistem. 
3. Pelacakan masalah, dukungan diberikan untuk memungkinkan user melaporkan bug dan masalah lain, dan memungkinkan semua pengembang untuk melihat siapa yang bekerja pada masalah ini dan memperbaikinya.

C. Host-Target Development 
• PL dikembangkan pada satu komputer (host), tetapi berjalan pada mesin yang terpisah (target). 
• Platform lebih dari sekedar perangkat keras, termasuk sistem operasi yang terinstal ditambah perangkat lunak pendukung lainnya seperti DBMS, platform pengembangan, dan lingkungan pengembangan interaktif. 
• Platform pengembangan dan eksekusi adalah sama, sehingga memungkinkan untuk mengembangkan PL dan mengujinya di mesin yang sama. Tetapi terkadang sering berbeda sehingga perlu memindahkan PL yang dikembangkan ke platform eksekusi untuk menguji atau menjalankan simulator pada mesin untuk pengembangan 

Platform pengembangan PL harus menyediakan berbagai alat untuk mendukung proses RPL, termasuk: 
1. Sebuah kompilator terintegrasi dan sistem pengeditan yang dirancang secara sintaks yang memungkinkan untuk membuat, mengedit, dan mengkompilasi kode. 
2. Sistem debug bahasa. 
3. Alat pengeditan grafis, seperti alat untuk mengedit UML.
4. Alat pengujian, seperti JUnit yang dapat menjalankan serangkaian tes secara otomatis pada versi baru program. 
5. Alat dukungan proyek yang membantu mengatur kode untuk berbagai proyek pengembangan. 

• Diperlukan keputusan tentang bagaimana PL yang dikembangkan akan digunakan pada platform target. 
• Pertimbangan dalam membuat keputusan adalah: 
1. Persyaratan perangkat keras dan perangkat lunak dari suatu komponen 
2. Ketersediaan persyaratan sistem 
3. Komunikasi komponen, jika ada tingkat lalu lintas komunikasi yang tinggi antar komponen.


2. PEMELIHARAAN (MAINTENANCE)

Pemeliharaan PL adalah suatu aktivitas yang sangat luas yang sering digambarkan mencakup semua pekerjaan yang dibuat di suatu sistem setelah PL beroperasi. Aktivitas meliputi: 
a. Penambahan atau perbaikan program, seperti penambahan fungsi baru, dan perbaikan tampilan. 
b. Perbaikan terhadap kesalahan yang timbul 
c. Penghapusan kemampuan kualitas 
d. Peningkatan pencapaian & memperluas daya guna untuk memenuhi kebutuhan user yang semakin bertambah 
e. Menyesuaikan PL untuk memenuhi lingkungan yang berubah.


A. Kategori Pemeliharaan PL 

• Korektif adalah perbaikan program akibat adanya kesalahan 
• Adaptif adalah penyesuaian dengan lingkungan yang baru, seperti penerapan pada platform di lingkungan yang baru, format tampilan printer, dll 
• Perfective terjadi pada saat pengguna sistem atau stakeholder merubah requirement dari sistem yang dibangun 
• Preventif berhubungan dengan prediksi yang akan datang, seperti penggunaan anti virus untuk keamanan data, back-up data dan program

a. Pemeliharaan Korektif (Corrective Maintenance) 
• Pekerjaan pemeliharaan sistem harus dilakukan terlebih dahulu di lingkungan pengujian, dan kemudian dimigrasikan ke operasional sistem. 
• Situasi terburuk adalah kegagalan sistem. Jika keadaan darurat terjadi, tim pemeliharaan mencoba memperbaiki masalah dengan segera, sementara permintaan sistem tertulis disiapkan dan ditambahkan ke log pemeliharaan. 
• Ketika sistem beroperasi kembali, tim pemeliharaan menentukan penyebabnya, menganalisa masalah, dan mendesain solusi permanen. Kemudian memperbarui file data, menguji sistem secara menyeluruh, dan menyiapkan dokumentasi lengkap. 

b. Pemeliharaan Adaptif (Adaptive Maintenance) 
• Pemeliharaan adaptif menambahkan peningkatan pada operasional sistem dan membuat sistem lebih mudah digunakan berupa peningkatan fitur baru/perubahan. 
• Misal: layanan baru, teknologi manufaktur baru, atau dukungan untuk operasi berbasis web baru. 
• Pemeliharaan adaptif membutuhkan lebih banyak sumber daya departemen IT daripada pemeliharaan korektif. 
• Pemeliharaan adaptif bisa lebih sulit daripada pengembangan sistem baru karena penyempurnaan harus bekerja dalam batasan sistem yang ada/baru. 

c. Pemeliharaan Perfektif (Perfective Maintenance)
• Melibatkan perubahan operasional sistem agar lebih efisien, dapat diandalkan, dan dapat dipelihara. 
• Permintaan untuk pemeliharaan korektif dan adaptif biasanya berasal dari pengguna, sedangkan departemen IT biasanya memulai pemeliharaan perfektif.
• Pemeliharaan perfektif dapat meningkatkan keandalan sistem. Misalnya, masalah input dapat menyebabkan program berhenti secara tidak normal, sehingga diperlukan program yang dapat menangani masalah tsb. 
• Semakin banyak program berubah, semakin besar ketidakefisienan dan sulit dipertahankan. 


d. Pemeliharaan Preventif (Preventive Maintenance) 
• Untuk menghindari masalah, pemeliharaan preventif membutuhkan area analisis dimana masalah mungkin terjadi. 
• Pemeliharaan preventif menghasilkan peningkatan kepuasan pengguna, downtime yang menurun, dan pengurangan biaya. 
• Pemeliharaan harus dilayani oleh teknisi yang ahli sehingga kualitas pemeliharaan akan langsung mempengaruhi keberhasilan organisasi. 


3. PEMELIHARAAN MANAJEMEN 

A. TIM PEMELIHARAAN 

1. Systems Administrator 
Bertanggung jawab untuk pemeliharaan rutin dan berwenang mengambil tindakan pencegahan untuk menghindari keadaan darurat. Seperti kerusakan server, pemadaman jaringan, insiden keamanan, dan kegagalan perangkat keras. 

2. Systems Analyst 
Bertugas menyelidiki dan menemukan sumber masalah dengan menggunakan keterampilan analisis dan sintesis. Analisis: memeriksa keseluruhan unsur-unsur individu. Sintesis: mempelajari bagianbagian untuk memahami keseluruhan sistem.

3. Programmer 
• Programmer aplikasi bekerja pada pengembangan dan pemeliharaan sistem baru. 
• Programmer sistem berkonsentrasi pada perangkat lunak dan utilitas sistem 
• Programmer basis data fokus pada pembuatan dan dukungan sistem basis data skala besar. 


B. PERMINTAAN PEMELIHARAAN 

Pengguna mengirimkan sebagian besar permintaan untuk pemeliharaan korektif dan adaptif ketika sistem tidak berfungsi dengan baik, atau jika mereka menginginkan fitur baru. 

1. Determinasi Awal 
Ketika pengguna mengajukan permintaan pemeliharaan, administrator membuat penentuan awal, jika permintaan memerlukan perhatian segera, administrator akan mengambil tindakan sekaligus. 
2. Komite Peninjau Sistem 
Ketika suatu permintaan melebihi tingkat biaya yang telah ditentukan atau melibatkan perubahan konfigurasi utama, komite peninjau sistem akan menetapkan prioritas, atau menolaknya. 
3. Penyelesaian Tugas 
Administrator sistem bertanggung jawab untuk mempertimbangkan pengalihan tugas di antara staf IT atau membatasi tugas pemeliharaan kepada individu atau tim tertentu agar tugas dapat diselesaikan dengan baik. 
4. User Notification 
Pengguna yang memulai permintaan pemeliharaan mengharapkan tanggapan yang cepat, terutama jika situasi tersebut secara langsung mempengaruhi pekerjaan mereka. Bahkan ketika tindakan korektif tidak dapat terjadi dengan segera, pengguna akan menghargai umpan balik dari administrator sistem dan harus terus diberitahu tentang keputusan atau tindakan yang akan mempengaruhi pengguna.

Jumat, 26 Juni 2020

TUGAS 12 - REKAYASA PERANGKAT LUNAK

PENGUJIAN PERANGKAT LUNAK


1. DASAR-DASAR PENGUJIAN PL

• Pengujian perangkat lunak adalah proses menjalankan dan mengevaluasi sebuah PL secara manual maupun otomatis untuk menguji apakah PL sudah memenuhi persyaratan atau belum, atau untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya.

• Pengujian bertujuan untuk mencari kesalahan.

• Pengujian yang baik adalah pengujian yang memiliki kemungkinan besar dalam menemukan kesalahan sebanyak mungkin dengan usaha sekecil mungkin.

A. Tujuan Pengujian 

a. Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
b. Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan.
c. Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan.

B. Testability

Testability adalah kemampuan PL untuk dapat diuji artinya seberapa mudah sebuah program komputer untuk bisa diuji.


Karakteristik testability PL:

a. Kemampuan untuk bisa dioperasikan (operability)
b. Kemampuan untuk bisa diobservasi (observability)
c. Kemampuan untuk dapat dikontrol (controllability)
d. Kemampuan untuk dapat disusun (decomposability)
e. Kesederhanaan (simplicity)
f. Stabilitas (stability)
g. Kemampuan untuk dapat dipahami (understandability)


C. Karakteristik Pengujian

a. Pengujian yang baik memiliki probabilitas tinggi untuk menemukan kesalahan
b. Pengujian yang baik tidak berulang-ulang, waktu dan sumber daya pengujian terbatas
c. Pengujian terbaik harus menjadi “bibit terbaik” yaitu pengujian yang memiliki kemungkinan tertinggi dalam mengungkap seluruh kelas kesalahan
d. Pengujian yang baik tidak terlalu sederhana atau tidak terlalu rumit


2. PENGUJIAN WHITE BOX

• Disebut juga pengujian kotak kaca (glass box testing).

• Merupakan sebuah filosofi perancangan test case yang menggunakan struktur kontrol.

• Test case pada white box:
a. Menjamin bahwa semua jalur independen di dalam modul telah dieksekusi sedikitnya satu kali
b. Melaksanakan semua keputusan logis pada sisi benar dan salah
c. Melaksanakan semua perulangan (loop) yang memenuhi semua batas operasional 
d. Melakukan struktur data internal untuk memastikan kebenarannya


A. Pengujian Jalur Dasar (Basis Path Testing)

• Adalah teknik pengujian yang memungkinkan perancangan test case untuk menurunkan ukuran kompleksitas logis dari suatu rancangan prosedural dan menggunakan ukuran ini sebagai pedoman untuk menentukan rangkaian dasar jalur eksekusi.

• Test case diturunkan untuk menguji rangkaian dasar yang dijamin untuk mengeksekusi setiap pernyataan dalam program, setidaknya satu kali selama pengujian.

• Menggambarkan arus kontrol logis dengan menggunakan Notasi Grafik Alir (Flow Graph)


a. Notasi Grafik Alir (Flow Graph)

• Adalah notasi sederhana untuk merepresentasikan aliran kontrol logis.

• Lingkaran mewakili pernyataan kode program


b. Notasi Flow Graph

• Lingkaran menunjukkan simpul (node), merupakan satu atau lebih pernyataan-pernyataan prosedural

• Panah menunjukkan edge atau link, merupakan aliran kendali 

• Area yang dibatasi oleh edge dan node disebut region.

• Flow graph menjadi rumit ketika adanya kondisi gabungan pada saat satu atau operator boolean ada dalam pernyataan bersyarat.

• Node yang berisi kondisi disebut node predikat dan ditandai oleh dua atau lebih edge yang berasal dari node tersebut.

B. Jalur Independen

• Jalur Independen (Independent Path) adalah setiap jalur yang melalui program yang memperkenalkan setidaknya satu kumpulan pernyataan-pernyataan pemrosesan atau kondisi baru. 


Jalur independen gambar di atas:
Path 1: 1-11
Path 2: 1-2-3-4-5-10-1-11
Path 3: 1-2-3-6-8-9-10-1-11
Path 4: 1-2-3-6-7-9-10-1-11
• Path 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 tidak dianggap jalur independen karena tidak melintasi setiap edge baru
• Path 1 sampai 4 merupakan basis set.


C. Kompleksitas Siklomatik

• Adalah metrik PL yang menyediakan ukuran kuantitatif dari kompleksitas logis suatu program.

• Perhitungan Kompleksitas Siklomatik:

a. Jumlah daerah-daerah (region) flow graph yang berhubungan dengan Kompleksitas Siklomatik
b. Kompleksitas Siklomatik V (G) = E – N + 2 dimana E adalah jumlah edge, N adalah jumlah node. c. Kompleksitas Siklomatik V (G) = P + 1 dimana P adalah jumlah node predikat.

Dari kasus independent path:
• Jumlah region adalah 4
• V (G) = 11 edge – 9 node + 2 = 4
• V (G) = 3 node predikat + 1 = 4
• Jadi Kompleksitas Siklomatiknya adalah 4


D. Menghasilkan Test Case

Diberikan Pseudocode sbb:

1      ® do while record masih ada baca record
2      ®             if record ke 1 = 0
3      ®             then proses record
simpan di buffer naikan counter
4      ®             else if record ke 2 = 0
5      ®                         then reset counter
6      ®                         else      proses record simpan pada file
7a  ®                         endif endif
7b  ® enddo
8   ® end

Langkah-langkah untuk menurunkan basis set:

1. Buat flow graph
2. Menentukan independent path
3. Menentukan kompleksitas siklomatik


E. Pengujian Struktur Kontrol

1) Pengujian Kondisi 

• Pengujian kondisi adalah metode perancangan test case yang menguji kondisi logis yang terdapat dalam modul program.
• Kondisi sederhana adalah variabel boolean atau ekspresi relasional, kemungkinan didahului oleh satu operator NOT
• Jenis kesalahan dalam kondisi meliputi kesalahan operator boolean, kesalahan variabel boolean, kesalahan kurung boolean, kesalahan operator relasional, dan kesalahan ekspresi aritmatika.

2) Pengujian Perulangan

Adalah teknik pengujian white box yang fokus pada validitas konstruksi perulangan.

(1) Perulangan Sederhana

Pengujian dilakukan dengan mudah, dimana n jumlah maksimum yang diijinkan melewati perulangan:
(a) Melewati perulangan secara keseluruhan
(b) Hanya satu kali melalui perulangan
(c) Dua kali melalui perulangan
(d) Melalui perulangan sebanyak m dimana m < n
(e) n – 1, n, n + 1 melalui perulangan

(2). Perulangan Bersarang

Menggunakan pendekatan perulangan sederhana, sehingga jumlah pengujian akan meningkat.
Petunjuk pengujian:
(a) Mulai dari perulangan terdalam dan atur semua perulangan ke nilai minimum
(b) Lakukan pengujian perulangan sederhana untuk perulangan terdalam, sambil menjaga perulangan luar pada nilai minimum (misal counter perulangan)
(c) Lanjutkan pada perulangan ke luar dan lakukan pengujian pada perulangan berikutnya
(d) Lakukan sampai semua perulangan telah diuji

(3). Perulangan Terangkai

• Pengujian menggunakan pendekatan perulangan sederhana bila masing-masing perulangan independen.
• Tetapi bila dua perulangan dirangkai dan counter perulangan 1 digunakan sebagai harga awal perulangan 2 maka perulangan tersebut menjadi tidak independen, dan direkomendasikan ke perulangan tersarang

(4). Perulangan Tak Terstruktur

Kapan saja memungkinkan, perulangan didisain kembali agar mencerminkan penggunaan konstruksi pemrograman terstruktur.


4. PENGUJIAN BLACK BOX

• Disebut juga pengujian perilaku.

• Pengujian black box memungkinkan untuk membuat beberapa kumpulan kondisi input yang akan melakukan semua kebutuhan fungsional untuk program.

• Kategori kesalahan pada pengujian black box:
a. Fungsi yang salah atau hilang
b. Kesalahan antarmuka
c. Kesalahan struktur data atau akses basis data eksternal
d. Kesalahan perilaku atau kinerja
e. Kesalahan inisialisasi dan penghentian

1. Metode Pengujian Berbasis Grafik 

Langkah-langkah pengujian:
• Memahami objek-objek yang dimodelkan dalam PL dan penghubung yang menghubungkan objek-objek tersebut
• Menentukan serangkaian pengujian yang memastikan bahwa semua objek memiliki hubungan satu sama lain seperti yang diharapkan
• Node direpresentasikan sebagai lingkaran.
• Hubungan direpresentasikan dengan anak panah
• Hubungan satu arah (directed link) bahwa hubungan bergerak hanya satu arah.
• Hubungan dua arah atau hubungan simetris (bidirection link) bahwa hubungan berlaku dua arah.
• Hubungan paralel digunakan ketika ada sejumlah hubungan yang berbeda yang dibangun di antara node-node grafik.

2. Partisi Kesetaraan (Equivalence Partitioning)

• Adalah metode pengujian black box yang membagi daerah input program ke dalam kelas-kelas data dari test case yang dapat diturunkan.
• Sebuah kelas kesetaraan merepresentasikan keadaan valid atau tidak valid dari kondisi input.
• Contoh: kesalahan terhadap semua data karakter yang mungkin mengharuskan banyak test case sebelum kesalahan umum teramati.

Kelas kesetaraan dapat didefinisikan:
• Jika kondisi input menspesifikasikan range, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
• Jika kondisi input membutuhkan nilai tertentu, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
• Jika kondisi input menspesifikasikan anggota dari himpunan, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
• Jika kondisi input adalah boolean, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid ditentukan

3. Analisis Nilai Batas (Boundary Value Analysis)

• Merupakan teknik perancangan test case yang melengkapi partisi kesetaraan dengan fokus pada kondisi input, dan juga akan menghasilkan output.
• Banyak kesalahan terjadi pada kesalahan input.
• BVA mengijinkan untuk menyeleksi kasus uji yang menguji batasan nilai input.
• BVA merupakan komplemen dari equivalence partitioning, lebih memilih pada elemen-elemen di dalam kelas ekivalen pada bagian sisi batas dari kelas

Pedoman BVA

a. Jika kondisi input menspesifikasikan range yang dibatasi oleh nilai a dan b, test case harus dirancang dengan nilai a dan b dan hanya di atas dan di bawah nilai a dan b
b. Jika kondisi input menspesifikasikan sejumlah nilai, test case harus dikembangkan untuk menguji jumlah-jumlah minimum dan maksimum.
c. Terapkan pedoman 1 dan 2 untuk kondisi input.
d. Jika struktur data program internal memiliki batas-batas yang telah ditentukan, pastikan untuk merancang test case untuk menguji struktur data pada batasnya.

4. Pengujian Larik Ortogonal

• Dapat diterapkan untuk masalah-masalah dimana input domain relatif kecil tapi terlalu besar untuk mengakomodasi pengujian yang lengkap.
• Bermanfaat dalam menemukan kesalahan yang terkait dengan logika yang salah dalam komponen PL

Tugas EPTIK pert 15 - BASONI

MAKALAH " INFRINGEMENTS   OF PRIVACY“   Diajukan   untuk   memenuhi   tugas   mata kuliah   EPTIK Disusun oleh :  Ba...