Functional Cohesion Sequential Cohesion Communicational Cohesion Procedural Cohesion Temporal...

15
1426208831614.005 Rekayasa Software | Umar Mansyuri https://umarmansyuri.wordpress.com/category/rekayasasoftware/ 1/15 U mar Mansyuri ~ Tutorial | Modul | Materi Kuliah Category Archives: Rekayasa Software R ekayasa Software 1 2 Kamis Mei 2011 POSTED BY UMAR MANSYURI IN REKAYASA SOFTWARE ≈MENINGGALKAN KOMENTAR Definisi : Apa yang dimaksud dengan Rekayasa Perangkat Lunak / software engineering ? Ada banyak definisi mengenai rekayasa software (RPL) Tetapi hal‑hal mendasar tentang rekayasa perangkat lunak (RPL) adalah tentang : 1. Pengembangan perangkat lunak secara tim (kelompok) dan bukan secara perorangan 2. Memanfaatkan prinsip‑prinsip rekayasa dalam pengembangan system 3. Termasuk aspek teknis dan non teknis. Tujuan : Tujuan dari Rekayasa Perangkat Lunak (RPL) adalah sama seperti pengertian rekayasa dalam bidang‑bidang lainnya, tujuan dari Rekayasa Perangkat Lunak adalah menghasilkan produk perangkat lunak, dilihat dari segi biaya, secara efektif. Produk perangkat lunak dapat dikelompokkan menjadi dua jenis, yaitu : 1. Produk Generik, perangkat lunak, yang dikembangkan oleh sebuah perusahaan dengan ciri dapat berdiri sendiri dan dijual kepada siapapun dipasar terbuka, Artinya produk tidak dikhususkan untuk sebuah perusahaan saja. 2. Produk Spesifik, perangkat lunak pesanan sebuah perusahaan, dikembangkan khusus untuk perusahaan tersebut oleh pihak kontraktor. Sehingga produk menjadi khas hanya untuk perusahaan tersebut saja. Ciri dari perangkat lunak yang telah direkayasa dengan baik adalah : 1. Mudah dirawat , perangkat lunak harus dapat disesuaikan dengan perkembangan/ perubahan kebutuhan user. Artinya perangkat lunak harus terdokumentasi dengan baik, sehingga mudah untuk melakukan perubahan.

Transcript of Functional Cohesion Sequential Cohesion Communicational Cohesion Procedural Cohesion Temporal...

1426208831614.005 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 1/15

Umar Mansyuri ~ Tutorial | Modul | Materi Kuliah

Category Archives: Rekayasa Software

Rekayasa Software

12  Kamis  Mei 2011

POSTED BY UMAR MANSYURI IN REKAYASA SOFTWARE

≈ MENINGGALKAN KOMENTAR

Definisi :

Apa yang dimaksud dengan Rekayasa Perangkat Lunak  / software engineering  ?

Ada banyak definisi mengenai rekayasa software (RPL) Tetapi hal‑hal mendasar tentangrekayasa perangkat lunak (RPL) adalah tentang :

1.  Pengembangan perangkat lunak secara tim (kelompok) dan bukan secara perorangan2.  Memanfaatkan prinsip‑prinsip rekayasa dalam pengembangan system3.  Termasuk aspek teknis dan non teknis.

Tujuan :

Tujuan dari Rekayasa Perangkat Lunak (RPL) adalah sama seperti pengertian rekayasa dalambidang‑bidang lainnya, tujuan dari Rekayasa Perangkat Lunak adalah menghasilkan produkperangkat lunak, dilihat dari segi biaya, secara efektif.

Produk perangkat lunak dapat dikelompokkan menjadi dua jenis, yaitu :

1.  Produk Generik, perangkat lunak, yang dikembangkan oleh sebuah perusahaan denganciri dapat berdiri sendiri dan dijual kepada siapapun dipasar terbuka, Artinya produktidak dikhususkan untuk sebuah perusahaan saja.

2.  Produk Spesifik, perangkat lunak pesanan sebuah perusahaan, dikembangkan khususuntuk perusahaan tersebut oleh pihak kontraktor. Sehingga produk menjadi khas hanyauntuk perusahaan tersebut saja.

Ciri dari perangkat lunak yang telah direkayasa dengan baik adalah :

1.  Mudah dirawat , perangkat lunak harus dapat disesuaikan dengan perkembangan/perubahan kebutuhan user. Artinya perangkat lunak harus  terdokumentasi dengan baik,sehingga mudah untuk melakukan perubahan.

1426208831763.773 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 2/15

2.  Dapat diandalkan, perangkat lunak harus bekerja sesuai dengan yang diharapkan. Tidakmengakibatkan kerugian baik fisik maupun materi saat terjadi kegagalan.

3.  Efisien, perangkat lunak harus tidak memboroskan baik memory maupun processor cycle.4.  Mudah dipakai, perangkat lunak harus mempunyai user interface yang baik dengandokumentasi yang memadai.

Seorang Perekayasa perangkat lunak harus mempunyai kemampuan :

1.  Menguasai teknik‑teknik komputerisasi2.  Juga harus memiliki kemampuan berkomunikasi baik secara lisan maupun tertulis3.  Tanggap terhadap pentingnya manajemen proyak4.  Dapat memahami kesulitan yang dihadapi oleh pemakai (user) dalam berinteraksi denganperangkat lunak yang tidak mereka pahami bagaimana cara kerjanya.

Prototype

Ada dua macam prototype yaitu :

1.  Tipe pertama, prototype yang nantinya akan dikembangkan menjadi system operasional,bentuk ini sering disebut sebagai evolutionary protoyipe.

2.  Tipe kedua, prototype yang hanya akan menjadi cetak biru (blue print) dari system yangdikembangkan, bentuk ini sering disebut sebagai throwaway prototype.

Manfaat digunakannya prototype adalah membuat pengembang system dan pemakaimempunyai ide tentang bagaimana bentuk akhir dari system akan bekerja.

Adapun kegiatan menghasilkan prototype disebut juga dengan prototyping.

Tahap proses pembuatan prototype pertama  (evolutionary prototype)

Tahap‑tahap proses pembuatan prototype tipe pertama (evolutionary prototype)

1.  Tentukan kebutuhan. Tentukan apa kebutuhan user. Analis system mewawancarai useruntuk mendapatkan ide tentang apa yang diinginkan oleh user dari system yang akandikembangkan.

2.  Buat prototype. Analis system bekerja sama dengan ahli computer yang lain, denganmemanfaatkan satu atau beberapa alat bantu untuk pembuatan prototype,mengembangkan prototype.

3.  Evaluasi. Analis system memperkenalkan prototype kepada user, menuntun user untukmengenali karakteristik dari prototype. Dari kesempatan uji coba ini, user akanmemberikan pendapatnya pada analis system. Kalau prototype diterima dilanjutkan ketahap 4. Kalau ada perbaikan maka langkah berikutnya adalah mengulangi tahap1, 2 dan 3dengan pengertian  yang lebih baik tentang apa yang diinginkan oleh user.

4.  Gunakan Prototype. Prototype menjadi system yang operasional.

Tahap proses pembuatan prototype kedua (throwaway prototype)

Tahap‑tahap proses pembuatan prototype tipe kedua (throwaway prototype)

1.  Tentukan kebutuhan. Tentukan apa kebutuhan user. Analis system mewawancarai useruntuk mendapatkan ide tentang apa yang diinginkan oleh user dari system yang akan

1426208831791.223 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 3/15

dikembangkan.2.  Buat prototype. Analis system bekerja sama dengan ahli computer yang lain, denganmemanfaatkan satu atau beberapa alat bantu untuk pembuatan prototype,mengembangkan prototype.

3.  Evaluasi. Analis system memperkenalkan prototype kepada user, menuntun user untukmengenali karakteristik dari prototype. Dari kesempatan uji coba ini, user akanmemberikan pendapatnya pada analis system. Kalau prototype diterima dilanjutkanketahap 4. Kalau ada perbaikan maka langkah berikutnya adalah mengulangi tahap1, 2dan 3 dengan pengertian yang lebih baik tentang apa yang diinginkan oleh user.

4.  Program system. Pemrogram memanfaatkan prototype sebagai pedoman untukmengembangkan system yang operasional.

Persamaan dan perbedaan dari dua prototype tersebut adalah :

1.  Pada tipe pertama, prototype yang dibuat akan menjadi system operasional. Artinyaprototype dikembangkan sesuai dengan karakteristik dan bentuk akhir dari produk yangdiinginkan.

2.  Pada tipe kedua, prototype yang dibuat hanya akan memperlihatkan perkiraan bentuksistemnya saja, tidak berisi komponen‑komponen penting lainnya.

Manfaat prototyping untuk pengembangan system , untuk system skala kecil, prototypingdapat menggantikan daur hidup pengembangan system. Tetapi pada system skala besar,prototyping menjadi bagian dalam daur hidup pengembangan system.

Apa yang menarik dari prototyping ?

Baik user maupun pengembang system seringkali sangat menyukai prototyping karena :

1.  Terjadi peningkatan kumunikasi antara user dengan pengembang system2.  Analis system dapat bekerja lebih baik dalam menentukan kebutuhan user3.  Peningkatan peran user pada pengembangan system4.  System dapat dikembangkan lebih cepat5.  Tahap implementasi menjadi lebih mudah, karena user sudah mengenali apa yang dapatdihasilkan oleh system yang dikembangkan.

Hal‑hal negative yang terdapat dalam pemenfaatan prototyping antara lain :

1.  Keinginan untuk cepat selesai, seringkali mengabaikan definisi masalah, evaluasi maupundokumentasi yang baik

2.  User bisa berharap terlalu banyak dari system yang sedang dikembangkan3.  Prototyp (tipe yang pertama) seringkali bekerja tidak efisien.

Sebagai bagian dari daur hidup pengembangan system, prototyping dapat dimanfaatkan pada:

Tahapan Pemanfaatan

Perencanaan Penentuan masalah

Penentuan tujuan dari system

Analisa Penentuan kebutuhan informasi

1426208831829.101 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 4/15

Perancangan Mempersiapkan rancangan rinci

Evaluasi alternative konfigurasisistem

Ciri‑ciri prototype yang baik adalah :

1.  Beresiko tinggi. Problemnya tidak terstruktur dengan baik, perubahan‑perubahan seringterjadi sepanjang waktu, dan kebutuhan datanya tidak tentu.

2.  Dialog User – Komputer. Tampilan layar sebagai sarana interaksi antara user dengancomputer.

3.  Banyak User. Kesepakatan untuk rancangan rinci sulit diperoleh tanpa ebuah bentuk yangdapat diperlihatkan kepada user.

4.  Ingin cepat selesai. User ingin segera melihat bagimana system bekerja5.  SIngkat. Sistem hanya dipakai untuk jangka waktu yang singkat saja.6.  Inovatif.  Sistem adalah sesuatu yang sangat inovatif, me‑manfaatkan teknologi perangkatkeras maupun perangkat lunak yang canggih (terbaru).

7.  Berubah‑ubah. Sistem memahami apa yang diinginkan oleh user Aplikasi yang tidakmempunyai cirri‑ciri seperti diatas, umumnya dapat dikembangkan dengan Daur HidupPengangmabnag Sistem Tradisional (klasik).

Dur Hidup Pengembangan Sistem tradisional atau disebut juga Daur Hidup PengembanganSistem  klasik, model yang paling awal dipakai dan tetap banyak dipakai sampai saat iniModel Water Fall (air terjun), pola peralihan dari satu tahapan ke tahap lainnya  dapatdibayangkan seperti sebuab air terjun.

Kelemahan dari Daur Hidup Pengambangan Sistem Tradisional (klasik)  adalah :

1.  Bentuk kerja dari system yang dibuat baru dapat dilihat menjelang akhir dari jangka waktuproyek.

2.  Proyek jarang sekali berjalan sesuai dengan alur yang digambarkan. Pengulangan‑pengulangan seperti yang di modelkan seringkali harus dilakukan sehingga sering menimbulkan problema tersendiri.

3.  Acapkali sulit bagi user untuk menyatakan secara jelas semua kebutuhannya.  Sedangkanparadigm ini sangat membutuhkan hal tersebut diawal tahapannya.

Daur Hidup Pengebangan Sistem tradisional (klasik) dapat dilihat :

1.  Definisi Kebutuhan. Perangkat lunak seringkali adalah bagian dari system yang lebihbesar. Sehingga selalu diawali dengan menentukan  kebutuhan untuk semua komponensystem, baru kemudian mengalokasikan sebagian dari kebutuhan itu ke dalam perngkatlunak.

2.  Analisa Kebutuhan Perangkat Lunak. Penentuan spesifikasi kebutuhan system yangdiperlukan untuk program yang akan dibuat, fungsi‑fungsi apa saja yang harus ada, unjukkerja (performance) yang diharapkan dan antarmuka (interfacing) dengan system lain.

3.  Perancangan. Perancangan sesungguhnya adalah sejumlah langkah‑langkah yangdifokuskan pada atribut dari program yaitu : struktur data, arsitektur perangkat lunak,prosedur rinci, karakteristik dari antar muka. Perancangan menerjemahkan kebutuhanmenjadi gambaran bentuk program sebelum dikembangkan.

4.  Konstruksi. Rancangan harus diterjemahkan ke bentuk yang dipahami oleh mesin (kebentuk program). Rancangan yang dibuat rinci akan memudahkan tahap pembuatan

1426208831862.26 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 5/15

program.5.  Pengujian. Dimulai semenjak program selesai dibuat. Pengujian dilakukan untukmemastikan semua perintah berjalan dengan benar, dan untuk menemukan kesalahanyang mungkin ada. Pengujian dilakukan untuk memastikan apa yang dihasilkan telahsesuai dengan yang diinginkan.

6.  Perawatan. Tidak diragukan lagi bahwa suatu saat setelah digunakan oleh user, perangkatlunak akan membutuhkan perubahan. Perubahan dilakukan karena ditemukannyakesalahan, karena adanyanperubahan kebutuhan, atau karena perubahan lingkungan(system operasi, peralatan, dll). Perawatan adalah mengulang tahapan yang telah dilaluiuntuk perbaikan, dan bukan membuat sebuah program baru.

Proses pengembangan perangkat lunak dapat dikelompokkan  dalam tiga tahapan prosesyaitu :

1.  Definisi (definition)2.  Pengembangan (development)3.  Perawatan (maintenance)

Pada tahapan Definisi :

Tahap penetapan kebutuhan utama (kunci) dari system. Terfokus pada pertanyaan  apa(what). Informasi apa yang akan diproses, Fungsi dan unjuk kerja yang diinginkan, Antarmuka apa yang harus tersedia, Apa batasan rancangan yang ada, Validasi seperti apa yangdiperlukan.

Kegiatan yang dilakukan pada tahapan definisi yaitu :

1.  Analisa system. Analisa system menentukan peran dari masing‑masing komponen dalamsystem informasi yang terkomputerisasi, terutama tentang apa yang dapat dilakukan olehperangkat lunak yang akan dikembangkan.

2.  Perencanaan Proyek Perangkat Lunak. Setelah cakupan dari perangkat lunak ditetapkan,dan resiko telah dianalisa. Maka sumber daya mulai diatur, biaya diperkitakan dan tugasmaupun jadwal kerja ditetapkan.

3.   Analisa Kebutuhan Sistem. Cakupan perangkat lunak menentukan arah pengembangan,tetpi definisi yang lebih terinci dari lingkup informasi maupun kemampuan perangkatlunak sangat diperlukan sebelum pengembangan dapat dilakukan.

Pada tahapan Pengembangan :

Tahap ini diterfokuskan pada pertanyaan bagaimana (how). Pengembang perangkat lunakberusaha untuk menetapkan bentuk struktur data, dan arsitektur dari system yang akandirancang, bagaimana mengimplementasikan prosedur‑prosedur yang diinginkan, bagaimanarancangan diterapkan dalam bahasa pemrograman, bagaimana pengujian akan dilakukan.

Kegiatan yang dilakukan pada tahapan pengembangan yaitu :

1.  Perancangan perangkat lunak. Rancangan adalah menerjemahkan kebutuhan dariperangkat lunak ke dalam bentuk‑bentuk (kadang berbentuk grafik, table, atau kebentukspesifik lainnya) yang mendefinisikan tentang struktur data, arsitektur perangkat lunak,algoritman dari prosedur, dan karakteristik dari antar muka.

1426208831887.532 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 6/15

2.  Pengkodean (coding). Bentuk rancangan haruslah dialihkan ke bahasa computer (baikprocedural maupun on‑prosedural language), yang dapat dilaksanakan (dipakai bekerja)oleh computer).

3.  Pengujian Perangkat Lunak. Setelah perangkat lunak selesai, haruslah dilakukan pengujianuntuk menemukan penyimpangan yang ada baik pada fungsi‑fungsinya, logikanyamaupun pada penerapannya.

Pada tahapan Perawatan :

Tahap ini terfokuskan pada perubahan, yang dikaitkan dengan : Perbaikan kesalahan ,adaptasi yang diperlukan, sesuai dengan perubahan kebutuhan pemakai.

Kegiatan yang dilakukan pada tahapan perawatan yaitu :

1.  Koreksi. Sekalipun telah diterapkan aktifitas untuk menjamin kualitas dari perangkatlunak, tetp ada kemungkinan bahwa pemakai akan menemukan cacat di dalam perangkatlunak yang dibuat. Koreksi (corrective maintenance) dilakukan untuk memperbaikikesalahan‑kesalahan yang ditemukan.

2.  Adaptasi. Dalam perjalanan waktu, lingkungan (CPU, system operasi, peralatan) dimanaperangkat lunak dipakai akan mengalami perubahan. Adaptasi (adaptive maintenance)dilakukan untuk memungkinkan perangkat lunak tetap dipakai walaupun lingkupanlainnya telah mengalami perubahan.

3.  Peningkatan. Selama pemakaian perangkat lunak, pemakai akan merasakan kebutuhantambahan yang diperlukan. Peningkatan (perfective maintenance) dilakukan untukmenumbuhkan fungsi‑fungsi baru diluar cakupan kebutuhan awal dari perangkat lunak.

Manajemen Proyek Perangkat Lunak.

Manajemen Proyek Perangkat Lunak memberikan pengertian tentang :

Cakupan pekerjaan yang harus diselesaikanResiko yang harus dihindariSumberdaya yang dibutuhkanTugas‑tugas yang harus diselesaikanPatokan/pedoman yang harus diikutiBiaya yang dapat dimanfaatkanJadwal yang harus dipenuhi

Manajemen Proyek Perangkat Lunak sangat penting dalam kaitannya agar proyek bisaberjalan dengan sukses. MPPL dimulai sebelum pekerjaan teknis dimulai, berlangsung selamaperangkat lunak berevolusi dari konsep kebentuk nyata, dan hanya berakhir ketika perangkatlunak sudah tidak lagi dipakai.

Software Metrics

Software metrics mengandung pengertian pengukuran terhadap perangkat lunak terutamasekali yang berkaitan dengan produktifitas dan kualitas.

Seperti pengukuran dalam dunia nyata, maka ada dua kategori pengukuran perangkat lunakyaitu pengukuran langsung dan pengukuran tidak langsung.

1426208831906.731 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 7/15

Pengukuran langsung adalah

Menghitung banyaknya baris program yang dihasilkan (LOC – Line of Code)Kecepatan prosesUkuran memory yang dipakai

Pengukuran tidak langsung adalah

FungsionalitasKualitasKompleksitasEfisienKehandalan

Pengukuran terhadap perangkat lunak bertujuan untuk :

1.  Mengetahui kualitas dari perangkat lunak2.  Menilai produktifitas pembuat perangkat lunak3.  Menilai manfaat (dilihat dari sisi produktifitas dan kualitas) yang diperoleh daripemanfaatan metoda rekayasa yang baru

4.  Dijadikan dasar melakukan perkiraan5.  Membantu memutuskan apakah diperlukan peralatan baru ataupun pendidikantambahan.

Kategori yang terdapat didalam Software Metric

1.  Productivity Metrics – difokuskan pada keluaran dari proses rekayasa perangkat lunak2.  Quality Metrics – memperlihatkan indikasi sejauh mana secara langsung maupun tidakperangkat lunak sesuai dengan kebutuhan dari pelanggan

3.  Technical Metrics – difokuskan pada karakteristik dari perangkat lunak, kerumitan logikamaupun tingkat modularity.

4.  Size Oriented Metrics – adalah pengukuran langsung terhadap perangkat lunak. Dipakaiuntuk memperoleh nilai keluaran dan kualitas dari rekayasa perangkat lunak, misalnyaLOC/KLOC (Line Of Code / Kilo Line Of Code). Besar kecilnya perangkat lunak yangdikembangkan dilihat dari berapa banyak baris instruksi yang harus ditulis (LOC – Line OfCode). Atau KLOC – Kilo Line Of Code). Produktivitas pengembang perangkat lunak dihitung dengan formula :

Produktivitas  = KLOC / orang

Artinya banyaknya baris instruksi dibagi dengan jumlah yang mengerjakannya.

Kualitas perangkat lunak dihitung dengan formula

Kualitas = Kesalahan /KLOC

Artinya jumlah kesalahan yang ditemukan setelah perangkat lunak dipakai dibagi denganbanyaknya baris instruksi.

1.  Function Oriented Metrics – adalah pengukuran tidak langsung terhadap perangkat lunak.Difokuskan pada fungsionalitas dan utilitas dari program. Function Point diperoleh dari

1426208831925.034 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 8/15

penghitungan terhadap nilai‑nilai yang dapat diukur dari perangkat lunak, dan evaluasiterhadap tingkat kerumitan perangkat lunak.

Function Point diperoleh dari menghitung lima karakteristik yang terdapat di dalam sebuahperangkat lunak. Kelima karakteristik tersebut adalah :

1.  Jumlah user input  – semua user input yang dibutuhkan oleh tiap aplikasi dihitung.Bedakan user input dari inquiry.

2.  Jumlah user output – semua keluaran dihitung. Keluaran disini maksudnya adalahlaporan, tampilan layar, pesan kesalahan dll.

3.  Jumlah user enquiries – semua enquiry dihitung. Inquiry adalah masukan secara on‑lineyang mengakibatkan respon keluaran secara on‑line

4.  Jumlah file – semua file yang ada dihitung, sekalipun file‑file tersebut pada akhirnyamembentuk sebuah basis data.

5.  Jumlah antar muka eksternal – semua bentuk antarmuka (bias file di dalam tape atau disk)terhadap system yang lain.

Feature – Oriented Metrics – sama seperti Function Oriented Metrics adalah pengukuran tidaklangsung terhadap perangkat lunak. Difokuskan pada pengukuran terhadap fungsionalitasdan utilitas dari program. Terutama untuk aplikasi dengan algoritma yang rumit, sepertimisalnya yang terdapat pada aplikasi real‑time, process control dan embedded software. PadaFeature Oriented Metrics juga dikenal Feature Point.

Feature Point diperoleh dari menghitung enam karakteristik yang terdapat didalam sebuahperangkat lunak. Keenam karakteristik tersebut adalah :

1.  Jumlah user input – semua user input yang dibutuhkan oleh tiap aplikasi dihitung.Bedakan user input dari inquiry

2.  Jumlah user output – semua keluaran dihitung. Keluaran disini maksudnya adalahlaporan, tampilan layar, pesan kesalaah dll

3.  Jumlah user enquiries – semua enquiry dihitung. Inquiry adalah masukan secara on‑lineyang mengakibatkan respon keluaran secara on‑line

4.  Jumlah file – semua file yang akan dihitung, sekalipun file‑file tersebut pada akhirnyamembentuk sebuah basis data

5.  Jumlah antarmuka ekseternal – semua bentuk antamuka (bias file didalam tape atau disk)terhadap system yang lain.

6.  Jumlah algoritma – semua algoritma penanganan permasalahan yang terdapat di dalamprogram (manipulasi matrix, penanganan interrupt, dll).

1.  Human Oriented Metrics – memperlihatkan tingkah laku manusia saat mengembangkanperangkat lunak, dan persepsi pengembang terhadap efektifitas dari metode dan tool yangdipakai.

Faktor‑faktor yang harus dimiliki oleh sebuah pernagkat lunak untuk dapat dikatakanmempunyai kualitas yang baik. Yaitu :

1.  Correctness – bekerja dengan baik dan benar2.  Maintainability – mudah dirawat : baik itu diperbaiki, disesuaikan ataupun ditingkatkan.3.  Integrity – mempunyai tingkat pengamanan yang baik, dan tahan gangguan4.  Usabiity – mudah digunakan, ramah terhadap pemakai (user friendly)

1426208831944.196 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 9/15

Correctness

Adalah perangkat lunak bekerja dengan benar dan baik. Maksudnya adalah tingkat kebenaranyang dicapai oleh perangkat lunak untuk melaksanakan fungsi‑fungsi yang telah ditentukan.Nilai Correctness dihitung dengan : Kesalahan /KLOC (Kilo Line of Code). Kesalahan adalahpenyimpangan yang ditemukan / diperoleh dari laporan user setelah  perangkat lunakdipakai.

Maintainability

Adalah mudah dirawat; baik itu diperbaiki bila ada kesalahan, disesuaikan bila dibutuhkanperubahan, ataupun ditingkatkan bila ada fungsi‑fungsi baru yang ingin ditambahkan.Pengukuran secara tidak langsung untuk maintainability adalah dengan MTTC (mean time tochange). Waktu yang dibutuhkan untuk menganalisa perubahan, merancang perubahan yangdiinginkan, implementasi perubahan tersebut, pengujian, dan mendistribusikan kepada user.Perangkat lunak yang mudah dirawat akan mempunyai nilai MTTC yang kecil.

Integrity

Adalah mempunyai tingkat pengamanan yang baik dan tahan gangguan. Maksudnya adalahmempunyai tingkat security yang baik terhadap gangguan yang disengaja, maupun yangtidak disengaja dari hacker maupun virus computer. Gangguan  bias terjadi pada program,data maupun dokumen.

Usability

Adalah mudah digunakan ; ramah terhadap pemakai (user friendly). Usability adalah usahauntuk ramah terhadap pemakai, hal ini bias diukur dari empat karakteristik yang ada yaitu :kemampuan fisik maupun intelektual minimal yang harus dimiliki waktu yang dibutuhkanuntuk menguasai peningkatan produktifitas yang dicapai penerimaan oleh user.

Pada perencanaan Proyek perangkat lunak ada dua aktifitas utama yang dilakukan yaitu :

1.  Menentukan Cakupan Perangkat Lunak (software scope) yang meliputi :1.  Function – fungsi‑fungsi apa saja yang harus ada2.  Performance – unjuk kerja seperti apa yang diinginkan3.  Constraint – keterbatasan perangkat lunak yang diakibatkan oleh perangkat keras yangtersedia, ataupun system lain yang ada.

4.  Interface – antarmuka dengan system lainnya5.  Reliability – tingkat keandalan yang dikehendaki

1.  Estimasi / perkiraan kebutuhan sumber daya. Sumber daya yang dimaksud terdiri dari :1.  Perangkat keras2.  Perangkat lunak3.  Manusia / pekerja informasi

Rencana Proyek Perangkat Lunak

Rencana proyek perangkat lunak berisi : sumber daya yang tersedia untuk proyek . uraianpekerjaan, jadwal pelaksanaan.

1426208831962.086 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 10/15

Langkah persiapan dalam merekayasa perangkat lunak yakni :

1.  Definisi Kebutuhan Sistem (system requirement definition) adalah pernyataan, biasanyadalam bentuk kalimat, yang menyatakan apa yang diharapkan oleh user dari system yangakan dikembangkan.

2.  Spesifikasi Kebutuhan Sistem (system requirement specification) adalah dokumenmenjelaskan secara rinci tentang apa yang diinginkan user dari system yang akandikembangkan. Dokumen ini harus menjelaskan secara rinci  dan tepat sehinggadimengerti  secara teknis baik oleh user maupun pihak pengembang.

3.  Spesifikasi Perangkat Lunak (software specification) adalah deskripsi abstrak dariperangkat lunak, yang akan menjadi dasar dalam perancangan dan pengembangan. Harusada kaitan yang jelas antara dokumen ini dengan Spesifikasi Kebutuhan Sistem. Tetapi[erbedaan yang nyata adalah dokumen ini ditujukan terutama sekali kepada perancangperangkat lunak, dan bukan untuk user maupun pihak manajemen.

Kebutuhan user dapat diformulasikan berdasarkan tahapan‑tahapan seperti pada diagramberikut :

Tahapan yang terdapat pada kegiatan merancang (design) perangkat lunak beserta hasil daritiap tahapan dapat dilihat pada diagram berikut :

 Rancangan arsitektur – sub system –sub system yang membentuk system secarakeseluruhan diidentifikasikan dan di dokumentasikanSpesifikasi Abstrak – untuk tiap sub system, spesifikasi abstrak tentang kemampuan yangdiinginkan dan lingkungan operasinya ditentukan.Rancangan antarmuka – untuk tiap sub system, antarmuka dengan sub system lainnyadirancang dan di dokumentasikanRancangan komponen – kemampuan dari tiap sub system disebarkan ke dalam komponen‑komponen yang membentuk sub systemRancangan struktur data – struktur data yang dipakai didalam system dirancang dan dispesifikasikan secara rinciRancangan algoritma – algoritma untuk pelaksanaan tugas di rancang dan dispesifikasikan secara rinci

Ada dua pendekatan / strategi yang dapat diterapkan dalam merancang perangkat lunakadalah rancangan yang berorientasi Fungsional (Function Oriented design) dan Rancanganyang berorientasi Objek (Object Oriented Design)

Rancangan berorientasi Fungsional (Functional Oriented Design) adalah system dirancangdengan pendekatan fungsional, mulai dari rancangan global kemudian menurun secarabertahap sampai diperoleh rancangan rinci. Proses disusun secara sentralisasi, dan dibagi‑bagi kedalam tiap fungsi. Strategi ini yang dipakai pada Rancangan Terstruktu Rancangan yang berorientasi Objek (Object Oriented Design) adalah system dilihat sebagaikumpulan daro objek. Proses disusun secara desentralisasi dan tiap objek mengaturinformasinya sendiri. Objek berkomunikasi dengan objek lainnya dengan jalan salingmempertukarkan informasi. Ide dasar dari rancangan yang berorientasi objek adalahmenyembunyikan informasi (Information Hiding).

Tergantung dari aplikasi dan kebutuhan, rancangan yang baik adalah

1426208831980.907 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 11/15

Rancangan yang memungkinkan dihasilkannya program yang efisienRancangan minimal yang pada implementasinya dapat dilakukan dengan sangat kompakRancangan yang akan sangat mudah dirawat (maintainable design)

Rancangan yang mudah dirawat (maintainable design) adalah rancangan yang siapn (mudah)diadaptasi, dalam pengertian diubah fungsi

Apa yang dimaksud dengan Software Reusability ?

Software Resaubility adalah karakteristik penting dari sebuah komponen perangkat lunak.Maksudnya adalah komponen harus dirancang dan di implementasikan sedemikian rupa agardapat dimanfaatkan oleh beberapa program.

Apa yang dimaksud dengan System Software ?

System Software adalah sekumpulan dari program yang dibuat untuk melayani/mengaturprogram‑program lainnya. Dengan karakteristik umum yaitu banyak berinteraksi denganperangkat keras computer. Contohnya : compiler, editor, file management utility, operationsystem, driver, telecommunication processor.

Apa yang dimaksud dengan real‑time software ?

Real‑time software adalah perangkat lunak yang memonitor, menganalisa, mengontrolkejadian atau peristiwa yang sedang terjadi.

Komponen dari real‑time software  terdiri daro :

1.  Komponen penerima data, mengumpulkan dan memformat informasi dari lingkunganluar.

2.  Komponen penganalisa, yang menghasilkan informasi seperti yang dibutuhkan olehaplikasinya.

3.  Komponen control/output, yang member respon/tanggapan untuk lingkungan luar4.  Komponen pengendali, mengkoordinasikan komponen lainnya agar dapat memberikanrespon secara real‑time.

Apa yang dimaksud dengan interaktif software ?

Interaktif Software adalah perangkat lunak yang didalam kegiatn/aktifitas prosesnyamembutuhkan respon dari pemakai.

Apa yang dimaksud dengan Perangkat Lunak / software ?

Perangkat  lunak bukan hanya berarti program untuk aplikasi atau produk tertentu. Tetapijuga termasuk dokumentasi yang dibutuhkan untuk memasang (install), memakai,mengambangkan dan memlihara program tersebut.

Kohesi adalah salah satu nilai untuk mengukur seberapa jauh keterkaitan antara aktifitas didalam sebuah modul dengan aktifitas di dalam modul yang lainnya. Semakin terpisah aktifitasdi dalam sebuah modul dengan aktifitas pada modul lainnya, semakin tinggi (baik) kohesinya.

Kopling adalah salah satu nilai untuk mengukur seberapa bersih modul‑modul rancangan

1426208831997.278 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 12/15

Kopling adalah salah satu nilai untuk mengukur seberapa bersih modul‑modul rancanganterpisah satu dengan lainnya (kualitas hubungan antar modul). Semakin terpisah sebuahmodul dari modul lainnya semakin rencah (baik) koplingnya.

Kohesi dan kopling adalah sama‑sama cara untuk mengukur seberapa baik sebuah rancangantelah diuraikan kedalam modul‑modul yang lebih rinci. Tingkat Kohesi diantara modul‑modulrancangan seringkali menentukan bagaimana tingkat kopling yang terjadi. membuat modul‑modul dengan tingkat kohesi yang tinggi adalah cara terbaik untuk menimalkan kopling yangterjadi diantara modul‑modul yang ada.

Jenis‑jenis kohesi menurut tingkatan dari yang paling baik :

1.  Functional Cohesion2.  Sequential Cohesion3.  Communicational Cohesion4.  Procedural Cohesion5.  Temporal Cohesion6.  Logical Cohesion7.  Coincidental Cohesion

Sebuah modul dikatakan mempunyai Functional Cohesion bila komponen yang terdapatdidalam modul tersebut hanya melaksanakan / mengerjakan satu tugas saja.

Sebuah modul dikatakan mempunyai Sequential Cohesion bila keluaran (output) dari modultersebut menjadi masukan (input) bagi modul lainnya

Sebuah modul dikatakan mempunyai Communicational Cohesion bila komponen‑komponendi dalam modul beroperasi dengan masukan ataupun atau keluaran yang sama.

Sebuah modul dikatakan mempunyai Procedural Cohesion bila terdapat komponen didalammodul yang terlibat pada beberapa aktifitas yang berbeda, ataupun aktifitas yang tidak salingberhubungan.

Sebuah modul dikatakan mempunyai Temporal Cohesion bila sejumlah komponen yangterkait karena kesamaan waktu terkelompok didalam sebuah modul

Sebuah modul dikatakan mempunyai Logical Cohesion bila semua komponen didalam modulmelaksanakan proses yang serupa.

Sebuah modul dikatakan mempunyai Coincidental Cohesion bila beberapa komponen yangmelaksanakan tugas yang berbeda dikumpulkan dalam sebuah modul.

Salah satu cara untuk menentukan tingkat kohesi sebuah modul adalah dengan menggunakanpenelusuran dari diagram pohon seperti yang terlihat pada penjelasan dibawah ini. Denganmelakukan penelusuran berdasarkan kondisi yang ditemui pada akhirnya dapat ditentukankohesi yang terdapat di dalam sebuah modul.

Ada tiga kelompok besar kopling yaitu :

1.  Normal Coupling2.  Common Coupling

1426208832013.2 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 13/15

3.  Content Coupling

Dalam konsep rancangan yang baik maka :

1.  Normal Coupling adalah kopling yang baik dan dapat diterima2.  Common Coupling adalah kopling yang tidak dapat diterima3.  Content Coupling adalah kopling yang tidak boleh ada

Kopling yang termasuk di dalam kelompok Normal Coupling adalah :

1.  Data Coupling2.  Stamp Coupling3.  Control Coupling

Dua modul dikatakan mempunyai Data Coupling bila saling berkomunikasi melaluiparameter dan tiap parameternya adalah sebuah data elementer.

Dua modul dikatakan mempunyai Stamp Coupling bila saling berkomunikasi melaluisekumpulan data yang terstruktur (record).

Dua modul dikatakan mempunyai Control Coupling bila sebuah modul mengirimkaninformasi dengan tujuan mengontrol logika didalam modul yang lain.

Dua modul dikatakan mempunyai Common Coupling atau kadang disebut juga GlobalCoupling bila menggunakan struktur data yang ataupun elemen data yang berada padasebuah area data global.

Dua modul dikatakan mempunyai Content Coupling atau kadang disebut juga PathologicalCoupling bila dari dalam sebuah modul terdapat perintah yang langsung menunjuk kepadainstruksi didalam modul lainnya.

Rancangan Berorientasi Objek (Object Oriented Design)

Dasar dari rancangan berorientasi objek adalah penyembunyian informasi (information hiding)

Rancangan berorientasi objek mempunyai tiga karekteristik utama yaitu :

Tidak ada area data yang dipakai bersamaan. Objek berkomunikasi dengan salingmempertukarkan berita (messages), bukan dengan variable. Hal ini menurunkan tingkatkopling secara umum, karena tidak akan terjadi perubahan terhadap informasi yangdipakai bersama‑sama.Objek adalah entitas yang setiap saat dapat dimodifikasi. Karena semua status maupuninformasi berada didalam objek tersebut.  Tidak akan pernah terjadi sebuah informasisecara tidak sengaja dipakai oleh objek yang lain.Objek bisa tersebar dimana saja, dan eksekusi terhadap objek bisa berlangsung secarasequensial maupun paralel.

Rancangan Berorientasi Objek mempunyai keunggulan antara lain :

1.  Sistem yang dikembangkan akan mudah dirawat, karena objek bersifat independen. Objekbisa dipahami dan dimodifikasi sebagai sesuatu yang berdiri sendiri (stand‑alone entity).

1426208832037.756 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 14/15

Perubahan yang dilakukan maupun penambahan aktifitas didalam objek tidak akanmempengaruhi objek yang lain.

2.  Objek adalah sebuah komponen yang dapat dipakai ulang (reusable). Rancangan dapatmemanfaatkan objek‑objek yang telah dikembangkan untuk rancangan yang sebelumnya(lainnya).

3.  Untuk sistem tertentu, objek seringkali adalah gambaran dunia nyata. Hal inimeningkatkan kemudahan memahami sistem yang dirancang.

Rancangan berorientasi Objek  tidak terlepas dari kelemahan juga, kelemahan utamanyaadalah : Mengidentifikasi sebuah objek didalam sistem kadang kala tidak mudah. Karenasecara alami sistem seringkali dilihat dari segi fungsinya, sehingga mengadaptasikan kedalampandangan sebagai sebuah objek menjadi tidak mudah.

Rancangan Berorientasi Fungsional (Functional Oriented Design)

Pada rancangan berorientasi fungsional sistem dilihat sebagai kumpulan dari objekyang salingberinteraksi.

Rancangan yang berorientasi fungsional adalah :

Rancangan menggunakan strategi dimana sistem didekomposisikan kedalam sejumlahfungsi yang saling berinteraksi, dimana tiap fungsi melakukan tugasnya masing‑masing.fungsi mempunyai status yang sifatnya lokal, tetapi status dari sistem bersifat sentralisasidan dapat diakses oleh semua fungsi yang ada.

Rancangan berorientasi fungsional menggunakan dua tool yang utama yaitu :

1.  Diagram Aliran Data (Data Flow Diagram) untuk emnjelaskan tentang logika prosesterhadap data

2.  Diagram Terstruktur (Structure Chart) untuk memperlihatkan struktur dari perangkatlunak

Diagram Aliran Data menggambarkan bagaimana data di transformasikn menjadi keluaranmelalui serangkaian fungsi‑fungsi yang melakukan transformasi.

Diagram Aliran Data mempunyai keunggulan utama yaitu dapat memperlihatkantransformasi yang terjadi dengan tidak membuat asumsi tentang bagaimana implementasiakan dilakukan. Contohnya adalah, sistem yang dirancang bisa diimplementasikan sebagaisebuah program saja, artinya memanfaatkan unit‑unit program untuk mengimplementasikantiap transformasi yang ada. Atau dapat juga diimplementasikan sebagai sejumlah modul yangsaling berinteraksi.

Diagram Terstruktur (Structure Chart) adalah bentuk grafik yang memperlihatkan strukturdari komponen sistem secara hierarki. Artinya memperlihatkan bagaimana elemen dariDiagram Aliran Data (Data Flow Diagram) dapat direalisasikan sebagai unit‑unit program.

Diagram Terstruktur dapat dipakai sebagai deskripsi program secara visual. Sekalipun hanyamemperlihatkan organisasi rancangan secara statis.

Rancangan Antarmuka Pemakai (User Interface)

1426208832058.813 Rekayasa Software | Umar Mansyuri

https://umarmansyuri.wordpress.com/category/rekayasa­software/ 15/15

Prinsip‑prinsip yang harus diterapkan dalam merancang Antarmuka Pemakai (User Interface)adalah :

1.  Antarmuka (interface) harus memakai  konsep dan istilah yang telah dikenal oleh user.2.  Antarmuka (interface) harus konsisten3.  Lakukan verifikasi untuk kegiatan yang destruktif4.  User jangan sampai dikejutkan (surprise) oleh sistem yang dipakai5.  Antarmuka (interface) harus mempunyai mekanisme yang memungkinkan userterselamatkan dari kesalahan yang dilakukannya

6.  Antarmuka (interface) harus memiliki fasilitas petunjuk untuk user

EVALUASI :

Untuk menyegarkan kembali materi sebelumnya dan sebagai evaluasi jawablah pertanyaandibawah ini :

1.  Apa pengertian dari Software Engineering serta tujuannya !2.  Sebutkan dan jelaskan produk dari RPL !3.  Apa pengertian dari Software Metric !4.   Sebutkan dan jelaskan langkah persiapan dalam merekayasa perangkat lunak !5.  Apa pengertian dari System Software !6.  Apa yang disebut dengan Perangkat Lunak !7.  Apa yang anda ketahui tentang Kohesi dan Kopling !8.  Sebutkan jenis‑jenis kohesi !9.  Prinsip‑prinsip apa saja yang harus diterapkan dalam merancang Antarmuka Pemakai(User Interface)

Berikan komentar untuk jawaban anda !

Blog di WordPress.com. The Chateau Theme.

Ikuti

Follow “Umar Mansyuri”

Buat situs dengan WordPress.com