1
KONSEP DAN PENERAPAN CASE UNTUK PEREKAYASA
PERANGKAT LUNAK
Oleh : Fajrillah
Dosen STT Harapan Medan
ABSTRAK
Setiap orang pernah mendengar pernyataan mengenai anak-anak seorang
pembuat sepatu: begitu sibuk membuat sepatu untuk orang lain, sehingga anak-
anaknya tidak memiliki sepatu sendiri. Selama 30 tahun terakhir, banyak perekayasa
perangkat lunak menjadi anak-anak seorang pembuat sepatu. Meskipun profesional
teknis ini telah membangun sistem yang kompleks yang mengotomatisasi kerja orang
lain, namun mereka menggunakan sangat sedikit otomatisasi mereka sendiri.
Kenyataan, sampai rekayasa perangkat lunak terakhir yang secara mendasar
merupakan aktivitas manual, piranti satu-satunya bagi perekayasa perangkat lunak
adalah compiler dan editor teks digunakan hanya pada tahap akhir proses. Saat ini
perekayasa perangkat lunak pada akhirnya diberi sepasang sepatu baru yang
pertama – computer aided software engineering (CASE). Sepatu itu tidak datang
sebanyak yang mereka inginkan, sering agak sedikit keras dan kadang-kadang tidak
mengenakkan, tidak memberikan cukup kecanggihan bagi mereka yang bergaya, dan
tidak selalu sesuai dengan garmen lain yang digunakan oleh para pengembang
perangkat lunak. Tetapi sepatu itu memberikan bagian absolute dari pakaian untuk
lemari pakaian pengembang perangkat lunak, dan akan, dari waktu ke waktu,
menjadi lebih enak, lebih berguna, dan lebih dapat beradaptasi dengan kebutuhan
praktisi individual.
Kata kunci : perekayasa perangkat lunak, piranti, building block, aktivitas, case.
2
PENDAHULUAN
Lokakarya terbaik untuk setiap tukang – seorang mekanik, tukang kayu,
perekayasa perangkat lunak memiliki tiga karakteristik utama :
1. Koleksi piranti yang berguna yang akan membantu setiap langkah pembangunan
suatu produk.
2. Layout yang terorganisir yang memungkinkan piranti ditemukan dan digunakan
secara efisien.
3. Tukang yang terampil yang memahami bagaimana menggunakan piranti dengan
cara yang efektif.
Perekayasa perangkat lunak sekarang mengetahui bahwa mereka memerlukan piranti
lebih banyak dan lebih bervariasi (piranti tangan saja tidak memenuhi kebutuhan
sistem berbasis komputer modern), dan mereka membutuhkan suatu lokakarya yang
terorganisir dan efisien untuk menempatkan piranti tersebut.
Lokakarya bagi perekayasa perangkat lunak disebut lingkungan pendukung
proyek yang terintegrasi, dan tool set yang memenuhi lokakarya disebut computer
aided software engineering (CASE).
Piranti CASE menambahkan ke kotak piranti perangkat lunak. CASE memberi
perekayasa kemampuan untuk mengotomatisasi aktivitas manual dan
mengembangkan wawasan rekayasa. Seperti computer aided software engineering dan
piranti desain yang digunakan oleh perekayasa pada disiplin lain, CASE membantu
memastikan bahwa kualitas didesain sebelum produk dibangun.
PERMASALAHAN DAN PEMBAHASAN
CASE dapat menjadi sesederhana piranti tunggal yang mendukung aktivitas
rekayasa perangkat lunak spesifik atau serumit lingkungan lengkap yang meliputi
3
piranti, database, manusia, perangkat keras, jaringan, sistem operasi, standar, dan
banyak lagi komponen lain. Building block untuk CASE ditunjukkan pada gambar 1.
Masing-masing membentuk fondasi untuk balok selanjutnya, dengan piranti yang
duduk di puncak tumpukan. Penting untuk dicatat bahwa fondasi untuk linkungan
CASE yang efektif berhubungan sangat sedikit dengan piranti rekayasa perangkat
lunak itu sendiri. Selain itu, lingkungan yang berhasil untuk rekayasa perangkat lunak
dibangun pada sebuah arsitektur lingkungan yang meliputi perangkat keras dan
perangkat lunak system yang sesuai. Arsitektur lingkungan juga harus memperhatikan
pola kerja manusia yang diaplikasikan selama proses rekayasa perangkat lunak.
Gambar 1. Building block CASE
Arsitektur lingkungan, yang terdiri atas platform perangkat keras dan
dukungan sistem operasi (termasuk jaringan dan perangkat lunak manajemen
database), merupakan kerja pertama untuk CASE. Tetapi lingkungan CASE itu
sendiri memerlukan blok bangunan lain. Serangkaian layanan portabilitas menjadi
jembatan antara piranti CASE dan kerangkat kerja integrasi mereka dan arsitektur
lingkungan. Kerangka kerja intergrasi adalah sekumpulan program khususnya, untuk
menciptakan database proyek dan memperlihatkan pemandangan dan perasaan (look
and feel) yang sama pada pemakai akhir (perekayasa perangkat lunak). Layanan
portabilitas memungkinkan piranti CASE dan kerangka kerja integrasinya untuk
Piranti CASE
Kerangka Kerja
Integrasi Layanan Portabilitas
Sistem Operasi
Platform Perangkat Keras
Arsitektur Lingkungan
4
berpindah menyeberangi platform perangkat keras dan sistem operasi tanpa
pemeliharaan adaptif yang berarti.
Blok bangunan yang digambarkan pada gambar 1. menyajikan fondasi
komprehensif bagi integrasi piranti CASE. Tetapi sebagian besar piranti CASE yang
digunakan saat ini belum dikontruksikan dengan menggunakan semua blok bangunan
yang dibahas di atas. Kenyataannya banyak piranti CASE tetap menjadi “solusi
pokok”, yaitu piranti digunakan untuk membantu aktivitas rekayasa perangkat lunak
tertentu (misalnya, pemodelan analisis), tetapi tidak secara langsung berkomunikasi
dengan piranti lain, tidak diikat ke dalam suatu database proyek, dan bukan
merupakan bagian dari lingkungan CASE terintegrasi (I-CASE). Meskipun situasi ini
tidak ideal, piranti CASE dapat digunakan secara efektif, bahkan bila piranti itu
merupakan solusi pokok.
Pada ujung bawah spektrum integrasi adalah piranti individual (solusi pokok).
Bila piranti individual memberikan fasilitas bagi pertukaran data (sebagian besar
melakukannya), tingkat integrasi agak ditingkatkan. Piranti semacam itu
menghasilkan ouput dalam suatu format standar yang harus kompatibel dengan piranti
lain yang dapat membaca format tersebut. Dalam banyak kasus, para pembangun
piranti CASE komplementer bekerja bersama-sama untuk membentuk sebuah
jembatan di antara piranti (misalnya piranti analisis dan desain yang dirangkai dengan
suatu generator kode). Dengan menggunakan pendekatan tersebut, sinergi di antara
piranti dapat menghasilkan produk akhir yang sulit dibuat dengan menggunakan salah
satu piranti secara terpisah. Integrasi sumber tunggal terjadi pada saat suatu vendor
piranti CASE tunggal mengintegrasikan sejumlah piranti yang berbeda dan
menjualnya sebagai paket. Meskipun pendekatan ini sangat efektif, arsitektur yang
5
paling dekat dengan lingkungan sumber tunggal menyulitkan penambahan dari vendor
lain.
Pada ujung atas spektrum integrasi adalah lingkungan pendukung proyek
terintegrasi (IPSE). Standar untuk masing-masing blok bangunan yang digambarkan
di atas kemungkinan diciptakan. Vendor-vendor piranti CASE menggunakan standar
IPSE untuk membangun piranti yang kompatibel dengan IPSE sehingga kompatibel
satu sama lain.
Piranti CASE dapat diklasifikasikan menurut fungsi, perannya sebagai
instrumen bagi manajer atau orang-orang teknik, kegunaannya di dalam berbagai
langkah proses rekayasa perangkat lunak, arsitektur lingkungan (perangkat keras, dan
perangkat lunak) yang mendukungnya, atau bahkan menurut asal piranti atau biaya.
Taksonomi yang disajikan di bawah ini menggunakan fungsi-fungsi sebagai kriteria
utama.
Piranti Rekayasa Informasi. Dengan memodelkan persyaratan informasi
strategis suatu organisasi, piranti rekayasa informasi memberikan “meta-
model’ dari mana sistem informasi spesifik diperoleh. Daripada berfokus pada
persyaratan aplikasi spesifik, piranti CASE ini lebih suka memodel informasi
bisnis pada saat informasi bergerak di antara berbagai entitas organisasi di
dalam suatu perusahaan. Sasaran utama untuk piranti di dalam kategori ini
adalah menyajikan objek data ini mengalir di antara area bisnis yang berbeda
di dalam suatu perusahaan.
Piranti Manajemen dan Pemodelan Proses. Bila suatu organisasi bekerja
untuk mengembangkan sebuah proses bisnis (atau perangkat lunak), pertama-
tama organisasi harus memahaminya. Piranti pemodelan proses (disebut juga
piranti “teknologi proses”) digunakan untuk menyajikan elemen-elemen kunci
6
dari suatu proses sehingga proses dapat dipahami dengan lebih baik. Piranti
semacam itu dapat juga memberikan link ke deskripsi proses yang membantu
mereka yang terlibat di dalam proses tersebut untuk memahami tugas-tugas
yang diperlukan untuk melakukan proses tersebut. Piranti manajemen proses
dapat memberikan link bagi piranti yang memberikan dukungan untuk
menentukan aktivitas proses.
Piranti Perencanaan Proyek. Piranti di dalam kategori ini berfokus pada
usaha proyek perangkat lunak dan estimasi biaya, serta penjadwalan proyek.
Piranti estimasi menghitung usaha yang diperkirakan, durasi proyek, dan
jumlah manusia yang direkomendasi dengan menggunakan suatu teknik.
Penjadwalan proyek memungkinkan manajer menentukan semua tugas proyek
(struktur pembagian kerja), menciptakan suatu jaringan tugas (biasanya
dengan menggunakan input grafis), menyajikan interdependensi tugas-tugas,
dan memodel jumlah paralelisme yang mungkin untuk proyek tersebut.
Piranti Analisis Risiko. Mengidentifikasi resiko potensial dan
mengembangkan suatu rencana untuk mengurangi, memonitor, dan mengatur
risiko merupakan hal berharga pada proyek yang besar. Piranti analisis risiko
memungkinkan seorang manajer proyek untuk membangun suatu tabel risiko
dengan memberikan pedoman detail di dalam identifikasi dan analisis risiko.
Piranti Manajemen Proyek. Jadwal proyek dan rencana proyek harus
ditelusuri dan dimonitor terus-menerus. Sebagai tambahan, manajer harus
menggunakan piranti untuk mengumpulkan metrik yang akan memberikan
indikasi mengenai kualitas produk perangkat lunak. Piranti di dalam kategori
itu sering merupakan ekstensi dari perencanaan proyek.
7
Piranti Penelusuran Proyek. Bila sistem yang besar dikembangkan, sistem
yang disampaikan sering gagal memenuhi persyaratan khusus pelanggan.
Sasaran dari penelusuran persyaratan adalah memberikan pendekatan
sistematis ke isolasi persyaratan, mulai dari permintaan proposal pelanggan
(RFP) atau spesifikasi. Persyaratan tipikal yang menelusuri piranti yang
menggabungkan evaluasi teks human-interactive dengan sistem manajemen
database yang menyimpan dan mengkategorikan setiap persyaratan sistem
yang “diuraikan” dari RFP orisinil atau spesifikasi.
Piranti Manajemen dan Metrik. Metrik perangkat lunak meningkatkan
kemampuan manajer untuk mengontrol dan mengkoordinasi proses perangkat
lunak dan kemampuan praktisi untuk mengembangkan kualitas perangkat
lunak yang diproduksi. Piranti metrik dan pengukuran saat ini berfokus pada
proses, proyek, dan karakteristik produk. Piranti yang berorientasi pada
manajmen menangkap metrik spesifik proyek. (misalnya, LOC/person-month,
cacat per function point) yang memberikan indikasi menyeluruh mengenai
produktivitas dan kualitas. Piranti yang diorientasikan secara teknis
menentukan metrik teknis yang memberikan wawasan yang lebih besar ke
dalam kualitas desain atau kode. Banyak dari piranti metrik yang lebih maju
menyimpan database yang mengukur “rata-rata industri”. Berdasarkan proyek
dan karakteristik produk yang diberikan oleh pemakai, piranti semacam itu
“mempercepat” jumlah lokal terhadap rata-rata industri (dan kinerja lokal yang
lalu) dan mengusulkan strategi pengembangan.
Piranti Dokumentasi. Piranti produksi dokumen dan desktop publishing
mendukung hampir setiap aspek rekayasa perangkat lunak dan menyajikan
kesempatan “pengungkit” substansial untuk semua pengembang perangkat
8
lunak. Sebagian besar organisasi pengembangan perangkat lunak
menghabiskan banyak waktu untuk mengembangkan dokumen, dan dalam
banyak kasus proses dokumentasi itu sendiri sangat tidaklah efisien. Tidak
biasa bagi organisasi pengembangan perangkat lunak untuk menggunakan 20
sampai 30 persen dari semua usaha pengembangan perangkat lunak pada
dokumentasi. Karena itulah piranti dokumentasi memberikan kesempatan
penting untuk meningkatkan produktivitas.
Piranti Perangkat Lunak Sistem. CASE merupakan teknologi workstation.
Dengan demikian, lingkungan CASE harus mengakomodasi sistem jaringan
kualitas tinggi, e-mail, papan buletin, dan kemampuan komunikasi lainnya.
Piranti jaminan Kualitas. Mayoritas piranti CASE yang mengklaim bahwa ia
berfokus pada jaminan kualitas, sebenarnya merupakan piranti metrik yang
mengaudit kode sumber untuk menentukan kesesuaian dengan bahasa standar.
Piranti lainnya mengekstrak metrik teknologi dalam usaha memproyeksikan
kualitas perangkat lunak yang sedang dibangun.
Piranti Manajemen Database. Piranti lunak manajemen database berfungsi
sebagai suatu fondasi bagi pembangunan database CASE (tempat
penyimpanan), yang kita sebut juga database proyek. Dengan menekankan
objek konfigurasi, piranti manajemen database untuk CASE dapat berkembang
dari sistem manajemen database relasional (RDMS) ke sistem manajemen
database OO (OODMS).
Piranti Manajemen Konfigurasi Perangkat Lunak. Manajemen konfigurasi
perangkat lunak (SCM) ada pada inti setiap lingkungan CASE. Piranti dapat
membantu kelima tugas SCM mayor – identifikasi, kontrol versi, kontrol
perubahan, auditing, dan akunting status. Database CASE memberikan
9
mekanisme untuk mengidentifikasi masing-masing item konfigurasi dan
menghubungkannya dengan item lainnya; proses kontrol yang perlu
didiskusikan dapat diimplementasikan dengan bantuan piranti khusus; akses
yang mudah ke item konfigurasi individual memfasilitasi proses auditing; dan
piranti komunikasi CASE dapat sangat meningkatkan accounting status
(pelaporan informasi mengenai perubahan bagi semua yang ingin tahu).
Piranti Analisis dan Desain. Piranti analisis dan desain memungkinkan
perekayasa perangkat lunak untuk menciptakan model sistem yang akan
dibangun. Model tersebut berisi representasi data, fungsi, dan tingkah laku
(pada tingkat analisis), dan karakterisasi data, arsitektur, prosedural, dan
desain interface.
Dengan memeriksa konsistensi dan validitas model tersebut, piranti analisis
dan desain memberi perekayasa perangkat lunak beberapa tingkat wawasan ke
dalam representasi analisis dan membantu mengeliminasi kesalahan sebelum
menyebar ke dalam bentuk desain, atau lebih buruk lagi, ke dalam
implementasi itu sendiri.
Piranti PROYEK/SIM. Piranti PRO/SIM (prototyping dan simulasi)
memberi perekayasa perangkat lunak kemampuan untuk meramalkan tingkah
laku sistem real-time sebelum sistem dibangun. Piranti itu juga
memungkinkan perekayasa perangkat lunak mengembangkan mock-up sistem
real-time yang mengijinkan pelanggan mendapatkan wawasan ke dalam
fungsi, operasi, dan responnya sebelum implementasi sesungguhnya.
Piranti pengembangan dan Desain Interface. Desain interface da piranti
pengembangan sebenarnya merupakan suatu tool kit dari komponen program
seperti tombol menu, struktur window, ikon, mekanisme scrolling, devise
10
driver dan sebagainya. Tetapi tool kit ini sedang diganti oleh piranti prototype
interface yang memungkinkan pembuatan on-screen yang cepat dari interface
pemakai yang canggih yang sesuai dengan standar interfacing yang telah
diadopsi untuk perangkat lunak tersebut.
Piranti Prototyping. Berbgai piranti prototyping yang berbeda dapat
digunakan. Screen painters memungkinkan perekayasa perangkat lunak
menentukan layout layar dengan cepat untuk aplikasi interaktif. Piranti
prototyping CASE yang lebih canggih memungkinkan pembuatan desain data
untuk dirangkai dengan layar maupun layout laporan. Banyak analisis dan
piranti desain memiliki ekstensi yang memberikan pilihan prototyping. Piranti
PRO/SIM memunculkan kerangka Ada dan kode sumber C untuk aplikasi
rekayasa (real-time). Akhirnya, berbagai piranti generasi keempat memiliki
fitur-fitur prototyping.
Piranti Pemrograman. Kategori piranti pemograman meliputi kompiler,
editor, dan debugger yang dapat diperoleh untuk mendukung sebagian besar
bahasa pemrograman konvensional. Lingkungan pemrograman OO, bahasa
generasi keempat, lingkungan pemrograman grafis, generator aplikasi, dan
bahasa query database juga berada dalam kategori ini.
Piranti Integrasi dan Pengujian. Dalam direktori mereka mengenai piranti
pengujian perangkat lunak, Software Quality Engineering menetapkan
kategori piranti berikut ini:
Akuisisi data – piranti yang mendapatkan data untuk digunakan selama
pengujian
Pengukuran statis – piranti yang menganalisis kode sumber selama
eksekusi
11
Simulasi – piranti yang mensimulasi fungsi-fungsi perangkat keras atau
fungsi eksternal lainnya
Manajemen pengujian – piranti yang membantu dalam perencanaan,
pengembangan, dan kontrol pengujian
Piranti cross-functional – piranti yang melintasi batas-batas kategori di
atas.
Harus dicatat bahwa banyak piranti pengujian memiliki fitur yang mencakup
dua atau lebih kategori tersebut.
Piranti Analisis Statis. Piranti pengujian statis membantu perekayasa perangkat
dalam melakukan test case. Ada tiga tipe piranti pengujian statis yang berbeda yang
digunakan dalam industri : piranti pengujian berbasis kode, bahasa pengujian
terspesialisasi, dan piranti pengujian berdasarkan persyaratan. Piranti pengujian
berbasis kode menerima kode sumber (atau PDL) sebagai input dan melakukan
sejumlah analisis yang menghasilkan pemunculan test case. Bahasa pengujian
terspesialisasi (misalnya, ATLAS) memungkinkan perangkat lunak menulis
spesifikasi pengujian yang menggambarkan masing-masing test case dan logistik
untuk eksekusinya. Piranti pengujian berbasis persyaratan mengisolasi persyaratan
pemakai spesifik dan mengusulkan test case (atau kelas pengujian) yang akan
menggunakan persyaratan tersebut.
Piranti Analisis Dinamis. Piranti pengujian dinamis ber-interaksi dengan program
pengeksekusian, memeriksa cakupan jalur, menguji pernyataan yang tegas mengenai
nilai variabel spesifik, dan sebaliknya menginstrumentasi aliran eksekusi dari program
tersebut. Piranti dinamis dapat intrusif atau nonintrusif. Piranti intrusif mengubah
perangkat lunak yang akan diuji dengan pemeriksaan yang diselipkan(instruksi ekstra)
yang melakukan aktivitas yang dicantumkan di atas. Piranti pengujian non-intrusif
12
menggunakan prosesor perangkat keras yang terpisah yang berisi program yang
sedang diuji.
Piranti Manajemen Pengujian. Piranti manajemen pengujian digunakan untuk
mengontrol dan mengkoordinasi pengujian perangkat lunak bagi masing-masing
langkah pengujian mayor. Piranti di dalam kategori ini mengatur dan mengkoordinasi
pengujian regresi, melakukan perbandingan yang menegaskan perbedaan di antara
loutput yang diharapkan, dan melakukan pengujian batch dari program dengan
interface manusia-komputer yang interaktif. Sebagai tambahan untuk fungsi-fungsi
tersebut, banyak piranti manajemen pengujian yang juga berfungsi sebagai pengendali
pengujian generik. Pengendali pengujian membaca satu atau lebih test case dari suatu
file ujian, memformat data pengujian untuk disesuaikan dengan kebutuhan perangkat
lunak di bawah pengujian, dan kemudian memanggil perangkat lunak yang akan diuji.
Piranti Pengujian Client/Server. Lingkungan Client/Server memerlukan piranti
pengujian terspesialisasi yang menggunakan interface pemakai grafis dan persyaratan
komunikasi jaringan untuk client/server.
Piranti Rekayasa Ulang. Kategori piranti rekayasa ulang dapat dibagi-bagi lagi ke
dalam fungsi-fungsi berikut ini:
Reverse engineering ke piranti spesifikasi – ambil kode sumber sebagai
input dan memunculkan analisis terstruktur grafis dan model desain, daftar
where-used, dan informasi desain lainnya;
Code restructuring dan piranti analisis – analisis sintak program,
menghasilkan grafik aliran kontrol, dan secara otomatis memunculkan
program terstruktur; dan
13
Piranti rekayasa ulang on-line – digunakan untuk memodifikasi sistem
database on-line (misalnya, konversi file-file IDM atau DB2 ke dalam
format hubungan entitas).
Banyak dari piranti tersebut dibatasi sampai bahasa pemograman spesifik
(meskipun sebagian besar bahasa mayor disinggung) dan membutuhkan beberapa
tingkat interaksi dengan perekayasa perangkat lunak.
Piranti reverse engineering dan forward engineering untuk generasi selanjutnya akan
banyak menggunakan teknik kecerdasan buatan, dengan mengaplikasikan dasar
pengetahuan yaitu spesifik domain aplikasi (yaitu, serangkaian aturan dekomposisi
yang akan berlaku bagi semua program di dalam suatu area aplikasi khusus seperti
kontrol pemanufakturan atau sistem penerbangan pesawat). Komponen AI akan
membantu rekonstruksi dan dekomposisi sistem, tetapi akan tetap membutuhkan
interaksi dengan perekayasa perangkat lunak pada seluruh siklus rekayasa ulangnya.
Meskipun ada keuntungan yang dapat diambil dari piranti CASE individual
yang menekankan aktivitas rekayasa perangkat lunak yang terpisah, kekuatan CASE
real hanya dapat dicapai melalui integrasi. Keuntungan CASE terintegrasi (I-CASE)
meliputi (1) transfer ke piranti lain dan dari satu langkah rekayasa perangkat lunak ke
langkah rekayasa perangkat lunak selanjutnya; (2) reduksi di dalam usaha yang
diperlukan untuk melakukan aktivitas pelindung (umbrella activity) seperti
manajemen konfigurasi, jaminan kualitas, dan produksi dokumen; (3) pertambahan di
dalam kontrol proyek yang dicapai melalui perencanaan, monitoring, dan komunikasi
yang lebih baik; dan (4) koordinasi yang dikembangkan di antara anggota staf yang
sedang bekerja pada proyek perangkat lunak yang besar.
14
Tetapi I-CASE juga merupakan tantangan yang berat. Integrasi memerlukan
representasi yang konsisten dari informasi rekayasa perangkat lunak, standarisasi
interface di antara piranti, mekanisme yang homogen untuk berkomunikasi di antara
perekayasa perangkat lunak dan masing-masing piranti, serta pendekatan yang efektif
yang akan memungkinkan I-CASE bergerak di antara berbagai platform perangkat
keras dan sistem operasi. Meskipun solusi bagi masalah yang diimplikasikan oleh
tantangan-tantangan itu telah diusulkan, lingkungan I-CASE yang komprehensif baru
dalam tahap awal kemunculannya.
Istilah “integrasi” mengimplikasikan “kombinasi” maupun “klosur”. I-CASE
menggabungkan sebagai interface yang berbeda dan informasi yang berbeda dengan
cara yang memungkinkan pengakhiran komunikasi di antara piranti, di antara
manusia, dan pada proses perangkat lunak. Piranti diintegrasikan sehingga informasi
rekayasa perangkat lunak tersedia bagi setiap piranti yang membutuhkannya;
penggunaannya diintegrasikan sehingga look and feel untuk semua piranti; dan
filosofi pengembangan diintegrasikan, dengan mengimplikasikan suatu pendekatan
rekayasa perangkat lunak standar yang menerapkan praktek modern dan metode yang
dibuktikan.
Untuk menentukan integrasi di dalam konteks proses perangkat lunak,
diperlukan pembangunan serangkaian persyaratan untuk I-CASE: Lingkungan I-
CASE harus :
Memberikan mekanisme untuk memakai bersama informasi rekayasa
perangkat lunak di antara semua piranti yang diisikan di dalam lingkungan
tersebut;
Memungkinkan perubahan pada satu item informasi yang akan ditelusuri ke
item informasi yang berhubungan;
15
Memberikan kontrol versi dan manajemen konfigurasi keseluruhan bagi
semua informasi rekayasa perangkat lunak;
Mengijinkan akses langsung dan tidak berurutan ke setiap piranti yang
diisikan di dalam lingkungan;
Membangun dukungan yang diotomatisasi untuk konteks prosedural bagi kerja
rekayasa perangkat lunak yang mengintegrasikan piranti dan data ke dalam
suatu struktur pembagian kerja standar;
Memungkinkan pemakai masing-masing piranti untuk mendapatkan look and
feel yang konsisten pada interface manusia-komputer;
Mengumpulkan baik metrik manajemen dan teknik yang dapat digunakan
untuk mengembangkan proses dan produksi.
Untuk memenuhi persyaratan-persyaratan tersebut, masing-masing blok
bangunan arsitektur CASE (Gambar 1.) harus cocok dengan gaya yang tidak
berkelim. Seperti diperlihatkan pada Gambar 2., blok bangunan fondasi – arsitektur
lingkungan, platform perangkat keras, dan sistem operasi – harus “digabungkan”
melalui serangkaian layanan portabilitas untuk kerangka kerja integrasi yang
memenuhi persyaratan tersebut.
Gambar 2. Elemen-elemen I-CASE
Tiang fondasi
- arsitektur
- platform h/w
- O. S.
Kerangka kerja
integrasi
Layanan
Portabilitas
Piranti CASE
16
Tim rekayasa perangkat lunak menggunakan piranti CASE, metode yang
berhubungan, dan kerangka kerja proses untuk menciptakan kolam informasi rekayasa
perangkat lunak. Kerangka kerja integrasi memfasilitasi pemindahan informasi ke
dalam dan keluar dari kolam tersebut. Untuk melakukannya, komponen arsitektur
berikut ini harus ada: database untuk menyimpan informasi, sistem manajemen objek
untuk mengatur perubahan informasi, mekanisme kontrol piranti lunak
mengkoordinasi penggunaan piranti CASE, dan interface pemakai untuk memberikan
jalur yang konsisten di antara aksi yang dilakukan oleh pemakai dan piranti yang
diisikan di dalam lingkungan itu. Sebagian besar model kerangka kerja integrasi
menyajikan komponen-komponen tersebut sebagai lapisan. Model kerangka kerja
yang sederhana yang hanya menggambarkan komponen-komponen tersebut
diperlihatkan pada gambar 3.
Gambar 3. Model arsitektur untuk kerangka kerja integrasi
Lapisan interface pemakai (Gambar 3.) menggabungkan tool kit interface standar
dengan suatu protokol representsi biasa. Tool kit interface berisi perangkat lunak
untuk manajemen interface manusia-komputer dan pustaka untuk objek-objek display.
Lapisam shared repository
database CASE
fungsi-fungsi kontrol akses
Lapisan menejemen objek
layanan integrasi
layanan menajemen konfigurasi
Lapisam shared repository
database CASE
Fungsi-fungsi kontrol akses
Layanan manajemen piranti
piranti
Case lapisam piranti
17
Keduanya memberikan mekanisme yang konsisten untuk komunikasi di antara
interface dan piranti CASE individual. Protokol representasi adalah himpunan
pedoman yang membuat semua piranti CASE memiliki look and feel yang sama.
Konvensi layout layar, nama-nama menu dan organisasi, ikon, nama-nma objek,
kegunaan keyboard dan mouse, dan mekanisme bagi akses piranti, semuanya
ditetapkan sebagai bagian dari protokol representasi.
Lapisan piranti menggabungkan serangkaian layanan manajemen piranti
dengan piranti CASE itu sendiri. Layanan manajemen piranti (TMS) mengontrol
tingkah laku piranti di dalam lingkungan tersebut. Bila multitasking digunakan selama
eksekusi terhadap satu piranti atau lebih, maka TMS melakukan sinkronisasi
multitasking dan berkomunikasi dan mengkoordinasi aliran informasi dari tempat
penyimpanan dan sistem manajemen objek ke dalam piranti, melakukan pengamanan
dan fungsi auditing, dan mengumpulkan metrik pada pemakaian piranti.
Lapisan manajemen objek (OML) melakukan fungsi manajemen konfigurasi.
Pada intinya, perangkat lunak di dalam lapisan arsitektur kerangka kerja ini
memberikan mekanisme bagi integrasi piranti. Setiap piranti CASE “diisikan ke
dalam” lapisan manajemen objek. Dalam hubungannya dengan tempat penyimpanan
CASE, OML memberikan layanan integrasi – serangkaian modul standar yang
merangkai piranti dengan tempat penyimpanan. OML juga memberikan layanan
manajemen konfigurasi dengan memungkinkan identifikasi terhadap semua objek
konfigurasi, dengan melakukan kontrol versi, dan memberikan dukungan untuk
kontrol perubahan, audit, dan status accounting.
Lapisan shared repository adalah database CASE dan fungsi kontrol akses
yang memungkinkan lapisan manajemen objek berintegrasi dengan database. Integrasi
data dicapai melalui manajemen objek dan lapisan shared repository.
18
Webster’s Dictionary mendefenisikan kata “repository” sebagai “setiap hal
atau person yang dianggap sebagai pusat dari akumulasi atau penyimpanan.” Selama
sejarah awal pengembangan perangkat lunak, tempat penyimpanan benar-benar
merupakan person – pemrograman yang harus mengingat lokasi semua informasi
yang relevan dengan suatu proyek perangkat lunak, yang harus melihat kembali
informasi yang tidak pernah ditulis dan merekonstruksi informasi yang telah hilang.
Sayangnya, dengan menggunakan person sebagai “pusat akumulasi dan
penyimpanan” (meskipun sesuai dengan definisi kamus), tidak bekerja dengan baik.
Saat ini tempat penyimpanan berupa suatu “hal” – database yang bertindak sebagai
pusat bagi akumulasi dan penyimpanan informasi rekayasa perangkat lunak. Peran
person (perekayasa perangkat lunak) adalah untuk berinteraksi dengan tempat
penyimpanan dengan menggunakan piranti CASE yang diintegrasikan dengannya.
Dalam tulisan ini, digunakan sejumlah bentuk yang berbeda untuk mengacu
tempat penyimpanan bagi informasi rekayasa perangkat lunak: database CASE,
database proyek, database lingkungan pendukung proyek terintegrasi (IPSE), kamus
data (database terbatas), dan tempat penyimpanan. Meskipun ada perbedaan yang
tidak kentara di antara beberapa bentuk tersebut, semua mengacu pada benda – pusat
untuk akumulasi dan penyimpanan.
Tempat penyimpanan untuk lingkungan I-CASE merupakan rangkaian
mekanisme dan struktur data yang mencapai data – piranti dan data – integrasi data.
Tempat penyimpanan memberikan fungsi yang jelas dari sistem manajemen database,
tetapi sebagai tambahan, tempat penyimpanan melakukan atau memunculkan fungsi-
fungsi berikut :
19
Integritas data – mencakup fungsi-fungsi untuk memvalidasi masukan ke
tempat penyimpanan, memastikan konsistensi di antara objek yang
berhubungan, dan secara
otomatis melakukan modifikasi yang “berpencar ke bawah” pada saat
perubahan ke satu objek memerlukan banyak perubahan pada objek yang
dihubungkan dengannya;
Berbagai pakai informasi – memberikan mekanisme untuk memakai bersama-
sama informasi di antara para pengembang dan di antara piranti, mengatur dan
mengontrol akses yang multiuser ke data dan mengunci/membuka objek
sehingga perubahan dengan hati-hati akan melapisi satu sama lain;
Integrasi piranti-data – membangun suatu model data yang dapat diakses oleh
semua piranti di dalam lingkungan I-CASE, mengontrol akses ke data, dan
melakukan fungsi manajemen konfigurasi yang sesuai;
Integrasi data-data – sistem manajemen database menghubungkan objek data
sehingga fungsi-fungsi lain dapat dicapai;
Pelaksanaan metodologi – model data E-R yang disimpan di dalam tempat
penyimpanan dapat menyatakan secara langsung suatu paradigma spesifik
bagi rekayasa perangkat lunak – pada tingkat minimum, hubungan dan objek
mendefenisikan serangkaian langkah yang harus dilakukan untuk membangun
sisi dari tempat penyimpanan; dan
Standarisasi dokumen – defenisi objek di dalam database secara langsung
mengarah kepada pendekatan standar untuk membuat dokumen rekayasa
perangkat lunak.
Untuk mencapai fungsi tersebut, tempat penyimpanan ditentukan dalam
bentuk metamodel. Metamodel itu menentukan bagaimana informasi disimpan di
20
dalam tempat penyimpanan, bagaimana data dapat diakses oleh piranti dan dikaji oleh
para perekayasa perangkat lunak, seberapa baik sekuritas dan integritas data dapat
dijaga, dan seberapa mudah model yang ada dapat diperluas untuk mengakomodasi
kebutuhan-kebutuhan baru.
Metamodel adalah template tempat menaruh informasi rekayasa perangkat
lunak. Metamodel entity-relationship dapat dibuat, tetapi lainnya, yaitu model yang
lebih canggih, juga ada dalam pertimbangan. Diskusi detail mengenai model-model
tersebut tidak ada dalam tulisan ini.
Fitur dan isi tempat penyimpanan paling baik dipahami dengan melihatnya
dari dua perspektif: Apa yang akan disimpan di dalam tempat penyimpanan dan
layanan spesifik apa yang diberikan oleh tempat penyimpanan dan layanan spesifik
apa yang diberikan oleh tempat penyimpanan itu? Secara umum, tipe hal-hal yang
akan disimpan dalam tempat penyimpanan meliputi:
Masalah yang akan dipecahkan
Informasi mengenai domain masalah
Aturan dan instruksi mengenai proses perangkat lunak (metodologi) yang
sedang diikuti
Rencana proyek, sumber daya, dan sejarah
Informasi mengenai konteks organisasi
Daftar lengkap mengenai tipe representasi, dokumen, dan kemampuan
penyampaian yang disimpan dalam tempat penyimpanan CASE ada pada Tabel 1.
Tempat penyimpanan CASE yang kokoh memberikan dua kelas layanan yang
berbeda: (1) tipe layanan yang akan diharapkan dari setiap sistem manajemen
database yang sesuai, dan (2) layanan spesifik terhadap lingkungan CASE.
21
Tabel 1. Isi Repositori CASE
Informasi Enterprise Konstruksi
Struktur organisasi
Analisis area bisnis
Aturan bisnis
Model proses (skenario)
Arsitektur informasi
Desain Aplikasi Aturan metodologi
Kode sumber; kode objek
Instruksi pembentukan sistem
Citra biner
Dependensi konfigurasi
Perubahan informasi
Validasi dan Verifikasi
Rencana pengujian; Uji kasus data
Skrip uji regresi
Hasil tes
Analisis statistik
Metrik kualitas perangkat lunak
Informasi manajemen proyek
Rencana proyek
Struktur pembagian kerja
Estimasi; Jadwal
Pengisian sumber daya; Laporan masalah
Permintaan perubahan; Laporan status
Pemeriksaan informasi
Dokumentasi sistem
Dokumen persyaratan
Desain eksternal/internal
Manual pemakai
Banyak persyaratan tempat penyimpanan sama dengan persyaratan aplikasi
tipikal yang dibangun pada suatu sistem manajemen database komersial (DBMS).
Pada dasarnya, sebagian besar tempat penyimpanan CASE sekarang ini menggunakan
DBMS (biasanya relasional atau Orientasi Objek) sebagai teknologi manajemen data
dasar. Fitur standar DBMS dari suatu tempat penyimpanan CASE yang mendukung
manajemen informasi rekayasa perangkat lunak meliputi:
Penyimpanan data nonredundan. Tempat penyimpanan CASE memberikan
tempat tunggal untuk penyimpanan semua informasi yang berhubungan
dengan pengembangan sistem perangkat lunak, mengeliminasi pemborosan
dan secara potensial duplikasi error-prone.
22
Akses kelas tinggi. Tempat penyimpanan memberikan mekanisme akses data
umum sehingga fasilitas penanganan data tidak harus ditiru pada masing-
masing piranti CASE.
Independensi data. Piranti CASE dan aplikasi target diisolasi dari penyim-
panan fisik sehingga tidak dipengaruhi pada saat konfigurasi diubah.
Kontrol transaksi. Tempat penyimpanan mengatur interaksi multibagian
dengan cara yang menjaga integritas data bila ada pemakai yang konkuren dan
di dalam kejadian kegagalan sistem. Hal ini mengimplikasikan penguncian
record, pelaksanaan dua tahap, transaksi logging, dan prosedur penyembuhan.
Keamanan. Tempat penyimpanan memberikan mekanisme untuk mengontrol
siapa yang dapat melihat dan memodifikasi informasi yang diisikan di dalam-
nya. Tempat penyimpanan minimal harus menjalankan password multilevel
dan tingkat pembolehan yang diberikan oleh para pemakai individual.
Query dan laporan data ad hoc. Tempat penyimpanan mengijinkan akses
langsung ke isinya melalui interface pemakai yang baik seperti SQL atau
"browser" yang berorientasi pada bentuk, memungkinkan analisis user-defined
di luar laporan standar Yang diberikan dengan tool set CASE.
Keterbukaan. Tempat penyimpanan biasanya memberikan mekanisme
impor/ekspor untuk memungkinkan loading atau transfer yang sangat besar.
Interface biasanya berupa transfer file ASCII mentah atau interface SQL
standar. Banyak tempat penyimpanan memiliki interface tingkat yang lebih
tinggi yang merefleksikan struktur metamodel mereka.
Dukungan multiuser. Tempat penyimpanan yang baik harus mengijinkan
para pengembang bekerja pada suatu aplikasi pada saat yang sama. Tempat
penyimpanan harus mengatur akses konkuren ke database oleh banyak piranti
23
dan pemakai dengan arbritrase akses dan penguncian pada tingkat file atau
record. Untuk lingkungan yang berdasarkan jaringan, dukungan multiuser juga
menyatakan secara langsung bahwa tempat penyimpanan berinteraksi dengan
protokol dan fasilitas jaringan biasa.
Lingkungan CASE secara khusus juga memerlukan tempat penyimpanan
lebih dari yang tersedia pada DBMS komersial. Fitur khusus tempat penyimpanan
CASE meliputi:
Penyimpanan struktur data yang canggih. Tempat penyimpanan harus
mengakomodasi tipe data kompleks seperti diagram, dokumen, dan file, serta
elemen, data sederhana. Tempat penyimpanan juga meliputi model informasi
(atau metamodel) yang menggambarkan struktur, hubungan, dan semantik dari
data yang disimpan di dalamnya. Metamodel harus dapat diperluas sehingga
representasi dan informasi organisasional yang unik, dapat diakomodasi.
Tempat penyimpanan tidak hanya menyimpan model dan deskripsi sistem
yang sedang dikembangkan, tetapi juga metadata yang berhubungan (yaitu,
informasi tambahan yang menggambarkan informasi rekayasa perangkat lunak
itu sendiri, misal pada saat suatu komponen desain tertentu diciptakan, apa
statusnya sekarang dan komponen lain yang menjadi tempat komponen
bergantung).
Penyelenggaraan Integritas. Model informasi tempat, penyimpanan juga
berisi aturan, atau kebijakan, yang menggambarkan aturan bisnis yang berlaku
serta batasan dan persyaratan lain pada informasi yang sedang dimasukkan ke
dalam tempat penyimpanan (secara langsung atau melalui suatu piranti
CASE). Fasilitas yang disebut trigger dapat digunakan untuk mengaktivasi
aturan yang sesuai dengan suatu objek setiap saat objek dimodifikasi, yang
24
membuatnya mungkin untuk memeriksa validitas model desain, dalam
real-time.
Interface piranti semantic-rich. Model informasi tempat penyimpanan
(metamodel) berisi semantik yang memungkinkan berbagai piranti meng-
interpretasikan arti dari data yang disimpan di dalam tempat penyimpanan.
Misalnya, diagram aliran data yang diciptakan oleh suatu piranti CASE
disimpan di dalam tempat penyimpanan dalam bentuk yang berdasarkan
model informasi dan tidak tergantung pada setiap representasi internal yang
digunakan oleh piranti itu sendiri. Piranti CASE yang lain kemudian meng-
interpretasikan isi tempat penyimpanan dan menggunakan informasi yang
dibutuhkan untak tugasnya. Demikianlah, semantik yang disimpan di dalam
tempat penyimpanan mengijinkan pemakaian bersama data di antara berbagai
macam piranti, pada saat diperhadapkan pada konversi piranti-ke-piranti atau
“jembatan”.
Manajemen, proses/proyek. Tempat penyimpanan berisi informasi yang
tidak hanya tentang aplikasi perangkat lunak itu sendiri, tetapi juga
karakteristik dari masing-masing proyek khusus dan proses umum organisasi
bagi rekayasa perangkat lunak (fase, tugas-tugas, dan kemampuan
penyampaian). Hal ini membuka kemungkinan untak mengotomasi koordinasi
aktivitas pengembangan teknik dengan aktivitas manajemen proyek.
Contohnya, pembaruan status tugas-tugas proyek dapat dilakukan secara
otomatis atau sebagai by-produk dengan menggunakan piranti CASE.
Pembaruan status dapat dilakukan dengan sangat mudah bagi para
pengembang tanpa harus meninggalkan lingkungan pengembangan normal.
Pemberian tugas dan query juga dapat ditangani oleh e-mail. Laporan
25
masalah, tugas-tugas pemeliharaan, autorisasi perubahan, dan status perbaikan
dapat dikoordinasikan dan dimonitor melalui piranti yang mengakses tempat
penyimpanan.
Fitur tempat penyimpanan berikut ini semua dicakup oleh manajemen
konfigurasi perangkat lunak. Fitur itu diuji lagi di sini untuk menekankan interrelasi di
antara mereka terhadap lingkungan I-CASE.
Versioning. Pada, saat proses berjalan, banyak versi dari produk kerja individual akan
diciptakan. Tempat penyimpanan harus dapat menyimpan semua versi ini untuk
memungkinkan manajemen efektif dari rilis produksi dan untuk mengijinkan
pengembang berbalik ke versi sebelumnya selama pengujian dan debugging.
Versioning dilakukan dengan algoritma kompresi untuk meminimalkan alokasi
penyimpanan, dan mengijinkan regenerasi dari setiap versi terakhir dengan beberapa
overhead pemrosesan.
Penelusuran Ketergantungan dan Manajemen Perubahan. Tempat penyimpanan
mengatur berbagai hubungan di antara elemen data yang disimpan di dalamnya;
mencakup hubungan di antara entitas perusahaan dan proses, di antara bagian-bagian
dari suatu desain aplikasi, di antara komponen desain dan arsitektur informasi
perusahaan, di antara elemen desain dan kemampuan penyampaian, dan seterusnya.
Beberapa dari hubungan itu hanya merupakan asosiasi, dan beberapa merupakan
ketergantungan atau hubungan sebagai keharusan. Pemeliharaan hubungan di antara
objek pengembangan ini disebut manajemen link.
Kemampuan untuk melacak semua hubungan ini merupakan hal krusial bagi
integritas informasi yang disimpan dalam repositori dan untuk membangkitkan
kemampuan penyampaian, dan ini merupakan kontribusi yang paling penting dari
26
konsep repositori untuk peningkatan proses pengembangan perangkat lunak. Di antara
banyak fungsi yang didukung oleh manajemen link adalah kemampuan untuk
mengidentifikasi dan memperkirakan pengaruh perubahan. Pada saat desain
berkembang untuk memenuhi persyaratan yang baru, kemampuan pengidentifikasian
semua objek yang dapat dipengaruhi memungkinkan perkiraan biaya yang lebih
akurat, downtime, dan tingkat kesulitan. Kemampuan pengidentifikasian juga
membantu mencegah efek samping yang tidak diharapkan yang sebaliknya akan
membawa kepada cacat dan kegagalan sistem.
Penelusuran Persyaratan. Fungsi khusus yang bergantung pada manajemen link
adalah penelusuran persyaratan. Penelusuran persyaratan merupakan kemampuan
untuk menelusuri semua komponen desain dan kemampuan penyampaian yang
dihasilkan dari suatu spesifikasi persyaratan spesifik (forward tracking), serta
kemampuan untuk mengidentifikasi persyaratan yang mana yang dimunculkan oleh
kemampuan penyampaian yang diberikan (backward tracking).
Manajemen Konfigurasi. Fungsi lain yang bergantung pada manajemen link adalah
manajemen konfigurasi. Fasilitas manajemen konfigurasi bekerja dengan manajemen
link dan fasilitas versioning untuk melacak serangkaian konfigurasi yang
merepresentasikan kejadian penting dari proyek spesifik atau rilis produk. Manajemen
versioning menyediakan versi-versi yang diperlukan, dan manajemen link menjaga
jalur dari saling ketergantungan. Misalnya, manajemen konfigurasi sering
memberikan suatu fasilitas build untuk mengotomatisasi proses transformasi
komponen desain ke dalam kemampuan penyampaian yang dapat dieksekusi.
Audit Trail. Dihubungkan dengan manajemen perubahan adalah kebutuhan akan
audit trail yang membangun informasi tambahan tentang kapan, mengapa, dan oleh
siapa perubahan dibuat. Sebenarnya hal ini bukan merupakan persyaratan yang sulit
27
bagi suatu tempat penyimpanan yang memiliki model informasi yang kokoh.
Informasi mengenai sumber perubahan dapat dimasukkan sebagai atribut objek
spesifik di dalam tempat penyimpanan. Mekanisme pemicu tempat penyimpanan
sangat membantu dalam memberikan peringatan kepada pengembang atau piranti
yang sedang dia pergunakan untuk mengawali entry informasi audit (misal alasan
untuk suatu perubahan) kapan saja suatu elemen desain dimodifikasi.
KESIMPULAN
Piranti CASE menjangkau setiap langkah di dalam proses perangkat lunak dan
aktivitas-aktivitas pelindung yang diterapkan pada keseluruhan proses. CASE
mengkombinasikan serangkaian building block yang dimulai pada perangkat keras
dan tingkat perangkat keras sistem operasi dan berakhir dengan piranti individual.
Pada tulisan ini kita telah membahas taksonomi piranti CASE. Kategori
tersebut meliputi baik aktivitas manajemen maupun teknis dan mencakup sebagian
besar area aplikasi perangkat lunak. Masing-masing kategori piranti dilihat sebagai
suatu "solusi pokok".
Lingkungan I-CASE mengkombinasikan mekanisme integrasi untuk data,
piranti, dan interaksi manusia komputer. Integrasi data dapat dicapai melalui
pertukaran informasi secara langsung, melalui struktur file yang biasa, dengan berbagi
pakai data atau interoperabilitas, atau melalui pemakaian tempat penyimpanan I-
CASE penuh. Integrasi piranti dapat dibuat custom-designed oleh vendor yang bekerja
bersama atau dapat dicapai melalui perangkat lunak manajemen yang diberikan
sebagai bagian dari tempat penyimpanan. Integrasi manusia komputer dicapai melalui
standar interface yang sedang menjadi semakin umum pada industri. Arsitektur
28
industri didesain untuk memfasilitasi integrasi para pemakai dengan piranti, piranti
dengan piranti, piranti dengan data, dan data dengan data.
Tempat penyimpanan CASE dapat diacu sebagai “software bus” Informasi
bergerak melaluinya, berjalan dari piranti ke piranti sekali perangkat lunak berjalan.
Tetapi tempat penyimpanan sangat lebih daripada “bus.” Repositori juga merupakan
tempat penyimpanan yang menggabungkan mekanisme yang canggih untuk
mengintegrasikan piranti CASE sehingga meningkatkan proses melalui mana
perangkat lunak dikembangkan. Tempat penyimpanan merupakan database relasional
atau OO yang merupakan “pusat dari akumulasi dan penyimpanan” bagi informasi
rekayasa perangkat lunak.
DAFTAR PUSTAKA
Forte, G., In Serach of the Integrated Environment, CASE Outlook, Maret/April
1989, Hal. 5-12.
Forte, G., Rally Round the Repository, CASE Outlook, Desember 1989, Hal. 5-27.
L. Bass, P. Clements, R. Kazman., 1998, Software Architecture in Practice, UK:
Addison Wesley.
Pressman, R. S., 2002, Software Engineering, New York: Mc Graw Hill.
Sommerville, I., 2003, Software Engineering, UK: Addison Wesley.
Welke, R.J., Meta Systems on Meta Models, CASE Outlook, Desember 1989,
Hal. 3545.