Anda di halaman 1dari 6

Atribut Kualitas Perangkat Lunak

Pengembang sistem kritis bertanggung jawab untuk mengidentifikasi persyaratan aplikasi,


mengembangkan perangkat lunak yang mengimplementasikan persyaratan, dan untuk mengalokasikan
sumber daya yang sesuai (prosesor dan jaringan komunikasi). Tidak cukup hanya memenuhi persyaratan
fungsional. Sistem kritis secara umum harus memenuhi keamanan, keselamatan, keandalan, kinerja, dan
persyaratan serupa lainnya.

Kualitas perangkat lunak adalah sejauh mana perangkat lunak memiliki kombinasi atribut yang
diinginkan (misalnya, keandalan, interoperabilitas) [IEEE 1061].

2.1 Bagaimana Berbagai Komunitas Mengatasi Atribut Kualitas

Ada berbagai aliran/pendapat/tradisi mengenai sifat-sifat sistem kritis dan metode terbaik untuk
mengembangkannya:

• kinerja dari tradisi sistem dan kapasitas hard real-time

keterandalan perencanaan dari tradisi keamanan sistem yang sangat andal dan toleran terhadap
kesalahan — dari tradisi pemerintah, perbankan, dan komunitas akademik

keselamatan — dari tradisi analisis bahaya dan rekayasa keselamatan sistem Sistem sering gagal
memenuhi kebutuhan pengguna (yaitu, kualitas yang kurang) ketika desainer secara sempit berfokus
pada pemenuhan beberapa persyaratan tanpa mempertimbangkan dampak pada persyaratan lain atau
dengan memperhitungkannya terlalu terlambat dalam proses pengembangan. Misalnya, mungkin tidak
mungkin untuk memenuhi persyaratan keandalan dan kinerja secara bersamaan:

. Replikasi komunikasi dan komputasi untuk mencapai ketergantungan mungkin bertentangan dengan
persyaratan kinerja (misalnya, tidak cukup waktu). Penempatan proses kritis untuk mencapai kinerja
mungkin bertentangan dengan persyaratan ketergantungan (misalnya, satu titik kegagalan).
Ini bukan masalah baru dan pengembang perangkat lunak telah mencoba untuk mengatasinya sejak
lama, seperti yang diilustrasikan oleh Boehm:

Akhirnya, kami menyimpulkan bahwa menghitung dan memahami nilai metrik keseluruhan tunggal
untuk kualitas perangkat lunak mungkin lebih merepotkan daripada nilainya. Masalah utama adalah
bahwa banyak dari karakteristik individu kualitas berada dalam konflik; efisiensi tambahan sering dibeli
dengan harga portabilitas, akurasi, pemahaman, dan pemeliharaan; akurasi tambahan sering
bertentangan dengan portabilitas melalui ketergantungan pada ukuran kata; keringkasan dan
bertentangan dengan keterbacaan. Pengguna umumnya merasa sulit untuk mengukur preferensi
mereka dalam situasi konflik seperti itu [Boehm 78].

3.1.1.1 Definisi IEEE 610.12 "Kinerja" memiliki banyak konotasi. Definisi yang diberikan dalam Daftar
Istilah Standar IEEE Terminologi Rekayasa Perangkat Lunak (IEEE-610.12] adalah: "Kinerja. Sejauh mana
suatu sistem atau komponen menyelesaikan fungsi yang ditentukan dalam batasan yang diberikan,
seperti kecepatan, akurasi , atau penggunaan memori.” Definisi ini terlalu luas untuk tujuan kita. 3.1.1.2
Definisi Smith Kinerja sebagai atribut kualitas perangkat lunak mengacu pada aspek ketepatan waktu
bagaimana sistem perangkat lunak berperilaku. Kami mengadopsi sedikit generalisasi dari definisi
kinerja Smith: “Kinerja mengacu pada daya tanggap: baik waktu yang dibutuhkan untuk menanggapi
peristiwa tertentu atau jumlah peristiwa yang diproses dalam interval waktu tertentu" [Smith 93, hal.
720]. Kinerja adalah atribut dari sistem komputer yang mencirikan ketepatan waktu layanan yang
diberikan oleh sistem. 3.1.1.3 Performa vs. Kecepatan Kesalahpahaman tentang kinerja adalah bahwa
itu sama dengan kecepatan—yaitu, gagasan bahwa kinerja yang buruk dapat diselamatkan hanya
dengan menggunakan prosesor yang lebih kuat atau tautan komunikasi dengan bandwidth yang lebih
tinggi. Lebih cepat mungkin lebih baik, tetapi untuk banyak sistem lebih cepat tidak cukup untuk
mencapai ketepatan waktu. Ini terutama berlaku untuk sistem waktu nyata. Sebagaimana dicatat oleh
Stankovic [Stankovic 88], tujuan dari "komputasi cepat" adalah untuk meminimalkan waktu respons
rata-rata untuk beberapa kelompok layanan, sedangkan tujuan komputasi waktu nyata adalah untuk
memenuhi persyaratan waktu individu dari setiap layanan. Selain itu, mekanisme perangkat keras
seperti caching, pipelining, dan multithreading, yang dapat mengurangi waktu respons rata-rata, dapat
membuat waktu respons kasus terburuk tidak dapat diprediksi. "Prediktabilitas, bukan kecepatan,
adalah tujuan utama dalam desain sistem waktu nyata" [Stankovic 88]. Secara umum, rekayasa kinerja
berkaitan dengan kinerja yang dapat diprediksi—apakah itu kinerja terburuk atau rata-rata. Kecepatan
eksekusi hanya satu faktor.

3.1.2.1 Model Kinerja Abstrak Kinerja suatu sistem berasal dari sifat sumber daya yang digunakan untuk
memenuhi tuntutan dan bagaimana sumber daya bersama dialokasikan ketika beberapa tuntutan harus
dilakukan pada sumber daya yang sama. Jenis masalah ini dikenal sebagai masalah penjadwalan dan
telah dipelajari selama bertahun-tahun. Lihat, misalnya, Conway [Conway 67]. CMU/SEI-95-TR-021 3
Kinerja 7 Conway [Conway 67, hal. 6] mengatakan masalah penjadwalan dapat dijelaskan dengan empat
jenis informasi: 1. pekerjaan dan operasi yang akan diproses 2. jumlah dan jenis mesin 3. disiplin yang
membatasi cara pemberian tugas 4. kriteria yang digunakan untuk mengevaluasi jadwal Dari sudut
pandang pemodelan, Smith (Smith 93, p. 723] menjelaskan lima jenis data yang dibutuhkan untuk
membangun dan mengevaluasi model rekayasa kinerja perangkat lunak: • Persyaratan kinerja -
persyaratan kuantitatif yang didefinisikan dalam hal peristiwa yang menarik dan batasan waktu untuk
menanggapi setiap peristiwa. • Pola dan intensitas perilaku - jumlah aliran peristiwa dan tingkat
kedatangan kasus terburuk dan kondisi mapan untuk setiap aliran peristiwa • Deskripsi perangkat lunak
- operasi perangkat lunak yang dijalankan sebagai tanggapan terhadap acara. • Lingkungan eksekusi -
perangkat keras dan layanan perangkat lunak diperlukan untuk melakukan operasi perangkat lunak
tersebut di atas. • Perkiraan penggunaan sumber daya - persyaratan sumber daya untuk membawa
perangkat lunak operasi seperti waktu eksekusi prosesor, permintaan I/O atau memori persyaratan.
Sudut pandang Conway dan Smith agak berbeda; Namun demikian, kedua sudut pandang memanggil •
masalah kinerja, seperti kriteria untuk mengevaluasi jadwal, dan batasan waktu untuk menanggapi
peristiwa . faktor kinerja, seperti • pola dan intensitas perilaku, penggunaan sumber daya, deskripsi
perangkat lunak, serta pekerjaan dan operasi, yang mencirikan permintaan sistem • lingkungan eksekusi
dan jumlah serta jenis mesin, yang mencirikan metode kinerja sistem, seperti sintesis dan analisis yang
didasarkan pada teori antrian, penjadwalan teori, dan metode formal yang digunakan untuk memahami
hubungan antara faktor dan kekhawatiran. . Hal ini tercermin dalam taksonomi yang ditunjukkan pada
Gambar 3-1. Aliran peristiwa adalah urutan peristiwa dari sumber yang sama-misalnya, urutan interupsi
dari sensor yang diberikan.

4.2.3 Pemeliharaan Pemeliharaan sistem adalah kemampuannya untuk menjalani perbaikan dan evolusi.
Hal ini kurang tepat diukur dari dua masalah sebelumnya. MTTR adalah ukuran kuantitatif pemeliharaan,
tetapi tidak menceritakan keseluruhan cerita. Misalnya, filosofi perbaikan harus diperhitungkan.
Beberapa sistem dikelola oleh pengguna, yang lain oleh pabrikan. Beberapa dikelola oleh keduanya
(misalnya, mesin mendiagnosis kegagalan papan, mengirim pesan ke pabrikan yang mengirimkan papan
pengganti kepada pengguna dengan petunjuk pemasangan.) Ada trade-off biaya vs. MTTR yang ikut
bermain. Misalnya, diagnostik bawaan dapat mengurangi MTTR dengan kemungkinan biaya tambahan
memori, waktu proses, atau waktu pengembangan. 4.2.4 Keamanan Dari sudut pandang
ketergantungan, keselamatan didefinisikan sebagai tidak adanya konsekuensi bencana terhadap
lingkungan. Leveson [Leveson 95] mendefinisikannya sebagai kebebasan dari kecelakaan dan kerugian.
Ini mengarah pada ukuran keamanan biner: suatu sistem aman atau tidak aman. Keselamatan
diperlakukan secara terpisah di bagian lain dalam laporan ini. 4.2.5 Kerahasiaan Kerahasiaan adalah
tidak terjadinya pengungkapan informasi yang tidak sah. Ini diperlakukan secara terpisah, di bagian
"Keamanan" dari laporan ini (lihat Bagian 5 di halaman 25). 4.2.6 Integritas Integritas adalah tidak
terjadinya perubahan informasi yang tidak semestinya. Bersamaan dengan kerahasiaan, subjek ini
diperlakukan secara terpisah di Bagian 5 pada halaman 25. 4.3 Penurunan Ketergantungan Kerusakan
pada ketergantungan termasuk kesalahan, kesalahan, dan sifat kegagalan dari perangkat keras dan
perangkat lunak yang terdiri dari sistem, seperti yang ditunjukkan pada Gambar 4-1. 4.3.1 Kegagalan
Seperti yang dinyatakan sebelumnya, suatu sistem gagal ketika perilakunya berbeda dari yang
dimaksudkan. Perhatikan bahwa kami mendefinisikan kegagalan sehubungan dengan maksud, dan tidak
sehubungan dengan spesifikasi. Jika maksud dari perilaku sistem berakhir berbeda dari spesifikasi
perilaku, kita memiliki kesalahan spesifikasi. Ada banyak cara yang berbeda di mana sistem bisa gagal.
Seperti yang ditunjukkan pada Gambar 4-2, apa yang disebut "mode kegagalan" dari suatu sistem dapat
secara longgar dikelompokkan ke dalam tiga kategori; kegagalan domain, persepsi oleh pengguna, dan
konsekuensi pada lingkungan.

5.1 Ikhtisar 5.1.1 Konteks Atribut Keamanan Definisi atribut keamanan tergantung pada konteks di mana
atribut tersebut ditangani. Secara historis, ada tiga bidang utama yang membahas keamanan: aplikasi
pemerintah dan militer; perbankan dan keuangan; dan aplikasi akademis dan ilmiah. Dalam setiap kasus
ini, aspek keamanan yang berbeda ditekankan, dan definisi atribut keamanan individu bergantung pada
aspek keamanan yang ditekankan. 5.1.1.1 Pemerintah dan Militer Untuk aplikasi pemerintah dan militer,
pengungkapan informasi adalah risiko utama yang harus dihindari dengan segala cara. Untuk mencapai
hal ini, aplikasi dan sistem operasi dikembangkan untuk mengatasi pemisahan data dan proses melalui
desain perangkat keras dan perangkat lunak yang meniru sistem dokumen rahasia yang ada. Standar
memuncak dalam Buku Oranye - DoD 5200.28.STD dan interpretasi terkait (secara kolektif dikenal
sebagai Seri Pelangi). Dokumen-dokumen ini berisi model, arsitektur, dan metode evaluasi dan peringkat
untuk komputasi yang aman. 5.1.1.2 Perbankan dan Tunangan Dalam perbankan, keuangan, dan
komputasi yang terkait dengan bisnis, penekanan keamanan adalah pada perlindungan aset. Sementara
pengungkapan merupakan risiko penting, risiko yang jauh lebih besar adalah modifikasi informasi yang
tidak sah. Melindungi integritas informasi menghasilkan kepercayaan dari pelanggan, dan dengan
demikian kepercayaan pada institusi yang bertanggung jawab untuk memelihara data dan proses ini.
Berbeda dengan DoD, tidak ada standar tunggal yang menangani masalah ini, dan dalam setiap kasus
integritas sistem dan aplikasi diwujudkan dalam persyaratan rinci dari sistem yang akan dikembangkan
atau dibeli. Karena kurangnya standarisasi dalam definisi persyaratan ini, efektivitas yang dihasilkan
dalam hal atribut keamanan yang diterapkan sangat bervariasi. 5.1.1.3 Akademik dan Ilmiah Untuk
komputasi akademis dan ilmiah, penekanan keamanan utama adalah pada perlindungan dari
penggunaan sumber daya yang tidak sah. Ini berasal dari waktu ketika komputer dan waktu komputasi
sangat mahal dan sumber daya penting untuk penelitian dan aplikasi ilmiah. Penekanan ini telah
mengarah pada standar yang ada dalam administrasi sistem dan deteksi intrusi pada jaringan bersama
yang besar seperti Internet. Di bagian berikut, definisi dan taksonomi untuk atribut keamanan akan
dicoba dalam konteks umum. Salah satu yang akan berlaku untuk salah satu situasi di atas. Jika sesuai,
standar yang relevan untuk setiap konteks diidentifikasi.

5 Keamanan 25 5.1.2 Definisi Definisi umum keamanan diberikan dalam Lampiran F dari laporan Dewan
Riset Nasional, "Komputer yang Berisiko": 1. Bebas dari bahaya; keamanan. 2. Perlindungan data sistem
terhadap pengungkapan, modifikasi, atau penghancuran. Perlindungan sistem komputer itu sendiri.
Upaya perlindungan dapat bersifat teknis dan administratif. 3. Properti yang memberlakukan kebijakan
keamanan tertentu, dengan tingkat jaminan. 4. Sering digunakan dalam arti terbatas untuk menandakan
kerahasiaan, khususnya dalam kasus keamanan bertingkat. Dalam hal atribut keamanan, definisi kedua
dan ketiga berlaku. Unsur-unsur utama taksonomi, dengan demikian, adalah perlindungan dari
pengungkapan (confidentiality), modifikasi (integritas), dan penghancuran (availability). Masing-masing
elemen ini harus ditangani dalam konteks kebijakan keamanan secara keseluruhan. Kebijakan keamanan
ini menetapkan konteks tentang cara menetapkan persyaratan dan mengevaluasi efektivitas masing-
masing kategori umum keamanan ini. Ini adalah kebijakan keamanan yang membedakan antara
lingkungan, seperti yang ditentukan dalam pendahuluan. Model-model yang ada sejauh ini berfokus
terutama pada kebijakan keamanan yang menekankan kerahasiaan di atas segalanya, yang mengarah ke
definisi keempat dari Computers at Risk, serta perlakuan keamanan dalam makalah atribut perangkat
lunak lain seperti (Rushby 94]. 5.1.3 Taksonomi Sebagian besar taksonomi keamanan yang ada
didasarkan pada analisis risiko lingkungan tertentu; analisis risiko tersebut kemudian digunakan sebagai
kerangka kerja untuk menggambarkan kesalahan keamanan atau mekanisme perlindungan dalam
sistem. Sebagai contoh, taksonomi yang dijelaskan dalam [Aslam 95] berpusat di sekitar kesalahan
keamanan yang ditemukan dalam sistem operasi UNIX. Taksonomi ini menguraikan kesalahan
pengkodean menjadi unit yang mencakup kesalahan umum selama rekayasa perangkat lunak.
Kesulitannya adalah bahwa jenis taksonomi ini tidak banyak menyarankan bagaimana menangani
persyaratan keamanan atau menukar metodologi rekayasa untuk atribut kualitas lainnya. Di [Rushby
94], keamanan seimbang dengan atribut kualitas lainnya, tetapi definisi dan cakupan atribut keamanan
dibatasi untuk kerahasiaan. Untuk memasukkan aspek keamanan lain dan membandingkannya dengan
atribut kualitas lainnya, masalah keamanan dipecah menjadi tiga kategori dasar kerahasiaan, integritas,
dan ketersediaan. Dari keprihatinan ini, faktor keamanan pada batas sistem (antarmuka atau
lingkungan), dan faktor internal dapat diidentifikasi. Setelah masalah dan faktor diidentifikasi,
pendekatan luas saat ini untuk sintesis dan analisis diidentifikasi.

Keamanan 6.1 Ikhtisar 6.1.1 Definisi Seperti yang dinyatakan sebelumnya, ketergantungan adalah
properti dari sistem komputer sedemikian rupa sehingga ketergantungan dapat dibenarkan ditempatkan
dalam layanan yang diberikannya [Laprie 94]. Mengutip definisi ini, kita dapat mendefinisikan
keselamatan sebagai properti dari sistem komputer sedemikian rupa sehingga ketergantungan dapat
dibenarkan tanpa adanya kecelakaan. . Ketergantungan berkaitan dengan terjadinya kegagalan,
didefinisikan dalam hal konsekuensi internal (layanan tidak disediakan). • Keselamatan berkaitan
dengan terjadinya kecelakaan atau kecelakaan, yang didefinisikan dalam istilah konsekuensi eksternal
(kecelakaan terjadi). Perbedaan maksud—"hal baik (layanan) harus terjadi" vs. "hal buruk (kecelakaan)
tidak boleh terjadi"-menimbulkan paradoks berikut: Jika layanan ditentukan secara tidak benar, sistem
dapat diandalkan tetapi tidak aman; sebaliknya , adalah mungkin bagi suatu sistem untuk aman tetapi
tidak dapat diandalkan. • Sebuah sistem mungkin dapat diandalkan tetapi tidak aman misalnya, sistem
avionik yang terus beroperasi dalam kondisi yang merugikan namun mengarahkan pesawat ke jalur
tabrakan. • Suatu sistem mungkin aman tetapi tidak dapat diandalkan misalnya, sistem persinyalan
kereta api yang selalu gagal-berhenti. 6.1.2 Taksonomi Taksonomi untuk atribut keselamatan
mendefinisikan kondisi sistem (bahaya) yang mungkin menyebabkan konsekuensi yang tidak diinginkan
(kecelakaan); metode yang biasanya digunakan untuk mengidentifikasi bahaya, mengevaluasi
konsekuensi dari bahaya, dan menghilangkan atau mengurangi kemungkinan kecelakaan; dan indikator
keselamatan secara agregat (sistem, lingkungan, pengguna dan operator). 6.2 Kekhawatiran Perrow
[Perrow 84] mengidentifikasi dua sifat sistem kritis yang dapat berfungsi sebagai indikator keamanan
sistem: kompleksitas interaksi dan kekuatan kopling. 6.2.1 Kompleksitas Interaksi Kompleksitas interaksi
berkisar dari linier ke kompleks dan sejauh mana perilaku satu komponen dapat mempengaruhi perilaku
komponen lainnya. Interaksi linier adalah interaksi dalam urutan produksi atau pemeliharaan yang
diharapkan dan familiar, dan interaksi yang cukup terlihat

Keamanan bahkan jika tidak direncanakan. Interaksi kompleks adalah interaksi dari urutan yang tidak
dikenal, atau urutan yang tidak direncanakan dan tidak terduga, dan tidak terlihat atau tidak langsung
dapat dipahami. [Perrow 84, Tabel 3.1] menyarankan indikator kompleksitas interaksi berikut: Indikator
interaksi yang kompleks meliputi: kedekatan—fisik (komponen) atau logis (langkah) • koneksi mode
umum subsistem yang saling berhubungan C CMC/SEI-95-TR-021 34 jam • isolasi terbatas atau
penggantian komponen yang gagal • loop umpan balik yang tidak dikenal atau tidak disengaja beberapa
parameter kontrol yang saling berinteraksi • sumber informasi tidak langsung atau inferensial •
pemahaman yang terbatas tentang beberapa proses Indikator interaksi linier meliputi: pemisahan antar
komponen atau langkah • koneksi khusus . subsistem terpisah . isolasi dan substitusi yang mudah •
beberapa loop umpan balik tujuan tunggal, kontrol terpisah informasi online langsung. • pemahaman
yang luas 6.2.2 Kekuatan Kopling Kekuatan kopling berkisar dari kopling longgar hingga kopling ketat dan
sejauh mana ada fleksibilitas dalam sistem untuk memungkinkan kejadian yang tidak direncanakan.
Sistem yang digabungkan secara ketat memiliki lebih banyak proses yang bergantung pada waktu:
mereka tidak dapat menunggu atau menunggu sampai ditangani; urutannya lebih invarian dan desain
keseluruhan memungkinkan alternatif yang sangat terbatas dalam cara melakukan pekerjaan; mereka
memiliki "unifinalitas" — —satu cara unik untuk mencapai tujuan. Proses yang digabungkan secara
longgar dapat ditunda atau disiagakan; urutan dapat dimodifikasi dan sistem direstrukturisasi untuk
melakukan pekerjaan yang berbeda atau pekerjaan yang sama dengan cara yang berbeda; mereka
memiliki "keseimbangan"—banyak cara untuk mencapai tujuan. [Perrow 84, Tabel 3.2] menyarankan
indikator kekuatan kopling berikut: Indikator kopling ketat meliputi: penundaan dalam proses tidak
mungkin • urutan invarian hanya satu metode untuk mencapai tujuan • buffer dan redundansi
dirancang, disengaja • sedikit kelonggaran [dalam sumber daya] mungkin • penggantian [sumber daya]
terbatas dan dirancang. Indikator kopling longgar meliputi: kemungkinan penundaan pemrosesan •
tersedia metode alternatif • urutan urutan dapat diubah

Anda mungkin juga menyukai