Anda di halaman 1dari 15

REKAYASA PERANGKAT LUNAK

COMPUTER-AIDED SOFTWARE
ENGINEERING

DISUSUN OLEH:

ARI KUMBORO 140110080091


M IQBAL A M 140110080052

JURUSAN MATEMATIKA
UNIVERSITAS PADJADJARAN
COMPUTER-AIDED SOFTWARE
ENGINEERING

Dalam bab ini, kita berfokus kepada alat dan lingkungan yang akan membantu
untuk mengotomatisasi proses software.
Sebuah workshop yang bagus untuk beberapa bidang keahlian memiliki tiga
karakteristik utama: (1) Kumpulan alat yang berguna yang akan membantu dalam
setiap langkah pembangunan produk, (2) Tata letak yang terorganisir sehingga dapat
ditemukan dengan cepat dan digunakan secara efisien, dan (3) Pengguna yang mengerti
bagaimana menggunakan alat-alat secara efektif.
Para insinyur perangkat lunak telah menyadari bahwa mereka membutuhkan
yang lebih bervariasi serta efisien dimana untuk menempatkan tools-nya.
Workshop untuk rekayasa perangkat lunak yang biasa disebut integrated
project support environment (akan dibahas dalam bab ini) dan tools yang mengisi
workshop secara kolektif disebut Computer-Aided Software Engineering (CASE).
CASE menyediakan software engineer dengan kemampuan untuk meng-
otomatisasi kegiatan manual dan untuk meningkatkan wawasan dalam merekayasa.
Seperti computer-aided engineering dan desain alat-alat yang digunakan oleh insinyur
dalam disiplin lain, CASE membantu untuk memastikan kualitas produk yang
dirancang, sebelum produk itu dibangun.
1. Blok Bangunan untuk CASE
CASE dapat menjadi tools sederhana serta tunggal yang mendukung kegiatan
rekayasa perangkat lunak tertentu atau sebagai tools "pelengkap" yang mencakup
database, user, hardware, jaringan, sistem operasi, standard, dan komponen lainnya.
Blok bangunan CASE seperti pada Gambar 1. Setiap blok menjadi fondasi untuk blok
selanjutnya dan membentuk sebuah tumpukan. Sangat menarik untuk dicatat bahwa
fondasi yang efektif dari lingkungan (environment) CASE secara relatif tidak ada
hubungannya dengan alat rekayasa perangkat lunak sendiri. Sebaliknya, lingkungan
sendiri yang berhasil merekayasa perangkat lunak yang dibangun diatas environment
architecture yang meliputi hardware dan system software yang tepat. Selain itu,
environment architecture harus memperhatikan pola kerja manusia yang diterapkan
selama proses rekayasa perangkat lunak berlangsung.
Environment architecture, terdiri dari hardware platform dan system support
(termasuk software jaringan, manajemen database, serta manajemen object service),
meletakkannya dibawah kerja CASE. Tetapi lingkungan CASE sendiri ditentukan oleh
bangunan blok yang lainnya.

Gambar 1
CASE building blocks
Satu set portability services menyediakan jembatan antara CASE tools dan
integration framework serta environment architecture. Integration framework adalah
sekumpulan program khusus yang memungkinkan CASE tools untuk berkomunikasi
satu sama lain, untuk membuat proyek database, dan untuk menunjukkan tampilan
yang sama sebagai kepuasan pengguna akhir (end-user). Portability services
memungkinkan CASE tools dan integration framework untuk bermigrasi ditempat yang
berbeda pada hardware platform dan operating system tanpa maintenence yang
signifikan.
Blok bangunan yang digambarkan pada Gambar 1 merupakan landasan yang
komprehensif untuk integrasi CASE tools. Namun, kebanyakan CASE tools yang
digunakan sekarang ini belum dibangun dengan menggunakan semua blok bangunan.
Bahkan, ada beberapa CASE tools tetap pada "point solution." Artinya, alat yang
digunakan untuk membantu dalam kegiatan merekayasa perangkat lunak tertentu
(misalnya, pemodelan analisis (analysis modeling)) tetapi tidak secara langsung
berkomunikasi dengan tools yang lain, tidak terikat dalam proyek database, dan bukan
merupakan bagian dari integrated CASE environment (ICASE). Meskipun situasi ini
tidak ideal, CASE tools cukup efektif, bahkan jika merupakan sebuah point solution.
Tingkat relatif integrasi CASE diperlihatkan pada Gambar 2. Pada awal
spektrum integrasi yaitu sebuah tools (point solution) tunggal. Ketika beberapa tools
menyediakan fasilitas untuk pertukaran data (kebanyakan), tingkat integrasi sedikit
meningkat. Tools tersebut menghasilkan output dalam format standar yang harus
kompatibel, supaya tools lain dapat membaca format tersebut . Dalam beberapa CASE,
pembangun melengkapi CASE tools bekerja sama untuk membentuk suatu jembatan
antar tools (misalnya, analisis dan tools desain yang digabungkan dengan sebuah
generator code). Dengan menggunakan pendekatan ini, kesinergisan antara tools dapat
menghasilkan produk akhir yang akan sulit untuk membuat tools lain secara terpisah.
Single-source integration terjadi ketika sebuah single CASE tools vendors
mengintegrasikan beberapa tools yang berbeda dan menjualnya dalam satu paket.
Meskipun pendekatan ini cukup efektif, arsitektur yang tertutup dari single-source
environment dapat menghalangi dari mudah penambahan tools dari vendor lainnya.

Gambar 2
Integration option

Pada akhir spectrum integrasi yaitu integrated project support environment


(IPSE). CASE tools vendors menggunakan standar IPSE untuk membangun tools yang
kompatibel dengan IPSE dan karena itu kompatibel satu sama lain.
2. TAKSONOMI CASE TOOLS
Sejumlah risiko yang melekat setiap kali kita mencoba untuk mengategorikan
CASE tools. Ada maksud halus bahwa untuk menciptakan lingkungan CASE yang
efektif, kita harus melaksanakan semua kategori tools, itu tidak benar. Kebingungan
dapat dibuat dengan menempatkan peralatan khusus dalam satu kategori ketika orang
lain mungkin percaya itu termasuk dalam kategori yang lain. Beberapa pembaca
mungkin merasa bahwa seluruh kategori telah dihilangkan-sehingga menghilangkan
seluruh seperangkat tools untuk dimasukkan kedalam semua lingkungan CASE. Selain
itu, kategorisasi sederhana cenderung datar yaitu, kita tidak menunjukkan interaksi
hirarkis alat atau hubungan di antara mereka. Tetapi bahkan dengan risiko ini, perlu
untuk menciptakan sebuah taksonomi CASE tools untuk lebih memahami luasnya
CASE dan untuk lebih menghargai di mana tools tersebut dapat diterapkan dalam
proses rekayasa perangkat lunak.
CASE tools dapat diklasifikasikan berdasarkan fungsinya, yang berperan
sebagai instrumen bagi para manajer atau teknisi, berdasarkan penggunaannya dalam
berbagai langkah proses rekayasa perangkat lunak, dengan environment architecture
(hardware dan software) yang mendukungnya, atau bahkan berdasarkan keaslian atau
biaya pembuatannya[QED89]. Taksonomi yang disajikan di sini berdasarkan fungsi
sebagai kriteria utama.
Business process engineering tools.
Dengan menggunakan pemodelan organisasi informasi requirements yang
strategis, business process engineering tools yang menyediakan "meta-model" dari
mana sistem informasi spesifik itu berasal. Daripada berfokus kepada requirements
aplikasi tertentu, informasi bisnis dimodelkan sebagai pergerakan di antara berbagai
macam entitas organisasi dalam sebuah perusahaan. Tujuan utama dalam kategori ini
adalah untuk mewakili obyek data bisnis, hubungan-hubungannya, dan bagaimana
obyek data mengalir antara area bisnis yang berbeda dalam sebuah perusahaan.
Process modeling and management tools.
Jika sebuah organisasi bekerja untuk meningkatkan suatu proses (atau software)
bisnis, hal yang pertama adalah harus memahaminya terlebih dahulu. Process modeling
tools (juga disebut Process technology tools) digunakan untuk mewakili elemen kunci
dari suatu proses sehingga dapat dipahami dengan lebih baik. Tools tersebut juga dapat
memberikan link ke proses deskripsi yang membantu mereka yang terlibat dalam
proses untuk memahami tugas-tugas pekerjaan yang diperlukan untuk melakukannya.
Process management tools menyediakan link ke tools lain yang menyediakan support
untuk kegiatan suatu proses.
Project planning tools.
Tools dalam kategori ini berfokus pada dua area utama yaitu software project
effort dan cost estimation and project scheduling. Estimation tools akan menghitung
estimasi usaha, durasi proyek, dan jumlah yang direkomendasikan user untuk suatu
proyek. Project scheduling tools memungkinkan manajer untuk menentukan tugas-
tugas semua proyek (struktur rincian kerja), menciptakan jaringan tugas (biasanya
menggunakan input grafis), merupakan interdependencies suatu tugas, dan jumlah
model parallelisme yang memungkinkan untuk suatu proyek.
Risk analysis tools.
Mengidentifikasi potensi risiko dan mengembangkan rencana untuk
menguranginya, memonitor, dan mengatur merupakan hal yang sangat penting dalam
seuah proyek besar. Risk analysis tools memungkinkan manajer suatu proyek untuk
membangun sebuah table risiko dengan memberikan petunjuk yang lebih rincidalam
mengidentifikasi dan menganalisis risiko.
Project management tools.
Jadwal proyek dan rencana proyek harus dilacak dan dipantau secara terus
menerus. Selain itu, seorang manajer harus menggunakan tools untuk mengumpulkan
metrik yang pada akhirnya akan memberikan indikasi kualitas produk suatu software.
Tools dalam kategori ini untuk perpanjangan perencanaan proyek.
Requirements tracing tools.
Ketika sistem yang besar sedang dikembangkan, biasa terdapat hal "fall into the
cracks." Artinya, sistem yang disampaikan tidak sepenuhnya sesuai dengan keinginan
pelanggan. Persyaratan alat pelacakan adalah untuk menyediakan sebuah pendekatan
yang sistematis untuk mengisolasi requirement, dimulai dengan permintaan pelanggan
untuk proposal. The typical requirements tracing tool menggabungkan evaluasi
interaksi manusia dengan sistem manajemen database yang menyimpan dan
mengkategorikan setiap kebutuhan sistem yang "dibaca" dari RFP asli atau bukan.
Metrics and management tools.
Sebuah software metrik meningkatkan kemampuan seorang manajer untuk
mengendalikan dan mengkoordinasikan proses rekayasa perangkat lunak serta kemam-
puan seorang praktisi untuk meningkatkan kualitas software yang dihasilkan. Sekarang
ini metrik atau alat ukur berfokus pada karakteristik proses dan produk. Manajemen
berorientasi pada tools capture project tertentu (misalnya, LOC/person-month,
mencacat per titik fungsi) yang memberikan indikasi pada keseluruhan roduktivitas
atau kualitas. Secara teknis berorientasi pada tools determine metrics yang memberikan
wawasan lebih besar pada kualitas desain atau kode.
Documentation tools.
Document production dan desktop publishing tools dukungan hampir setiap
aspek rekayasa perangkat lunak dan merupakan sebuah "substansial" yang
memanfaatkan kesempatan untuk semua pengembang perangkat lunak. Kebanyakan
organisasi pengembang perangkat lunak menghabiskan banyak waktu untuk
mengembang dokumen, dan dalam banyak kasus proses dokumentasi sendiri cukup
efisien. Sudah lazim bagi sebuah organisasi pengembang perangkat lunak untuk
menghabiskan sebanyak 20 atau 30 persen dari semua upaya pengembangan perangkat
lunak dokumentasi. Untuk alasan ini, alat-alat dokumentasi memberikan kesempatan
yang penting untuk meningkatkan system produktivitas.
System software tools.
CASE adalah sebuah teknologi workstation. Oleh karena itu, lingkungan CASE
harus bisa menampung network system software, object management services,
distributed component support, electronic mail, bulletin boards, dan kemampuan
komunikasi lainnya.
Quality assurance tools.
Mayoritas CASE tools mengklaim untuk fokus pada jaminan kualitas
sebenarnya metrik tools yang memeriksa source code untuk menentukan kesesuai
dengan standar bahasa. Peralatan lainnya extract technical metrics (pada Bab 19 dan
24) dalam kualitas proyek perangkat lunak yang sedang dibangun.
Database management tools.
Database management software berfungsi sebagai landasan bagi pembentukan
database CASE (repositori) yang kita miliki disebut database project. Mengingat
penekanan pada objek konfigurasi, perangkat manajemen database untuk CASE yang
berkembang dari sistem manajemen database relasional menuju sistem manajemen
database object-oriented.
Software Configuration Management (SCM) tools.
Software configuration management terletak di inti setiap lingkungan CASE.
Alat yang dapat membantu dalam lima tugas utama SCM yaitu identification, version
control, change control, auditing, dan status accounting. Database CASE menyediakan
mekanisme untuk mengidentifikasi setiap konfigurasi item dan menghubungkannya
dengan item lainnya; proses perubahan kontrol dapat diimplementasikan dengan
bantuan alat khusus; akses mudah ke konfigurasi individual memfasilitasi item proses
audit; dan alat komunikasi CASE yang sangat meningkatkan status accounting
(pelaporan informasi tentang perubahan ke semua yang perlu diketahui).
Analysis and design tools.
Analysis dan design tools memungkinkan seorang insinyur perangkat lunak
untuk membuat model sistem yang akan dibangun. Model mengandung sebuah
representasi data, fungsi, dan perilaku (pada tingkat analisis) dan karakterisasi data,
architectural, component-level dan interface design. Secara konsisten dan valid
memeriksa pada model, analysis dan desain tools.
PRO / SIM tools.
PRO / SIM (prototiping and simulation) tools [NIC90] menyediakan software
engineer dengan kemampuan untuk memprediksi perilaku sistem real-time sebelum
waktunya membangun. Selain itu, alat ini memungkinkan software engineer untuk
mengembangkan mock-up dari sistem real-time, yang memungkinkan pelanggan untuk
mendapatkan informasi tentang operasi, fungsi, dan respon sebelum implementasi yang
sebenarnya.
Interface design and development tools.
Interface design dan development tools sebenarnya adalah sebuah kit dari
komponen software seperti menu-menu, tombol- tombol, windows, struktur, ikon-
ikon, mekanisme scrolling, device driver, dan sebagainya. Tapi, tools kit ini sedang
digantikan oleh prototipe interface yang memungkinkan layar menciptakan user-
interface yang canggih dan sesuai dengan standar interface yang telah diadopsi untuk
software.
Prototyping tools.
Berbagai macam prototyping tools yang berbeda dapat digunakan. Screen
painters memungkinkan software engineer untuk menentukan tata letak layar yang
cepat untuk aplikasi interaktif. Lebih canggih lagi CASE prototyping tools yang
memungkinkan pembuatan desain data, mengabungkan kedua layar dan report layouts.
Banyak Analysis dan design tools yang memiliki ekstensi yang menyediakan pilihan
prototype. PRO / SIM tools menghasilkan kerangka Ada dan C source code untuk
rekayasa (real-time) aplikasi. Akhirnya, berbagai alat generasi keempat memiliki fitur
prototype.
Programming tools.
Programming tools meliputi katagori compilers, editors, dan debuggers yang
tersedia untuk mendukung bahasa pemrograman yang paling konvensional. Selain itu,
lingkungan pemrograman yang berbasis object-oriented, bahasa generasi keempat,
lingkungan pemrograman grafis, generator aplikasi, dan bahasa query database juga
berada dalam kategori ini.
Web development tools.
Kegiatan yang berhubungan dengan teknik Web yang didukung oleh berbagai
tools WebApp development. Ini termasuk alat yang membantu dalam generasi teks,
grafik, formulir, script, applet, dan elemen lain dari halaman Web.
Integration and testing tools.
Dalam direktori software testing tools, Software Quality Engineering [SQE95]
mendefinisikan kategori testing tools:
 Data acquisition-tools yang memperoleh data untuk digunakan selama testing.
 Static measurement-tools yang menganalisis source code tanpa melakukan test
eksekusi terhadap kasus.
 Dynamic measurement tools yang menganalisis source code selama eksekusi.
 Simulation-tools yang mensimulasikan fungsi hardware atau eksternal lainnya.
 Test management-tools yang membantu dalam pengembangan, perencanaan,
dan pengendalian testing.
 Cross-fungsional tools-tools yang melintasi batas-batas sebelum kategori.
Perlu dicatat bahwa banyak testing tools yang memiliki fitur antara dua atau lebih
kategori.
Static analysis tools.
Static testing tools membantu software engineer dalam menyimpulkan suatu
kasus. Tiga jenis static testing tools yang digunakan dalam industri: (1) Code-based
testing tools, menerima source code (atau PDL) sebagai input dan melakukan sejumlah
analisis yang dihasilkan dalam generasi test kasus. (2) Specialized testing languages,
(misalnya, ATLAS) memungkinkan software engineer untuk menuliskan rincian
spesifikasi test yang digambarkan pada setiap test kasus dan logistik untuk eksekusi.
Dan (3) Requirements-based testing tools mengisolasi user requirements dan menya-
rankan test kasus (atau mengelompokan test) yang akan melakukan requirements.
Dynamic analysis tools
Dynamic testing tools berinteraksi dengan sebuah program eksekusi, memeriksa
cakupan jalur (path coverage), testing pernyataan tentang nilai dari variabel tertentu,
dan sebaliknya menginstrumenkan eksekusi aliran program. Dinamic tools dapat
berupa intrusive (gangguan) atau nonintrusive (non-gangguan). Sebuah intrusive tools
merubah software yang akan di test dengan memasukkan probe (petunjuk tambahan)
yang hanya melakukan kegiatan yang disebutkan. Nonintrusive tools menggunakan
sebuah prosesor hardware yang terpisah yang berjalan secara paralel dengan prosesor
yang berisi program yang sedang di test.
Test management tools.
Digunakan untuk mengendalikan dan mengkoordinasikan testing software
untuk setiap langkah-langkah pengujian utama. Tools dalam kategori ini mengelola dan
mengkoordinasikan testing regresi, melakukan perbandingan yang memastikan
perbedaan antara output yang diharapkan dan yang aktual, serta melakukan pengujian
batch program dengan human interactive /computer interfaces. Selain untuk mencatat
fungsi, banyak test management tools juga yang berfungsi sebagai generic test drivers.
Sebuah test driver membaca satu atau lebih tes kasus dari sebuah testing file, format
data test untuk memenuhi kebutuhan software yang diuji, dan kemudian memanggil
software yang akan diuji.
Client/server testing tools.
Lingkungan c/s menuntut testing khusus tools yang menjalankan user-
interfaces grafis dan komunikasi jaringan requirement untuk klien dan server.
Reengineering tools.
Tools untuk alamat dari software legacy serangkaian kegiatan pemeliharaan
yang saat ini menyerap persentase yang signifikan dari semua upaya yang berkaitan
dengan software. Kategori tools rekayasa ulang dapat dibagi ke dalam fungsi-fungsi
berikut:
 Reverse engineering to specification tools mengambil source code sebagai input
dan menghasilkan analisis terstruktur desain grafis dan model, menggunakan
daftar (list) dan informasi desain lainnya.
 Code restructuring and analysis tools menganalisis sintak-sintak program,
menghasilkan sebuah control flow graph dan secara otomatis menghasilkan
program yang terstruktur.
 On-line system reengineering tools digunakan untuk memodifikasi sistem
database secara on-line (misalnya, mengubah IDMS atau file DB2 ke-format
entity-relationship).
Alat ini terbatas pada bahasa pemrograman tertentu (walaupun sebagian besar
menujukan bahasa yang utama) dan memerlukan beberapa tingkat interaksi dengan
software engineer.

3. INTEGRATED CASE ENVIRONMENTS


Walaupun manfaat atau kepentingan dapat diturunkan dari CASE tools itu
sendiri, yang alamat kegiatan rekayasa perangkat lunaknya terpisah, kekuatan yang
sebenarnya dari CASE hanya dapat dicapai melalui integrasi. Manfaat I-CASE
meliputi: (1) kelancaran transfer informasi (model, program, dokumen, data) dari satu
alat untuk yang lain dan satu langkah rekayasa perangkat lunak untuk yang berikutnya,
(2) pengurangan upaya yang diperlukan untuk melakukan kegiatan perlindungan seperti
konfigurasi manajemen software, jaminan kualitas, dan produksi dokumen, (3)
peningkatan pengendalian proyek yang dicapai melalui perencanaan yang lebih baik,
pemantauan, dan komunikasi, serta (4) meningkatkan koordinasi antara anggota-
anggota staf yang bekerja di sebuah proyek software besar.
Tapi I-CASE juga menimbulkan tantangan besar. Menuntut representasi
integrasi yang konsisten dari informasi rekayasa perangkat lunak, interface standar
antara tools, mekanisme yang homogen untuk komunikasi antara software engineer dan
masing-masing tools, dan pendekatan efektif yang akan memungkinkan I-CASE untuk
bergerak di antara berbagai platform hardware dan sistem operasi. Lingkungan I-CASE
yang komprehensif telah muncul lebih lambat daripada yang diharapkan. Namun,
mengintegrasi lingkungan yang ada dan menjadi lebih kuat.
Jangka integrasi termasuk combination dan closure. I-CASE menggabungkan
Berbagai alat yang berbeda dan spektrum informasi dalam suatu cara yang
memungkinkan penutupan (closure) komunikasi antara tools, user, dan untuk semua
proses software. Tools mengintegrasi sehingga informasi rekayasa perangkat lunak
tersedia untuk setiap tools yang membutuhkannya, penggunaannya terintegrasi
sehingga tampilan dan nuansanya umum disediakan untuk semua alat, terintegrasi
adalah sebuah filosofi pembangunan, yang menyiratkan standar pendekatan rekayasa
perangkat lunak yang menerapkan praktik modern dan metode yang terbukti.
Untuk menentukan integrasi dalam konteks proses rekayasa perangkat lunak,
perlu menetapkan seperangkat persyaratan [FOR89a] untuk I-CASE haruslah:
 Menyediakan mekanisme untuk berbagi informasi rekayasa perangkat lunak
antara semua alat yang terdapat pada enveronment (lingkungan).
 Membolehkan perubahan ke salah satu item informasi yang akan dilacak oleh
item informasi yang lain.
 Menyediakan kontrol versi dan manajemen konfigurasi untuk semua informasi
rekayasa perangkat lunak.
 Membolehkan secara langsung, akses nonsequential ke alat yang terdapat dalam
lingkungan.
 Membangun dukungan otomatis untuk model proses software yang telah
dipilih, mengintegrasikan CASE tools dan Software Configuration Items (SCIs)
menjadi struktur rincian kerja yang standar.
 Membolehkan para pengguna dari masing-masing alat untuk mengalami
penampilan yang konsisten dan merasa pada standar interface manusia atau
komputer.
 Mendukung komunikasi antar software engineers
 Kumpulkan manajemen dan metrik teknis yang dapat digunakan untuk
memperbaiki proses dan produk.
Untuk mencapai requirements tersebut, masing-masing blok bangunan arsitektur CASE
(Gambar 31.1) harus cocok dengan model lain. Bangunan dasar seperti blok-
environment architecture, hardware platform, dan operating system harus "bergabung"
melalui serangkaian portability services untuk sebuah integration framework itu
tercapai pada requirements tersebut.

4. THE INTEGRATION ARCHITECTURE


Sebuah tim rekayasa perangkat lunak menggunakan CASE tools, metode yang
sesuai, dan proses framework untuk menciptakan sebuah kelompok informasi rekayasa
perangkat lunak. Integration framework memfasilitasi transfer informasi ke dalam dan
keluar dari kelompok. Untuk mencapai hal ini, komponen-komponen arsitektur berikut
ini harus ada: database harus dibuat (untuk menyimpan informasi), sebuah sistem
manajemen objek harus dibangun (untuk mengelola perubahan informasi), sebuah
mekanisme kontrol alat harus dibangun (untuk mengkoordinasikan penggunaan CASE
tools), sebuah user interface harus menyediakan sebuah jalur yang konsisten antara
tindakan yang dilakukan oleh pengguna dan alat-alat yang terdapat dalam lingkungan.
Kebanyakan model (misalnya, [FOR90], [SHA95]) integration framework mewakili
komponen-komponen ini sebagai layers (lapisan- lapisan). Sebuah model sederhana
dari framework, yang digambarkan hanya komponennya saja yang dicatat. Ditunjukkan
pada Gambar 3.

Gambar 3
Architectural model for
the integration framework

User interface layer (Gambar 3) menggabungkan interface tool kit yang standar
dengan presentation protocol yang umum. Interface tool kit berisi software untuk
human/computer interface management dan sebuah library untuk tampilan objek.
Keduanya menyediakan mekanisme yang konsisten untuk komunikasi antara interface
dan individu CASE tools. Presentation protocol adalah seperangkat pedoman yang
memberikan CASE tools semua tampilan dan nuansa yang sama. Screen layout
conventions, nama-nama menu dan organization, icons, nama-nama object, penggunaan
keyboard dan mouse, serta mekanisme untuk mengakses tools semuanya didefinisikan
sebagai bagian dari presentation protocol.
Tools layer menggabungkan satu set Tools management services (TMS) dengan
CASE tools sendiri. TMS mengontrol perilaku tools dalam lingkungan. Jika
multitasking digunakan selama pelaksanaan satu atau lebih tools, TMS akan melakukan
sinkronisasi multitasking dan komunikasi, mengkoordinasikan arus informasi dari
objek sistem manajemen dan repositori ke dalam tools, mengerjakan tugas sebagai
keamanan dan fungsi audit, serta mengumpulkan metrik pada penggunaan tools.
Object management layer (OML) melakukan fungsi manajemen konfigurasi
yang dijelaskan dalam Bab 9. Pada dasarnya, software dalam layer framework
architecture menyediakan mekanisme untuk tools integrasi. Setiap CASE tools
dicolokkan ke OML. Bersama CASE repositori maka, OML menyediakan jasa
integrasi yaitu satu set modul standar yang berpasangan dengan repositori. Selain itu,
OML menyediakan configuration management services dengan mengaktifkan
identifikasi semua obyek konfigurasi, melakukan kontrol versi (version control) dan
memberikan dukungan untuk kontrol perubahan, audit, dan status accounting.
shared repository layer adalah database CASE dan fungsi kontrol akses yang
memungkinkan OML untuk berinteraksi dengan database. Integrasi data dicapai oleh
manajemen objek dan shared repository layer.
5. THE CASE REPOSITORY
Webster's Dictionary mendefinisikan kata repositori sebagai "suatu hal atau
seseorang yang dianggap sebagai pusat akumulasi atau penyimpanan." Selama sejarah
awal pengembangan software, repositori memang programmer yang harus mengingat
lokasi semua informasi yang relevan untuk sebuah proyek software, yang harus
mengingat informasi yang tidak pernah ditulis dan merekonstruksi informasi yang telah
hilang. Sayangnya, menggunakan manusia sebagai "pusat untuk akumulasi dan
penyimpanan" (meskipun itu sesuai dengan definisi Webster's), itu tidak bekerja
dengan baik. Sekarang, repositori adalah "suatu" database yang bertindak sebagai pusat
untuk kedua akumulasi dan penyimpanan informasi rekayasa perangkat lunak. Peran
seorang (insinyur perangkat lunak / software engineer) adalah untuk berinteraksi
dengan CASE tools menggunakan repositori yang telah terintegrasi.
Dalam buku ini, banyak istilah yang berbeda telah digunakan untuk merujuk
pada tempat penyimpanan untuk informasi rekayasa perangkat lunak: CASE database,
project database, integrated project support environment (IPSE) database,
requirements dictionary (sebuah database yang terbatas), dan repository. Meskipun ada
perbedaan yang halus antara beberapa istilah tersebut, semua merujuk ke pusat untuk
akumulasi dan penyimpanan.

5.1 The Role of the Repository in I-CASE


Repositori untuk lingkungan I-CASE adalah seperangkat mekanisme dan struktur data
yang meliputi data/tool and data/data integrasi. Repositori ini menyediakan fungsi yang
jelas dari sistem manajemen database, tapi di samping itu, repositori melakukan atau
presipitat menimbulkan fungsi-fungsi berikut [FOR89b]:
 Data integrity termasuk fungsi untuk memvalidasi masukan ke repositori,
memastikan konsistensi antara objek-objek yang terkait, dan secara otomatis
melakukan "cascading" modifikasi ke salah satu objek yang menuntut beberapa
perubahan pada obyek terkait.
 Information sharing menyediakan mekanisme untuk berbagi informasi antara
beberapa pengembang dan antara beberapa tools, mengelola dan mengontrol akses
multi-user ke data dan mengunci atau membuka objek sehingga perubahan overlay
yang tidak disengaja pada satu dan lainnya.
 Data/tool integration menetapkan model data yang dapat diakses oleh semua di
lingkungan I-CASE tools, mengontrol akses ke data, dan melakukan fungsi-fungsi
konfigurasi manajemen yang sesuai.
 Data/data integration adalah sistem manajemen yang berhubungan datadatabase
sehingga benda-benda yang lain dapat fungsi dicapai.
 Methodology enforcement mendefinisikan sebuah model entity-relationship yang
tersimpan dalam repositori yang menyiratkan paradigma khusus untuk rekayasa
perangkat lunak, pada minimum, hubungan dan satu set pendefinisian objek dari
langkah-langkah yang harus dilakukan untuk membangun isi dari repositori.
 Document standardization yaitu definisi dari objek- objek dalam database yang
mengarah langsung pada pendekatan standar selama pembuatan dokumen rekayasa
perangkat lunak.

Untuk mencapai fungsi tersebut, repositori didefinisikan dalam sebuah meta-model.


Meta-model menentukan bagaimana informasi disimpan dalam repositori, bagaimana
data dapat diakses oleh tools dan dilihat oleh para software engineer, seberapa baik
keamanan dan integritas data dapat dipertahankan, dan seberapa mudah model yang
sudah ada dapat diperluas untuk mengakomodasi kebutuhan baru [ WEL89].
Meta-model merupakan template di mana informasi rekayasa perangkat lunak
itu ditempatkan. Sebuah diskusi terperinci mengenai model ini ada di luar cakupan
buku ini. Untuk lebih lanjut,lihat [WEL89], [SHA95], dan [GRI95].
5.2 Features and Content
Features dan content dari repositori dipahami dengan melihat dari dua perspektif: apa
yang akan disimpan dalam repositori dan apa specific services yang disediakan oleh
repositori. Secara umum, tipe-tipe yang harus disimpan dalam repository mencakup:
 Masalah yang akan dipecahkan
 Informasi tentang masalah domain
 Sistem solusi yang muncul
 Aturan dan instruksi yang berkaitan dengan proses perangkat lunak (metodologi)
yang akan diikuti
 Project plan, resources, dan history
 Informasi tentang konteks organisasi.
Suatu daftar terperinci dari jenis representasi, dokumen dan kiriman yang disimpan
dalam CASE repository termuat dalam Tabel Case Repository Contents [FOR89B].
CASE repositori yang kuat menyediakan dua kelas pelayanan yang berbeda: (1)
jenis layanan yang sama yang dapat diharapkan dari setiap sistem manajemen database
yang canggih dan (2) layanan khusus untuk lingkungan CASE repositori.

Tabel Case Repository Contents [FOR89B]


Banyak requirements yang sama dengan typical aplikasi yang dibangun oleh sebuah
komersial database yaitu database management system (DBMS). Pada kenyataannya,
sebagian besar CASE repository sekarang ini menggunakan DBMS (biasanya
relasional atau yang berobjek oriented) sebagai data yang dasar dari teknologi
manajemen. Fitur DBMS yang mendukung pengelolaan pengembangan software
informasi termasuk:
 Nonredundant data storage. Setiap objek disimpan hanya sekali, tetapi dapat
diakses oleh semua CASE tools yang membutuhkannya.
 High-level access. Mekanisme pengaksesan data umumnya diterapkan sehingga
fasilitas penanganan data tidak harus diduplikasi dalam setiap CASE tools.
 Data independence. CASE tools dan aplikasi target terisolasi dari penyimpanan
fisik sehingga mereka tidak terpengaruh ketika konfigurasi hardware berubah.
 Transaction control. Repositori mengimplementasikan penguncian catatan
(record locking), menjalankan dua tahap, transaksi logging, dan prosedur
pemulihan untuk menjaga integritas data ketika ada user bersamaan.
 Security. Repositori menyediakan mekanisme untuk mengontrol yang dapat
melihat dan memodifikasi informasi yang terkandung di dalamnya
 Ad hoc data queries and reports. Repositori memungkinkan akses langsung
melalui isi user interface yang nyaman seperti SQL atau “browser”,
memungkinkan analisis yang ditetapkan pengguna di luar standar laporan yang
dilengkapi dengan CASE tools.
 Openness. Repositori biasanya menyediakan impor sederhana / mekanisme
ekspor untuk mengaktifkan loading atau transfer.
 Multiuser support. Sebuah repositori kuat harus mengizinkan beberapa developer
untuk bekerja pada aplikasi di waktu yang sama. Haruslah mengelola akses
bersamaan ke database dengan beberapa alat dan pengguna dengan arbitrase akses
dan locking pada file atau record-level. Untuk lingkungan berbasis jaringan,
multi-user dukungan juga menyiratkan bahwa repositori dapat interface dengan
jaringan umum protocol dan fasilitas.
Lingkungan CASE juga menempatkan permintaan khusus pada repositori yang
melampaui apa yang langsung tersedia dalam DBMS komersial. Fitur khusus termasuk
CASE repository.
Storage of sophisticated data structures.
Repositori harus mengakomodasi tipe data yang kompleks seperti diagram,
dokumen, dan file, serta sederhana data elemen. Sebuah repositori juga mencakup
model informasi (atau meta model) menggambarkan struktur, hubungan dan semantik
dari data yang tersimpan di dalamnya. Meta-model harus diperluas sehingga
representasi baru dan informasi organisasi yang unik bisa ditampung. Repositori tidak
hanya toko model dan deskripsi sistem dalam pengembangan, tetapi juga terkait meta-
data (yaitu, informasi tambahan yang menjelaskan data rekayasa perangkat lunak itu
sendiri, seperti ketika komponen desain tertentu diciptakan, apa statusnya saat ini, dan
apa komponen lainnya itu sama).
Integrity enforcement.
Model informasi repositori juga mengandung aturan, atau kebijakan,
menggambarkan aturan-aturan bisnis yang berlaku dan kendala lainnya dan persyaratan
pada informasi yang dimasukkan ke dalam repositori (secara langsung atau melalui
CASE tools). Sebuah fasilitas yang disebut trigger dapat digunakan untuk
mengaktifkan aturan yang terkait dengan obyek ketika hal itu diubah, sehingga
memungkinkan untuk memeriksa validitas model desain secara real-time.
Semantics-rich tool interface.
Model informasi repositori (meta-model ) berisi semantik yang memungkinkan
berbagai perangkat untuk menafsirkan arti dari data yang disimpan dalam repositori.
Sebagai contoh, sebuah data flow diagram diciptakan oleh CASE tools disimpan dalam
repositori dalam bentuk yang didasarkan pada informasi model dan berdiri sendiri
terhadap setiap representasi internal yang digunakan oleh alat itu sendiri. CASE tools
yang lain kemudian dapat menafsirkan isi dari repositori dan menggunakan informasi
yang diperlukan untuk tugas tersebut. Jadi, semantik disimpan dalam data sharing
repositori di antara beragam alat, sebagai lawan khusus konversi tools-to-tools atau
"bridge."
Process/project management.
Sebuah repositori berisi informasi tidak hanya tentang aplikasi software itu
sendiri, tetapi juga tentang karakteristik dari setiap proyek tertentu dan proses umum
organisasi untuk software development (phases, tasks, dan deliverables). Hal ini
membuka kemungkinan untuk koordinasi otomatis kegiatan pembangunan teknis
dengan proyek aktivitas manajemen. Sebagai contoh, memperbarui status tugas proyek
dapat dilakukan secara otomatis atau sebagai produk sampingan dari penggunaan
CASE tools. Status updating dapat dibuat dengan sangat mudah bagi pengembang
untuk melakukannya tanpa harus meninggalkan lingkungan perkembangan normal.

Fitur-fitur repositori berikut ini mencakup semua konfigurasi software


manajemen (Bab 9). Mereka kembali diperiksa di sini untuk menekankan keterkaitan
mereka hingga lingkungan I-CASE:
Versioning. Sebagai sebuah kemajuan proyek, banyak versi kerja individual dari
produk akan buat. Repositori harus mampu menyimpan semua versi ini untuk
memungkinkan manajemen merilis produk yang efektif dan mengizinkan pengembang
untuk kembali ke versi sebelumnya selama testing dan debugging.
Dependency tracking and change management. Repositori mengelola berbagai
hubungan antara unsur-unsur data yang tersimpan di dalamnya. Ini termasuk hubungan
antara entitas perusahaan dan proses, antara bagian-bagian dari rancangan aplikasi,
antar komponen desain dan arsitektur informasi perusahaan, antara elemen desain dan
pengiriman, dan sebagainya. Beberapa dari hubungan ini hanyalah asosiasi, dan
beberapa dependensi atau hubungan wajib. Memelihara hubungan antara objek-objek
pembangunan disebut link management. Kemampuan untuk melacak semua hubungan
ini sangat penting untuk integritasdari informasi yang tersimpan dalam repositori dan
generasi kiriman berdasarkan itu, dan itu adalah salah satu yang paling kontribusi
penting dari konsep repositori terhadap peningkatan pengembangan proses software.
Requirements tracing. Fungsi khusus tergantung pada manajemen link dan
menyediakan kemampuan untuk melacak semua komponen desain dan kiriman yang
merupakan hasil dari sebuah spesifikasi kebutuhan tertentu (forward pelacakan).
Selainitu, menyediakan kemampuan untuk mengidentifikasi kebutuhan yang dihasilkan
setiap deliverable yang diberikan (back-tracking).
Configuration management. Sebuah konfigurasi fasilitas manajemen bekerja erat
dengan manajemen link dan fasilitas versioning untuk melacak dari serangkaian
konfigurasi yang merupakan tonggak proyek khusus.
Audit trail, tambahan yang menetapkan interdependensi informasi tentang when, why,
dan who yang melakukan perubahan tentang sumber Informasi. Sebuah mekanisme
pemicu repositori sangat membantu untuk mendorong pengembang atau tools yang
digunakan untuk memulai masuknya informasi audit setiap kali elemen desain diubah.
KESIMPULAN
Computer-Aided Software Engineering (CASE) merupakan aktivitas dalam
proses software dan kegiatan perlindungannya yang diterapkan di seluruh proses.
CASE menggabungkan satu set bangunan blok yang dimulai pada hardware dan sistem
operasi software level dan diakhiri dengan individual tools.
Dalam bab ini, mempertimbangkan taksonomi CASE tools. Kategorinya mencakup
manajemen dan kegiatan teknis yang menjangkau area software aplikasi. Setiap
kategori dianggap sebagai "point solusi."
Lingkungan I-CASE menggabungkan mekanisme integrasi data, tools, dan
human/computer interaction. Integrasi data dapat dicapai melalui pertukaran informasi
secara langsung, melalui struktur file yang umum, dengan berbagi data atau
interoperabilitas, atau melalui penggunaan I-CASE penuh repositori. Tools integration
dapat dirancang khusus oleh vendor yang bekerja sama atau dicapai melalui
manajemen software yang diberikan sebagai bagian dari repositori. Human/computer
interaction dicapai melalui standar interface yang telah menjadi biasa di seluruh
industri. integration architecture dirancang untuk memfasilitasi integrasi user dengan
tools, tool and tools, tools and data, serta data and data.
CASE repositori disebut sebagai "software bus." Tapi repositori jauh lebih dari
sebuah "bus." Ini juga merupakan tempat penyimpanan yang menggabungkan
mekanisme yang canggih untuk mengintegrasikan CASE tools serta dengan demikian
meningkatkan proses melalui software yang dikembangkan. Repositori atau object-
relational database "the center of accumulation and storage" untuk informasi software
engineering.

Anda mungkin juga menyukai