Rabu, 15 Desember 2021

Pertemuan 14

  IMPLEMENTASI dan PEMELIHARAAN



1. IMPLEMENTASI PL


IMPLEMENTASI 

• 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 (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 

d. 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 bagian-bagian 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. 


Pertemuan 13

 • Adalah serangkaian aktivitas yang tujuannya untuk menemukan kesalahan dalam isi, fungsi, kegunaan, kemampuan navigasi, kinerja, kapasitas dan keamanan aplikasi web sebelum aplikasi-aplikasi web yang dibuat dikirimkan ke end user. 

• Hal ini penting karena jika end user menemukan kesalahan yang membuat mereka meragukan aplikasi web tersebut, mereka akan pergi ke web lain untuk mencari isi dan informasi 

• Langkahnya dimulai dengan fokus pada aspek aplikasi web yang terlihat oleh user dan berlanjut pada pengujian yang terkait dengan teknologi dan infrastruktur.




KONSEP PENGUJIAN UNTUK APLIKASI WEB


A. Dimensi Kualitas

Kualitas dievaluasi dengan menerapkan serangkaian tinjauan teknis yang melihat berbagai elemen dari model perancangan dan dengan menerapkan proses pengujian.

Atribut Dimensi Kualitas

1. Isi (content) Dievaluasi di tingkat sintak dan semantik. Pada tingkat sintak dokumen berbasis teks diuji dalam hal ejaan, tanda baca dan tata bahasa. Pada tingkat semantik aspek yang dinilai adalah kebenaran informasi yang disajikan, konsistensi di seluruh objek isi dan objek terkait, dan rendahnya ambiguitas 

2. Fungsi Diuji untuk menemukan kesalahan yang menunjukkan ketidaksesuaian dengan persyaratan customer 

3. Struktur Dinilai untuk memastikan bahwa aplikasi web benarbenar menyediakan isi dan fungsi aplikasi web

4. Kegunaan Diuji untuk memastikan bahwa setiap kategori user didukung oleh antarmuka yang user friendly serta menerapkan semua sintak dan semantik navigasi yang diperlukan 

5. Kemampuan untuk dapat dinavigasi Diuji untuk memastikan bahwa semua sintak dan semantik navigasi dilakukan untuk menemukan kesalahan, seperti link yang salah dan dead link 

6. Kinerja Diuji di bawah berbagai kondisi operasi, konfigurasi, dan loading

7. Kompatibilitas Diuji dengan menjalankan aplikasi web dalam berbagai konfigurasi host yang berbeda baik di sisi server maupun client 

8. Interoperabilitas Diuji untuk memastikan bahwa aplikasi web berantarmuka dengan benar dengan aplikasi lain dan database 

9. Keamanan Diuji dengan menilai kerentanan potensial

Kesalahan Atribut pada Pengujian Aplikasi Web 

a. Pengujian web mengungkap masalah yang didapatkan pertama kali di sisi client, melalui antarmuka yang implementasinya pada sebuah browser atau perangkat komunikasi pribadi 

b. Aplikasi web diimplementasikan pada beberapa konfigurasi dan lingkungan yang berbeda, kemungkinan sulit untuk menemukan kesalahan di luar lingkungan tempat kesalahan pertama kali ditemukan

c. Kesalahan akibat kode program yang tidak tepat (misal HTML), seperti kesalahan penelusuran dokumen 

d. Kesalahan pada client-server sulit dilacak di tiga lapisan: client, server, atau jaringan 

e. Beberapa kesalahan yang berada di lingkungan operasi yang bersifat statis, sementara yang lain terkait dengan ligkungan operasi yang bersifat dinamis


B. Strategi Pengujian 

Langkah-langkahnya: 

1. Model konten untuk aplikasi web ditinjau untuk menemukan kesalahan 

2. Model antarmuka ditinjau untuk memastikan bahwa semua use-case dapat diakomodasi 

3. Model perancangan ditinjau untuk mengungkap kesalahan navigasi 

4. Antarmuka pengguna diuji untuk menggungkap kesalahan dalam presentasi dan/atau mekanik navigasi 

5. Komponen fungsional diuji untuk setiap unit

6. Navigasi untuk seluruh arsitektur diuji 

7. Aplikasi web diimplementasikan dalam berbagai konfigurasi lingkungan yang berbeda dan diuji kompatibilitasnya 

8. Pengujian keamanan dilakukan dalam upaya untuk mengungkap kelemahan aplikasi web 

9. Pengujian kinerja dilakukan 

10.Aplikasi web diuji oleh end user, hasil interaksinya dievaluasi untuk menemukan kesalahan isi dan navigasi, keamanan, keandalan, dan kinerja aplikasi web


C. Perencanaan Pengujian

Sebuah rencana aplikasi web mengidentifikasikan:

a. Himpunan tugas-tugas yang diterapkan ketika pengujian dimulai 

b. Produk kerja yang dihasilkan ketika setiap tugas pengujian dijalankan 

c. Cara dimana hasil pengujian dievaluasi, dicatat, dan digunakan kembali saat pengujian regresi dilakukan



PENGUJIAN ISI 


A. Tujuan Pengujian Isi 

• Untuk mengungkap kesalahan sintak dengan memeriksa ejaan dan tata bahasa otomatis 

• Untuk mengungkap kesalahan semantik yang fokus pada informasi pada setiap isi objek 

• Untuk mencari kesalahan dalam pengaturan atau struktur isi dalam susunan dan hubungan yang tepat


B. Pengujian Basis Data 

Pengujian basis data menjadi sulit dikarenakan: 

a. Permintaan dari client jarang disajikan dalam bentuk yang dapat dimasukkan ke sistem manajemen basis data 

b. Basis data dapat berada jauh dari server 

c. Data mentah yang diperoleh dari basis data harus dikirim ke server aplikasi web dan diformat dengan benar untuk pengiriman selanjutnya kepada client 

d. Objek isi yang bersifat dinamis harus dikirim ke client dalam bentuk yang dapat ditampilkan kepada end user

Pengujian basis data harus memastikan bahwa: 

a. Informasi yang valid dilewatkan antara client dan server dari lapisan antarmuka 

b. Proses aplikasi web menuliskan ekstraksi atau format data user dengan baik dan benar 

c. Data user diberikan dengan tepat untuk fungsi transformasi data pada sisi server yang membentuk query yang sesuai 

d. Query yang dilewatkan ke layer manajemen data yang berkomunikasi dengan rutin-rutin akses basis data terletak di komputer lain



PENGUJIAN ANTARMUKA


• Untuk memastikan bahwa script yang benar dibangun untuk setiap permintaan user dan benar dikirimkan ke server. 

• Verifikasi dan validasi antarmuka user terjadi pada: 

a. Model antarmuka memastikan bahwa telah sesuai dengan kebutuhan stakeholder dan elemen lain. 

b. Model perancangan antarmuka ditinjau untuk memastikan bahwa kriteria kualitas generik telah ditetapkan untuk semua antarmuka. 

c. Selama pengujian fokus pada interaksi user.


A. Strategi Pengujian Antarmuka

Langkah-langkahnya: 

1. Fitur-fitur antarmuka diuji seperti jenis huruf, warna, gambar, border, tabel dll 

2. Mekanisme antarmuka diuji dengan cara yang sama dengan pengujian unit, misalnya pengujian untuk keranjang belanja pada e-commerce, isi streaming, penulisan script dll 

3. Mekanisme antarmuka diuji dalam konteks penggunaan use case untuk kategori user tertentu 

4. Antarmuka lengkap diuji terhadap test case terpilih 

5. Antarmuka diuji dalam berbagai lingkungan 


B. Mekanisme Pengujian Antarmuka

1. Formulir. Pengujian untuk memastikan: 

a. Label formulir dapat diidentifikasikan secara visual 

b. Server menerima semua informasi form 

c. Default yang tepat saat user tidak memilih dari menu pull down atau dari tombol 

d. Fungsi-fungsi perambah seperti tanda panah back tidak merusak data yang diisikan ke dalam form 

e. Script yang memeriksa kesalahan input data 

f. Lebar kolom dan jenis data yang tepat 

g. Mencegah user memasukkan string text lebih panjang dari jumlah max. yang telah ditetapkan 

h. Menu pull down diurutkan dan dapat dipahami user 

i. Auto-fill tidak mengarah ke kesalahan input data 

j. Key tab memicu perpindahan di antara kolom

2. Link. Setiap link navigasi diuji untuk memastikan bahwa objek isi atau fungsi yang tepat dapat dicapai 

3. Client-side scripting. Pengujian dilakukan untuk menemukan kesalahan saat script dijalankan 

4. HTML dinamis. Dijalankan untuk memastikan bahwa tampilan dinamis sudah benar 

5. Pop-up windows. Memastikan bahwa 

a. Pop-up diukur dan diposisikan dengan benar 

b. Pop-up tidak menutupi jendela aplikasi web asli 

c. Perancangan pop-up konsisten dengan perancangan antarmuka 

d. Scroll bar dan mekalisme kontrol lainnya yang ditambahkan ke pop-up diletakkan dengan benar 

6. Script CGI. Pengujian kotak hitam dilakukan dengan penekanan pada integritas data saat dilewatkan ke script CGI 

7. Streaming content. Pengujian menunjukkan bahwa data streaming terbarukan, ditampilkan dengan benar dan dapat dihentikan tanpa kesalahan dan restart tanpa kesulitan 

8. Mekanisme aplikasi antarmuka spesifik. Pengujian sesuai dengan daftar fungsi dan fitur yang didefinisikan pada antarmuka 


C. Pengujian Kompatibilitas

Aplikasi web harus dapat dijalankan pada komputer yang berbeda, berupa: 

▪ Perangkat tampilan 

▪ Sistem Operasi 

▪ Browser 

▪ Kecepatan koneksi jaringan

Langkah-langkah uji kompatibilitas: 

1. Mendefinisikan sekumpulan konfigurasi komputasi di sisi client, mengidentifikasi platform, perangkat layar, sistem operasi, browser yang tersedia, kecepatan koneksi internet, dll. 

2. Melakukan serangkaian uji validasi kompatibilitas berupa pengujian navigasi, pengujian kinerja, dan pengujian keamanan 



PENGUJIAN NAVIGASI


Tugas pengujian navigasi: 

1. Memastikan bahwa semua mekanisme yang memungkinkan pengguna aplikasi web melakukan penelusuran melalui aplikasi web. 

2. Untuk memvalidasi bahwa setiap unit semantik navigasi dapat dicapai oleh kategori pengguna yang tepat

Pengujian Sintaks Navigasi

1. Link Navigasi

Mekanisme menyertakan link internal dalam aplikasi web dan link eksternal ke aplikasi web lain, dan anchor pada halaman web tertentu 

2. Redirect 

Link beraksi saat user meminta URL yang tidak ada atau memilih sebuah link yang isinya telah dihapus atau namanya telah berubah 

3. Bookmark 

Memastikan bahwa judul halaman yang berarti dapat diekstraksi saat bookmark dibuat

4. Frame and frameset: 

Frameset berisi beberapa frame dan memungkinkan untuk menampilkan beberapa halaman web secara bersamaan. Oleh karena itu harus diuji dalam hal isi, tata letak layar dan ukuran yang tepat, kinerja download, dan kompatibilitas browser. 

5. Site map 

Berisi daftar isi lengkap pada semua halaman web, setiap entry harus diuji untuk memastikan bahwa link membawa user membaca isi/fungsionalitas yang tepat 

6. Search engine internal 

User mengetikkan kata kunci untuk menemukan isi yang diperlukan 



. PENGUJIAN KONFIGURASI


A. Masalah di bagian Server 

• Aplikasi web sepenuhnya kompatibel dengan server OS 

• Berkas sistem, direktori, dan data yang terkait dibuat dengan benar saat aplikasi web dioperasikan 

• Keamanan sistem mengijinkan aplikasi web untuk berjalan dan melayani user tanpa gangguan atau penurunan kinerja 

• Aplikasi web terintegrasi secara tepat dengan perangkat lunak basis data 

• Script aplikasi web sisi server mengeksekusi dgn benar 

• Jika proxy server yang digunakan, apakah perbedaan konfigurasi telah diatasi melalui pengujian


B. Masalah di bagian Client 

Pengujian konfigurasi fokus pada kompatibilitas aplikasi web pada komponen berikut: 

• Hardware: CPU, memori, penyimpanan, perangkat cetak 

• Sistem operasi • Browser: Firefox, Safari, IE, Opera, Chrome 

• Komponen antarmuka: Active-X, Java applet 

• Plug in: Quick Time, RealPlayer 

• Konektivitas: kabel, DSL, Wifi



PENGUJIAN KEAMANAN


Untuk menyelidiki kerentanan lingkungan di sisi client, komunikasi jaringan yang terjadi saat data dilewatkan dari client ke server, dan di lingkungan server itu sendiri. 

• Contoh kerentanan yang dapat terjadi: 

    • Buffer overflow, seperti memasukkan URL yang lebih panjang dari ukuran buffer 

    • Akses tidak sah • Spoofing 

    • Serangan DOS 

• Implementasi keamanan: 

    • Firewall 

    • Authentication 

    • Encryption 

    • Authorization

Jumat, 03 Desember 2021

PENGUJIAN 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.

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

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)

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

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)


3. 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

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 nodenode grafik.

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

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

Rabu, 01 Desember 2021

PERANCANGAN APLIKASI WEB

 PERANCANGAN APLIKASI WEB


Langkah-langkah web design dengan membuat: 

1. Perancangan Isi Dikembangkan selama tahapan analisis, dilakukan sebagai basis untuk penetapan objek-objek 

2. Perancangan Estetika (Perancangan Grafis) Membuat tampilan yang akan dilihat oleh user 

3. Perancangan Arsitektural Fokus pada struktur hypermedia untuk semua objek isi dan untuk semua fungsi pada aplikasi web Langkah-langkah web design dengan membuat.

4. Perancangan Antarmuka Menentukan tampilan dan mekanisme interaksi yang mendefinisikan user interface 

5. Perancangan Struktur Navigasi Mendefinisikan bagaimana end user melakukan penelusuran untuk melintasi hypermedia 

6. Perancangan Komponen Merepresentasikan rincian struktur elemen-elemen fungsional aplikasi web


SIFAT-SIFAT APLIKASI WEB 

a. Kepadatan jaringan 

b. Keserempakan 

c. Jumlah pengguna yang tidak dapat diprediksi

d. Kinerja 

e. Ketersediaan 

f. Digerakkan oleh data 

g. Peka terhadap isi 

h. Evolusi yang berkesinambungan 

i. Kesegeraan 

j. Keamanan 

k. Estetika



KUALITAS PERANCANGAN APLIKASI WEB


Atribut Kualitas: 

1. Keamanan 

Kemampuan aplikasi web dan lingkungan server untuk mencegah akses yang tidak sah, dan mencegah serangan-serangan yang berasal dari luar. 

2. Ketersediaan 

Pengukuran atas persentase waktu yang tersedia bagi aplikasi web untuk dapat digunakan oleh user. 

3. Skalabilitas 

Aplikasi web mampu mengakomodasi kebutuhan terhadap jumlah end user yang semakin bertambah 

4. Waktu untuk masuk ke pasar 

Ditinjau dari sudut pandang bisnis


Kualitas Aplikasi Web 

1. Kemudahan Penggunaan 

a. Kemudahan pemahaman situs global 

b. Umpan balik dari user dan fitur-fitur bantuan

c. User interface dan fitur-fitur estetika 

d. Fitur-fitur khusus 

2. Fungsionalitas 

a. Kemampuan pencarian dan penerimaan 

b. Fitur-fitur navigasi dan perambahan (browsing) 

c. Fitur-fitur aplikasi yang berhubungan dengan lingkungan 

3. Keandalan 

a. Pembetulan pemrosesan tautan (link) 

b. Pemulihan dari kesalahan 

c. Validasi dan pemulihan pada user


Sasaran perancangan web yang baik: 

1. Kesederhanaan (Simplicity) 

Fungsi-fungsi mudah digunakan dan mudah dipahami 

2. Konsisten (Consistency) 

Konstruksi perancangan isi dibuat secara konsisten. Misalnya: jenis font yang sama pada semua dokumen teks, skema warna dan gaya yang konsisten 

3. Identitas (Identity)

Estetika, user interface, dan perancangan navigasi harus konsisten dengan lingkungan aplikasi untuk apa aplikasi web itu dibuat atau dikembangkan. 

4. Ketangguhan (Robustness) 

User pada umumnya mengharapkan isi dan fungsi yang relevan terhadap kebutuhan user

5. Kemudahan melakukan navigasi dalam aplikasi

 Aplikasi web seharusnya dirancang sedemikian rupa sehingga tampilannya intuitif dan hasilnya dapat dengan mudah diramalkan. 

6. Daya tarik visual (Visual Appeal) 

Tampilan isi, rancangan user interface, pengaturan warna, keseimbangan yang harus terjadi di antara teks, grafik dan media lainnya, mekanisme navigasi sangat memiliki kontribusi pada daya tarik visual 

7. Kompatibilitas (Compatibility) 

Aplikasi web akan digunakan pada berbagai jenis lingkungan eksekusi aplikasi yang berbeda (hardware, OS, browser, dan koneksi internet)


PERANCANGAN ANTARMUKA 

• Salah satu tantangan membuat user interface adalah bagaimana caranya user masuk ke aplikasi. 

• Sasaran-sasaran user interface adalah untuk: 

1. Menetapkan suatu jendela yang konsisten untuk meletakkan isi-isi dan fungsionalitas yang disediakan oleh user interface 

2. Memandu user melalui serangkaian interaksi dengan aplikasi web yang dikembangkan 

3. Mengorganisasikan pilihan-pilihan navigasi dan isi-isi yang dapat dilihat user yang dapat berupa menu navigasi, icon grafis, dan gambar-gambar grafis


PERANCANGAN ESTETIKA 

Sering juga disebut Perancangan Grafis, yang merupakan tambahan artistik yang sering digunakan untuk melengkapi aspek-aspek teknis dari perancangan aplikasi web. 

    Tata letak yang baik pada perancangan interface: 

1. Jangan mengisi bagian dari halaman web dengan informasi yang akhirnya sulit untuk mengidentifikasi informasi tersebut 

2. Lakukan penekanan pada isi yang merupakan alasan utama bagi user untuk masuk ke aplikasi web 

3. Lakukan pengelompokkan fitur navigasi, isi, dan fungsi 

4. Jangan perluas bagian aplikasi dengan penggunaan scrollbar, sebaiknya kurangi isi yang jumlahnya banyak 

5. Sesuaikan resolusi layar dan ukuran jendela browser


PERANCANGAN ISI 

• Hubungan objek isi dengan objek isi lainnya adalah sebagai bagian dari suatu model kebutuhan untuk aplikasi web. 

• Permasalahan yang terjadi pada perancangan isi jika jumlah objek isi yang digabungkan untuk membentuk halaman web tunggal merupakan fungsi dari kebutuhan user, yang dibatasi oleh kecepatan pengunduhan koneksi ke internet, juga dibatasi oleh besarnya ukuran jendela monitor yang digunakan user.


PERANCANGAN ARSITEKTURAL 

• Perancangan arsitektur web terkait dengan sasaran untuk aplikasi web, terkait dengan isi yang akan ditampilkan, user, dan navigasi. 

• Arsitektur isi pada umumnya fokus pada bagaimana objek-objek isi distrukturkan agar layak untuk dipresentasikan kepada user dan menarik untuk ditelusuri. 

• Aplikasi web distrukturkan untuk dapat mengelola interaksi user dengan aplikasi web, bagaimana menangani pekerjaan proses internal, bagaimana melakukan pengaturan navigasi, serta bagaimana menampilkan isinya.


PERANCANGAN NAVIGASI 

• Merancang lintasan-lintasan navigasi yang memungkinkan user mengakses isi dan fungsi-fungsi aplikasi web. 

A. Semantik-Semantik Navigasi 

• Unit semantik navigasi adalah sejumlah informasi dan struktur navigasi yang saling berkolaborasi untuk memenuhi kebutuhan user yang bersifat khusus. 

• Contoh seorang pelanggan baru mungkin memiliki 3 use case yang berbeda yang semuanya menghasilkan akses ke informasi-informasi dan fungsi-fungsi aplikasi web yang berbeda. Semantik navigasi harus dibuat untuk masing-masing sasaran tersebut.

B. Sintak Navigasi 

• Link navigasi yang bersifat individual: link berbasis teks, icon, tombol, pilihan, dan grafis harus sesuai dan konsisten dengan isi yang ditampilkan 

• Bar navigasi horizontal: daftar kategori isi dan kategori fungsional utama yang berisi link yang sesuai 

• Kolom-kolom navigasi vertikal: 

• Berisi daftar kategori utama dan kategori fungsional 

• Berisi semua objek isi utama 

• Tab-tab: merepresentasikan kategori isi dan kategori fungsional sebagai tab sheet saat suatu link diperlukan 

• Peta situs: menyediakan suatu tabel isi yang dapat digunakan untuk melakukan navigasi ke semua objek dan semua fungsionalitas


Rabu, 24 November 2021

Desain Arsitektur


KONSEP DESAIN ARSITEKTUR
 

• Perancangan arsitektur merupakan tahap pertama dalam proses perancangan PL, yang dimulai dengan perancangan data kemudian berlanjut pada penurunan satu atau lebih struktur arsitektural sistem. 
• Arsitektur sistem/PL adalah struktur sistem/PL yang menggabungkan komponen PL, menggabungkan properti yang tampak dari komponen tersebut, dan mendeskripsikan hubungan antar komponen.
• Output dari perancangan arsitektur berupa model arsitektur yang menggambarkan bagaimana sistem diatur sebagai satu set komponen yang saling berkomunikasi.

2. ARSITEKTUR PL 
Arsitektur mencakup: 
• Komponen bangunan yang berbeda dapat diintegrasikan menjadi suatu bentuk keseluruhan yang bersifat kohesif 
• Bangunan yang dibuat sesuai dengan lingkungannya 
• Bangunan yang dibangun sesuai dengan kegunaannya 
• Tekstur, warna dan material pembentuknya dikombinasikan untuk membuat tampilan yang bagus 
• Perancangan pencahayaan, template, dan garis batas 
• Merupakan suatu bentuk seni

                                                                 A. Deskripsi Arsitektural 
Sasaran dari deskripsi arsitektural: 
• Untuk menetapkan kerangka kerja konseptual dan kosa kata yang digunakan selama perancangan arsitektur PL 
• Untuk menyediakan panduan yang rinci pada waktu merepresentasikan deskripsi arsitektural 
• Untuk memandu praktek perancangan yang baik

B. Keputusan Arsitektural 
Pola Deskripsi Keputusan Arsitektur 
a. Permasalahan Perancangan Deskripsikan permasalahan perancangan arsitektural yang akan diselesaikan. 
b. Penyelesaian Menentukan pendekatan yang dipilih untuk menyelesaikan permasalahan yang bekaitan dengan perancangan 
c. Kategori Spesifikasi kategori perancangan yang akan diselesaikan permasalahannya, seperti perancangan data, struktur isi dan komponen, integrasi, presentasi
d. Asumsi-asumsi Indikasikan asumsi saat menentukan keputusan. Misalnya standar teknologi, pola yang tersedia, permasalahan yang berkaitan dengan sistem/PL 
e. Alternatif-alternatif Secara singkat deskripsikan alternatif yang akan dipertimbangkan dan mengapa ditolak 
f. Argumen Jelaskan mengapa memilih penyelesaian di atas dan alternatif-alternatif lainnya
g. Keputusan yang berhubungan Keputusan terdokumentasi yang berhubungan dengan keputusan yang diambil 
h. Implikasi Indikasikan konsekuensi perancangan akibat penentuan keputusan. Apakah penyelesaian akan berakibat pada perancangan lainnya? 
i. Perhatian yang berhubungan Adakah kebutuhan lain yang berhubungan dengan keputusan yang diambil?
j. Produk kerja Indikasikan dimana keputusan yang diambil akan tercermin dalam deskripsi arsitektur 
k. Catatan Rujukan catatan tim lainnya yang sebelumnya telah digunakan untuk membuat keputusan

3. TAMPILAN ARSITEKTURAL 

1. Tampilan Logis Abstraksi dalam sistem sebagai objek atau kelas objek. 
2. Tampilan Proses Menunjukkan bagaimana (pada saat run-time) sistem terdiri dari proses yang saling berinteraksi. 
3. Tampilan Pengembangan PL diuraikan untuk pengembangan, yaitu menunjukkan detail dalam komponen yang akan diimplementasikan oleh pengembang tunggal atau tim pengembang. 
4. Tampilan Fisik Menunjukkan perangkat keras sistem dan bagaimana komponen PL didistribusikan di seluruh sistem.

4. GAYA ARSITEKTUR 

Gaya arsitektur mendeskripsikan kategori sistem yang mencakup: 
• Kumpulan komponen, seperti sistem basis data dan modul-modul yang melaksanakan fungsi tertentu yang diperlukan oleh sistem 
• Penghubung (konektor) yang memungkinkan komunikasi, koordinasi, dan kerja antar komponen 
• Batasan yang mendefinisikan bagaiman komponen dapat iintegrasikan untuk membentuk suatu sistem/PL 
• Model semantik yang memungkinkan perancang sistem memahami properti keseluruhan sistem

Gaya dan Struktur Arsitektur (Persyaratan Non-Fungsional)

1. Kinerja (Performance) Arsitektur harus dirancang agar semua komponen dapat digunakan pada berbagai komputer/prosesor, dan mendistribusikan di seluruh jaringan. 
2. Keamanan (Security) Menggunakan struktur berlapis untuk melindungi aset yang paling penting di lapisan terdalam, dengan tingkat validasi keamanan yang tinggi. 
3. Keamanan (Safety) Operasi yang terkait dengan keselamatan terletak di salah satu komponen tunggal atau komponen kecil.
4. Ketersediaan (Availability) Arsitektur harus dirancang untuk menyertakan komponen redundan sehingga dimungkinkan saat mengganti dan memperbarui komponen tanpa menghentikan sistem. 
5. Pemeliharaan (Maintainability) Arsitektur sistem harus dirancang menggunakan komponen mandiri yang dapat diubah dengan mudah. Struktur data bersama harus dihindari.

Struktur Dasar Arsitektur
a. Struktur Fungsional
• Komponen merepresentasikan fungsi atau entitas. 
• Konektor merepresentasikan antarmuka untuk melewatkan data ke suatu komponen. 
• Properti mendefinisikan sifat dari komponen dan mengorganisasikan antarmuka.
b. Struktur Implementasi 
• Komponen berbentuk paket, kelas, objek, prosedur, fungsi, metode, dll, yang merupakan sarana untuk mengemas fungsionalitas komponen pada berbagai peringkat abstraksi. 
• Konektor meliputi kemampuan untuk melewatkan data dan kendali, berbagi data, menggunakan, dan menginstansiasi. 
• Properti pada komponen fokus pada karakteristik kualitas, seperti kemampuan untuk maintenance dan reuse yang dihasilkan saat struktur diimplementasikan
c. Struktur Konkurensi 
• Komponen merepresentasikan unit-unit konkurensi yang terorganisasi sebagai pekerjaan paralel (thread). 
• Konektor mencakup sinkronisasi, prioritas, mengirim data, dan menjalankan proses/fungsi. 
• Properti mencakup prioritas, kemampuan untuk meramalkan, dan waktu eksekusi. 
d. Struktur Fisik 
• Komponen merupakan perangkat keras fisik. 
• Konektor merupakan antarmuka antar komponen perangkat keras. 
• Properti berkaitan dengan kapasitas, bandwidth, kinerja, dan atribut lainnya.
e. Struktur Pengembangan 
• Mendefinisikan komponen, produk kerja, dan sumber informasi lainnya. 
• Konektor merepresentasikan relasi antar produk kerja. 
• Properti mengidentifikasi karakteristik tiap-tiap item.

5. POLA ARSITEKTUR (Architectural Patterns)

A. Lapisan Arsitektur (Layered Architecture) 
• Pemahaman tentang pemisahan dan independensi sangat penting untuk desain arsitektur karena memungkinkan perubahan secara lokal. 
• Menambahkan tampilan baru atau mengubah tampilan yang ada dapat dilakukan tanpa perubahan apa pun pada data dalam model.

B. Arsitektur Repositori (Repository Architecture)

• Bagaimana satu set komponen yang saling berinteraksi dapat berbagi data. 
• Model ini cocok untuk aplikasi di mana data dihasilkan oleh satu komponen dan digunakan oleh yang lain 
• Tidak perlu mentransmisikan data secara eksplisit dari satu komponen ke komponen lainnya. Tetapi komponen harus beroperasi di sekitar model data repositori yang disepakati. 
• Pola repositori berkaitan dengan struktur statis dari suatu sistem dan tidak menunjukkan organisasi run-time.

C. Client–Server Architecture 

• Sebuah sistem yang mengikuti pola client-server diatur sebagai satu set layanan server, dan client yang mengakses dan menggunakan layanan. 
• Komponen utama dari model ini adalah: 
1. Server memberikan layanan ke komponen lain. Contoh: server menawarkan layanan pencetakan, server file yang menawarkan layanan manajemen file, dan server kompilasi yang menawarkan layanan kompilasi bahasa pemrograman. 
2. Client yang menggunakan layanan yang ditawarkan oleh server. 
3. Jaringan yang memungkinkan client untuk mengakses layanan.

• Arsitektur client-server dianggap sebagai arsitektur sistem terdistribusi, tetapi model logis dari layanan independen yang berjalan pada server terpisah dapat diimplementasikan pada satu komputer 
• Penggunaan yang efektif dapat dilakukan dari sistem jaringan dengan banyak prosesor terdistribusi. 
• Sangat mudah untuk menambahkan server baru dan mengintegrasikannya dengan seluruh sistem atau mengupgrade server secara transparan tanpa mempengaruhi bagian lain dari sistem.

D. Pipe and Filter Architecture 

• Model dari sistem run-time di mana transformasi secara fungsional memproses input dan menghasilkan output. 
• Aliran data bergerak secara berurutan (seperti dalam pipa). 
• Setiap langkah pemrosesan diimplementasikan sebagai transformasi. 
• Transformasi dapat dilakukan secara berurutan/paralel. 
• Data diproses oleh transformasi per-item-nya atau dalam satu batch. 
• Pipe digunakan untuk melewati aliran teks dari satu proses ke proses lainnya. 
• Filter digunakan pada transformasi untuk menyaring data.

6. ARSITEKTUR APLIKASI 

• Sistem aplikasi dimaksudkan untuk memenuhi kebutuhan bisnis yang memiliki banyak kesamaan dan menggunakan aplikasi tertentu. 
• Arsitektur aplikasi dapat diimplementasikan kembali ketika mengembangkan sistem baru, tetapi untuk banyak sistem bisnis, penggunaan kembali aplikasi dimungkinkan tanpa implementasi ulang

A. Sistem Pemrosesan Transaksi (Transaction Processing Systems)

• Aplikasi pemrosesan transaksi adalah aplikasi yang berpusat pada database yang memproses permintaan pengguna untuk informasi dan memperbarui informasi dalam basis data. 
• Merupakan jenis sistem bisnis interaktif yang paling umum, di mana pengguna membuat permintaan asynchronous untuk layanan 
• Transaksi basis data adalah urutan operasi yang diperlakukan sebagai unit tunggal, dan semua operasi dalam transaksi harus diselesaikan sebelum perubahan basis data dibuat permanen.
• Dari perspektif pengguna, transaksi adalah setiap urutan operasi yang koheren yang memenuhi tujuan, seperti menemukan jadwal perkuliahan. 
• Sistem pemrosesan transaksi dapat diatur sebagai arsitektur 'pipe and filter' dengan komponen sistem sebagai input, pemrosesan, dan output. 
• Misal: pelanggan menarik uang tunai dari ATM. Sistem ini terdiri dari dua komponen PL ATM dan PL pemrosesan akun di server basis data bank. Komponen I/O diimplementasikan sebagai PL di ATM dan komponen pemrosesan adalah bagian dari server database bank.

B. Sistem Informasi

• Semua sistem yang melibatkan interaksi dengan basis data dapat dianggap sebagai sistem informasi berbasis transaksi. 
• Sistem informasi memungkinkan akses yang terkontrol ke basis informasi yang besar. Seperti katalog perpustakaan, jadwal penerbangan, atau catatan pasien di rumah sakit. 
• Sebagai contoh dari instantiation model berlapis

C. Sistem Pemrosesan Bahasa (Language Processing Systems) 

• Adalah sistem di mana maksud pengguna dinyatakan dalam bahasa formal (seperti Java). 
• Memproses ke dalam bahasa formal, kemudian menafsirkan representasi secara internal. 
• Sistem pemrosesan bahasa dengan compiler, yang menerjemahkan bahasa program tingkat tinggi ke dalam kode mesin. 
• Sistem pemrosesan bahasa juga menerjemahkan bahasa alami atau buatan ke dalam representasi bahasa lain, dan bahasa pemrograman dapat mengeksekusi kode yang dihasilkan.

Sabtu, 13 November 2021

Rekayasa Perangkat Lunak

A. Identifikasi Kelas Objek: 

Tujuan mengidentifikasi kelas objek dalam sistem berorientasi objek: 

1. Gunakan analisis gramatikal dari deskripsi bahasa  alami. Objek dan atribut adalah kata benda; operasi atau layanan adalah kata kerja.

2. Gunakan entitas nyata (benda) dalam domain aplikasi seperti mobil, peran seperti manajer atau dokter, acara  seperti permintaan, interaksi seperti pertemuan, lokasi  seperti kantor, unit organisasi seperti perusahaan.

3. Gunakan analisis berbasis skenario dimana berbagai skenario penggunaan sistem diidentifikasi dan dianalisis secara bergantian.


B. Istilah dalam Objek Oriented

    1. OBJEK (Object)

    Objek adalah konsep atau abstraksi tentang sesuatu yang memiliki arti untuk aplikasi yang akan dikembangkan, Objek diwakili dengan kata benda.

Objek dapat berupa: 

- Objek orang/manusia: Karyawan, Mahasiswa

- Objek tempat: Kantor, Gedung, Toko

- Objek abstrak: Transaksi, Jadwal, Peminjaman

- Objek organisasi: Divisi-IT, HRD

- Objek peralatan/benda: Mobil, Buku, Baju

    2. ATRIBUT (Attribute)

Suatu objek memiliki atribut tertentu yang merupakan karakteristik yang menggambarkan objek

Suatu atribut dapat mengambil sebuah nilai yang ditentukan berdasarkan domain yang dihitung.

Contoh: kelas MOBIL memiliki sebuah atribut WARNA. Domain nilai untuk warna adalah {putih,  hitam, perak, abu-abu, biru, merah, kuning, hijau}.

Objek dapat memiliki atribut khusus yang disebut state. Keadaan suatu objek adalah kata sifat yang menggambarkan status objek saat ini. Misalnya rekening bank dapat aktif, tidak aktif,tertutup, atau dibekukan.

    3. METODE (Method)

Suatu metode mendefinisikan tugas-tugas spesifik yang dapat dilakukan oleh suatu objek. Metode dituliskan dengan kata kerja yang  menggambarkan apa dan bagaimana suatu objek  melakukan sesuatu.Misalnya: objek PELANGGAN dapat melakukan  tugas-tugas tertentu seperti melakukan pemesanan,  membayar tagihan, dan mengubah alamatnya.

    4. PESAN (Message)

Pesan (Message) adalah perintah yang memberi tahu suatu objek untuk melakukan metode tertentu. Misalnya: pesan TAMBAHKAN SISWA mengarahkan kelas SISWA untuk menambahkan nomor siswa, nama, dan data lain tentang siswa itu. Demikian pula, pesan bernama HAPUS SISWA memberi tahu kelas SISWA untuk menghapus instance Siswa. Pesan yang sama untuk dua objek berbeda dapamenghasilkan hasil yang berbeda.

    5. KELAS (Class)

Kelas adalah deskripsi umum yang menggambarkan sebuah kumpulan berisi objek-objek yang sama. Semua objek dalam kelas berbagi atribut dan metode yang sama, sehingga kelas seperti blue print, atau template untuk semua objek di dalam kelas.

Superclass adalah generalisasi dari satu himpunan kelas-kelas yang berhubungan.

Subclass adalah spesialisasi dari superclass.

Contoh: superclass kendaraanBermotor adalah generalisasi dari kelas Truk, SUV, Minibus dan Car. Subclass Minibus mewarisi semua atribut kendaraanBermotor, tetapi juga menggabungkan atribut tambahan yang spesifik hanya untuk Minibus.


C.  Hubungan Antara Objek dan Kelas

Hubungan (relationship) memungkinkan objek untuk berkomunikasi dan berinteraksi ketika mereka melakukan fungsi bisnis dan transaksi yang diperlukan oleh sistem. Hubungan menggambarkan apa yang perlu diketahui objek satu sama lain, bagaimana objek merespon perubahan pada objek lain, dan efek keanggotaan dalam kelas, superclass, dan subclass. Beberapa hubungan lebih kuat daripada yang lain (seperti hubungan antara anggota keluarga lebih kuat dari satu hubungan antara kenalan biasa). Hubungan terkuat disebut warisan.


D.  KARAKTERISTIK OBJEK

    1. Enkapsulasi (Encapsulation)

Data dan prosedur/fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur/fungsi lain dari luar tidak dapat mengaksesnya. Data terlindung dari prosedur atau objek lain kecuali prosedur yang berada dalam objek tersebut. Merupakan pembatasan ruang lingkup program terhadap data. Enkapsulasi memungkinkan objek untuk digunakan sebagai komponen modular di mana saja dalam sistem, karena objek mengirim dan menerima pesan tetapi tidak mengubah metode internal objek lain.

    2. Pewarisan (Inheritance)

Pewarisan adalah salah satu pembeda utama antara sistem konvensional dan sistem berbasis objek. Subkelas Y mewarisi semua atribut dan operasi- operasi yang terkait dengan superkelas X. Ini berarti  semua struktur dan algoritma data yang secara  orisinal dirancang dan diimplementasikan untuk X  segera tersedia untuk Y. Perubahan apa pun pada atribut-atribut atau operasi- operasi yang dimuat ke dalam sebuah superkelas,  akan diwarisi oleh semua subkelas.

    3. Polimorfis (Polymorphism)

Merupakan konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfis juga mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. Polimorfis sangat mengurangi usaha yang diperlukan untuk memperluas perancangan sistem berorientasi objek.


E.  KELAS-KELAS PERANCANGAN

Model kebutuhan menentukan serangkaian kelas-kelas analisis yang masing-masing kelas menggambarkan beberapa elemen masalah yang fokus pada masalah yang dilihat oleh pengguna.

Himpunan kelas-kelas perancangan adalah: 

1. Memperhalus kelas-kelas analisis dengan menyediakan detail perancangan yang memungkinkan kelas-kelas bisa diimplementasikan

2. Menciptakan suatu himpunan kelas-kelas perancangan yang baru, yang mengimplementasikan suatu infrastruktur PL yang mendukung solusi bisnis.

    Kelas perancangan yang merepresentasikan lapisan berbeda dari perancangan arsitektur:

Kelas-kelas antarmuka. Pengguna menentukan semua abstraksi yang diperlukan untuk interaksi manusia dengan komputer

Kelas-kelas bisnis. Kelas-kelas mengidentifikasi atribut dan operasi/metode yang dibutuhkan untuk mengimplementasikan beberapa elemen ranah bisnis.

Kelas-kelas proses. Mengimplementasikan abstraksi bisnis yang levelnya lebih rendah untuk sepenuhnya mengelola kelas-kelas ranah bisnis.

Kelas-kelas persisten. Merepresentasikan data store yang akan terus ada setelah eksekusi PL.

Kelas-kelas sistem. Mengimplementasikan manajemen PL dan mengendalikan fungsi-fungsi agar mampu mengoperasikan sistem dan berkomunikasi dengan dunia luar.

    Karakteristik Kelas Perancangan:

    a. Lengkap dan cukup

Suatu kelas perancangan seharusnya menjadi enkapsulasi lengkap dari semua atribut dan metode yang dapat layak diharapkan. Cukup berarti memastikan bahwa kelas perancangan berisi hanya metode-metode yang cukup untuk mencapai tujuan kelas.

Contoh: kelas Scene adalah lengkap hanya jika kelas ini berisi semua atribut dan metode yang dapat layak diasosiasikan dengan pembuatan suatu scene video.

    b. Sederhana

Metode-metode yang dihubungkan dengan sebuah kelas perancangan harus fokus ke pencapaian satu fungsi spesifik pada kelas.

Contoh: kelas VideoClip memiliki atribut StartPoint dan EndPoint untuk mengindikasikan titik awal dan titik akhir.

    c. Kohesi tinggi

Kelas perancangan kohesif adalah single minded. Artinya kelas ini memiliki satu kumpulan kecil tanggung jawab yang fokus dan menerapkan atribut dan metode untuk menjalankan tanggung jawab tersebut.

Contoh: kelas VideoClip dapat berisi satu kumpulan metode-metode untuk mengedit klip video. Kohesi dijaga asalkan setiap metode fokus semata-mata pada atribut-atribut yang diasosiasikan dengan klip video.

    d. Keterhubungan rendah

Jika sebuah model perancangan memiliki keterhubungan tinggi (semua kelas perancangan berkolaborasi dengan semua kelas perancangan lainnya), sistem menjadi sulit diimplementasikan, diuji, dan dipelihara. Kelas perancangan pada subsistem memiliki hanya pengetahuan terbatas tentang kelas-kelas lain. Pembatasan ini dinamakan Law of Demeter yang menyatakan bahwa suatu metode seharusnya hanya mengirim pesan ke metode-metode pada kelas-kelas yang berdekatan.


F.  PENDEKATAN  PEMROGRAMAN TERSTRUKTUR

Karakteristik Pendekatan Berorientasi Prosedur/Fungsi:

a. Penekanan pada sesuatu yang harus dikerjakan (algoritma pemecahan masalah)

b. Program berukuran besar dipecah menjadi program-program yang lebih kecil

c. Kebanyakan fungsi/prosedur berbagi data global

d. Data bergerak secara bebas dalam sistem dari satu fungsi ke fungsi yang lain yang terkait

e. Fungsi-fungsi mentransformasi data dari satu bentuk ke bentuk yang lain

f. Menggunakan pendekatan top-down


G. PENDEKATAN  BERORIENTASI OBJEK

Karakteristik Pada Pendekatan Berorientasi Objek:

a. Pendekatan lebih kepada data (bukan fungsi/prosedur)

b. Program besar dibagi menjadi beberapa objek

c. Struktur data dirancang dan menjadi karakteristik dari objek-objek

d. Fungsi-fungsi yang mengoperasikan data tergabung dalam suatu objek yang sama

e. Data tersembunyi dan terlindung dari fungs/prosedur yang ada di luar

f. Objek-objek dapat saling berkomunikasi dengan saling mengirim message satu sama lain

g. Menggunakan pendekatan bottom-up

Perbedaan Pemrograman Terstruktur dengan Pendekatan Berorientasi Objek: 

A.PEMROGRAMAN TERSTRUKTUR:

a. Permasalahan dilihat sebagai urutan sesuatu yang harus dikerjakan, seperti input – proses – output.

b. Fokus utamanya pada fungsi atau prosedur

c. Data global pada program yang sangat besar, sangat sulit untuk dilacak. Jika merevisi data global maka merevisi setiap fungsi yang menggunakan data global.

d. Tidak menggambarkan kasus nyata dengan baik, karena fungsi-fungsi berorientasi pada aksi dan tidak berhubungan langsung dengan permasalahan.

e. Kurang sempurna dalam menangkap kebutuhan reusable components, karena tidak ada standarisasi modul

B. PENDEKATAN BERORIENTASI OBJEK

a. Penekanan pada “apa” yang dapat dilakukan oleh objek

b. Pendekatan lebih kepada data

c. Perubahan pada struktur data internal tidak mempengaruhi struktur data objek yang lain

d. Penggunaan bersama untuk beberapa tingkat yang berbeda, seperti penggunaan bersama untuk disain dan kode

e. Menggunakan pendekatan bottom-up

f. Fungsi/prosedur berbagi data global

Jumat, 17 September 2021

Definisi Perangkat Lunak







Definisi Perangkat Lunak (PL) adalah: 

• Instruksi-instruksi program komputer yang ketika dijalankan menyediakan fitur-fitur, fungsi-fungsi dan kinerja yang dikehendaki. 

• Struktur data yang memungkinkan program-program memanipulasi informasi.

• Informasi deskriptif pada salinan tercetak dan bentukbentuk maya yang menggambarkan pengoperasian dan penggunaan program



2. KARAKTERISTIK PERANGKAT LUNAK

 • PL dikembangkan atau direkayasa, bukan diproduksi dalam konteks manufaktur

 • PL tidak mengalami “kelelahan”

 • PL dibuat berdasarkan spesifikasi yang diminta oleh pengguna



Kategori Perangkat Lunak

 • PL Sistem (System Software)

 • PL Aplikasi (Application Software)

 • PL Rekayasa/Ilmiah (Engineering/Scientific Software)

 • PL yang tertanam (Embedded Software)

 • PL Lini Produk (Product-Line Software)

 • PL Aplikasi Web (Web/MobileApplications)

 • PL Kecerdasan Buatan (Artificial Intelligence Software)



Jenis Perangkat Lunak Aplikasi

 a. Stand-Alone Applications adalah contoh aplikasi seperti aplikasi office pada PC, program CAD, software manipulasi foto, dll.

 b. Interactive Transaction-Based Aapplications adalah aplikasi yang mengeksekusi pada komputer remote dan yang diakses oleh pengguna dari PC mereka sendiri atau terminal.

 c. Batch Processing Systems adalah sistem bisnis yang dirancang untuk memproses data input yang besar untuk membuat output yang sesuai. Contoh: sistem penagihan telepon, dan sistem pembayaran gaji, dll.



Perangkat Lunak Warisan

 • PL warisan harus diadaptasikan sedemikian rupa sehingga memenuhi kebutuhan dari lingkungan atau teknologi komputasi yang baru

 • PL warisan harus ditingkatkan kinerjanya supaya dapat menjalankan kebutuhan bisnis baru

 • PL warisan harus diperluas sedemikian rupa agar dapat saling mengoperasikan dengan sistem/PL/basisdata modern lainnya

 • PL harus dirancang ulang sehingga dapat hidup dalam lingkungan pengoperasian jaringan komputer



Kegagalan Perangkat Lunak

 • Meningkatnya tuntutan

 RPL membangun sistem yang lebih besar, sistem yang lebih kompleks menyebabkan tuntutan berubah. Sistem harus dibangun dan disampaikan lebih cepat, lebih besar, dan lebih kompleks. 

 • Harapan yang rendah

 Hal ini relatif mudah untuk menulis program komputer tanpa menggunakan metode dan teknik RPL, akibatnya PL lebih mahal dan kurang dapat diandalkan.



3. REKAYASA PERANGKAT LUNAK (RPL)

 • RPL adalah disiplin teknik yang berkaitan dengan semua aspek produksi PL dari tahap awal spesifikasi sistem sampai pemeliharaan.

 • Aspek produksi RPL berkaitan dengan proses teknis dari pengembangan PL, manajemen proyek PL dan pengembangan alat-alat, metode, dan teori untuk mendukung produksi PL.

 • RPL merupakan aplikasi dari suatu pendekatan yang semantik, disiplin, dan dapat diukur pada pengembangan, operasi, dan perawatan PL.

PL dalam segala bentuk aplikasinya harus direkayasa, dengan alasan:

 • PL telah menyatu secara maya dengan setiap aspek dalam kehidupan

 • Kebutuhan IT yang sudah banyak dituntut oleh individu, bisnis dan pemerintah bertambah kompleks

 • Individu, bisnis, dan pemerintah mengandalkan PL untuk mengambil keputusan yang bersifat taktis dan strategis • Nilai aplikasi terus bertambah, kemungkinan jumlah pengguna dan usia PL akan bertambah



4. PROSES PERANGKAT LUNAK

 Empat kegiatan proses PL adalah:

 a. Spesifikasi PL

 b. Pengembangan PL

 c. Software validasi

 d. Software evolusi

• Kegiatan-kegiatan penyangga mencakup:

 a. Penelusuran dan kendali proyek PL

 b. Manajemen risiko

 c. Penjaminan kualilitas PL

 d. Tinjauan teknis

 e. Pengukuran

 f. Manajemen konfigurasi PL

 g. Manajemen penggunaan ulang

 h. Persiapan produk kerja dan produksi



5. PRAKTEK RPL Langkah-langkah RPL:

 a. Memahami permasalahan

 • Siapa yang terkait dalam pemecahan masalah?

 • Apa saja yang tidak diketahui?

 • Data, fungsi, dan fitur yang dibutuhkan, tsb.

b. Merancang solusi

 • Pernahkah ada masalah serupa sebelumnya dan telah didapatkan pemecahan masalahnya?

 • Dapatkah sub-masalah didefinisikan?

 • Dapatkah menyusun solusinya?, tsb.

c. Menjalankan rancangan

 • Apakah solusi cocok dengan masalah?

 • Apakah kode program dapat dilacak secara langsung?

 • Apakah komponen dari solusi sudah tepat?, tsb.

d. Memeriksa hasil

 • Uji setiap komponen dari solusi dengan menggunakan strategi pengujian

 • Apakah solusi sesuai dengan data, fungsi dan fitur yang dibutuhkan?, tsb.



6. MITOS-MITOS PL

 A. Mitos Manajemen

Mitos-1: Kita sudah memiliki buku yang standar dan prosedur untuk membangun PL.

Realita: Apakah buku tersebut mencerminkan praktek RPL modern, lengkap, dan dapat beradaptasi dengan keadaan yang dihadapi saat ini?

Mitos-2: Jika kita tertinggal dari jadwal yang telah ditetapkan, kita dapat menambah jumlah programmer dan akan memenuhi jadwal dengan cepat.

Realita: Menambah orang baru untuk proyek PL yang tertunda menyebabkan penyelesaian proyek PL tersebut mejadi semakin terlambat.

B. Mitos Pelanggan

Mitos: Pernyataan tujuan umum sudah cukup untuk mulai menulis program, dan kita dapat membuat rinciannya nanti.

Realita: Pembuatan pernyataan kebutuhan yang komprehensif dan stabil tidak selalu dimungkinkan (tidak ambigu), tetapi perlu mengembangkan komunikasi yang efektif antara pengembang dan pelanggan.

C. Mitos Praktisi

Mitos-1: Satu-satunya produk kerja untuk mencetak proyek PL yang berhasil adalah program yang sedang berjalan.

Realita: Sebuah produk kerja hanyalah sebagian kecil dari konfigurasi PL yang pada dasarnya mencakup banyak unsur RPL yang berhasil dan memberikan panduan bagi dukungan PL.

Mitos-2: Ketika kita menulis kode program dan menjalakannya, maka pekerjaan dianggap sudah selesai.

Realita: Semakin cepat kita mulai menulis „kode program‟, semakin lama waktu yang dibutuhkan untuk menyelesaikannya.