Anda di halaman 1dari 11

Machine Translated by Google

Diterbitkan dalam Prosiding

Analisis dan pengukuran fleksibilitas perangkat lunak


berdasarkan poin-poin fleksibel

Limin Shen, Shanghai Ren

Fleksibilitas
perangkat lunak merupakan salah satu sifat yang menunjukkan jika perangkat lunak mudah untuk diubah.
Perangkat lunak yang fleksibel dapat dengan mudah beradaptasi dengan kebutuhan pengguna dan/ atau
perubahan lingkungan selama periode pengembangan perangkat lunak atau setelah perangkat lunak
digunakan. Dalam makalah ini, kami memperkenalkan dua konsep baru, perubahan fleksibel dan Titik
Fleksibel (FXP). Terkait dengan titik fleksibel, seperangkat indeks fleksibilitas, yaitu derajat fleksibel, gaya
fleksibel, jarak fleksibel, kapasitas fleksibel, dan rumus perhitungannya ditentukan. Kami selanjutnya
menyajikan skema yang memanfaatkan konsep dan indeks baru ini untuk mengukur fleksibilitas perangkat
lunak secara kuantitatif. Fleksibilitas perangkat lunak terkait properti. Mereka adalah kemampuan beradaptasi
perangkat lunak, kerapuhan, kekakuan, elastisitas dan plastisitas, juga dibahas dan dianalisis. Poin fleksibel
dikategorikan ke dalam lima jenis berbeda: FXP potensial, FXP yang tersedia, FXP bekas, FXP saat ini, dan
FXP yang diperlukan, dan empat level berbeda: FXP Adaptif Mandiri, FXP Pengguna Tingkat Rendah, FXP
Pengguna Tingkat Tinggi, dan Pengembang -Tingkat Pengguna FXP. Hubungan dan perbedaan antara titik
fleksibel dan dampaknya terhadap pengembangan, pemeliharaan, dan kualitas perangkat lunak dibahas.
Proses pengukuran fleksibilitas perangkat lunak berdasarkan titik fleksibel direpresentasikan. Studi kasus
sederhana dilakukan untuk mengilustrasikan analisis dan pengukuran fleksibilitas perangkat lunak. Metrik
dalam makalah ini dapat digunakan untuk memandu pengembang perangkat lunak untuk menentukan dan
meningkatkan fleksibilitas aplikasi perangkat lunak mereka dan untuk membandingkan fleksibilitasnya di
antara sistem perangkat lunak yang berbeda atau versi yang berbeda.

1. Perkenalan
Fleksibilitas sering digunakan dalam rekayasa perangkat lunak sebagai salah satu sifat utama. Banyak
produk dan teknologi perangkat lunak diberi label "fleksibel". Namun, apa itu fleksibilitas perangkat lunak
dan bagaimana mengukurnya masih belum jelas. Meskipun secara intuitif fleksibilitas perangkat lunak
dipahami sebagai kemampuan untuk menanggapi perubahan, dan kadang-kadang digunakan untuk
mengevaluasi kualitas perangkat lunak, definisi formal dari fleksibilitas perangkat lunak dan sifat-sifatnya
kurang dipahami. Situasi tersebut dapat terjadi karena alasan-alasan berikut: • “Fleksibilitas”
adalah kata yang kaya makna. Kadang-kadang digunakan secara bergantian dengan istilah lain, seperti
adaptabilitas, plastisitas, elastisitas, kelincahan dan keserbagunaan, dll. • Fleksibilitas
perangkat lunak, mirip dengan fleksibilitas material, adalah salah satu sifat internal perangkat lunak.
Meskipun, betapa mudahnya perangkat lunak digunakan, berapa lama waktu yang diperlukan untuk
membuat perubahan pada perangkat lunak yang ada, dll., sampai batas tertentu mencerminkan sifat
fleksibilitas perangkat lunak, perilaku eksternal seperti itu tidak
mengungkapkan inti dari fleksibilitas perangkat lunak. • Sepengetahuan penulis, tidak ada kriteria pengukuran
fleksibilitas perangkat lunak yang terdefinisi dengan baik dan terpadu.

Sejak awal tahun 1980-an, konsep “fleksibilitas” telah menarik perhatian dalam industri manufaktur dan
manajemen bisnis [1][2][3]. Dalam Sistem Manufaktur Fleksibel (FMS), fleksibilitas menunjukkan kemampuan
untuk menanggapi perubahan dan kemampuan untuk menimbulkan perubahan tersebut pada entitas lain
dalam sistem. Dalam rekayasa perangkat lunak, konsep fleksibilitas perangkat lunak telah muncul pada
tahun 1979 [4], tetapi sebagian besar literatur datang hampir sepuluh tahun kemudian (pada tahun 1990-an)
dan penelitian terutama difokuskan pada aspek kualitatif dari fleksibilitas perangkat lunak [4][5][ 6][7][8].

331
Machine Translated by Google

Diterbitkan dalam Prosiding

Pamas (1979) berpendapat perangkat lunak yang fleksibel adalah perangkat lunak yang dapat dengan
mudah diubah, diperluas, dikontrak, atau lainnya agar dapat digunakan dalam berbagai cara [4]. Keith
Bennett (1999, 2000,2004) mempresentasikan daftar fitur perangkat lunak yang fleksibel, menunjukkan
bahwa perangkat lunak yang fleksibel harus diperlukan dan memadai, dipersonalisasi, dapat disesuaikan
dan menyesuaikan diri, didistribusikan, dalam unit kecil dan transparan [5][6] [7]. Nelson, dkk. (1997)
mendefinisikan fleksibilitas teknologi dalam konteks perangkat lunak manajemen alur kerja. Mereka
mengusulkan kerangka pengukuran untuk fleksibilitas teknologi yang mencakup faktor-faktor seperti
modularitas, dimensi perubahan, tingkat respon, keahlian dan koordinasi tindakan dalam dimensi
fleksibilitas proses [8]. Zhao (1998) mengusulkan dua konsep fleksibilitas perangkat lunak terkait dalam
penelitian tentang manajemen alur kerja: kemampuan beradaptasi sistem dan keserbagunaan sistem.
Kemampuan beradaptasi sistem adalah kemampuan untuk memodifikasi sistem untuk mengatasi
perubahan besar dalam proses bisnis dengan sedikit atau tanpa gangguan pada operasi bisnis.
Keserbagunaan sistem (atau ketahanan sistem) adalah kemampuan sistem untuk memungkinkan
prosedur yang fleksibel menangani pengecualian dalam proses dan prosedur [9]; Lassing (1999)
membuat analisis kualitatif fleksibilitas perangkat lunak pada perangkat lunak manajemen berdasarkan
skenario yang diberikan [10]; Zeng dan Zhao (2002) mempresentasikan “Mencapai Fleksibilitas Perangkat
Lunak melalui Teknik Alur Kerja Cerdas” [11]. Keith Bennett (2004) menjelaskan fleksibilitas perangkat
lunak sedemikian rupa sehingga perangkat lunak itu fleksibel – mudah untuk diubah tanpa mengorbankan
ketergantungan (dalam arti luas, biaya membuat perubahan sebanding dengan ukuran perubahan, bukan
sistem) [7 ]. Fenton [3] mengusulkan pengukuran dilakukan pada arsitektur perangkat lunak, tetapi
arsitektur umumnya tidak terlihat oleh klien.
Perangkat lunak mudah diubah karena "lunak", hanya dengan beberapa penekanan tombol, tetapi
dalam praktiknya sulit untuk diubah karena kompleksitas dan tembus pandang intrinsiknya. Seringkali
tidak jelas kapan perangkat lunak harus diubah, dan kapan harus dibuang dan diganti, properti apa yang
harus tetap tidak berubah. Hingga saat ini, perekayasa perangkat lunak belum begitu berhasil dalam
memahami bagaimana melakukan ini, dan adaptasi perangkat lunak terhadap perubahan belum
sepenuhnya diselesaikan, namun tuntutan untuk mengubah perangkat lunak dalam waktu internet terus
meningkat. Saat ini, tantangan besar yang dihadapi perangkat lunak datang dari perubahan acak
kebutuhan pengguna dan lingkungan. Hanya perangkat lunak yang dapat menangani perubahan ini, ia
dapat bertahan lama karena perangkat lunak adalah entitas logis, tidak dapat usang atau habis seperti
perangkat keras, dan perangkat lunak dapat hidup selamanya tanpa perubahan persyaratan dan
lingkungan. Fleksibilitas perangkat lunak adalah milik perangkat lunak yang dapat diubah atau diubah
dengan mudah untuk memenuhi permintaan kebutuhan pengguna dan perubahan lingkungan, dan oleh
karena itu fleksibilitas perangkat lunak dapat dimanfaatkan untuk mengatasi tantangan tersebut. Makalah
ini mencoba mengembangkan metrik dan metode pengukuran fleksibilitas
perangkat lunak pada fungsionalitas yang dapat
digunakan untuk: • Membandingkan fleksibilitas
perangkat lunak yang berbeda. • Mengevaluasi kapasitas fleksibilitas perangkat lunak. • Panduan
pengembang perangkat lunak
dan pengguna perangkat lunak untuk melakukan evolusi perangkat lunak dan lebih lanjut meningkatkan
fleksibilitas perangkat lunak. • Siapkan manipulator perangkat lunak pada tingkat yang berbeda untuk menerapkan flek

Makalah selanjutnya disusun sebagai berikut: Bagian 2 mengembangkan konsep di balik metrik kami
untuk pengukuran fleksibilitas perangkat lunak, dan menganalisis konotasi fleksibilitas, adaptasi,
perubahan perangkat lunak, dan perubahan fleksibel. Bagian 3 mengusulkan konsep dan metrik
pengukuran fleksibilitas perangkat lunak seperti derajat fleksibel, gaya fleksibel, jarak fleksibel dan
kapasitas fleksibel, serta rumus perhitungannya. Bagian 4 membahas analisis berdasarkan jenis dan
level titik fleksibel dan merepresentasikan proses pengukuran fleksibilitas perangkat lunak.

332
Machine Translated by Google

Diterbitkan dalam Prosiding

Bagian 5 selanjutnya memberikan studi kasus untuk mengilustrasikan analisis dan pengukuran fleksibilitas
perangkat lunak. Akhirnya, bagian 6 menarik kesimpulan dan membahas pekerjaan masa depan.

2. Analisis konsep

2.1. Fleksibilitas dan perubahan fleksibel


Sebelum metrik fleksibilitas dapat dibuat, analisis konsep tertentu harus dibuat untuk fleksibilitas dan
konsep terkaitnya. Thesaurus [12] memberikan interpretasi berikut untuk dua kata "fleksibel" dan "fleksibilitas":
Mampu ditekuk, diputar, ditundukkan, ditekuk atau dipelintir berulang kali tanpa patah, cedera atau kerusakan;
mampu diadaptasi; responsif terhadap perubahan; mudah beradaptasi.

Jelas bahwa arti asli dari kelenturan seharusnya terkait dengan sifat-sifat bahan yang dapat ditekuk, diputar,
ditekuk, ditekuk atau dipelintir berulang kali tanpa patah, atau rusak. Dengan demikian, fleksibilitas perangkat
lunak didefinisikan sebagai properti perangkat lunak yang menunjukkan apakah perangkat lunak mudah diubah
atau diubah berulang kali, secara terbalik dan harmonis, yaitu perangkat lunak mampu dibengkokkan, diputar,
ditundukkan, ditekuk atau diputar berulang kali tanpa putus, cedera. atau kerusakan. Kami menamakan
perubahan tersebut sebagai perubahan fleksibel.
Perubahan fleksibel memiliki ciri-ciri sebagai berikut: •
Perubahan dapat dikontrol, yaitu perubahan terbatas pada suatu rentang
tertentu; • Change is repeatable, yaitu perubahan dapat dilakukan berulang kali dengan kemudahan yang
hampir sama; • Perubahan terbalik, yaitu perubahan dapat dipulihkan dengan kemudahan
yang hampir sama; • Perubahan itu harmonis, yaitu perubahan itu konsisten dan perubahan di satu titik tidak
mengarah pada kegagalan di titik lain, dan mudah berubah tanpa mengorbankan ketergantungan;
• Perubahan itu mudah, yaitu perubahan dilakukan dengan sedikit waktu dan biaya rendah.

2.2. Fleksibilitas dan kemampuan beradaptasi


Perbedaan antara fleksibilitas dan kemampuan beradaptasi tidak kentara, bahkan terkadang membingungkan.
Kemampuan beradaptasi mengacu pada sejauh mana sistem perangkat lunak beradaptasi dengan perubahan
eksternal atau kemampuan untuk menyesuaikan keadaan yang berubah. Kemampuan beradaptasi dapat dicapai
melalui perubahan keadaan, perangkat lunak itu sendiri atau pendekatan lainnya. Ini membahas bahwa perangkat
lunak menerima atau menanggung perubahan eksternal dengan cara yang cepat dan mudah, tetapi dengan
perubahan yang lebih sedikit. Kemampuan beradaptasi ada dengan maksud dan tujuan, tetapi fleksibilitas mungkin ada dengan at
Fleksibilitas membahas bahwa perangkat lunak dapat mencapai perubahan internal dengan mudah.
Oleh karena itu fleksibilitas perangkat lunak dapat dimanfaatkan untuk beradaptasi dengan perubahan eksternal, sedangkan
mekanisme adaptasi dalam perangkat lunak dapat membuat perangkat lunak berubah dengan mudah dan meningkatkan fleksibilitas perangkat lunak.
Perangkat lunak yang dapat digunakan dalam berbagai situasi dan dapat melakukan banyak misi secara
bersamaan tanpa perubahan atau modifikasi dianggap “dapat disesuaikan” dan “universal” tidak fleksibel
menurut definisi fleksibilitas yang diberikan di atas. Fleksibilitas perangkat lunak diinginkan dalam lingkungan
ketidakpastian tinggi di mana batas-batas perangkat lunak tunduk pada perubahan mendesak yang konstan
tetapi tidak tetap. Misalnya, organisasi yang muncul berada dalam keadaan perubahan proses yang berkelanjutan,
seperti bisnis elektronik baru atau perusahaan tradisional yang terus menerus perlu mengubah diri mereka
sendiri untuk mempertahankan keunggulan kompetitif. Untuk beradaptasi dengan perubahan tersebut, perangkat
lunak dalam organisasi seringkali perlu segera diubah, tetapi perangkat lunak tanpa fleksibilitas seringkali sulit
diubah dan memiliki biaya perubahan yang tinggi. Namun, fleksibilitas adalah pedang bermata dua, berisiko
tetapi efektif, karena membangun fleksibilitas dalam perangkat lunak membutuhkan usaha dan biaya ekstra.
Oleh karena itu, penting untuk mengukur dan memperkirakan fleksibilitas perangkat lunak. Fleksibilitas adalah
salah satu indeks utama yang digunakan untuk mengevaluasi kemampuan perangkat lunak untuk berubah sesuai permintaan.

333
Machine Translated by Google

Diterbitkan dalam Prosiding

2.3. Analisis perubahan perangkat lunak


Selain fleksibilitas ada sifat lain dari perubahan perangkat lunak sebagai berikut.
Kerapuhan perangkat lunak adalah properti perangkat lunak yang menunjukkan perangkat lunak mudah lepas
kendali atau rusak ketika terjadi manipulasi yang tidak tepat, perubahan lingkungan, perubahan kebutuhan
pengguna, atau perubahan kode.
Kekakuan perangkat lunak adalah properti perangkat lunak yang menunjukkan perangkat lunak memiliki
spesifikasi yang kaku dan batas-batas yang tetap, dan menolak perubahan. Ketika manipulasi yang tidak tepat
dilakukan, perangkat lunak mempertahankan statusnya tidak berubah; ketika manipulasi yang sesuai dilakukan,
perangkat lunak mengubah operasi pengguna menjadi eksekusi fungsionalitas. Untuk perangkat lunak yang kaku,
kode dan datanya sulit diubah tetapi eksekusinya dapat diandalkan dan stabil.
Elastisitas perangkat lunak adalah properti perangkat lunak yang menunjukkan perubahan perangkat lunak
bersifat sementara, dan perangkat lunak dapat mengembalikan bentuk dan keadaan semula setelah dijalankan.
Fungsi yang digunakan sebanding dengan kemampuan manipulasi; data, kode, dan konfigurasi dapat ditambahkan
secara dinamis ke dalam perangkat lunak, ditautkan, diikat, atau dikonfigurasi ulang, tetapi kode, data, dan
konfigurasi ini hanya digunakan dalam eksekusi, dan komposisi statis tetap tidak berubah setelah eksekusi.
Plastisitas perangkat lunak adalah properti perangkat lunak yang menunjukkan perubahan perangkat lunak
parsial dapat disimpan dalam perangkat lunak, yaitu data yang diubah, konfigurasi dan kode dapat disimpan dalam
perangkat lunak dan dapat digunakan pada eksekusi berikutnya.
Animality perangkat lunak adalah properti perangkat lunak yang menunjukkan perubahan perangkat lunak
tidak sepenuhnya bergantung pada manipulasi eksternal, dan didukung oleh kekuatan internal perangkat lunak,
yaitu perangkat lunak dapat menyesuaikan, menambah, menghubungkan, mengikat data, kode, atau konfigurasinya di bawah stimula
Kerapuhan, kekakuan, elastisitas, plastisitas, dan kebinatangan mencerminkan fitur perubahan perangkat lunak
yang berbeda. Kerapuhan, kekakuan, dan elastisitas tidak memiliki memori tentang perubahan dan perubahan
tidak memengaruhi eksekusi selanjutnya; plastisitas dan hewani memiliki ingatan tentang perubahan dan
perubahan berdampak pada eksekusi selanjutnya. Perubahan elastis, plastis dan kebinatangan dapat berupa
perubahan lentur. Jelas bahwa titik-titik di mana perubahan tidak diperlukan membutuhkan kekakuan dan titik-titik
di mana perubahan diperlukan membutuhkan fleksibilitas.

3. Pengukuran fleksibilitas perangkat lunak

3.1. Fleksibilitas waktu, biaya, dan perangkat lunak


Dalam intuisi, fleksibilitas perangkat lunak memiliki tiga dimensi: rentang yang dapat diubah, waktu, dan biaya.
Sistem perangkat lunak lebih fleksibel daripada yang lain jika dapat menangani rentang konfigurasi yang lebih
luas, mengakomodasi perubahan dalam waktu yang lebih singkat, atau melakukan transisi dengan biaya lebih
rendah. Waktu dan biaya berbanding terbalik karena biaya dapat dikurangi dengan lebih banyak waktu untuk
perubahan, dan waktu dapat dipersingkat dengan biaya tambahan.

Waktu dan biaya dapat diukur, tetapi nilainya relatif, tidak dapat digunakan untuk definisi, karena tidak dapat
mencerminkan esensi fleksibilitas. Karena sifat multidimensinya, sulit menemukan nilai tunggal untuk mengukur
fleksibilitas dan membandingkan fleksibilitas di antara perangkat lunak yang berbeda di masa lalu.

Dalam pandangan kami, karena perangkat lunak ditulis oleh bahasa pemrograman, maka ia memiliki komposisi
statis dan komposisi dinamis. Komposisi statis perangkat lunak adalah bentuk statisnya yang terdiri dari kode
statis, kerangka kerja, metode, data, dan informasi statis lainnya; sementara komposisi dinamis perangkat lunak
adalah bentuk dinamisnya, yaitu perilaku waktu prosesnya, terdiri dari proses dinamis, utas, aliran kontrol, aliran
data, interaksi pengguna, dan faktor dinamis lainnya. Secara intuitif, fleksibilitas perangkat lunak adalah salah satu
properti perangkat lunak yang menunjukkan betapa mudahnya perangkat lunak dapat membuat perubahan
komposisi statis dan perubahan komposisi dinamis.
Namun, tidak mudah untuk mengukur dan mengevaluasi 'mudah'.

334
Machine Translated by Google

Diterbitkan dalam Prosiding

3.2. Kekuatan dan fleksibilitas perangkat lunak


Untuk mempelajari fleksibilitas perangkat lunak, konsep “kekuatan” diperkenalkan ke dalam evaluasi
fleksibilitas perangkat lunak. Ini adalah kekuatan yang menyebabkan perubahan perangkat lunak. Gaya F
terdiri dari gaya luar Fe dan gaya dalam Fi , yaituKekuatan
F = Fe + Fi .
internal Fi diberikan oleh perangkat lunak itu sendiri.
Misalnya, sistem perangkat lunak dapat menyediakan antarmuka adaptif yang memungkinkan pengguna
memperoleh kapasitas untuk konfigurasi atau personalisasi. Kekuatan eksternal Fe diberikan oleh lingkungan
yang berinteraksi dengan perangkat lunak, seperti pengguna yang memanipulasi perangkat lunak, pengelola
atau pengembang yang memodifikasi perangkat lunak, dan aplikasi yang mengontrol aliran input, dll. Dari
sudut pandang kekuatan, fleksibilitas perangkat lunak adalah kemampuan perangkat lunak bereaksi terhadap
gaya F. Ketika perangkat lunak diubah, semakin sedikit Fe yang dibutuhkan, semakin mudah perubahannya,
dan perangkat lunak semakin fleksibel. Oleh karena itu, nilai fleksibilitas harus ditentukan oleh kekuatan luar
dan ruang lingkup perubahan maksimum yang didorong olehnya.

3.3. Definisi pengukuran


Konsep dan metrik kuantitatif diperkenalkan ke dalam evaluasi fleksibilitas perangkat lunak sebagai
berikut:
• Titik Fleksibel (FXP) i: titik atau lokasi dalam perangkat lunak yang dapat menyebabkan terjadinya perubahan
fleksibel, di mana gaya eksternal Fe dapat diterapkan. Fe menyebabkan perangkat lunak berubah melalui
titik fleksibel. Gaya eksternal kecil Fe pada FXP dapat menyebabkan perubahan skala besar pada
perangkat lunak. Ketika Fe = 0, ini menunjukkan bahwa perubahan perangkat lunak sepenuhnya didorong
oleh gaya internal Fi . f • lexible
Force i : gaya eksternal minimum Fe yang diterapkan pada FXP i yang dapat menyebabkan perangkat lunak

besar i f , perubahannya.
f menunjukkan ikemudahan
lebih keras atau
perangkat
kesulitan
lunak
untuk
membuat
melakukan
perubahan
perubahan
melalui
perangkat
FXP i. lunak.
Semakin

S f • Jarak Fleksibel i : jangkauan maksimum atau ukuran perubahan


perangkat lunak yang disebabkan oleh i through
titik fleksibel i. •
:
K = S +/(1
f )
, ukuran untuk fleksibilitas perangkat lunak di FXP i.
Saya Saya

Gelar Fleksibel Ki
Saya

C Ki
C: ÿ= = 1
, perangkat lunak seluruh atau sebagian. • Berdasarkan
• Kapasitas Fleksibel ukuran fleksibilitas
Saya

definisi di atas, seorang manipulator dapat menggunakan fleksibilitas pada i hanya jika F ÿ f . Dia
Saya

4. Proses analisis dan pengukuran

4.1. Analisis berdasarkan jenis titik fleksibel Titik


fleksibel dikategorikan ke dalam lima jenis berbeda sebagai berikut:
1 FXP Potensial (PFXP): semua titik fleksibel yang mungkin digunakan di bawah kondisi yang sesuai
N
CPFXP Ke
ÿ= = 1
pengaturan lingkungan. Kapasitas PFXP, 2 Tersedia
Saya

.
FXP (AFXP): titik fleksibel di mana pengguna memiliki kemampuan untuk memanipulasi. Itu
N

CAFXP |
= ÿKi f ÿ F kapasitas Saya Dia

=1
AFXP adalah 3 FXP Saya

.
Terpakai (UFXP): titik fleksibel yang telah dimanipulasi dan benar-benar digunakan oleh pengguna. Itu
N

CUFXP
= ÿK jika ÿ F )( | Saya Dia

=1
kapasitas UFXP adalah Saya

, dan i adalah titik fleksibel yang digunakan. UFXP artinya

335
Machine Translated by Google

Diterbitkan dalam Prosiding

pengguna telah menggunakan beberapa poin fleksibel, dan perangkat lunak telah berubah dan beberapa
mekanisme fleksibel telah aktif, dan efek fleksibilitas telah dilakukan dalam perilaku perangkat lunak.
4 FXP Saat Ini (CFXP): poin fleksibel yang dapat dimanipulasi oleh pengguna saat ini. Itu
N
C = ÿK if ÿ F )( | Saya

(
e pengguna saat ini )
kapasitas fleksibel CFXP adalah Saya
=1 .

5 FXP yang Diperlukan (RFXP): poin fleksibel yang tidak ada dalam perangkat lunak dan perlu ditambahkan
ke dalam perangkat lunak.

Kebutuhan Pengguna
CF bertemu

YCF Pengaturan

CFXP Penyesuaian CFXP


Astment

penyesuaian YCF

UFXP Penyesuaian UFXP


Pengaturan

N
penyesuaian CF

DAN

AFXP Penyesuaian AFXP


Astment

DAN

PFXP Penyesuaian PFXP


Astment

Modifikasi Perangkat Lunak


Tambahkan FXP

Gambar 1: Menggunakan FXP untuk Menyesuaikan Perangkat Lunak

Jelas, PFXP ÿ AFXP ÿ UFXP ÿ CFXP . Saat pengguna mengajukan persyaratan perubahan baru pada
perangkat lunak, pengguna dapat menggunakan FXP perangkat lunak untuk menyesuaikan fungsi
perangkat lunak. Gambar 1 menunjukkan langkah-langkah penyesuaian. Jumlah fleksibilitas yang
tidak sesuai dan manipulator yang tidak sesuai ditunjukkan oleh perbedaan yang signifikan antara jumlah PFXP, AFXP
Permasalahan tersebut dapat tercermin dari ketersediaan dan kesesuaian.

Tingkat ketersediaan FXP (RA) = jumlah AFXP/ jumlah PFXP. Jika RA lebih rendah, itu
berarti manipulator tidak cocok dan manipulator harus disesuaikan.
Tingkat kesesuaian FXP (RS) = jumlah UFXP/ jumlah PFXP. Jika RS lebih rendah, itu berarti beberapa
FXP perangkat lunak tidak sesuai, atau banyak FXP baru diperlukan, atau manipulator tidak memiliki
kemampuan untuk mengoperasikannya, atau persyaratan perubahan sedikit. Jika RS lebih rendah dan
jumlah RFXP lebih besar dari jumlah PFXP, FXP yang dirancang tidak efektif, dan ada beberapa masalah
serius dalam desain FXP.

336
Machine Translated by Google

Diterbitkan dalam Prosiding

4.2. Analisis berdasarkan tingkat titik fleksibel Manipulator


perangkat lunak dapat menjadi pengguna umum, pengelola atau pengembang, tetapi kemampuan mereka untuk
memanipulasi perangkat lunak berbeda. Manipulator dibagi menjadi tiga level: Pengguna Tingkat Rendah (LU), Pengguna
Tingkat Tinggi (HU), dan Pengguna Tingkat Pengembang (DU). Fe mereka adalah FLU , FHU dan FDU secara terpisah. Jelas,

FLU ÿ FHU ÿ FDU . Apakah pengguna dapat menggunakan FXP, ditentukan oleh fakta apakah Fe manipulator lebih besar dari

F ÿ f FXP . yaitu f ,
Saya
Dia
Saya

Berdasarkan range nilai f dan hubungannya dengan Fe, FXP dapat dibedakan menjadi empat level yang berbeda sebagai
Saya

berikut.

1 Self-Adaptive Flexible Point (SAFP): titik fleksibel dengan = 0 f . Mereka berorientasi


pada semua pengguna, dan mampu Saya

mendeteksi persyaratan dan perubahan lingkungan saat runtime dan melakukan tindakan konfigurasi diri, optimalisasi diri,
perlindungan diri dan pemulihan diri. Tindakannya transparan bagi pengguna dan sepenuhnya digerakkan oleh Fi Namun,
efek SAFP dapat dilihat oleh
N

pengguna. C SAFP = 0.
= ÿ )(K |i f
Saya
=1
Saya

2 Titik Fleksibel Pengguna Tingkat Rendah (LUFP): titik fleksibel dengan 0 < f ÿ . Mereka berorientasi pada FLU
N
ke LU. C = ÿK i )( 0| < f ÿ F
LUFP Saya LU
. LU adalah pengguna rutin perangkat lunak yang hanya memiliki pengetahuan dasar
Saya
=1

tentang komputer dan bisnis. Melalui LUFXP, perangkat lunak asli tidak memerlukan modifikasi pengembang, dan LU dapat
menerapkan antarmuka dan operasi yang disediakan oleh perangkat lunak itu sendiri untuk menyesuaikan fungsi perangkat
lunak seperti mengatur parameter, menentukan kueri, dll.
3 Titik Fleksibel Pengguna Tingkat Tinggi (HUFP): titik fleksibel dengan . Mereka adalah F < f ÿ i FHU LU

N
berorientasi pada HU. . HU adalah perangkat lunak pengguna tingkat tinggi yang memiliki luas
= ÿKi =F1 < f ÿ| FLU
CHUFP Saya
saya HU

dan pengetahuan mendalam tentang komputer dan domain aplikasi. Misalnya, kontrol akses, keamanan dan kemampuan
manipulasi, penyesuaian kunci dan rumit ini hanya dapat dilakukan oleh HU. Misalnya, dengan HUFP, HU dapat
menyesuaikan lingkungan pengoperasian awal, antarmuka pengguna, aturan bisnis, alur kerja, dan rumus perhitungan, dll.

4 (Developer-Level User Flexible Point (DUFP): titik fleksibel dengan F < f ÿ HU i FDU
N
berorientasi pada DU. . DU adalah pengguna dengan Fe tertinggi . DU punya
= ÿKi =F1 < f ÿ| FHU i
CDUFP Saya
DARI

kemampuan yang kuat, pengalaman dan pengetahuan bisnis, administrasi sistem dan pengembangan perangkat lunak.
Ketika penyesuaian LUFXP dan HUFXP tidak dapat memenuhi kebutuhan pengguna baru, DU dapat memanfaatkan HUFXP
untuk melakukan penyesuaian mendalam terhadap perangkat lunak melalui antarmuka atau platform seperti menambahkan
kode atau konfigurasi ulang.

Faktor-faktor terkait FXP memiliki hubungan sebagai berikut:

1 Kesulitan Implementasi (ID): ID SAFP> IDLUFP> IDHUFP >IDDUFP


2 Kemudahan Manipulasi (ME): ME SAFP> MELUFP> MEHUFP >MEDUFP
3 Biaya Manipulator (MC): MC SAFP< MCLUFP< MCHUFP <MCDUFP

Karena FLU ÿ FHU ÿ FDU , FXP yang dapat digunakan langsung oleh LU adalah ASFXPÿLUFXP, tetapi LUFXP cocok

untuk LU. FXP yang langsung digunakan HU adalah ASFXPÿLUFXPÿHUFXP, tetapi HUFXP cocok untuk HU.
FXP yang langsung digunakan DU adalah
ASFXPÿLUFXPÿHUFXPÿDUFXP, tetapi DUFXP cocok untuk DU. Jelas bahwa semakin kecil f FXP , semakin mudah FXP
digunakan. Semakin besar Fe pengguna , semakin banyak
Saya

FXP yang bisa dia manfaatkan. Fe DU adalah yang terkuat, jadi dia bisa memanfaatkan semua FXP.

337
Machine Translated by Google

Diterbitkan dalam Prosiding


Berdasarkan analisis di atas, terdapat pendekatan bagi pengguna untuk meningkatkan ketersediaan dan
pemanfaatan fleksibilitas: salah satunya dengan meningkatkan kemampuan pengguna untuk memanipulasi perangkat
lunak; yang lainnya adalah mengurangi f dengan meningkatkan perangkat lunak. Jika Fe pengguna dapat mencapai
Saya

level pengembang, dia akan menggunakan semua FXP; jika f semua FXP bisa mencapai 0, semua FXP bisa dimanfaatkan oleh pengguna m
Saya

4.3. Proses pengukuran fleksibilitas perangkat lunak 4.3.1.


Langkah-langkah untuk mengukur fleksibilitas perangkat lunak
Tujuan dari bagian ini adalah untuk memperkenalkan langkah-langkah yang diperlukan untuk mengukur dan
menganalisis fleksibilitas perangkat lunak berdasarkan poin fleksibel dan metrik yang diusulkan di atas. Langkah-

langkahnya adalah sebagai


berikut: • Mengidentifikasi titik fleksibel. • Menganalisis dan menghitung jarak
fleksibel dari setiap titik fleksibel. • Tentukan tingkat titik fleksibel dan
nilai gaya fleksibelnya. • Hitung derajat fleksibel setiap titik
fleksibel. • Hitung kapasitas fleksibel untuk analisis yang berbeda.

4.3.2. Identifikasi titik fleksibel


Untuk titik fleksibel adalah lokasi dalam perangkat lunak yang dapat menyebabkan perubahan fleksibel pada
perangkat lunak, titik fleksibel dapat berupa fungsi, titik kontrol fungsi, konfigurasi ulang, segmen kode atau titik
varian, dll. Terkadang titik fleksibel bersifat implisit, dan itu adalah diperlukan untuk membuat analisis sesuai
dengan karakteristik titik fleksibel yang diusulkan pada bagian 2. Beberapa titik fleksibel umum ditunjukkan
seperti Tabel 1. Aktivitas dan operasi pada titik fleksibel dapat memengaruhi komponen titik fungsi transaksi (EI,
EO, EQ) dan komponen titik fungsi data (ILF, ELF), dan dapat menyebabkan mereka menyelesaikan perubahan
fleksibel. Dengan menganalisis cakupan dampak titik fleksibel, semua komponen titik fungsi yang diubah dapat
ditemukan. Ini adalah persiapan yang diperlukan untuk langkah selanjutnya perhitungan jarak fleksibel.

Tabel 1: Poin fleksibel umum


Tidak ada perubahan persyaratan Tidak ada perubahan persyaratan
1 Sesuaikan rentang nilai elemen data 6 Tambahkan / hapus aturan bisnis

2 Tambah/hapus item dalam pilihan 7 Tambahkan rumus perhitungan


3 Tambahkan/hapus elemen data 8 Sesuaikan tata letak layar
4 Ubah jenis elemen data 9 Mengubah antarmuka input eksternal
5 Modifikasi rumus perhitungan 10 Ubah antarmuka keluaran eksternal
…. ….

4.3.3. Perhitungan jarak fleksibel


Jarak fleksibel adalah rentang atau ukuran perubahan perangkat lunak yang disebabkan oleh titik fleksibel.
Namun, merupakan tugas yang sulit untuk mengukur perubahan perangkat lunak. Kami menggunakan hitungan
titik fungsi sebagai satuan ukuran untuk perubahan perangkat lunak. Karena titik fungsi adalah ukuran yang
mewakili ukuran fungsional perangkat lunak aplikasi, lebih cocok dan akurat mengambil jumlah titik fungsi untuk
menyatakan ukuran perubahan perangkat lunak daripada menggunakan unit lain. Ada dua keuntungan utama
menggunakan titik fungsi sebagai satuan ukuran. Salah satunya adalah lebih mudah untuk menemukan,
mengidentifikasi, dan menentukan perubahan karena metode titik fungsi mengklasifikasikan fungsi perangkat
lunak ke dalam lima komponen titik fungsi [13]: Input Eksternal (EI), Keluaran Eksternal (EO), Pertanyaan Eksternal
(EI), Internal File Logis (ILF),

338
Machine Translated by Google

Diterbitkan dalam Prosiding

File Antarmuka Eksternal (EIF); yang lainnya adalah kita dapat langsung menggunakan pendekatan
analisis titik fungsi yang diberikan oleh International Function Point User Group (IFPUG) untuk menghitung
jumlah titik fungsi dari komponen titik fungsi yang diubah. Proses analisis function point adalah sebagai
berikut [14]: • Menentukan
jenis perhitungan function point. • Tentukan
batas aplikasi. • Mengidentifikasi dan menilai
jenis fungsi transaksional untuk menentukan kontribusinya terhadap hitungan Titik Fungsi yang Tidak
Disesuaikan (UFP). • Mengidentifikasi dan
menilai jenis fungsi data untuk menentukan kontribusinya terhadap hitungan UFP. • Menentukan
nilai adjustment factor (VAF). • Hitung jumlah titik fungsi
yang disesuaikan.

Karena hanya memperhatikan tentang ukuran perubahan, kami menganggap hitungan UFP sebagai jarak fleksibel.
Oleh karena itu, saat menghitung jarak fleksibel, kita hanya perlu melakukan langkah 1 hingga 4.

4.3.4. Penentuan nilai gaya fleksibel


Gaya fleksibel adalah gaya eksternal minimum yang diterapkan pada titik fleksibel yang dapat
menyebabkan perangkat lunak berubah. Nilai gaya fleksibel ditentukan oleh tingkat titik fleksibel. Tabel 2
menunjukkan level titik fleksibel dan menentukan nilai gaya fleksibel yang sesuai. Saat ini, nilai-nilai ini
didefinisikan hanya berdasarkan pengalaman, evaluasi ahli, dan intuisi. Bagaimana mengevaluasi nilai-
nilai ini tidak termasuk dalam cakupan makalah ini.

Tabel 2: Nilai gaya fleksibel


Tingkat poin yang Nilai gaya Manipulasi
fleksibel
SAFXP fleksibel 0 Tidak perlu manipulasi pengguna
LUFXP 10 Manipulasi fungsi sederhana
HUFXP 20 Fungsi kompleks dan manipulasi bisnis
DUFXP1 30 Manipulasi teknis rendah
DUFXP2 40 Manipulasi teknis rata-rata
DUFXP3 50 Manipulasi teknis tinggi

4.3.5. Perhitungan derajat fleksibel


Setelah gaya fleksibel f dan jarak fleksibel S didapatkan, derajat fleksibel FXP i dapat dihitung dengan
Saya Saya

rumus berikut /(1 ) K=S+f.


Saya Saya Saya

4.3.6. Perhitungan dan analisis kapasitas fleksibel Setelah


setiap level dan derajat fleksibel FXP ditentukan, saatnya menghitung kapasitas fleksibel dari tipe dan
level yang berbeda untuk analisis yang berbeda. Bagian 5 akan memberikan studi kasus untuk
menunjukkan perhitungan dan analisis.

5. Studi kasus
Tabel 3 memberikan studi kasus sederhana untuk menunjukkan perhitungan derajat fleksibel dan
kapasitas fleksibel. Perangkat Lunak Penghitungan Upah (WCS) memiliki fungsi dasar: input data, cetak
data, permintaan, impor data, dan ekspor data. Sementara itu, WCS menyediakan sejumlah fungsi titik
fleksibel untuk mengubah fungsionalitas dan perilaku perangkat lunak sebagai berikut. • Sesuaikan
lebar item upah. • Menambah/
menghapus item upah.

339
Machine Translated by Google

Diterbitkan dalam Prosiding


• Memodifikasi rumus perhitungan.
• Sesuaikan tata letak layar.
• Tambahkan rumus perhitungan.
• Sesuaikan tabel cetak upah.

Kami mengusulkan tiga skema implementasi untuk poin fleksibel. Tingkat titik fleksibel di setiap skema
mungkin berbeda. Kita dapat membuat perbandingan pada fleksibilitas skema yang berbeda. Pada tabel 3,
jika f berarti titik fleksibel tidak ada., Dalam skema 1, kami merancang FXP2, untuk menambah/menghapus
Saya
=ÿ

item upah sebagai HUFXP, yang dapat membuat HU menambah atau menghapus item informasi seperti
alamat, email, tanggal lahir, dll dan item yang dapat dihitung seperti tunjangan lalu lintas, jam kerja, jam
pembayaran, dll tanpa mengubah kode. Kita dapat melihat manipulasi layar yang relatif sederhana yang
diekspos ke pengguna akhir pada titik yang fleksibel, tetapi setelah pengguna menambah atau menghapus
item upah, WCS dapat secara otomatis menyesuaikan dan mengubah antarmuka input data, antarmuka
output data, struktur file data internal, dll di bawah titik fleksibel, yaitu komponen titik fungsi EI, EO, EQ,
ILF dan EIF terpengaruh dan diubah. Ini adalah proses yang kompleks dan kuat. Jika FXP 2 dirancang
sebagai DUFXP, diperlukan intervensi pengembang untuk memenuhi persyaratan untuk menambah atau
menghapus item upah, dan fleksibilitas pada titik fleksibel akan berkurang.

Kami berasumsi bahwa manipulator yang disiapkan untuk WCS adalah LU dan HU. Tabel 3 menunjukkan
fleksibilitas dan tarif yang tersedia dari setiap skema. Skema 1 tidak hanya memperoleh fleksibilitas
tertinggi, tetapi juga memiliki tingkat ketersediaan tertinggi karena manipulator yang disiapkan sesuai
dengan manipulator yang dibutuhkan. Sebaliknya, skema 3 tidak hanya memperoleh fleksibilitas terendah,
tetapi juga tingkat ketersediaannya adalah 0 karena manipulator yang dibutuhkan adalah DU tetapi
manipulator yang disiapkan adalah HU. Data pada tabel 3 dapat digunakan sebagai fakta kuantitatif untuk
memandu pengembang perangkat lunak, organisasi, dan pengguna untuk melakukan peningkatan fleksibilitas perangkat lu

Tabel 3: Perhitungan Fleksibilitas WCS

Berubah S Saya
Skema1 Skema 2 Skema 3
TIDAK
Poin fleksibel
Komponen (UPF)
F Saya Ke f Ki Saya
F Saya Ke

1 Sesuaikan upah EI, EO, EQ, 56 20 20 2.6 30


2.67 1.81
lebar barang ,ILF,EIF HUFXP HUFXP 7 DUFXP

2 Tambah/hapus upah EI, EO, EQ, 178 20 30 0,6


8.48 ÿ 0
barang ILF,EIF HUFXP DUFXP 5
3 Memodifikasi rumus EO, ILF 29
10 20 1.3
perhitungan 2.64 30 0,94
LUFXP HUFXP 8
DUFXP
4 Sesuaikan tata letak layar EI 6
0 20 0,2
6 30 0,19
SAFXP HUFXP 9
DUFXP
5 Tambahkan rumus EO, ILF 30
20 0,9
perhitungan 1.42 30 ÿ 0
HUFXP 7
DUFXP
6 Sesuaikan tabel cetak EO, EQ 12
10 20 0,5
upah 1.09 30 0,39
LUFXP HUFXP 7
DUFXP

Manipulator yang dibutuhkan LU, HU HU, DU DU

Manipulator yang disiapkan LU, HU LU, HU LU, HU


Potensi kapasitas fleksibel 22,3 6,53 3,33

Tersedia kapasitas fleksibel 22,3 4,90 0,00

Tingkat fleksibilitas yang tersedia 100% 75% 0%

Kapasitas fleksibel SA
Kapasitas fleksibel LU 6

Kapasitas fleksibel HU 3,73 0 0 4,91

Kapasitas fleksibel DU 12,57 0 1.62 0 0 0 3,33

340
Machine Translated by Google

Diterbitkan dalam Prosiding

6. Kesimpulan
Banyak manfaat fleksibilitas tidak berwujud, dan sulit diukur.
Namun, untuk mengevaluasi dan meningkatkan fleksibilitas perangkat lunak, di sisi lain,
memerlukan pendekatan yang lebih kuantitatif. Berdasarkan konsep titik fleksibel yang
dikembangkan dalam makalah ini, konotasi fleksibilitas perangkat lunak dieksplorasi. Metrik
dasar untuk fleksibilitas perangkat lunak seperti derajat fleksibel, gaya fleksibel, jarak fleksibel,
dan kapasitas fleksibel diusulkan. Kami telah menunjukkan kasus bagaimana metrik ini diterapkan.
Ini adalah penyelidikan awal kami tentang pengukuran fleksibilitas perangkat lunak. Masih
banyak pekerjaan yang harus diselesaikan. Salah satu tugasnya adalah memberikan bukti formal
untuk evaluasi gaya fleksibel. Kami perlu lebih meningkatkan metode titik fungsi agar sesuai dengan
pengukuran jarak fleksibel. Meskipun tugas belum selesai, pekerjaan kami memberikan cara baru
untuk memahami dan menjawab
pertanyaan-pertanyaan berikut: • Apakah inti dari
fleksibilitas perangkat lunak? • Mengapa, di mana, kapan, dan berapa banyak
perangkat lunak yang dibutuhkan fleksibilitas perangkat lunak? • Apa trade-
off yang terkait dengan merancang perangkat lunak yang fleksibel? • Bagaimana mengukur fleksibilitas perangkat lu

7. Referensi [1]
Shi, D. dan Daniels, RL, "Survei Fleksibilitas Manufaktur: Implikasi untuk fleksibilitas
bisnis", IBM SYSTEMS JOURNAL, VOL 42, NO 3, 2003, pp.414-427.
[2] Meyer, D., “Fleksibilitas: Pertarungan Kompetitif Berikutnya-Masa Depan Manufaktur
Survei”, Jurnal Manajemen Strategis, VOL 10, NO 2, 1989, hlm.135-144.

[3] Matsuyra, S. and Kurumma H., EVA: Metode Pemrograman yang Fleksibel untuk Berkembang
Systems”, IEEE Transactions on Software Engineering, VOL 23, No5, 1997, pp.296-312.
[4] Pamas, D., “Merancang perangkat lunak untuk Kemudahan Perpanjangan dan Kontraksi”. Transaksi
IEEE pada Rekayasa Perangkat Lunak, VOL SE-5, No 2, Maret 1979. hlm. 128-138.
[5] Brereton, P., Budgen, D. dan Bennett, K., “Masa Depan Perangkat Lunak”, Komunikasi ACM, VOL
42, No12, 1999, hlm.78-84.
[6] Bennett, K., Bennett, P dan Budgen, D., “Perangkat Lunak Berbasis Layanan: Masa Depan untuk
Perangkat Lunak Fleksibel”, Prosiding Konferensi Rekayasa Perangkat Lunak Asia-Pasifik
(APSEC'00), Singapura, 2000, hlm.214-217 .
[7] Bennett, K., “Evolusi Perangkat Lunak dan Masa Depan untuk Perangkat Lunak Fleksibel”, 29
April 2004, http://www.cs.ncl.ac.uk/research/events/colloquia/abstract.php?
[8] id=105 Nelson, KM , Nelson, HJ and Ghods, M., “Fleksibilitas teknologi: konseptualisasi,
validasi dan pengukuran”, Prosiding HICSS97, IEEE Computer Society Press,, New York,1997,
pp.76-87.
[9] Zhao, L. dan Leon, J., Agen Cerdas untuk Sistem Alur Kerja Fleksibel. Prosiding dari
Konferensi AIS Amerika tentang Sistem Informasi, Baltimore, Maryland, Agustus 1998:90-112
[10] Lassing, N, Rijsenbrij D. and Vliet H., “Towards a Broader View on Software Architecture Analysis
of Flexibility”, Prosiding Konferensi Rekayasa Perangkat Lunak Asia Pasifik Keenam,
1999:pp.238-247 [11] Zeng, D.D
dan Zhao, L, “Mencapai Fleksibilitas Perangkat Lunak melalui Alur Kerja Cerdas
Teknik”, Prosiding Konferensi Internasional Hawaii ke-35 tentang Ilmu Sistem, 2002, hlm.606-615.
[12] http://
thesaurus.reference.com/ [13] Garmus,
D. dan Herron, D., "Analisis Titik Fungsi: Praktik Pengukuran untuk Proyek Perangkat Lunak yang
Berhasil", Addison Wesley, 2001.
[14] “Panduan Pelatihan Titik Fungsi”, www.SoftwareMetrics.Com

341

Anda mungkin juga menyukai