Anda di halaman 1dari 9

Diterjemahkan dari bahasa Inggris ke bahasa Indonesia - www.onlinedoctranslator.

com

Pemodelan dan Batasan Fitur Berbasis Kardinalitas:


Laporan Kemajuan

Krzysztof Czarnecki, Chang Hwan Peter Kim


Universitas Waterloo
200 University Ave.West
Waterloo, DI N2L 3G1, Kanada
{kczarnec, chpkim}@swen.uwaterloo.ca

ABSTRAK platform, generator, dokumentasi, dll., yang dibuat dalam


Pabrik perangkat lunak telah diusulkan sebagai pendekatan
proses pengembangan lini produk yang terpisah.
komprehensif dan integratif untuk pengembangan perangkat lunak
Pendekatan generatif bertujuan untuk mengotomatisasi
generatif. Pemodelan fitur memiliki beberapa aplikasi dalam
bagian pengembangan produk dari rekayasa lini produk
pengembangan perangkat lunak generatif, termasuk analisis domain,
melalui berbagai teknologi statis dan dinamis, termasuk
pelingkupan lini produk, dan spesifikasi produk berbasis fitur. Makalah ini
metaprogramming, refleksi, program dan analisis model,
melaporkan kemajuan terbaru kami dalam pemodelan fitur berbasis
konfigurasi berbasis kendala, dan teknik berorientasi aspek.
kardinalitas dan dukungannya untuk mengekspresikan batasan
Pabrik Perangkat Lunak [16] dapat dilihat sebagai pendekatan yang
tambahan. Kami menunjukkan bahwa Object-Constraint Language (OCL)
komprehensif dan integratif untuk pengembangan perangkat lunak
cukup dapat menangkap kendala tersebut. Selanjutnya, kami
generatif, karena keduanya memiliki tujuan yang sama untuk
mengidentifikasi seperangkat fasilitas berdasarkan kepuasan kendala
mengotomatisasi pengembangan produk dalam konteks rekayasa lini
yang dapat disediakan oleh pemodelan fitur dan alat konfigurasi berbasis
produk perangkat lunak. Kekuatan khusus dari pendekatan Pabrik
fitur dan menyajikan prototipe yang mengimplementasikan beberapa
Perangkat Lunak adalah dukungannya untuk berbagai tingkat
fasilitas ini. Kami melaporkan pengalaman kami dengan prototipe dan
otomatisasi dalam pengembangan produk. Pendekatan ini mengakui
memberikan arahan untuk pekerjaan di masa depan.
bahwa pengetahuan domain mungkin ada pada tingkat kematangan
yang berbeda dan dengan demikian berbagai konsep, seperti pola,
arsitektur, kerangka kerja, komponen, aspek, dan bahasa khusus
Kategori dan Deskriptor Subjek domain, dll., mungkin diperlukan untuk mengemas pengetahuan secara
D.2.1 [Rekayasa Perangkat Lunak]: Persyaratan / Spesifikasi—Peralatan memadai sebagai aset yang dapat digunakan kembali.
; D.2.2 [Rekayasa Perangkat Lunak]: Alat dan Teknik Desain—Rekayasa Pemodelan fitur adalah teknik untuk mengelola
perangkat lunak berbantuan komputer (CA-SE); D.2.13 [Rekayasa kesamaan dan variabilitas dalam lini produk. Teknik ini
Perangkat Lunak]: Perangkat Lunak yang Dapat Digunakan Kembali— memiliki banyak aplikasi dalam konteks pendekatan
Rekayasa domain, Gunakan kembali model generatif. Antara lain, dapat digunakan untuk

• menangkap hasil analisis domain;


Ketentuan Umum
Desain, Dokumentasi • memfasilitasi pelingkupan lini produk, keluarga bahasa khusus
domain, komponen, platform, dan aset lain yang dapat digunakan
kembali; dan
Kata kunci
Pemodelan fitur, pengembangan berbasis model, konfigurasi • memberikan dasar untuk konfigurasi otomatis produk
produk, kepuasan kendala, lini produk perangkat lunak, beton, bahasa, komponen, platform, dll.
manajemen variabilitas
Telah ada banyak kemajuan dalam notasi, proses dan
teknik, alat, dan aplikasi pemodelan fitur sejak pemodelan
1. PERKENALAN fitur pertama kali diusulkan oleh Kang et al. [17] (lihat [13,
Pengembangan perangkat lunak generatif [10, 4, 11] bertujuan Bagian 2] untuk kumpulan referensi bibliografi yang luas
untuk mengotomatisasi pengembangan produk dalam konteks terkait dengan pemodelan fitur).
rekayasa lini produk perangkat lunak. Rekayasa lini produk Dalam makalah ini kami melaporkan kemajuan terbaru kami
perangkat lunak [8, 26] memudahkan pengembangan produk pada bentuk pemodelan fitur tertentu, yang disebut sebagai
dalam domain aplikasi dengan memanfaatkan kesamaan di antara berdasarkan kardinalitas [12], sarana untuk mengekspresikan
produk-produk ini sambil mengelola perbedaan di antara mereka batasan tambahan untuk pemodelan fitur berbasis kardinalitas, dan
secara sistematis. Akibatnya, produk individual dapat dibuat dengan fasilitas kepuasan batasan untuk pemodelan fitur dan alat
menggunakan kembali aset, seperti model, komponen, konfigurasi berbasis fitur.
Hak Cipta dipegang oleh pencipta/pemilik.
Kontribusi utama dari makalah ini adalah sebagai berikut.
Lokakarya OOPSLA'05 tentang Pabrik Perangkat Lunak, 17 Oktober 2005, San Diego,
1. Kami menganalisis apa yang diperlukan dari notasi untuk
California, AS.
ACM 1-59593-193-7/05/0010. mengekspresikan batasan tambahan pada fitur berbasis kardinalitas

1
ESshop

[1]..*]

TokoDepan Back Office

Katalog- Pembayaran SF Pengiriman SF Pembayaran Pengiriman

[1]..*] [1]..*] [1]..*] [1]..*]

Pembayaran Pengiriman Metode Pembayaran(String) Pembayaran Tipuan Pengiriman


MetodeRef MetodeRef Gerbang Deteksi metode
(ref) (ref) (Rangkaian)
gerbang Tipe pembayaran
Referensi (referensi) dunia maya Verisign Tautan

Sumber Titik Kecepatan

Kredit Debet Pembelian (Mengambang)

Kartu Kartu Memesan

Gambar 1: Contoh model fitur

model masa depan. Kami berpendapat bahwa Object (dengan seluruh subpohonnya) dapat dimasukkan sebagai anak-
Constraint Language (OCL) [20] cukup untuk anak dari induk fitur saat menentukan konfigurasi konkret.
mengekspresikan kendala tersebut dan mendukung klaim Perhatikan bahwa kami mengizinkan kardinalitas fitur untuk
kami dengan sejumlah kendala sampel. memiliki bintang Kleene * sebagai batas atas. Batas atas seperti itu
menunjukkan kemungkinan untuk mengambil fitur beberapa kali
2. Kami mengidentifikasi seperangkat fasilitas berdasarkan tanpa batas. Fitur dengan kardinalitas [1..1] disebut sebagaiwajib,
kepuasan kendala yang dapat disediakan oleh pemodelan sedangkan fitur dengan kardinalitas [0..1] disebut opsional. Sebagai
fitur dan alat konfigurasi berbasis fitur. contoh,Pembayaran adalah fitur wajib, sedangkan Pengiriman
adalah fitur opsional. Fitur dengan kardinalitas yang memiliki batas
3. Kami menjelaskan prototipe yang mendukung beberapa atas lebih besar dari satu dapat dikloning selama konfigurasi. Fitur
fasilitas tersebut berdasarkan Binary Decision Diagram (BDD) di bawah fitur kloning masih dapat dikonfigurasi jika memiliki
dan melaporkan pengalaman kami dengan prototipe. variabilitas. Kloning berguna jika konfigurasi perlu menyertakan
Perhatian khusus adalah antarmuka pengguna dari banyak salinan bagian, di mana setiap bagian dapat dikonfigurasi
konfigurator prototipe, yang secara visual membedakan secara berbeda. Misalnya, konfigurasi toko elektronik dapat
antara pilihan konfigurasi pengguna dan mesin. mencakup beberapa bagian depan toko yang dapat dikonfigurasi
secara berbeda, misalnya, dengan memiliki pilihan pembayaran dan
Sisa makalah ini disusun sebagai berikut. Bagian 2 memberikan
metode pengiriman yang berbeda, jika ada.
informasi latar belakang yang diperlukan tentang model fitur
berbasis kardinalitas, termasuk beberapa perubahan terbaru pada
Selain itu, fitur dapat diatur menjadi grup fitur, di mana
notasi. Persyaratan khusus pemodelan fitur berbasis kardinalitas
setiap grup fitur memiliki kardinalitas grup. Kardinalitas grup
dalam mengekspresikan kendala tambahan dibahas dalam Bagian 3.
adalah interval dari bentukkanM- nkan, di mana M N ∈Z∧0 ≤ M
Bagian 4 memberikan contoh kendala tambahan pada model fitur
≤ n ≤ k, di mana k adalah jumlah fitur dalam grup. Kardinalitas
berbasis kardinalitas dan menunjukkan bahwa mereka dapat
grup menunjukkan berapa banyak anggota grup yang dapat
diekspresikan secara memadai dalam OCL. Bagian 5
dipilih. Misalnya, setidaknya dan paling banyak salah satu fitur
mengklasifikasikan algoritma kepuasan kendala dan pemodelan fitur
Kartu Kredit, Kartu Debit, dan Pesanan Pembelian harus dipilih
dan fasilitas konfigurasi berbasis fitur berdasarkan algoritma
sebagai subfitur dari Tipe pembayaran.
tersebut. Sebuah prototipe yang mengimplementasikan beberapa
Sebuah fitur dapat memiliki tipe atribut, menunjukkan bahwa
fasilitas ini dan pengalaman kami dengan prototipe dijelaskan di
nilai atribut dapat ditentukan selama konfigurasi (kecuali nilainya
Bagian 6. Pekerjaan terkait dibahas Bagian 7, dan Bagian 8 ditutup
sudah ada). Kami mengizinkan paling banyak satu atribut per fitur.
dengan kesimpulan dan arahan untuk pekerjaan di masa depan.
Jika beberapa atribut diperlukan, satu set subfitur, di mana setiap
subfitur memiliki atribut, dapat diperkenalkan. Tipe atribut dapat
berupa tipe dasar, sepertiRangkaian atau Bilangan bulat, atau FRf,
2. LATAR BELAKANG: PEMODELAN FITUR yang menunjukkan kumpulan semua referensi ke fitur dalam
BERBASIS KARDINALITAS konfigurasi tertentu. Kami juga merujuk ke atribut dengan tipeFRf
sebagai atribut referensi fitur. Misalnya, model fitur sampel kami
Pemodelan fitur berbasis kardinalitas mengintegrasikan
pada Gambar 1 menggunakan atribut string untuk mewakili nama
sejumlah ekstensi ke notasi FODA asli. Contoh model fitur
metode pembayaran dan metode pengiriman, dan atribut float
berbasis kardinalitas yang menggambarkan keluarga toko
untuk mewakili tarif metode pengiriman. Selanjutnya, atribut
elektronik diberikan pada Gambar 1. Notasi dirangkum
referensi fitur digunakan dalamMetode PembayaranRefdan Metode
dalam Tabel 1. Penjelasan singkat tentang notasi berikut.
PengirimanRef untuk menunjuk ke metode pembayaran dan
pengiriman yang telah ditentukan sebelumnya di back office, yaitu
Model fitur berbasis kardinalitas adalah hierarki fitur, di
klon dari Cara Pembayaran dan Metode pengiriman. Meskipun
mana setiap fitur memiliki fitur kardinalitas. Kardinalitas
referensi fitur dapat menunjuk ke fitur apa pun dalam konfigurasi,
fitur adalah interval dari bentuk [M..n], di manaM ∈ Z ∧ n ∈
nanti kami akan menunjukkan cara membatasi atribut untuk
Z {∗} 0 ≤ M ∧ (M ≤ n ∨ n = *). Kardinalitas fitur menunjukkan
menunjuk ke salah satu
berapa banyak klon fitur

2
Tabel 1: Simbol yang digunakan dalam pemodelan fitur berbasis A A
kardinalitas kan0– 1kan

B C D B C D
Simbol Penjelasan
Fitur soliter dengan kardinalitas [1..1], yaitu (a) Asli kucing- (b) Notasi baru
F wajib fitur notasi buku
Fitur soliter dengan kardinalitas [0..1], yaitu
F opsional fitur
Gambar 3: Sekelompok fitur alternatif dalam buku cat
[0..M] Fitur soliter dengan kardinalitas [0..M], dan notasi baru
F m > 1, yaitu, kloning opsional fitur
Fitur soliter dengan kardinalitas [n..m],n > 0 ∧
[n..m]
m > 1, yaitu, kloning wajib diskusi ekstensif tentang penerapan pemodelan fitur berbasis
F
fitur
kardinalitas diberikan di tempat lain [13, Bagian 6].
F
Fitur yang dikelompokkan dengan kardinalitas [0..1] Sangat menarik untuk dicatat bahwa, berbeda dengan
pekerjaan kami sebelumnya [12], kami sekarang juga
Fitur yang dikelompokkan dengan kardinalitas [1..1] mengaitkan kardinalitas fitur dengan fitur yang dikelompokkan
F
[18]. Namun, satu-satunya nilai yang mungkin adalah [0..0],
Fitur F dengan atribut tipe T dan
F(nilai:T) [0..1], dan [1..1]. Biasanya, fitur yang dikelompokkan memiliki
Nilai dari nilai
[0..1] sebagai kardinalitas defaultnya. Kardinalitas [1..1] dan
Referensi model fitur F
F-
[0..0] digunakan untuk fitur yang dipilih atau dihilangkan,
Grup fitur dengan kardinalitas kan1– 1kan, yaitu masing-masing, dari grup selama spesialisasi. Selanjutnya, kami
xor-kelompok
menggunakan kotak, bukan lingkaran untuk kardinalitas fitur
Grup fitur dengan kardinalitas kan1– kkan, di mana
k adalah ukuran grup, yaitu atau-kelompok
yang dikelompokkan untuk menghindari kebingungan dengan
kanSaya- Jkan
notasi sebelumnya yang dijelaskan dalam "buku kucing" [11].
Grup fitur dengan kardinalitas kanSaya- Jkan Dalam buku tersebut, kardinalitas grup dan kardinalitas fitur
yang dikelompokkan ditafsirkan secara berurutan, tetapi
sekarang, kardinalitas grup dapat dianggap sebagai kendala
A C A
tambahan.

B C2 - D E
≡ B C2 3. FITUR MOD-ELING BERBASIS
KARDINALITAS DENGAN KENDALA
C1 - C1 D2 E2
Tidak semua jenis kendala dalam model fitur dapat diekspresikan
menggunakan struktur pohon dan kardinalitasnya. Kendala seperti
D1 E1
itu perlu ditangkap sebagaikendala tambahan. Mungkin contoh
paling terkenal dari kendala tersebut adalahmenyiratkan dan tidak
Gambar 2: Pembukaan referensi model fitur termasuk kendala. Selain itu, penambahan atribut mendorong
kebutuhan untuk mendefinisikan batasan atas nilai atribut.
Akhirnya, kloning membutuhkan gagasan tentang konteks untuk
klon dari Cara Pembayaran atau Metode pengiriman tujuan pelingkupan dan mengarah pada kendala atas kumpulan
menggunakan batasan tambahan. Dengan demikian, atribut fitur.
referensi fitur sangat berguna dalam konteks kloning. Mari kita pertama menjelaskan bagaimana kloning mempengaruhi
Akhirnya, sebuah node dalam model fitur juga dapat menjadi set fasilitas yang diperlukan untuk mengekspresikan kendala tambahan.
referensi model fitur. Model fiturM dengan referensi ke model Untuk tujuan itu, pertimbangkan model fitur sederhana pada Gambar
fitur lain secara semantik setara dengan salinanM di mana 4(a). Batasan yang menyatakan fitur ituD menyiratkan fitur Esecara
referensi telah dibuka, yaitu, diganti dengan model fitur yang sederhana dapat dinyatakan sebagai
menjadi titik referensi. Referensi model fitur memungkinkan
kita untuk membagi model fitur besar menjadi modul yang D menyiratkan E
lebih kecil. Juga, model fitur dapat berisi beberapa referensi ke
sub-model yang sama, yang diilustrasikan pada Gambar 2. Sayangnya, batasan ini tidak masuk akal untuk model fitur pada
Kami menggunakan subskrip untuk membedakan di antara Gambar 4(b). Ini karena fitur-fiturnyaB dan C sekarang dapat
salinan fitur berbeda yang dibuat melalui pembukaan. Model dikloning, dan konfigurasi yang sesuai dengan model ini
fitur sampel kami pada Gambar 1 memiliki satu referensi model sekarang dapat berisi beberapa klon fitur D dan E (karena fitur
fitur, yaituKatalog. Untuk singkatnya, model fitur yang ditunjuk dikloning dengan seluruh subpohonnya). Contoh kendala untuk
oleh referensi tidak ditampilkan. model pada Gambar 4(b) akan menjadi “kekosongan dari
Contoh pada Gambar 1 menunjukkan repertoar lengkap himpunan semuaD klon menyiratkan non-kekosongan dari
pemodelan fitur berbasis kardinalitas. Namun, aplikasi praktis himpunan semua Eklon”. Selanjutnya, kendala praktis (seperti
mungkin bergantung pada subset dari notasi. Secara khusus, model yang akan kita lihat nanti) mungkin memerlukan pengumpulan
fitur yang menggambarkan karakteristik tingkat tinggi dari lini klon dari fitur yang diberikan tidak di seluruh model fitur, tetapi
produk biasanya tidak memerlukan kloning fitur. Kloning fitur sering dalam lingkup sebuahfitur konteks (yaitu, klon yang merupakan
kali berguna dalam menentukan konfigurasi komponen runtime, subfitur langsung atau tidak langsung dari fitur tersebut).
profil kebijakan, dan konfigurasi platform. Lagi

3
Sebagai contoh, Gambar 6 menunjukkan model kelas UML
A A yang sesuai dengan model fitur pada Gambar 1.
[0..*] [0..*] Multiplisitas di ujung agregat dari setiap komposisi dalam
B C B C model itu diasumsikan 1. Multiplisitas di ujung lainnya sama
dengan kardinalitas yang sesuai dalam model fitur. Lebih-
lebih lagi,FRf adalah antarmuka yang direalisasikan oleh
D E D E setiap kelas yang mewakili fitur. Kardinalitas grup dari
model fitur dapat dinyatakan sebagai batasan OCL
(a) Tidak ada fitur (b) Dua fitur kloning ( tambahan pada model kelas. Secara semantik, model kelas
kloning B dan C) mewakili satu set struktur objek yang mematuhi
multiplisitas dan batasan OCL tambahan. Masing-masing
struktur objek ini sesuai dengan konfigurasi model fitur.1
Gambar 4: Contoh model fitur tanpa dan dengan fitur yang
Mari kita lihat sejumlah contoh kendala tambahan pada
dapat dikloning
model fitur pada Gambar 1 yang dinyatakan dalam OCL.
Contoh pertama adalah sederhana menyiratkan kendala
A A yang tidak melibatkan fitur kloning.

[0..*] konteks Pembayaran inv:


B3 FraudDetection.isSelected() menyiratkan PaymentGateways.isSelected()
B B1 B2

Batasan menyatakan bahwa memilih Deteksi Penipuan


C D C1 D1 D2 menyiratkan bahwa PaymentGateway juga dipilih. Batasan
dinyatakan sebagai invarian OCL dalam konteksPembayaran.
(a) Fitur model (b) Contoh konfigurasi Kejadian dari Deteksi Penipuan dan PaymentGateway
dengan batasan jatah menunjukkan navigasi. Menurut konvensi OCL, nama-nama
lokal: C menyiratkan kelas yang menjadi target navigasi dapat digunakan sebagai
Ddalam konteks B
pengganti nama peran jika yang terakhir tidak tersedia (seperti
yang terjadi pada Gambar 6). Selanjutnya, kami berasumsi
Gambar 5: Contoh model fitur dengan batasan lokal dan bahwadipilih() disediakan sebagai sinonim untuk operasi OCL
konfigurasinya standar didefinisikan(). Harap dicatat bahwa kendala yang sama
juga dapat diekspresikan menggunakan ESshop sebagai
konteksnya:
Gagasan fitur konteks diilustrasikan pada Gambar 5.
Batasan yang ingin kami ungkapkan untuk model fitur pada konteks Eshop inv:
BackOffice.Payment.FraudDetection.isSelected() menyiratkan
Gambar 5(a) adalah bahwa untuk setiap klon dari B dijamin BackOffice.Payment.PaymentGateways.isSelected()
jika klon memiliki C sebagai subfitur, ia juga memiliki D
sebagai subfitur. Dengan kata lain, kendala dinyatakan Sebagai contoh kedua, kami ingin menyatakan bahwa atribut
dalam konteksB: referensi dari GatewayRef harus merujuk hanya pada pembayaran-
konteks B: gateway ment, yaitu, salah satu subfitur dari
PaymentGateway:
C menyiratkan D
konteks GatewayRef inv:
Gambar 5(b) menunjukkan konfigurasi yang sesuai dengan model EShop.BackOffice.Payment.PaymentGateways.sub()
fitur pada Gambar 5(a) yang juga memenuhi batasan di atas. -> termasuk (att)
Subskrip diterapkan pada nama klon pada Gambar 5(b) untuk
mengidentifikasi mereka secara unik. Batasan di atas dinyatakan dalam konteks GatewayRef,berarti
Menariknya, kendala tambahan untuk model fitur berbasis bahwa tubuh kendala harus berlaku untuk setiap contoh dari
kardinalitas dapat diekspresikan secara memadai menggunakan Object GatewayRef. Dalam kasus kami, tubuh harus menahan hanya jika
Constraint Language (OCL) [20] atau XPath [27]. Contoh batasan GatewayRef telah dipilih (yaitu, sebuah instance dari itu ada
tambahan yang diekspresikan menggunakan XPath diberikan di tempat dalam struktur objek). Kami berasumsi bahwa operasisub()
lain [2]. Dalam makalah ini, kami mengeksplorasi penggunaan OCL mengembalikan semua subfitur fitur (yaitu, semua objek
untuk tujuan ini. Sebuah keuntungan penting dari OCL atas XPath adalah 1Pada titik ini, pembaca mungkin bertanya-tanya tentang
bahwa pemodel lebih cenderung akrab dengan OCL daripada XPath. perbedaan antara model fitur dan model kelas. Setidaknya
Keuntungan lain termasuk fakta bahwa OCL telah mendefinisikan ada tiga perbedaan utama. Pertama, model fitur dapat
semantik secara formal [20, Lampiran A] dan bahwa interpretasi dilihat sebagai bentuk model kelas yang terbatas. Secara
template OCL yang dijelaskan dalam makalah sebelumnya [14] dapat khusus, fitur tidak memiliki operasi, komposisi selalu
memiliki multiplisitas 1 pada akhir agregat, dan hubungan
digunakan untuk memberikan semantik formal kepada OCL dalam
seperti pewarisan dan asosiasi tidak tersedia. Kedua,
konteks pemodelan fitur berbasis kardinalitas. . pemodelan fitur menawarkan gula sintaksis. Secara khusus,
pemodelan fitur memiliki mekanisme kenyamanan seperti
4. OCL SEBAGAI BAHASA KONSTRAINT grup fitur, yang harus dinyatakan sebagai kendala OCL
dalam model kelas, dan sintaks konkret yang lebih ringkas.
UNTUK MODEL FITUR BERBASIS Struktur pohon juga dapat dimanfaatkan oleh alat untuk
KARDINALITAS menyediakan tata letak dan garis besar otomatis. Ketiga,
pemodelan fitur hadir dengan filosofi pemodelannya
OCL dapat diadopsi untuk pemodelan fitur dengan menafsirkan sendiri. Model fitur mewakili hierarki properti,
model fitur sebagai model kelas dengan hierarki penahanan.

4
ESshop

1..* 1

TokoDepan Back Office

1 1 0.1 1 0.1

Katalog Pembayaran SF Pengiriman SF Pembayaran Pengiriman

1..* 1..* 1..* 0.1 0.1 1..*


Pembayaran Pengiriman Cara Pembayaran Pembayaran Tipuan ping
Mengirimkan
...
MetodeRef MetodeRef att: String Gerbang Deteksi hod
bertemu

att : FRef att : FRef att : S tali


0.1 1 0.1 0.1 0.1
gerbang Verisign Tautan 1
Tipe pembayaran dunia maya

ref Sumber Titik Kecepatan

att : FRef 0.1 0.1 0.1 att : Mengambang

Kredit Debet Pembelian


Kartu Kartu Memesan

Gambar 6: Model kelas UML yang sesuai dengan model fitur pada Gambar 1

terkandung dalam target operasi). Panah kanan digunakan di konteks Pengiriman inv:
OCL untuk menjalankan operasi pada koleksi. Dalam kasus ShippingMethod.Rate.att->ada(x| x>0)
kami, kami memeriksa apakah nilaiGatewayRef's atributatt
Sekarang kita siap untuk melihat bagaimana kardinalitas
termasuk dalam subfitur dari PembayaranGerbang.
grup dari model fitur dapat diekspresikan sebagai batasan
Demikian pula, kami ingin menegakkan bahwa metode pembayaran yang
OCL tambahan pada model kelas. Misalnya, or-grup di
tersedia di bagian depan toko tertentu adalah bagian dari metode pembayaran yang
bawahPaymentGateway dapat diwakili oleh kendala berikut:
disediakan oleh bagian belakang:

konteks PaymentMethodRef inv:


konteks PaymentGateways inv:
EShop.BackOffice.Payment.PaymentMethod->termasuk(att)
membiarkan

numOfSelectedFeatures =
Batasan di atas mengasumsikan bahwa fitur root ESshop CyberSource->union(Verisign->union(LinkPoint))->size()
dapat digunakan sebagai konstanta yang menunjukkan satu- di dalam

satunya contoh dariESshop, yaitu, ini adalah gula sintaksis numOfSelectedFeatures >= 1 dan
numOfSelectedFeatures <= 3
untuk EShop.allInstances().Karena batas atas kardinalitas Cara
Pembayaranlebih tinggi dari satu, hasil navigasi EShop.Back-
Office.Pembayaran.Metode Pembayaran adalah koleksi. 5. DUKUNGAN ALAT UNTUK MOD-ELING
Kendala analog diperlukan untuk metode pengiriman: FITUR DENGAN KENDALA
konteks ShippingMethodRef inv: Sebuah model fitur dengan kendala tambahan dapat
EShop.BackOffice.Shipping.ShippingMethod->termasuk(att) diterjemahkan ke dalam satu set variabel dan set kendala
atas variabel-variabel ini. Variabel mewakili pilihan individu
Batasan berikutnya adalah contoh batasan implikasi dalam yang mungkin, seperti pemilihan fitur dan penetapan nilai
konteks fitur yang dapat dikloning (mirip dengan contoh pada atribut, dan kumpulan batasan mencakup batasan yang
Gambar 5). Ini menyatakan bahwa setiap metode pembayaran tersirat oleh hierarki fitur dan batasan tambahan.
jenis kartu debit atau kredit harus memiliki gateway tertentu: Penetapan nilai yang memenuhi batasan sesuai dengan
konteks Metode Pembayaran inv:
konfigurasi yang benar. Penetapan nilai yang memberikan
(PaymentType.CreditCard.isSelected() atau nilai ke setiap variabel dalam kumpulan variabel sesuai
PaymentType.DebitCard.isSelected()) menyiratkan dengan konfigurasi penuh. Sebuah tugas parsial sesuai
GatewayRef.isSelected()
dengan spesialisasi parsial [12], yang kadang-kadang juga
Sebagai contoh batasan ukuran satu set, mari kita batasi disebut sebagai konfigurasi parsial.
jumlah metode pembayaran yang tersedia di bagian depan Area Constraint Satisfaction menawarkan banyak
toko menjadi 3: algoritme yang menarik untuk pemodelan fitur dan alat
konfigurasi berbasis fitur. Kelas algoritma utama dari
konteks StoreFront inv: minat meliputi:
SFPayment.PaymentMethodRef->size() <= 3
• Pemeriksaan kendala: Memeriksa apakah tertentu
Akhirnya, kami memberikan dua contoh kendala yang melibatkan (lengkap atau sebagian) penugasan variabel memenuhi
nilai atribut numerik. Batasan pertama menyatakan bahwa tarif batasan.
pengiriman tidak boleh berupa angka negatif:
• Perambatan kendala: Menyimpulkan nilai-nilai variabel yang
konteks Tingkat inv: belum diputuskan dari nilai-nilai variabel yang diputuskan.
att>=0
• Kepuasan kendala: Memeriksa apakah sekumpulan
Batasan kedua menyatakan bahwa jika toko elektronik memiliki
kendala memiliki setidaknya satu solusi.
pengiriman, setidaknya satu metode pengiriman memiliki tarif yang
merupakan angka positif (yaitu, setidaknya satu metode pengiriman • Pemecahan kendala: Solusi komputasi untuk sekumpulan
tidak gratis): kendala.

5
• Menghitung jumlah solusi: Menghitung jumlah solusi • Penyelesaian otomatis konfigurasi: Pemecahan kendala dapat
lengkap untuk sekumpulan kendala. digunakan untuk solusi komputasi (termasuk menyelesaikan
solusi parsial) yang dapat disajikan kepada pengguna.
Alat pemodelan fitur dapat menawarkan fasilitas berdasarkan
algoritma kepuasan kendala untuk membantu pengembang
membuat model fitur yang benar. Contoh fasilitas tersebut adalah • Men-debug konfigurasi yang salah: Dalam beberapa kasus,
pengguna mungkin ingin dengan cepat membuat beberapa
• Pemeriksaan konsistensi model: Kepuasan kendala pilihan tanpa memverifikasi jumlah konfigurasi yang tersisa di
memungkinkan penentuan bahwa model fitur memiliki sepanjang jalan. Ini terutama berlaku untuk pengguna ahli.
setidaknya satu konfigurasi yang benar. Konfigurasi yang dihasilkan mungkin tidak benar, dalam hal ini
perlu diperbaiki. Sementara beberapa pilihan pengguna harus
• Mendeteksi anomali: Anomali seperti “fitur mati”, yaitu direvisi, pengguna mungkin lebih peduli untuk mempertahankan
fitur yang bukan merupakan bagian dari konfigurasi yang beberapa pilihan daripada mempertahankan beberapa pilihan
benar dan dengan demikian tidak dapat dipilih [24], juga lainnya. Oleh karena itu, kami membutuhkan cara yang efisien
dapat dideteksi melalui kepuasan batasan. Sebuah fitur untuk memperbaiki konfigurasi, yang mempertimbangkan
mati jika konjungsi dari variabel yang sesuai dengan fitur preferensi pengguna.
dan kendala yang diimplikasikan oleh model fitur tidak
Penyelesaian otomatis dan debugging mungkin merupakan fasilitas
terpenuhi.
yang paling menantang untuk disediakan. Solusi yang memadai
mungkin memerlukan kendala yang lemah, heuristik, dan prosedur
• Metrik komputasi: Jumlah konfigurasi yang benar adalah
solusi kustom.
metrik yang berguna yang menunjukkan derajat
variabilitas diwujudkan dalam model fitur [15, 25]. Ini
dapat dihitung dengan menghitung jumlah solusi untuk 6. PROTOTIPE ALAT
himpunan kendala yang tersirat oleh model fitur Kami telah membuat perpanjangan prototipe fmp [2] dengan
(termasuk kendala tambahan). Contoh lainnya adalah beberapa fasilitas berdasarkan kepuasan kendala yang dibahas
derajat ortogonalitas, yang merupakan rasio antara pada bagian sebelumnya. fmp adalah plug-in Eclipse untuk
jumlah solusi terhadap kumpulan kendala yang tersirat pemodelan fitur dan konfigurasi berbasis fitur. Secara khusus, kami
oleh model fitur (termasuk semua kendala tambahan) telah memperpanjangfmp dengan fasilitas sebagai berikut.
dan jumlah solusi untuk kumpulan kendala yang tersirat • Menghitung jumlah konfigurasi yang diwakili oleh model fitur
oleh hierarki fitur dan kendala tambahan yang bersifat : Fasilitas ini memungkinkan pengguna untuk memverifikasi
lokal (yaitu, melibatkan hanya satu fitur). Tingkat bahwa model memiliki setidaknya satu konfigurasi, dan juga
ortogonalitas yang tinggi berarti bahwa keputusan memberi pengguna gambaran tentang tingkat variabilitas
tentang pemilihan fitur dapat dilakukan secara lokal, yang terkandung dalam model fitur. Gambar 7 menunjukkan
yaitu, tanpa mengkhawatirkan pengaruhnya terhadap model fitur sampel dengan jumlah konfigurasi beton yang
pilihan di bagian lain dari hierarki fitur. diwakilinya.

Algoritma kepuasan kendala sangat menarik untuk alat • Menyebarkan pilihan konfigurasi: Gambar 8 menunjukkan
konfigurasi berbasis fitur. Contoh fasilitas berdasarkan cuplikan layar antarmuka konfigurasi, yang menampilkan
kepuasan kendala dalam konfigurasi berbasis fitur adalah: hierarki fitur dengan kotak centang untuk setiap fitur variabel.
Kotak centang dapat memiliki salah satu dari lima status:
bimbang, dipilih pengguna, mesin-dipilih,dihapus pengguna,
• Pemeriksaan konfigurasi: Memeriksa bahwa konfigurasi dan mesin-dihilangkan. Undecided diberikan sebagai kotak
lengkap memenuhi satu set kendala adalah operasi yang centang kosong dan berarti bahwa pengguna belum
relatif sederhana dan murah sebesar evaluasi ekspresi. memutuskan apakah fitur ini harus dipilih atau dihilangkan.
Memeriksa konfigurasi parsial lebih mahal: itu berarti Pengguna dapat secara eksplisit memilih atau menghilangkan
memeriksa untuk melihat apakah konfigurasi parsial fitur, yang masing-masing ditampilkan dengan tanda centang
tersirat oleh model fitur, yaitu, memerlukan pemeriksaan gelap atau tanda silang. Pilihan pengguna dapat memicu
kepuasan kendala. pilihan mesin melalui propagasi. Fitur yang dipilih atau
dihilangkan oleh mesin dirender sebagai pemeriksaan ringan
• Menampilkan jumlah konfigurasi yang tersisa: atau persilangan, masing-masing. Misalnya, Gambar 8
Menghitung jumlah konfigurasi setelah setiap langkah menunjukkan hasil fitur pemilihan penggunaDeteksi Penipuan
konfigurasi memberi pengguna ide yang lebih baik dalam konfigurasi di mana semua kotak centang awalnya
tentang kemajuan proses konfigurasi. Jika jumlahnya kosong. SejakDeteksi Penipuanmenyiratkan Gerbang
satu, pengguna sampai pada konfigurasi yang Pembayaran, propagasi pilihan memiliki efek menempatkan
lengkap. Jika angkanya nol, pengguna baru saja tanda centang pada PaymentGateway.Pengguna kemudian
membuat konfigurasi yang salah dan perlu merevisi memutuskan untuk memilih Sumber Cyber dan
beberapa langkah konfigurasi. menghilangkan titik tautan, saat pergi Verisign masih ragu-
ragu. Menggunakan rendering yang berbeda untuk pilihan
• Menyebarkan pilihan konfigurasi: Memilih fitur tertentu
mesin memungkinkan pengguna untuk lebih memahami efek
mungkin memerlukan pemilihan beberapa fitur lain,
propagasi pilihan.
dalam hal ini pilihan terakhir dapat disimpulkan secara
otomatis dari yang pertama menggunakan propagasi • Menghitung jumlah konfigurasi yang tersisa selama
kendala. Secara umum, pilihan konfigurasi yang proses konfigurasi: Jumlah konfigurasi yang tersisa
memberikan nilai tertentu ke variabel dapat membatasi adalah jumlah konfigurasi beton yang diwakili oleh
domain nilai yang tersedia untuk variabel lain. arus (berpotensi parsial)

6
Kinerja yang diberikan oleh algoritma BDD yang
mendasarinya sangat baik: waktu yang dibutuhkan untuk
menghitung solusi, menyebarkan pilihan, dan solusi komputasi
hampir tidak terlihat oleh pengguna. Kami telah menguji
prototipe kami dengan model yang berisi hingga beberapa
ratus fitur. Namun, karena jumlah fitur sama dengan jumlah
variabel dari kendala yang sesuai dengan masalah kepuasan
dan paket BDD saat ini diketahui menangani masalah dengan
puluhan ribu fitur secara efisien, kami tidak mengharapkan
masalah skalabilitas dalam hal kinerja.
Meskipun perbedaan visual antara pilihan pengguna dan mesin
telah terbukti bermanfaat, percobaan awal kami telah menunjukkan
Gambar 7: Contoh model fitur dalam fmp dengan bahwa fasilitas yang lebih baik untuk meninjau efek propagasi
dukungan kendala pilihan diperlukan. Saat ini kami sedang mengerjakan antarmuka
pengguna yang memungkinkan pengguna menelusuri efek
penyebaran pilihan pengguna dan mencabut pilihan jika diinginkan.
Selain itu, fasilitas pelengkapan otomatis perlu dikembangkan lebih
lanjut. Secara khusus, kami ingin mengizinkan perancang model
fitur untuk menentukan batasan lemah yang dapat menghitung
penyelesaian default yang sesuai berdasarkan pilihan pengguna
pada titik tertentu selama proses konfigurasi.

7. PEKERJAAN TERKAIT
Pekerjaan terkait untuk pemodelan fitur berbasis kardinalitas
dapat ditemukan di makalah sebelumnya [13]. Di sini kami hanya
fokus pada ekspresi kendala untuk pemodelan fitur berbasis
kardinalitas dan dukungan alat berbasis kendala untuk pemodelan
fitur dan konfigurasi berbasis fitur.
Penggunaan XPath untuk mengekspresikan batasan untuk
Angka 8: Contoh konfigurasi di fmp dengan con- pemodelan fitur berbasis kardinalitas telah diusulkan dalam konteks
dukungan regangan dua alat pemodelan fitur, yaitu XFeature [7] dan versi fmp
sebelumnya [2]. Dalam hal kepuasan kendala, kedua alat ini dapat
memeriksa apakah konfigurasi konkret benar sehubungan dengan
konfigurasi. Nomor ini dapat memberikan gambaran kendala XPath, yang dilakukan hanya dengan memanggil evaluator
kepada pengguna tentang kemajuan proses konfigurasi. XPath pada representasi XML dari konfigurasi. Namun, fasilitas yang
Misalnya, konfigurasi parsial pada Gambar 8 mewakili lebih canggih seperti propagasi pilihan atau pelengkapan otomatis
dua konfigurasi konkret, yang berarti bahwa pilihan tidak didukung oleh alat ini. Sedangkan makalah oleh Cechticky et al.
konfigurasi lebih lanjut diperlukan jika pengguna ingin [7] memberikan satu contoh kendala yang melibatkan fitur yang
sampai pada satu konfigurasi lengkap. Nomor tersebut dapat dikloning, kami tidak mengetahui pekerjaan sebelumnya yang
juga menginformasikan pengguna ketika konfigurasi menganalisis kebutuhan khusus pemodelan fitur berbasis
parsial atau lengkap yang sedang dibangun menjadi kardinalitas dalam hal mengekspresikan kendala tambahan seperti
salah, dalam hal ini jumlah konfigurasi yang tersisa yang diberikan dalam Bagian 3. Penggunaan OCL sebagai bahasa
menjadi nol. untuk mengekspresikan batasan tambahan untuk model fitur
sebelumnya dieksplorasi dalam tesis Diploma oleh Schilling [21] di
• Penyelesaian otomatis konfigurasi: Setelah membuat nol bawah pengawasan penulis pertama dan oleh Streitferdt et al. [22].
atau lebih pilihan, pengguna dapat meminta alat untuk
menyelesaikan konfigurasi sedemikian rupa sehingga Contoh pekerjaan pada konfigurasi berbasis fitur yang
konfigurasi sesuai dengan model fitur dengan batasan mendukung fasilitas kepuasan kendala di luar pemeriksaan
tambahannya. Pengguna dapat meminta alat untuk konfigurasi sederhana adalah Batory [3]. Batory membahas
menunjukkan sejumlah solusi benar yang ditentukan penggunaan pemecah SAT untuk memeriksa konsistensi model
pengguna. Daftar solusi alternatif dapat diperiksa di fitur dan penggunaan algoritma propagasi kendala untuk
browser solusi dan solusi yang diinginkan dapat dipilih. menyebarkan pilihan konfigurasi. Benavides dkk. menyajikan
ide-ide serupa [5]. Versi tertentu dari pemodelan fitur dan alat
Prototipe saat ini mendukung batasan hanya dalam bentuk konfigurasimurni::varian [6] juga mendukung propagasi pilihan.
formula proposisional atas fitur, dan mengasumsikan model Mirip dengan prototipe kami yang dijelaskan di Bagian 6,
fitur tanpa fitur yang dapat dikloning. Hirarki fitur fasilitas kepuasan kendala dalam karya di atas tidak
diterjemahkan ke dalam formula proposisional sesuai dengan mempertimbangkan fitur yang dapat dikloning.
pendekatan yang diberikan oleh Batory [3]. Von der Maßen dan Lichter [25] mengusulkan cara untuk
Mesin pemuasan kendala yang dibutuhkan, yaitu menghitung perkiraan kasar dari jumlah konfigurasi lengkap
menghitung jumlah solusi, propagasi kendala, dan yang benar. Kita gunakanhitungan SAT, algoritma berbasis BDD
pemecahan kendala, didasarkan pada Binary Decision yang ada [1], yang dapat menghitung jumlah pasti konfigurasi
Diagram (BDD) [1]. Paket BDD khusus yang digunakan tersebut untuk model fitur besar dalam sepersekian detik. Juga,
dalam prototipe saat ini adalah dari Config Software [9]. kami tidak mengetahui adanya fitur lain-

7
alat konfigurasi berbasis menunjukkan jumlah konfigurasi Rekayasa Sistem Informasi (CAiSE'05), Porto, Portugal,
yang tersisa. 2005, LNC. Springer, 2005.
Penggunaan paket BDD sebagai mesin kepuasan kendala untuk [6] D. Beuche. murni::varian Eclipse Plugin. Panduan
pemodelan fitur dan konfigurasi bukanlah hal baru. Contoh pendekatan pengguna. sistem murni GmbH. tersedia dari
tersebut adalah yang dilakukan oleh van der Storm [23]. Pendekatan http://web.pure-systems.com/fileadmin/
terkait menggunakan BDD, meskipun tidak secara langsung downloads/pv_userguide.pdf, 2004.
berdasarkan pemodelan fitur, adalah DESERT [19]. [7] V. Cechticky, A. Pasetti, O. Rohlik, dan
Banyak pekerjaan yang berurusan dengan konfigurasi W. Schaufelberger. Pemodelan fitur berbasis XML. Di dalam
berbasis kendala ada di bidang Kecerdasan Buatan. Kami J. Bosch dan C. Krueger, editor, Penggunaan Kembali
telah membahas pendekatan terkait dari yang ada di Perangkat Lunak: Metode, Teknik, dan Alat: Konferensi
makalah sebelumnya [13, Bagian 6]. Meskipun pendekatan Internasional ke-8, ICSR 2004, Madrid, Spanyol, 5-9 Juli
ini biasanya berkaitan dengan konfigurasi produk fisik, 2009. Prosiding, volume 3107 dari Catatan Kuliah di
banyak ide pasti dapat diangkut ke bidang lini produk Ilmu Komputer, halaman 101–114, Heidelberg, Jerman,
perangkat lunak. Kami mengharapkan lebih banyak upaya 2004. Springer-Verlag.
lintas disiplin semacam itu di masa depan. [8] P. Clements dan L. Northrop. Lini Produk Perangkat
Kami tidak mengetahui adanya klasifikasi lain dari fasilitas Lunak: Praktik dan Pola. Addison-Wesley, Boston, MA,
berbasis kendala kepuasan untuk pemodelan fitur yang sebanding 2001.
dengan yang diberikan di Bagian 5.
[9] Konfigurasi Perangkat Lunak. Config—Mesin Konfigurasi
Produk, 2005. http://www.configit-software.com/.
8. KESIMPULAN DAN PEKERJAAN MASA DEPAN [10] K. Czarnecki. Gambaran Umum Pengembangan Perangkat
Lunak Generatif. Di dalamProsiding Paradigma
Dalam makalah ini, kami menganalisis kebutuhan pemodelan
Pemrograman Tidak Konvensional (UPP) 2004, 15-17
fitur berbasis kardinalitas sehubungan dengan mengekspresikan
September, Mont Saint-Michel, Prancis, Revisi Makalah,
kendala tambahan dan menunjukkan bagaimana kebutuhan ini
volume 3566 dari Catatan Kuliah di Ilmu Komputer,
dipenuhi oleh OCL. Selanjutnya, kami mengklasifikasikan fasilitas
halaman 313–328. Springer-Verlag, 2004.http://
yang dapat ditawarkan oleh alat pemodelan fitur dan konfigurator
www.swen.uwaterloo.ca/~kczarnec/ gsdoverview.pdf.
berbasis fitur berdasarkan algoritma kepuasan kendala. Akhirnya,
kami menjelaskan implementasi prototipe dari beberapa fasilitas ini
dan berbagi pengalaman kami dengan prototipe. [11] K. Czarnecki dan UW Eisenecker. Pemrograman
Untuk pekerjaan di masa mendatang, kami berencana untuk Generatif: Metode, Alat, dan Aplikasi. Addison-
memperluas fasilitas kepuasan kendala dalam prototipe alat kami Wesley, Boston, MA, 2000.
untuk menangani kendala OCL melalui notasi pemodelan fitur [12] K. Czarnecki, S. Helsen, dan U. Eisenecker. Konfigurasi
berbasis kardinalitas penuh. Ini akan dilakukan dengan bertahap menggunakan model fitur. Di RL Nord, editor,
mengadaptasi interpretasi template OCL kami [14] untuk tujuan Lini Produk Perangkat Lunak: Konferensi Internasional
pemodelan fitur. Selanjutnya, kami berencana untuk meningkatkan Ketiga, SPLC 2004, Boston, MA, AS, 30 Agustus-2
model interaksi pengguna dan antarmuka pengguna untuk September 2004. Prosiding, volume 3154 dariCatatan
konfigurasi berbasis fitur agar pengguna dapat menangani model Kuliah di Ilmu Komputer, halaman 266–283, Heidelberg,
fitur besar secara lebih efektif. Jerman, 2004. Springer-Verlag.
[13] K. Czarnecki, S. Helsen, dan U. Eisenecker. Konfigurasi
bertahap melalui spesialisasi dan konfigurasi multi-
9. REFERENSI level model fitur.Peningkatan dan Praktik Proses
[1] HR Anderson. Diagram Keputusan Biner. Departemen Perangkat Lunak, 10(2):143–169, 2005.http://
Teknologi Informasi, Technical University of Denmark, swen.uwaterloo.ca/~kczarnec/spip05b.pdf.
Lyngby, Denmark, 1997. Catatan kuliah untuk 49285 [14] K. Czarnecki dan K. Pietroszek. Memverifikasi template model
Advanced Algorithms E97,http://www.itu.dk/people/ berbasis fitur terhadap batasan OCL yang terbentuk dengan
hra/notes-index.html. baik. Diajukan untuk diterbitkan, 2005.
[2] M. Antkiewicz dan K. Czarnecki. FeaturePlugin: Plug-in [15] U. Eisenecker, M. Selbig, F. Blinn, dan K. Czarnecki. Pemodelan
pemodelan fitur untuk Eclipse. Di dalamLokakarya Eclipse fitur untuk keluarga sistem perangkat lunak.
Technology eXchange (ETX) OOPSLA'04, 2004. Kertas OBJEKTspektrum, (5):23–30, 2001. edisi khusus tentang
tersedia dari http: //www.swen.uwaterloo.ca/~kczarnec/ keluarga produk (dalam bahasa Jerman).
etx04.pdf.Perangkat lunak tersedia dari: gp.uwaterloo.ca/ [16] J. Greenfield dan K. Pendek. Pabrik Perangkat Lunak:
fmp. Merakit Aplikasi dengan Pola, Model, Kerangka Kerja,
[3] D. Baterai. Model Fitur, Tata Bahasa, dan Rumus dan Alat. Wiley, Indianapolis, IN, 2004.
Proposisi. Laporan Teknis TR-05-14, University of [17] K. Kang, S. Cohen, J. Hess, W. Nowak, dan
Texas di Austin, Texas, Maret 2005. S.Peterson. Studi kelayakan analisis domain berorientasi
[4] D. Batory, R. Lopez-Herrejon, dan J.-P. Martin. fitur (FODA). Laporan Teknis CMU/SEI-90-TR-21, Institut
Menghasilkan lini produk dari keluarga produk. Di dalam Rekayasa Perangkat Lunak, Universitas Carnegie Mellon,
Rekayasa Perangkat Lunak Otomatis, 2002. Prosiding. ASE Pittsburgh, PA, November 1990.
2002. Konferensi Internasional IEEE ke-17, halaman 81–92,
2002. [18] CHP Kim dan K. Czarnecki. Menyinkronkan model
[5] D. Benavides, P. Trinidad, dan A. Ruiz-Cortés. fitur berbasis kardinalitas dan spesialisasinya. Di
Penalaran otomatis pada model fitur. Di dalam dalamProsiding ECMDA'05, 2005.swen.uwaterloo.ca/
Prosiding Konferensi Tingkat Lanjut ke-17 ~kczarnec/ecmda05.pdf.

8
[19] S. Neema, J. Sztipanovits, dan G. Karsai. Eksplorasi ruang
desain dan sintesis model berbasis kendala. Di dalam
Prosiding EMSOFT'03, volume 2855 dari LNCS, halaman
290–305. Springer, 2003.
[20] Ya ampun. Spesifikasi OCL UML 2.0, 2003.http://
www.omg.org/docs/ptc/03-10-14.pdf.
[21] D. Schilling. Konfigurasi von komponenten di
produktlinien. Diplomarbeit, DaimlerChrysler Riset
dan Teknologi, Ulm, dan Universität Paderborn,
Paderborn, Jerman, September 2002. (dalam bahasa
Jerman).
[22] D. Streitferdt, M. Riebisch, dan I. Philippow. Detail relasi yang
diformalkan dalam model fitur menggunakan OCL.
Di dalam ECBS, halaman 297–304, 2003.
[23] T. van der Badai. Variabilitas dan komposisi
komponen. Di dalamProsiding ICSR8, LNC.
Springer, 2004.
[24] T. von der Maßen dan H. Lichter. Kekurangan dalam model
fitur. Di dalamProsiding Workshop SPLC'04 tentang
Manajemen Variabilitas Perangkat Lunak untuk Derivasi
Produk - Menuju Dukungan Alat, 2004.
[25] T. von der Maßen dan H. Lichter. Membuat instance
produk yang valid dari model fitur. Di dalamProsiding
Konferensi Lini Produk Perangkat Lunak Internasional
(SPLC) ke-9, LNC. Springer, 2005.
[26] DM Weiss dan RKT Lai. Rekayasa Lini Produk Perangkat
Lunak: Proses Pengembangan Perangkat Lunak Berbasis
Keluarga. Addison-Wesley, Boston, MA, 1999.
[27] Konsorsium World Wide Web. Bahasa Jalur XML (XPath)
2.0, 2005. http://www.w3.org/TR/xpath20/.

Anda mungkin juga menyukai