REKAYASA PERANGKAT LUNAK ORIENTASI OBYEK

GARIS BESAR PROSES PEMBELAJARAN (GBPP)

REKAYASA PERANGKAT LUNAK ORIENTASI OBYEK

 

TUJUAN MATA KULIAH :

Menguji kemampuan mahasiswa tentang pengertian pemahaman tentang pembuatan suatu perangkat lunak / program aplikasi, dengan dasar analisa kebutuhan untuk diterapkan sebagai perangkat bantu dalam memecahkan permasalahan di dunia nyata.

TUJUAN POKOK BAHASAN
1. Memberikan pengertian dan gambaran apa yang dimaksud dengan rekayasa perangkat lunak Orientasi Obyek serta ruang lingkupnya I. Pendahuluan

1.1 Pendahuluan / overview mata kuliah

a. Pengertian

b. Tujuan

c. Ruang Lingkup

1.2 Aturan-aturan perkuliahan, tugas, kuis dan penilaian

1.3 Kupas buku referensi yang digunakan

 

 
2. Memberikan gambaran tentang Rekayasa Perangkat Lunak yang sedang trend ataupun topik-topik penelitian Rekayasa Perangkat Lunak yang diramalkan menjadi trend II. Rekayasa Perangkat Lunak yang diramalkan menjadi trend

2.1 Rekayasa Perangkat Lunak yang sedang trend

2.2 Topik-topik penelitian Rekayasa Perangkat Lunak yang diramalkan menjadi trend

a. OOSE (Object Oriented Software Engineering)

 
3. Untuk memberikan gambaran mengenai konsep dan proses Formal method, Clean Room, Reengineering.

 

III. Method Perangkat Lunak

3.1 Formal method

3.2 Clean Room

3.3 Reengineering

 
4.  Untuk memberikan gambaran tentang konsep Aspek Manajemen dari Rekayasa Perangkat Lunak.

 

IV. Konsep Aspek Manajemen

4.1 Konsep Aspek Manajemen dari Rekayasa Perangkat Lunak

4.2 Tipe dan ukuran manajemen perangkat lunak

4.3 Atribut kualitas manajemen perangkat lunak

 

 
5.Untuk memberikan gambaran mengenai model dan produk perangkat lunak V. Produk Perangkat Lunak

5.1 Eksplorasi produk perangkat lunak

5.2 Model-model produk perangkat lunak

5.3 Produk perangkat lunak yang diramalakan menjadi trend.

 

 
6. Untuk memberikan gambaran tentang Proses Pembuatan dan Proyek Perangkat Lunak, Software Quality Assurance (SQA) VI. Peroyek Perangkat Lunak

6.1 Model-model pengembangan perangkat lunak

6.2 Tipe dan ukuran proyek perangkat lunak

6.3 Metode perancangan perangkat lunak berorientasi obyek

a. Coad-Yourdan

b. UML

6.4 Implementasi perangkat lunak / tahap-tahap pembuatan perangkat lunak

6.5 Software Quality assurance (SQA)

 

 

 

Referensi

1. Fairley, R.E. Software Engineering Concepts. New York : McGraw­Hill, 1990.

2. Ian Sommevile, Software Engineering. Addison­Wesley Publishing Co. Inc. 1982.

3. Pressman, RS. Software Engineering : A Practioner’s Approach. New York : McGraw­Hill, 1992

4. Pressman, Roger S. Software Engineering A practitioner’s approach. McGraw Hill. 2001

5. Lethbridge, Timothy C. Object-Oriented Software Engineering. Mc Graw Hill. 2002

 

STRATEGI PEMBELAJARAN

Acara Perkuliahan meliputi penyajian materi dan tanya jawab produk perangkat lunak dan isue terkini tentang RPL Orientasi Obyek, studi kasus dan penyajian contoh-contoh persoalan yang  melibatkan partisipasi aktif mahasiswa dalam setiap acara perkuliahan.  Partisipasi dari mahasiswa meliputi tanya jawab , latihan-latihan soal / Quiz dan  diskusi baik secara kelompok maupun antar mahasiswa.

TAGIHAN BAGI PESERTA KULIAH :

Mahasiswa diharuskan  mengikuti perkuliahan pada hari dan waktu yang telah ditentukan. Dan mahasiswa wajib mengikuti kegiatan-kegiatan evaluasi/review perkulihan yang meliputi Tugas/PR, Paper, Quiz, Ujian Tengah Semester (UTS) dan Ujian Akhir Semester (UAS) yang merupakan unsur-unsur untuk mendapatkan Nilai Akhir.

PROSEDUR UNTUK MENDAPATKAN NILAI  AKHIR

Pada setiap akhir dari pembahasan modul akan dilakukan evaluasi terhadap kemampuan dan kemajuan belajar untuk setiap mahasiswa. Hasil evaluasi belajar dinyatakan dalam Quiz, dan nilai dalam setiap Quiz selanjutnya akan dikomulatifkan sampai terbentuk Nilai Akhir yang terdiri dari unsur-unsur Absen, Tugas/PR, Paper, Quiz, Ujian Tengah Semester dan Ujian Akhir Semester (UAS). Kemudian Nilai Akhir yang telah diperoleh oleh masing-masing mahasiswa dikelompokkan dalam golongan Nilai Huruf mutu yang persentasinya sebagai berikut :

1. Absensi                         5  %                          4. Quiz              5  %

2. Tugas/PR                       5  %                          5. UTS              30  %

3. Paper / Makalah          10  %                             6. U A S                        45  %

Adapun Pengelompokan dari Nilai Akhir menjadi Nilai Huruf adalah sebagai berikut :

Nilai Akhir Nilai Huruf Bobot Keterangan
80 – 100

67 – 79

55 – 66

40 – 54

< 40

A

B

C

D

E

4

3

2

1

0

Sangat Baik

Baik

Cukup

Kurang

Tidak Lulus

 

A.1   Review RPL-OO

 

Apa itu RPL dan RPL-OO?

RPL rekayasa perangkat lunak adalah nyawanya informatika dimana permasalahan di dunia nyata yang sifatnya komplek yang akan di angkat / rekayasa kedalam perangkat lunak harus terlebih dahulu melewati proses-proses tertentu yaitu Analisis, Perancangan, dan akhirnya di Implementasikan. Materi RPL kebanyakan ada pada tahapan Analisis dan Perancangan.

Dalam Analisis dan Perancangan suatu RPL ini ada dua Mazhab yang mungkin saling bertentangan. Keduanya dapat dilihat berdasarkan sudut pandang yang dipakai, misalnya Analisa dan Perancangan untuk Sistem Informasi atau Analisa dan Perancangan Perangkat Lunak yang akan di-Implementasi-kan. Dalam RPL ini kita akan melihatnya dari sudut pandang yang ke dua.

RPL-OO rekayasa perangkat lunak Orientasi Obyek adalah kelanjutan dari RPL dimana setelah tahapan Implementasi, perangkat lunak yang sudah jadi tidak ditinggal begitu saja tapi perlu tahapan-tahapan lain misalnya, Reengineering untuk perekayasaan ulang apabila sistem yang sudah jadi tersebut akan dikembangkan lagi.

Bahasan mengenai RPL dan RPL-OO memiliki satu tujuan yaitu tentang pembuatan suatu perangkat lunak/ program aplikasi, dengan dasar analisa kebutuhan untuk diterapkan sebagai perangkat bantu dalam memecahkan permasalahan di dunia nyata.

Mengapa ada RPL dan RPL-OO?

Sebenarnya jika dilihat dari tujuannya cukup RPL saja. Tapi dikarenakan terlalu banyak pendapat, metode dan parameter penting dalam proses rekayasa perangkat lunak, maka dijadikan 2 matakuliah dengan bahasan yang berbeda. Dulu cukup dengan RPL saja tapi karena perkembangan metode baru maka bahasannyapun menjadi banyak.

RPL akan difokuskan pada Analisis dan Perancangan PL menggunakan pendekatan  terstruktur (Structured Approach). Sedangkan RPL-OO akan difokuskan menggunakan pendekatan objek (Object Oriented Approach)

Perbedaan dan Persamaan?

Keduanya memiliki perbedaan dalam hal Analisis dan sangat terlihat pada Perancangan sebelum tahapan Implementasi. Keduanya memiliki persamaan yaitu untuk membantu menterjemahkan permasalahan dunia nyata kedalam bentuk-bentuk yang mudah dimengerti.

Tahapan perancangan PL?

Dimulai dari FlowChart

Structured Approach: Context Diagram, Entity Relationship Diagram, Data Flow Diagram dan Dekomposisinya, Event List, Data Dictionary.

Object Approach: UseCase Diagram, Class Diagram, Component Diagram, Physial Diagram

 

Bahasan Utama?

Bahasan utama dalam RPL-OO ini adalah Object Approach, ada banyak metode

–         Shlaer/Mellor Method [Shlaer-1988]

–         Coad/Yourdan Method [Coad-1991]

–         Booch Method [Booch-1991]

–         OMT Method [Rumbaugh-1991]

–         Wirfs-Brock Method [Wirfs-Brock-1990]

–         OOSE Objectory Method [Jacobson-1992]

–         UML (Unified Modeling Language) [UML-1997]

Kita akan fokuskan ke UML karena UML adalah penggabungan dari beragam OO yang berbeda paham tapi ada sedikit persamaan. Di kembangkan oleh OMG, Object Management Group,Inc dengan tujuan penyatuan VISI mengenai OO.

 

 

Bab I.

PENDAHULUAN

Sebelum dimulai, perlu diingatkan kembali mengenai Rekaya Perangkat Lunak. Rekayasa Perangkat Lunak adalah  Suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem setelah digunakan. Pada mata kuliah sebelumnya barangkali Anda memahami rekayasa perangkat lunak menggunakan pendekatan terstruktur (Data Oriented Approach). Sedangkan pada bahasan-bahasan berikutnya kita akan membahas rekayasa perangkat lunak menggunakan pendekatan objek (Object Oriented Approach).

 

  1. A.   Perangkat Lunak Sebagai Suatu Produk

Perangkat lunak komputer (PL),  telah diakui merupakan salah satu penggerak kegiatan industri, bisnis, dan berbagai sektor kehidupan. Perangkat lunak merupakan mesin yang membantu kehidupan manusia dalam pengambilan keputusan. Perangkat lunak menjadi basis pengembangan keilmuan modern dan proses pemecahan masalah.

Perkembangan perangkat lunak yang sangat pesat ini telah mempengaruhi pemikiran masyarakat. Masyarakat sadar dan melihat perangkat lunak sebagai fakta teknologi yang bermanfaat bagi kehidupan. Manusia mempertaruhkan pekerjaan mereka, kenyamanan, hiburan, keputusan, dan berbagai kepentingan kehidupan mereka kepada perangkat lunak.

Saat ini, perangkat lunak memainkan dua peran. Perangkat lunak merupakan sebuah produk dan pada saat yang bersamaan, PL merupakan sarana atau alat untuk menghasilkan produk. Produk, dapat kita interpretasikan sebagai segala sesuatu yang dapat dihasilkan oleh PL, contohnya layanan.

Sebagai sebuah produk, PL memberikan kemampuan komputasi pada sebuah sistem perangkat keras (komputer).  Perangkat lunak juga merupakan agen pengubah informasi (information transformer) – memproduksi, mengatur, mengakuisisi data, memodifikasi, menyampaikan, dan mengirimkan informasi.

Sebagai sebuah sarana untuk menghasilkan sebuah produk, PL berperan sebagai basis kontrol sistem komputer (sistem operasi), komunikasi informasi (networks), dan sebagai penciptaan serta kontrol program-program lain (software tools dan environments).

A.1 Pandangan Industri Mengenai PL

Pada awal komputasi elektronik, sistem berbasis komputer dikembangkan dengan manajemen pengembangan sistem yang berorientasi pada perangkat keras (hardware). Manajer proyek saat itu, memfokuskan pengembangan sistem pada penyediaan perangkat keras karena menurutnya hal inilah yang memakan anggaran proyek paling besar.

Pengontrolan biaya perangkat keras, dilakukan dengan metode pengontrolan formal dan standard teknis. Mereka  melakukan analisis dan desain sebelum membangun sesuatu. Proses diukur untuk dapat menentukan dimana mereka dapat dilakukan peningkatan dan perbaikan kinerja sistem. Mereka pun menekankan pengembangan sistem kepada kualitas (quality control dan quality assurance). Singkat kata, mereka telah mengaplikasikan kontrol, metode, dan piranti pengembangan yang dikenali sebagai rekayasa perangkat keras (hardware engineering). Pemanfaatan perangkat keras sayangnya jarang atau kurang dipikirkan.

Dahulu pemrograman dipandang hanya sebagai suatu bentuk seni. Sangat sedikit metode formal yang ada dan masih sedikit orang yang memanfaatkannya. Pada umumnya mereka melatih kemampuan mereka dan membangun PL dengan trial and error. Dunia pengembangan perangkat lunak masih belum disiplin dan banyak praktisi yang menyukainya.

Saat ini, biaya pengembangan sistem berbasis komputer telah berubah secara dramatis. Perangkat Lunak, dibanding dengan perangkat keras, adalah item yang memerlukan alokasi budget yang jauh lebih besar untuk dapat meningkatkan produktivitas industri.

Tetapi selama kurang-lebih dua dekade manajer dan praktisi teknis mempertanyakan:

–          Mengapa dalam pengembangan perangkat lunak dibutuhkan waktu yang sangat lama?

–          Mengapa biayanya sangat besar?

–          Mengapa kita menemui kesulitan menemukan kesalahan (error) sebelum perangkat lunak tersebut kita berikan kepada pemakai?

–          Mengapa begitu sulit menentukan perkembangan perangkat lunak yang sedang dikembangkan?

 

Pertanyaan-pertanyaan tersebut dan masih banyak pertanyaan-pertanyaan lain yang merupakan pemicu kepedulian kita mengenai perangkat lunak dan cara pengembanganya. Kepedulian tentang pemanfaatan disiplin ilmu rekayasa perangkat lunak.

 

 

1.1   Perangkat Lunak

Dalam kehidupan sehari-hari sering kita mendengar perangkat lunak atau software. Sebenarnya sejauh mana kita mengenal perangkat lunak tersebut? Pernahkan kita bertanya apakah sebenarnya perangkat lunak?

Menurut beberapa textbook perangkat lunak didefinisikan sebagai beberapa bentuk sebagai berikut:

–          Kumpulan atau rangkaian instruksi komputer (program komputer) yang bila kita eksekusi atau jalankan akan menghasilkan performansi dan fungsi yang kita kehendaki.

–          Struktur data yang memungkinkan dan mencukupi suatu program untuk dapat memanipulasi informasi.

–          Dokumen yang mendeskripsikan teknis pengembangan dan pengoperasian program.

Jadi tiga unsur perangkat lunak adalah program, data, dan dokumen. Perangkat lunak yang lengkap selau memiliki tiga unsur ini.

Sebagai agen pembangun dan pengembang  perangkat lunak, kita butuh untuk mengenal secara lebih detil segala sesuatu tentang perangkat lunak, lebih dari hanya sekedar definisi.

 

A.2 Karakteristik Perangkat Lunak

Untuk dapat mengembangkan perangkat lunak yang berkualitas, langkah awal yang kita butuhkan adalah mengetahui karakteristik perangkat lunak, yaitu:

  1.    Perangkat lunak lebih bersifat sebagai produk logis daripada sebuah elemen fisik sebuah sistem. Oleh sebab itu, pendekatan pengembangan PL berbeda dengan perangkat keras apalagi dengan produksi barang.

Perangkat lunak dikatakan sebagai produk logis karena perangkat lunak dibangun dari kumpulan rangkaian logika.

  1. 2.     Perangkat lunak dikembangkan atau dibangun dengan proses rekayasa (engineering), bukan hasil proses manufaktur dalam pengertian produksi klasik.

Meskipun masih terdapat kesamaan antara pengembangan perangkat lunak dan proses manufaktur perangkat keras, kedua aktivitas ini merupakan aktivitas yang benar-benar berbeda.

Kedua aktivitas ini membutuhkan proses desain yang baik untuk dapat menghasilkan kualitas yang tinggi, kesalahan yang timbul pada proses manufaktur perangkat keras masih relatif lebih mudah diketahui dan diperbaiki daripada proses pengembangan perangkat lunak.

Kedua aktivitas ini bergantung kepada ketersediaan sumber daya manusia, tetapi hubungan antara sumber daya manusia dengan peningkatan efisiensi dan efektivitas pengembangan produk sangatlah berbeda. Salah satu hal yang dapat kita lihat adalah pada pengembangan perangkat keras, dengan menambah tenaga manusia, maka produksi akan meningkat secara linier. Tetapi tidak begitu halnya dengan penambahan tenaga manusia pada pegembangan perangkat lunak. Berbagai faktor yang mempengaruhi antara lain :

  1. Diperlukan usaha untuk mensinkronisasi pembagian tugas dalam pengembangan perangkat lunak. Semakin banyak team atau pemrogram, ternyata usaha sinkronisasi dan koordinasi semakin rumit.
  2. Dengan penambahan tenaga manusia maka diperlukan tambahan waktu untuk penyesuaian atau adaptasi tenaga manusia yang baru untuk memahami perilaku perangkat lunak.

Hal mengenai hubungan sumber daya manusia dengan pengembangan perangkat lunak dalam sebuah proyek secara lebih detil akan kita kaji dalam bagian manajemen perangkat lunak. Kemudian terdapat perbedaan pula pada pendekatan pengembangan sistem.

Biaya atau budged pengembangan perangkat lunak terkonsentrasikan pada proses rekayasa (engineering), ini berarti pambangaunan dan pengembangan perangkat lunak tidak dapat dikelola seperti halnya proses manufaktur, yang pembiayaannya terkonsentrasi pada biaya seluruh bahan baku dan sumber daya lain.

  1. Perangkat lunak tidak dapat kedaluarsa (‘wear out’)

 

 

Kurva pemanfaatan perangkat keras sebagai fungsi waktu

 

Grafik tersebut mengindikasikan bahwa pada awal pembangunan dan pengembangan, perangkat keras selalu diperbaiki dari cacat produksi. Cacat ini diperbaiki dalam selang waktu tertentu hingga pengeleminasian kegagalan yang dimiliki oleh perangkat keras tersebut berjalan dengan sangat lambat. Pada periode ini, pemanfaatan perangkat keras cukup optimal. Akan tetapi dalam beberapa periode waktu pemakaian, pemanfaatan perangkat keras menurun secara drastis. Perangkat keras tersebut telah ‘usang’ terhadap waktu. Perangkat keras telah usang karena akumulasi debu, eskploitasi penggunaan perangkat keras, temperature, dan berbagai pengaruh buruk lingkungan.

 

Lain halnya dengan perangkat lunak. PL tidak terpengaruh oleh perubahan dan dampak fisik lingkungan.

 

Tingkat efisiensi dan efektivitas pemanfaatan perangkat lunak selalu mengalami proses revisi atau perbaikan akibat proses maintenance. Sehingga saat fungsionalitas atau pun fitur perangkat lunak sudah mulai ‘ketinggalan jaman’, perangkat lunak yang baik selalu dapat menyesuaikan fungsionalitasnya dengan kebutuhan yang ada. Artinya perangkat lunak tersebut mudah dimodifikasi.

 

  1. Meskipun perkembangan industri perangkat lunak bergerak mengarah kepada perakitan komponen-komponen dasar, pengembangan perangkat lunak selalu membutuhkan penyesuaian dengan kebutuhan.

Berbeda dengan pembuatan barang (dalam arti fisik: seperti rumah, perangkat keras, dll), selalu ada komponen (contohnya bingkai kaca, jendela, pintu) yang dapat langsung dimanfaatkan atau dirangkai sehingga dapat dihasilkan produk baru (contoh: rumah).

 

B. Kualitas Perangkat Lunak

Kapankah kita dapat menyatakan bahwa sebuah perangkat lunak berkualitas ?

Apa saja yang dijadikan sebagai parameter kulitas perangkat lunak ?

 

Perangkat lunak dapat dikatakan sebagai perangkat lunak yang berkualitas apabila :

  1. Perangkat lunak tersebut memenuhi keinginan pemesan atau pihak yang menggunakannya (user).

Keinginan user tersebut meliputi beberapa aspek, antara lain fitur dan antarmuka.

  1. Perangkat lunak tersebut  berfungsi dan dapat diimplementasikan dalam jangka waktu yang relatif lama.
  2. Mudah dimodifikasi untuk memenuhi kebutuhan yang berkembang.
  3. Mudah digunakan.
  4. Dapat mengubah atau membangun sesuatu dengan lebih baik. Sebagai contoh, bila perangkat lunak dikembangkan untuk menggantikan suatu proses atau fungsi manual, maka perangkat lunak tersebut harus dapat memberikan nilai tambah terhadap proses atau fungsi yang terdahulu.

Nilai tambah yang diberikan antara lain kecepatan pemrosesan, kemudahan proses, dan kehandalan data (jaminan bahwa data yang diolah, proses yang dilakukan, dan informasi yang dihasilkan adalah benar).

 

Dan dengan pertanyaan sebelumnya, kita dapat mengajukan pertanyaan “Kapan perangkat lunak dikatakan gagal atau tidak berkualitas ?”.

 

Perangkat lunak dikatakan gagal apabila :

  1. User tidak puas terhadap performansi perangkat lunak.
  2. Memiliki banyak kesalahan (error, kenyataan yang terjadi pengembang tidak mengakui bahwa dia telah melakukan kesalahan, sehingga dia mengatakan bahwa dalam perangkat lunaknya terdapat bugs = kutu).
  3. Bila perangkat lunak tersebut sulit untuk dimodifikasi untuk kebutuhan yang berkembang.
  4. Bila perangkat lunak tersebut sulit untuk dioperasikan.
  5. Menghasilkan sesuatu yang tidak dikehendaki. Misalnya perangkat lunak saat diperasikan, mengakibatkan register sistem menjadi kacau, sehingga sistem operasi yang kita gunakan menjadi tidak stabil.

 

Kita semua ingin membangun perangkat lunak yang berkualitas. Agar keinginan kita tersebut dapat tercapai, kita membutuhkan suatu disiplin ilmu untuk mendesain dan membangun perangkat lunak. Kita membutuhkan pendekatan rekayasa perangkat lunak.

 

B.1 Pentingnya Proses Rekayasa Perangkat Lunak

Setelah kita mengetahui gambaran umum perangkat lunak yang berkualitas dan kita pun ingin untuk dapat membangun perangkat lunak yang berkualitas. Kemudian mungkin timbul pertanyaan di pikiran kita. Mengapa kita mesti melalui tahap-tahap pembangunan perangkat lunak yang terlihat rumit dan harus melewati tahap-tahap tertentu? Mengapa kita tidak langsung menulis kode program perangkat lunak kita sambil mengira-kira dan menentukan fitur-fitur apa saja yang bakal dimiliki oleh perangkat lunak kita?

Pengembangan perangkat lunak secara umum melalui beberapa tahap yaitu:

  1. Analisis   2. Desain  3. Pengkodean   4. Testing  5. Maintenance atau perawatan

Memang pertanyaan atau ungkapan yang kita pikirkan sebelumnya, benar untuk pembangunan sebuah perangkat lunak yang kecil. Kita tidak perlu melewati tahap-tahap rekayasa perangkat lunak tersebut. Yang kita perlukan adalah sedikit analisis kebutuhan perangkat lunak. Kita hanya perlu mengetahui apa fungsi perangkat lunak yang akan kita bangun, siapa pemakainya, akan dioperasikan dalan lingkungan operasi dan implementasi apa, dan beberapa pertimbangan sederhana lain. Contoh sebuah perangkat lunak kecil yaitu : perangkat lunak untuk menghitung faktorial, konversi suhu Celcius ke Fahrenheit, dan sebagainya.

Ukuran perangkat lunak relatif sulit untuk ditentukan. Bila kita membandingkan ukuran pengembangan perangkat lunak dengan pembangunan sebuah gedung, pembangunan sebuah gedung relatif lebih mudah kita tentukan. Misalnya dengan parameter luas lahan, lokasi, dan jenis bahan. Namun perangkat lunak membutuhkan disiplin-disiplin ilmu lain (software metrics dan software measurement) untuk dapat menentukan ukuran perangkat lunak.

Namun mungkin sebagai pedoman kita, perangkat lunak dapat diukur dengan Kilo Lines of Codes (KLOC) atau baris kode program dalam ribuan. Bila perangkat lunak yang kita bangun, memiliki proses yang masih tergolong sederhana dan kira-kira hanya memiliki beberapa puluh baris instruksi, maka proses  rekayasa perangkat lunak kurang perlu kita butuhkan. Kita hanya perlu membuat sedikit dokumentasi teknis perangkat lunaknya saja. Dan sebagai saran, tambahkan komentar-komentar program pada program-sumber kita. Sehingga bila perangkat lunak perlu dikembangkan, kita dapat mengetahui pada proses yang mana kita akan melakukan modifikasi.

Namun sebagai seorang analis/desainer perangkat lunak, kita akan sering bergelut dengan pengembangan perangkat lunak yang berukuran sedang hingga sangat besar.

Nah, sehubungan dengan pertanyaan awal tadi, Mengapa kita mesti melalui tahap-tahap pembangunan perangkat lunak yang terlihat rumit dan harus melewati tahap-tahap tertentu? Mengapa kita tidak langsung menulis kode program perangkat lunak kita sambil mengira-kira dan menentukan fitur-fitur apa saja yang bakal dimiliki oleh perangkat lunak kita? Kita akan dengan mudah memahaminya dengan meninjau mitos-mitos yang ada di masyarakat dan kenyataan yang terjadi.

B.3 Mitos Tentang Perangkat Lunak

Dalam pengembangan perangkat lunak, terutama pada awal manusia mengenal perangkat lunak, selalu ada mitos-mitos yang tertanam di pikiran dan sikap manusia. Dari tingkat pelaku manajemen, komsumen, hingga ke pelaku teknis (pengembang PL), selalu memiliki anggapan-anggapan dan sikap yang ternyata tidak dapat diterapkan pada pengembangan perangkat lunak :

  1. 1.   Mitos pada tingkat manajemen

Manajer yang bertanggung jawab terhadap pengembangan perangkat lunak, seperti manajer di bidang-bidang lain, sering berada dalam tekanan dalam pengelolaan budged, pelaksanaan rencana sehingga sesuai jadwal, dan tangung jawab untuk meningkatkan kualitas bisnis. Mereka berpegangan pada mitos perangkat lunak untuk mengurangi tekanan ini.

  1. a.    Mitos: Orang-orang kami memiliki piranti pengembangan perangkat lunak yang modern dan kami juga memiliki komputer yang memanfaatkan teknologi terbaru. Kami pasti dapat membangun PL yang sangat berkualitas.

Fakta: Pengembangan perangkat lunak membutuhkan lebih dari sekedar komputer atau bahkan mainframe terbaru. Computer Aided Software Engineering (CASE) tools atau piranti bantu pengembangan perangkat lunak, (alat bantu dan metode rekayasa perangkat lunak, contohnya SSADM, Power Analist) lebih dibutuhkan dari sekedar perangkat keras yang berteknologi terbaru.

  1. b.   Mitos:   Jika jadwal pengembangan perangkat lunak terlambat dari rencana, kita dapat menambah programmer (sering disebut Mongolian Horde Concept).

 

Fakta:  Pengembangan perangkat lunak bukan proses mekanis seperti proses manufaktur. Dalam bukunya “The Mythical Man-Month ”, F. Brooks mengatakan “Adding people to a late project makes it later”. Artinya dengan menambah pemrogram dalam sebuah pengembangan perangkat lunak yang terlambat, akan memperlambat pengembangannya. Karena ketika pemrogram baru ditambahkan, programmer yang telah bekerja sebelumnya, harus menghabiskan waktu untuk mengajari dan menjelaskan sistem yang sedang dibangun, sehingga akan banyak waktu terbuang. Penambahan sumber daya manusia dalam proyek pengembangan perangkat lunak dapat dilakukan dengan rencana awal yang matang.

  1. 2.   Mitos pada konsumen (customer)
    1. a.    Mitos: Pernyataan global mengenai tujuan pemesanan perangkat lunak telah cukup untuk digunakan sebagai dasar memulai penulisan program, detail kemudian.

Fakta:   Definisi awal yang kurang jelas merupakan sebab utama kegagalan pengembangan perangkat lunak. Deskripsi yang formal dan detil terhadap domain, fungsi, perilaku, performansi, antarmuka, batasan desain, dan kriteria validasi adalah hal yang vital. Karakteristik-karakteristik ini hanya dapat ditentukan melalui komunikasi antara konsumen (customer) dan pengembang.

  1. b.   Mitos:   Kebutuhan perangkat lunak memungkinkan untuk berubah, tapi tenang saja karena perubahan itu akan mudah diakomodasi karena perangkat lunak bersifat fleksibel.

Fakta:    Benar bahwa kebutuhan PL dapat berubah, tetapi efeknya bermacam-macam, tergantung kapan perubahan tersebut dilakukan. Semakin dini perubahan kebutuhan tersebut dilakukan, maka biaya (tenaga) yang dibutuhkan semakin kecil.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pendefinisian        Pengembangan    Pasca peluncuran

Akibat perubahan kebutuhan terhadap biaya

 

 

 

  1. 3.   Mitos pada pengembang perangkat lunak
    1. a.    Mitos:   Sekali kita telah menulis program yang berhasil dieksekusi, maka tugas kita telah selesai

Fakta:   Bahwa semakin cepat kita memulai menulis program (coding) sebelum semua analisa dan desain selesai, maka waktu yang kita butuhkan untuk menyelesaikan perangkat lunak akan semakin lama. Hal ini berhubungan dengan proses analisa kebutuhan, pencarian kesalahan, manajemen perubahan perangkat lunak, dan berbagai aspek lain yang semakin sulit dirunut.

Kemudian, sebenarnya tugas yang lebih berat adalah pasca coding, yaitu testing dan delivery ke customer. Selalu dibutuhkan penyesuian terhadap sitem customer dan customer memerlukan layanan support dan service. Bila kita ingin usaha kita di bidang pengembangan perangkat lunak ini terus berjalan, maka kita harus mempertimbangkan beberapa hal tersebut.

  1. b.   Mitos:   Satu-satunya produk (deliverable) yang penting untuk kesuksesan suatu produk adalah program yang dapat dieksekusi.

Fakta:   Program yang dapat dieksekusi (working program) hanyalah salah satu elemen dari produk konfigurasi perangkat lunak. Dokumentasi dan petunjuk support perangkat lunak adalah elemen lain yang sangat penting.

  1. c.    Mitos:     Dokumentasi perangkat lunak hanyalah sebagi kumpulan dokumen yang membebani dan tidak berarti, yang dapat memperlambat kerja kita.

Fakta:     Rekayasa perangkat lunak bukanlah hal tentang pembuatan dokumen, tetapi merupakan proses pembangunan kualitas. Kualitas yang bagus berdampak kepada pengurangan usaha kerja ulang untuk perbaikan dan perubahan yang memang sering dan selalu terjadi, sehingga pada proses berikutnya kita dapat menghemat waktu.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bab II.

 Proses Rekayasa Perangkat Lunak

  1. Pengertian Rekayasa Perangkat Lunak

Ketika kita membangun produk atau sistem, kita membutuhkan rangkaian langkah yang dapat diprediksi sehingga dapat menuntun gerak kita. Kita membutuhkan pedoman sehingga kita dapat menciptakan hasil yang berkualitas dan tepat waktu. Pedoman inilah yang kita sebut sebagai proses perangkat lunak (software process).

Manajer dan pengembang perangkat lunak mengadaptasi proses dan menerapkannya dengan melibatkan customer dalam pengembangan perangkat lunak yang dipesannya.

Proses perangkat lunak ini penting, karena proses ini memberikan kestabilan, kontrol, dan pengorganisasian aktivitas pengembangan perangkat lunak. Proses ini menghasilkan integrasi program, data, dan dokumen.

IEEE Computer Society mendefinisikan rekayasa perangkat lunak (software engineering) sebagai:

  1. Suatu aplikasi dari pendekatan yang sistematis, disiplin, dan terukur terhadap pengembangan, pengoperasian, dan perawatan perangkat lunak. Atau dengan kata lain, rekayasa perangkat lunak adalah aplikasi rekayasa (engineering) terhadap perangkat lunak.
  2. Kajian terhadap pendekatan yang sistematis, disiplin, dan terukur terhadap pengembangan, pengoperasian, dan perawatan perangkat lunak.

 

B. RPL: Proses, Metode, Piranti

 

 

Lapisan Rekayasa Perangkat Lunak

 

Rekayasa perangkat lunak ditujukan untuk peningkatan kualitas produk, fokus pada kualitas.

Proses adalah Pondasi rekayasa perangkat lunak. Proses rekayasa perangkat lunak mengintegrasikan teknologi dan memungkinkan proses rasional dan pengembangan perangkat lunak yang tepat waktu. Proses rekayasa perangkat lunak mendefinisikan kerangka kerja yang perlu dijalankan untuk mendapatkan efisiensi pembangunan produk rekayasa perangkat lunak.  Proses rekayasa perangkat lunak menjadi dasar manajemen kontrol proyek perangkat lunak dan memberikan pedoman penerapan metode teknis dan jadwal pembangunan produk (model, dokumen, data, reports, form, dsb.), jaminan kualitas, dan manajemen perubahan kebutuhan.

Metode rekayasa perangkat lunak menyediakan cara dan petunjuk membangun perangkat lunak. Metode ini mencakup kumpulan tugas termasuk analisis kebutuhan, desain, implementasi program (coding),  testing, dan support.

Piranti (tools) rekayasa perangkat lunak menyediakan dukungan yang otomatis atau semi otomatis terhadap proses dan motode rekayasa perangkat lunak. Ketika suatu piranti diintegrasikan, informasi yang dihasilkan oleh satu tool dapat digunakan oleh tool yang lain. Sistem ini memberikan dukungan pengembangan perangkat lunak, sehingga disebut Computer Aided Software Engineering (CASE). CASE mengintegrasikan perangkat lunak, perangkat keras, dan basisdata rekayasa perangkat lunak (basisdata yang menyimpan seluruh informasi rekayasa perangkat lunak: analisis, desain, coding, dan testing).

C.   Fase Proses RPL

Rekayasa adalah analisis, desain, konstruksi, dan proses manajemen suatu entitas (objek kajian). Apapun (entitas) yang dibangun dan dikembangkan, pertanyaan berikut perlu kita jawab:

  1. Apa persoalan yang harus dipecahkan?
  2. Karakteristik apa dari entitas yang digunakan untuk dapat memecahkan persoalan?
  3. Bagaimana suatu entitas dan solusinya dapat direalisasikan?
  4. Pendekatan apa yang dapat dan akan digunakan untuk memperbaiki kesalahan yang dilakukan pada tahap desain dan implementasi?
  5. Bagaimana kita memberikan support setelah menyelesaikan suatu persoalan, ketika perbaikan, adaptasi, peningkatan fitur(enhancement), dan perawatan diminta oleh customer?

 

Rekayasa perangkat lunak dapat dikategorikan ke dalam tiga fase utama, tidak peduli area aplikasinya, ukuran, dan kompleksitas proyek. Setiap fase merepresentasikan pertanyaan-pertanyaan sebelumnya yang perlu kita jawab.

Fase tersebut adalah:

  1. 1.   Fase definisi (definition)

Fase ini memfokuskan pada pertanyaan apa / what. Selama proses pendefinisian, software engineer berusaha untuk mengidentifikasikan:

  1. Informasi apa yang akan diproses?
  2. Fungsi dan performansi apa yang diinginkan?
  3. Perilaku sistem seperti apa yang diharapkan?
  4. Antarmuka apa yang akan dibangun?
  5. Batasan desain apa saja yang ada?
  6. Kriteria validasi apa yang diperlukan untuk dapat mendefiniskan sebuah sistem yang sukses?
  7. 2.   Fase pengembangan (development)

Fase ini memfokuskan pada pertanyaan bagaimana / how. Selama proses ini software engineer berusaha untuk mengidentifikasikan:

  1. Bagaimana data distrukturkan (struktur data)?
  2. Bagaimana fungsi-fungsi sistem diimplementasikan dalam arsitektur perangkat lunak?
  3. Bagaimana detail prosedur diimplementasikan?
  4. Bagaimana memberikan karakteristik antarmuka?
  5. Bagimana desain akan diimplementasiakan dalam sebuah bahasa pemrograman?
  6. Bagaimana prose pengujiannya?
  7. 3.   Fase support

Fase ini memfokuskan pada manajemen perubahan / change saat diminta oleh customer. Fase support mengaplikasikan ulang langkah-langkah pada fase pendefinisian dan pengembangan tapi diimplementasikan pada perangkat lunak yang telah dibangun sebelumnya. Empat tipe perubahan yang mungkin dilakukan adalah:

  1. Koreksi (corrective maintenance)

Meskipun dengan mengaplikasikan aktivitas jaminan kualitas, masih terdapat kemungkinan besar ditemukan error oleh customer, sehingga perlu dilakukan proses koreksi kesalahan.

  1. Adaptasi (adaptive maintenance)

Dengan perkembangan waktu, lingkungan operasional perangkat lunak (CPU, sistem operasi, business rules) oleh customer sangat dimungkinkan untuk berubah. Adaptasi perangkat lunak perlu dilakukan untuk mengakomodasi perubahan ini.

  1. Enhancement (perfective maintenance)

Selama pengoperasian perangkat lunak, customer akan membutuhkan tambahan fitur yang dapat meningkatkan efisiensi dan efektivitas bisnisnya.

  1. Prevention (preventive  maintenance = software reengineering)

Pernah kita membahas efek waktu terhadap kualitas pemanfaatan perangkat lunak. Agar perangkat lunak tersebut tidak ‘ketinggalan jaman’, maka perlu dilakukan preventive  maintenance agar kualitas perangkat lunak dapat terus dijaga bahkan ditingkatkan.

  1. D.   Model Proses RPL/ Paradigma Pengembangan PL

Untuk dapat memecahkan persoalan dalam lingkup industri, seorang software engineer atau tim engineer harus menerapakan sebuah strategi yang mencakup proses, metode, dan piranti yang digunakan. Strategi ini sering disebut sebagai model proses atau paradigma rekayasa perangkat lunak. Pengembangan perangkat lunak dapat dicirikan sebagai iterasi proses pemecahan persoalan (problem solving loop) dengan mencakup empat status:

 

 

Iterasi Proses Pemecahan Masalah

Status quo merepresentasikan status perkerjaan yang sedang dilakukan yang merupakan bagian perkerjaan dari keseluruhan iterasi. Pendefinisian persoalan mendefinisikan persolan yang sedang dihadapi dan akan dicarikan pemecahannya. Pengembangan teknis memecahkan masalah melalui penerapan beberapa teknologi. Integrasi solusi menyampaikan hasil solusi (dokumen, program, data, fungsi bisnis baru, produk baru) ke pemesan.

Model proses rekayasa perangkat lunak cukup banyak. Seluruh model tersebut membantu kita sebagai pedoman dalam mengontrol dan mengkoordinasikan proyek perangkat lunak. Dalam pembahasan ini, kita akan mengenal dan mencoba memanfaatkan metode yang relatif sederhana tetapi cukup mendasar dan sering digunakan.

 

 

 

 

  1. 1.   Linear Sequential Model

Model proses ini sering disebut sebagai Waterfall atau Classic Life Cycle Model. Metode Linear Sequential Model menyarankan pendekatan yang sistematis dan sekuensial dalam pengembangan perangkat lunak yang dimulai pada level sistem dan bergerak maju mulai tahap analisis, desain, coding, testing, dan support.

 

 

The Linear Sequential Model

 

Model Linear Sequential mencakup aktivitas-aktivitas berikut:

  1. Rekayasa dan pemodelan sistem/informasi (System/information engineering). Dikarenakan perangkat lunak selalu merupakan bagian dari sistem atau bisnis yang lebih besar, kegiatan proses perangkat lunak dimulai dengan melakukan indentifikasi kebutuhan (requirements) dari seluruh elemen sistem lalu memetakan bagian dari kebutuhan tersebuat sebagai kebutuhan perangkat lunak.

Pandangan secara sistem ini sangat dibutuhkan ketika perangkat lunak harus berinterakasi dengan elemen-elemen yang lain seperti perangkat keras, manusia, dan basisdata. Identifikasi dan pengumpulan kebutuhan dilakukan dalam level strategi bisnis dan level manajerial.

  1. Analisis kebutuhan perangkat lunak (Software requirements analysis). Proses identifikasi dan pengumpulan kebutuhan sistem difokeskan pada kebutuhan perangkat lunak. Untuk memahami program-program yang akan dibangun, analis harus memahami domain dan lingkup perangkat lunak yang akan dibangun, termasuk didalamnya fungsi, tingkah laku  perangkat lunak, performansi, dan antarmuka. Kebutuhan sistem dan perangkat lunak didokumentasikan dan dikonfirmasikan dengan customer.
  2. Desain (Design).Proses desain perangkat lunak fokus kepada sturktur data, arsitektur perangkat lunak, representasi antarmuka, dan algoritma detil proses. Desain merupakan representasi kebutuhan yang akan dijadikan pedoman dalam pengkodean program. Desain didokumentasikan dan menjadi bagian dari manajemen konfigurasi perangkat lunak.
  3. Pengkodean (Code generation). Desain yang telah dibuat, ditranslasikan ke dalam suatu bahasa pemrograman tertentu.
  4. Pengujian (Testing). Setelah kode program dibangun, program diuji untuk memastikan bahwa semua kebutuhan dan persoalan dapat diselesaikan dan benar. Proses pengujian fokus pada logika perangkat lunak. Memastikan bahwa dari proses input, pemrosesan, hingga output benar dan sesuai dengan yang diinginkan.
  5. Support. Perangkat lunak sangat memungkinkan untuk berubah. Perubahan dapat terjadi karena ditemukannya kesalahan, perangkat lunak harus diadaptasikan kepada sistem yang baru, customer menginginkan peningkatan fungsional dan performansi perangkat lunak, dan perawatan perangkat lunak.

Keunggulan model ini adalah:

  1. Programmer jarang diinterupsi pekerjaanya dengan perubahan kebutuhan, sehingga programmer dapat lebih konsentrasi.
  2. Bila proses yang dilakukan telah jelas dan pasti, model ini akan memberikan efisiensi dan efektivitas yang tinggi.
  3. Dituntut bekerja secara disiplin
  4. Dokumennya lengkap
  5. Maintenance mudah karena memiliki dokumen yang lengkap
  6. Selalu dalam kontrol SQA (Software Quality Assurance)

Kekurangan model ini adalah:

Meskipun model ini merupakan model yang paling banyak/sering digunakan, model ini memiliki kekurangan:

  1. Umumnya customer kurang bisa menyampaikan seluruh kebutuhan yang diinginkannya dalam tahan pendefinisian, sehingga dalam proses pengembangan perangkat lunak sering customer menginginkan perubahan atau tambahan kebutuhan. Model waterfall sulit mengakomodasi perubahan ini.
  2. Kesalahan yang dibuat akan dibawa ke tahap berikutnya. Pada tahap pengujian (testing) bila kesalahan tersebut ditemukan, kesalahan tersebut telah terakumulasi dan berinteraksi dengan proses-proses lain, sehingga biaya (waktu, uang, sumber daya lain) dan usaha harus dikeluarkan dalam jumlah yang besar.
  3. Keterlibatan customer sangat minim. Customer harus sabar menunggu hingga semua program selesai dibangun.
  4. Konsumen sulit membaca dokumen menyebabkan komunikasi juga menjadi sulit
  5. Alur pengerjaan yang linier menyebabkan proses menjadi lambat
  6. Personil tidak bekerja optimal karena ada waktu tunggu atau jeda setiap tahapan.
  7. II.  Prototyping Model

Sering customer dalam memesan perangkat lunak tidak dapat mengidentifikasi input, proses, dan permintaan output secara detil. Kasus lain, yaitu pengembang tidak yakin terhadap efisiensi algoritma yang digunakan terhadap permasalahan yang dihadapi customer, kemampuan adaptasi terhadap sistem operasi, atau bentuk interaksi manusia -perangkat lunak yang akan diterapkan. Pada kasus-kasus ini, paradigma prototyping memberikan pendekatan yang lebih baik.

 

 

Prototyping Model

 

Model Prototyping mencakup aktivitas-aktivitas berikut:

  1. Pengumpulan kebutuhan. Aktivitas dimulai dengan pengumpulan kebutuhan (requirements). Pengembang dan customer bertemu untuk menentukan tujuan keseluruhan dan global perangkat lunak, mengidentifikasi kebutuhan yang telah diketahui, lalu mendefinisikan area dan lingkup pengembangan.
  2. Desain. Proses desain dilakukan dengan sangat cepat. Desain difokuskan kepada aspek-aspek desain yang nampak kepada customer/user (contoh: interface, pendekatan input, format output). Hasil desain inilah yang disebut sebagai prototipe.
  3. Evaluasi Prototipe. Prototipe yang dihasilkan, direview oleh customer. Hasil evaluasi ini dijadikan bahan untuk perubahan dan pengembangan selanjutnya. Iterasi terus dilakukan hingga memenuhi keinginan customer, sementara pada saat yang sama, memungkinkan pengembang untuk dapat lebih memahami kebutuhan perangkat lunak.

 

Tujuan utama model proses prototipe ini adalah untuk memudahkan pengembang memahami kebutuhan customer. Brooks, F. dalam bukunya “The Mythical Man-Month”, menyarankan kita untuk membuang prototipe ini bila semua kebutuhan customer berhasil diungkap. Akan tetapi dapat juga kita melakukan modifikasi dan memanfaatkan template prototipe sebelumnya.

 

Keunggulan model ini adalah:

  1. Dapat segera memahami kebutuhan customer.
  2. Dapat segera menemukan kesalahan program atau kesalahan interpretasi kebutuhan perangkat lunak.
  3. Customer atau user dapat segera memahami dan mempunyai gambaran terhadap sistem (PL) yang akan dibangun.

 

Kelemahan model ini yaitu:

  1. Biasanya customer setelah melihat prototipe terakhir yang telah disepakati bersama, customer ingin segera memilikinya. Tidak peduli efisiensi algoritma yang digunakan, dokumentasi, dan aspek-aspek rekayasa perangkat lunak lain. Hal ini dapat menyebabkan kualitas perangkat lunak menjadi rendah.
  2. Programmer akan sering diinterupsi oleh perubahan. Sedangkan sifat alamiah perubahan adalah mengganggu.

 

III. Evolutionary Model

Model sequensial linier diatas dirancang untuk pengembangan PL yang memiliki garis lurus, yang berarti bahwa sistem yang lengkap akan disampaikan setelah urutan linier tersebut dilengkapi. Sedangkan model prototype dirancang untuk mendorong konsumen (atau pengembang) agar memahami kebutuhan (menyampaikan sitem produksi).

Model evolusioner adalah model iterative yang tidak termasuk kedalam model klasik, model ini memungkinkan perekayasa PL untuk mengembangkan versi PL yang lebih lengkap sedikit demi sedikit. Model evolusioner terbagi menjadi banyak model, tapi hanya 3 model yang paling digunakan, yaitu:

 

 

 

 

 

 

Spiral Model

 

 

 

Model Spiral, adalah model yang diusulkan oleh Boehm (1988), yaitu model proses perangkat lunak yang evolusioner yang merangkai sifat iterative dari model prototype dengan cara kontrol dan aspek sistematis dari model sequential linier. Dengan kata lain model ini menggunakan fitur-fitur yang ada pada Model Sequential dan Prototyping.

Model Spiral mencakup aktivitas-aktivitas berikut:

  1. Customer Communication, Komunikasi Pelanggan yaitu tugas-tugas yang dibutuhkan untuk membangun komunikasi yang efektif diantara pengembang dan pelanggan.
  2. Planning, Perencanaan yaitu tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan.
  3. Risk Analysis, Analisis Resiko yaitu tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko yang mungkin akn dihadapi, baik manajemen maupun teknis.
  4. Engineering, Perekayasaan yaitu tugas-tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.
  5. Construction and Release, Konstruki dan Peluncuran yaitu tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (instal) dan memberikan pelayanan kepada pemakai, contohnya pelatihan dan dokumentasi.
  6. Customer Evaluation, Evaluasi Pelanggan yaitu tugas-tugas yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi perangkat lunak, yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan.

Keunggulan model ini adalah:

  1. Model ini sangat baik digunakan untuk sistem dan perangkat lunak yang besar.
  2. Ditekankan pada pencarian alternatif, dan pemaksaan penggunaan kembali software yang telah ada.
  3. Adanya analisis resiko pada mekanisme untuk memperkecil resiko
  4. Adanya prototype memudahkan komunikasi dengan konsumen

Kelemahan model ini yaitu:

  1. Memerlukan waktu yang cukup lama untuk mengembangkan perangkat lunak.
  2. Sistem Pengontrolan yang kurang baik
  3. Tidak banyak cerita sukses mengenai perancangan menggunakan model ini.
  4. 4.   Biasanya pihak pengembang dan perusahaan berada pada satu pihak yang sama. Tahapan analisa resiko sewaktu-waktu dapat membatalkan proses rekayasa, jika pihak pengembang adalah pihak diluar perusahaan maka akan timbul masalah hukum
    1. 5.   Incremental Model

 

 

Incremental Model, adalah model rekayasa perangkat lunak yang dikerjakan bagian per bagian hingga menghasikan perangkat lunak yang lengkap. Proses pembangunan berhenti bila produk telah mencakup seluruh fungsi yang diharapkan.

 

 

Model Spiral mencakup aktivitas-aktivitas berikut:

Pada tahapan system engineering aktivitas utama yang dilakukan adalah Requirement, Specification dan Architecture Design. Setelah aktivitas utama terpenuhi, tahapan selanjutnya adalah membangun tiap bagian secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan.

 

Keunggulan model ini adalah:

  1. Personil dapat bekerja secara optimal
  2. Konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Misalnya input data karyawan.
  3. Megurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya bagian per-bagian
  4. Memaksimalkan pengembalian model investasi konsumen.

 

Kelemahan model ini yaitu:

  1. Kemungkian tiap bagian tidak dapat diintegrasikan dengan baik
  2. Selalu berubah selama proses rekayasa berlangsung
  3. Harus open architecture.

4th Generation Technicques

 

Paradigma 4th GT untuk rekayasa perangkat lunak berfokus pada kemampuan spesifikasi perangkat lunak dengan menggunakan bentuk bahasa yang dikhususkan atau sebuah notasi grafik yang menggambarkan masalah yang akan dipecahkan kedalam bentuk yang dapat dipahami oleh pelanggan.

Model 4th GT mencakup aktivitas-aktivitas berikut:

  1. Requirement Gathering, usaha untuk mengetahui/mendapatkan kebutuhan atas perangkat lunak yang akan dibangun
  2. Design Strategy, menentukan strategy perancangan, ini adalah bagian terpenting.
  3. Implementasi, menggunakan 4th GL (fourth generation language), karena semua prosedur pemrograman sudah tersedia (tinggal click), dikarenakan sudah tersedia maka implementas menjadi mudah
  4. Testing, maintenance.

Keunggulan model ini adalah:

  1. User lebih gampang mendesain program
  2. Semua orang awam bisa.
  3. Megurangi waktu yang dibutuhkan untuk menghasilkan PL aplikasi kecil dan menengah
  4. Mempercepat waktu desain.

Kelemahan model ini yaitu:

Untuk aplikasi yang besar dibutuhkan analisis, desain dan pengujian yang sangat banyak, atau dengan kata lain aktivitas rekayasa perangkat lunak sangat besar.

 

Metode Analisis dan Perancangan PL

Terlepas dari paradigma pengembangan perangkat lunak yang dijelaskan di atas, ada dua pendekatan yang bisa dilakukan dalam Analisa dan Perancangan Perangkat Lunak, yaitu:

  1. Pendekatan Berorientasi Data (Data Oriented Approach) / Terstruktur
    1. Data Flow Oriented
    2. Data Structured Oriented
    3. Pendekatan Berorientasi Objek (Object Oriented Approach) / Obyek
      1. Shlaer/Mellor Method [Shlaer-1988]
      2. Coad/Yourdan Method [Coad-1991]
      3. Booch Method [Booch-1991] / OOAD
      4. OMT Method [Rumbaugh-1991]
      5. Wirfs-Brock Method [Wirfs-Brock-1990]
      6. OOSE Objectory Method [Jacobson-1992]
      7. UML (Unified Modeling Language) [UML-1997]

 

Bab III.

ANALISIS & PERANCANGAN DENGAN

PENDEKATAN TERSTRUKTUR

 

A. Pendahuluan

Analisis dan Perancangan perangkat lunak dengan pendekatan terstruktur atau dikenal dengan pendekatan berorientasi data (Data Oriented Approach) adalah pendekatan konvensional yang menitik beratkan permasalahan pada aliran Data, yaitu: Arus Data (Data Flow) dan Struktur Data (Data Structure).

Pendekatan ini sangat dominan untuk digunakan dimasa-masa awal perkembangan rekayasa perangkat lunak. Untuk merancang PL skala kecil dan menengah, perancangan menggunakan pendekatan terstruktur masih layak digunakan, karena lingkup permasalahan masih bisa ditangani dengan melihat kebutuhan data yang akan digunakan. Tapi, jika lingkup permasalahannya cukup besar, misalnya untuk perancangan PL yang besar maka akan mengalami kesulitan dalam menentukan prioritas pengembangan baik pada saat analisis maupun perancangan, yaitu tahapan sebelum tahapan implementasi dan pengujian dilakukan.

B. Tahap Analisis

Hal yang utama dalam tahap ini adalah pendefinisian kebutuhan perangkat lunak. Proses rekayasa ini meliputi Pengidentifikasian kebutuhan, Perbaikan identifikasi kebutuhan, Pemodelan, dan Spesifikasi kebutuhan. Model data yang dibutuhkan dalam tahap analisis adalah Aliran informasi dan kontrol, dan Tingkah laku sistem saat dioperasikan dibangun. Kemudian lebih lanjut lagi, alternatif solusi dapat diajukan kepada costomer.

Mengapa proses ini diperlukan? Tentu kita tidak ingin membangun perangkat lunak yang banyak memiliki kesalahan, banyak aspek kebutuhan yang tidak terungkap, banyak faktor lingkungan yang berpengaruh yang tidak dianalisis, membutuhkan waktu pengembangan yang sangat lama dan menghabiskan banyak biaya karena kecerobohan, yang akhirnya juga berakibat kepada ketidakpuasan customer. Oleh karena itu, kita membutuhkan analisis kebutuhan perangkat lunak.

Kita perlu mengetahui prinsip-prinsip analisis, yaitu:

1. Domain masalah harus dapat direpresentasikan dan dipahami

2. Fungsi-fungsi yang harus dimiliki oleh perangkat lunak nantinya harus dapat ditentukan.

3. Tingkah laku perangkat lunak saat dioperasikan sebagai aksi dari input pemakai atau lingkungan

harus dapat didefinisikan.

4. Model yang menggambarkan informasi, fungsi, dan tingkah laku perlu di dekomposisi sehingga

semua detil informasi, fungsi, dan tingkah laku yang ada dapat diungkap.

5. Proses analisis sebaiknya dimulai dari informasi-informasi yang penting sampai ke detil

implementasi.

Kemudian bila programmer dipaksa untuk mengerjakan (mengimplementasikan) perangkat lunak yang spesifikasinya tidak lengkap, tidak konsisten, dan menyesatkan akan mengalami kebingungan dan frustasi dan hasilnya adalah implementasi yang tidak menentu. Spesifikasi kebutuhan perangkat lunak merupakan cara untuk mengarahkan ke pembanguna perangkat lunak yang berhasil dengan baik.

Tujuan tahap analisis adalah:

  1. Menjabarkan kebutuhan pemakai
  2. Meletakkan dasar-dasar untuk proses perancangan PL
  3. Mendefinisikan semua kebutuhan pemakai sesuai dengan lingkup kontrak yang disepakati kedua belah pihak.

Aktivitas yang dilakukan:

  1. Pendefinisian lingkup perangkat lunak
  2. Identifikasi dan pengumpulan kebutuhan perangkat lunak
  3. Pemodelan data
  4. Pemodelan fungsional
  5. Pemodelan status/kelakuan

Pendefinisian Lingkup Perangkat Lunak

Pendifinisian lingkup perangkat lunak adalah aktifitas penyelidikan awal untuk menentukan rincian perangkat lunak yang akan dibangun, lingkungan luar tempat dimana sistem yang akan dibangun digunakan. Kegiatan pada tahap ini lebih kearah Memanajemen kegiatan pembangunan perangkat lunak. Lebih lanjut akan dipelajari pada matakuliah MPPL (Manajemen Proyek Perangkat Lunak) atau pada matakuliah PSPL (Pengembangan Sistem Perangkat Lunak)

 

Identifikasi dan Pengumpulan Kebutuhan Perangkat Lunak

Identifikasi dan pengumpulan kebutuhan perangkat lunak adalah aktifitas untuk mencari, mengidentifikasi, mengumpulkan, dan menentukan kebutuhan dari perangkat lunak yang akan dibangun dengan cara melakukan komunikasi dengan pengguna atau customer. Lebih lanjut akan dipelajari pada matakuliah MPPL (Manajemen Proyek Perangkat Lunak) / PSPL (Pengembangan Sistem Perangkat Lunak).

 

 

Pemodelan Data

Pemodelan data befungsi untuk mendeskripsikan data yang terlibat dalam perangkat lunak. Secara struktural pemodelan data ini dapat digambarkan sebagai berikut:

 

 Struktur Pemodelan Analisis

 

Piranti yang digunakan untuk menjelaskan pemodelan data yaitu:

  1. ERD (Entity Relationship Diagram): Merupakan diagram yang menyatakan keterhubungan antar objek data
  2. DOD (Data Object Description): Merupakan deskripsi atribut dari setiap objek data.
  3. Kamus Data (Data Dictionary): Deskripsi semua objek data yang dibutuhkan maupun yang dihasilkan oleh perangkat lunak.

 

1. ERD (Entity Relationship Diagram)

Diagram Relasi Entitas (ERD-Entity Relationship Diagram) adalah suatu diagram yang menggambarkan relasi atau hubungan antar objek. Relasi antar objek dihubungkan dengan garis, ada banyak relasi, diantaranya adalah hubungan satu ke banyak (one to many relationship) dan hubungan dari satu ke satu (one to one relationship). Diagram tersebut dinyatakan dalam simbol-simbol atau menggunakan notasi-notasi yang dapat dilihat pada tabel berikut.

 

Notasi Nama Arti
 

 

 

Entity Entitas eksternal, yaitu entitas luar yang berhubungan dengan sistem.
 

 

 

Relation Dalam ER-Diagram notasi ini berarti relasi yang menghubungkan dua atau lebih entitas.
 

 

1/n, 1/1

 

Cardinality Menunjukan kardinalitas relasi antar entitas, 1/n berarti hubungan one to many, 1/1 berarti hubungan one to one.
 

 

 

Attribute Merupakan atribut dari suatu entitas atau relasi.
 

 

 

Key Attribute Merupakan atribut dari suatu entitas atau relasi yang menjadi primary key.
 

 

 

Connector Penghubung, untuk mengalirkan data dari satu bagian ke bagian lain sesuai arah panah.
 

 

 

Low Relation Relasi lemah, sangat tergantung dan hanya dapat muncul bila terdapat relasi yang menghubungkan ke entitas lemah.
 

 

 

ISA “is a”, kumpulan entitas yang memuat bagian atau cabang entitas yang berbeda.

 

Contoh:

 

Rincian pada gambar diatas terdapat sebagai berikut:

  1. Entitas Mahasiswa: Atribut (NRP, NamaMHS, JKelamin)
  2. Entitas Matakuliah: Atribut (KodeMK, NamaMK, SKS)
  3. Relasi Meminjam: Atribut (NRP, KodeMK, Nilai)
  4. Kardinalitas 1/n: Seorang mahasiswa dapat mengambil 1 atau lebih matakuliah.

 

Penggambaran Atribut pada ER Diagram dapat dihilangkan, dengan memberikan keterangan tambahan berupa paparan atribut pada setiap entitas dan relasi yang muncul.

  1. 2.   DOD (Data Object Description)

Deskripsi Objek Data (DOD-Data Object Description) merupakan bagian dari ERD (Entity Relational Diagram) yang telah dirancang. DOD menyimpan keterangan semua atribut entitas dan relasi yang muncul pada tahap perancangan ERD. DOD dapat direpresentasikan dalam bentuk tabel.

Contoh:

Atribut Tipe Deskripsi
NRP Numerik Nomor identitas mahasiswa yang nilainya unik.
NamaMHS Karakter Nama ahasiswa sesuai dengan format nama yang tertulis di ijazah sekolah
JKelamin Boolean Jenis Kelamin mahasiswa, 0 wanita, 1 pria
KodeMK Karakter Kode nama matakuliah sesuai kurikulum
NamaMK Karakter Nama matakuliah sesuai kode matakuliah pada kurikulum
SKS Numerik Jumlah kredit matakuliah
Nilai Karakter Nilai matakuliah yang diperoleh mahasswa

 

3. Data Dictionary

Menyimpan semua objek data yang dibutuhkan dan dihasilkan oleh perangkat lunak. Biasanya pembuatan kamus data dilakukan setelah Pemodelan fungsional dan pemodelan status dan kelakuan selesai dibuat.

 

  1. Pemodelan Fungsional

Pemodelan Fungsional adalah Mendeskripsikan seluruh fungsi yang terlibat di dalam perangkat lunak.

 

Piranti yang digunakan pada pemodelan fungsional adalah:

  1. Context Diagram, Merepresentasikan sistem sebagai sebuah black box terhadap lingkungan sekitar yang berhubungan dengan sistem tersebut.
  2. DFD (Data Flow Diagram), Menggambarkan bagaimana data ditransformasikan dalam perangkat lunak serta menggambarkan fungsi-fungsi yang mentransformasikan data.
  3. Process Specification, Merupakan deskripsi detil dari fungsi elementer (fungsi yang tidak dapat didekomposisi lagi dalam DFD).

 

Informasi (data) bergerak mengalir dalam perangkat lunak. Informasi atau data tersebut dapat mengalami transformasi di dalam perangkat lunak. Data Flow Diagram adalah representasi grafis yang menggambarkan aliran dan transformasi informasi/data dari input ke output.

 

Context Diagram

Diagram Konteks digunakan untuk membatasi sistem penyampaian informasi yang akan dirancang dan menunjukan interaksi sistem dengan komponen luar. Diagram tersebut dinyatakan dalam simbol-simbol pada DFD.

Ada beberapa batasan yang harus diperhatikan dalam membuat dan merepresentasikan diagram konteks, yaitu:

  1. Entity tidak dapat berhubungan (bertukar data) langsung dengan data store, harus melalui suatu proses.

 

 

 

 

  1. Antar data store tidak boleh bertukar data, harus melaui proses.

 

  1. Data store harus ada yang mengisi dan yang memanfaatkan. Tidak boleh hanya diisi saja atau dimanfaatkan saja, harus ada proses yang mengisi dan memanfaatkannya.

 

Data Flow Diagram

Diagram Alir Data atau DFD (Data Flow Diagram) merupakan penjelasan rinci dari Diagram Konteks yang menggambarkan bagaimana proses aliran data terjadi dalam sistem Online Buku Elektronik. Data Flow Diagram menjelaskan tentang aliran data masuk, data keluar dan proses penyuntingan file yang digunakan. Diagram tersebut dinyatakan dalam simbol-simbol atau menggunakan notasi-notasi yang dapat dilihat pada tabel Simbol. Penjelasan DFD terdiri dari level-level, masing-masing level menjelaskan level sebelumnya.

Notasi Nama Arti
 

 

 

Entity Entitas eksternal, yaitu entitas luar yang berhubungan dengan sistem.
 

 

 

Frequent Entity Entitas eksternal, yaitu entitas luar yang sama dan berhubungan dengan system digambarkan secara berulang.
 

 

 

Data Process Lingkaran dengan nama proses di dalam lingkaran menyatakan proses-proses yang terdapat didalam sistem.
 

 

 

Data Store Simbol yang menyatakan penyimpanan data yang digunakan oleh sistem, nama data terdapat diantara dua garis tersebut.
 

 

 

Connector Penghubung, untuk mengalirkan data dari satu bagian ke bagian lain sesuai arah panah.

 

Process Specification

Spesifikasi Proses atau Process Specification termasuk dalam SRS (Software Requirements Specification) merupakan deskripsi detil dan lengkap dari fungsi elementer. Fungsi Elementer adalah fungsi-fungsi atau proses-proses yang tidak dapat didekomposisi lagi dalam Diagram Alir Data atau DFD (Data Flow Diagram).

  1. Pemodelan Status/ Kelakuan

Pemodelan Status / Kelakuan adalah tahapan analsis untuk mendeskripsikan status sistem yang dapat muncul ketika perangkat lunak digunakan. Contoh mengenai pemodelan status kelakuan dapat dilihat pada subjudul Studi Kasus.

 

Tahap Perancangan / Design

Tahap desain merupakan tahap rekayasa yang merepresentasikan perangkat lunak yang akan dibangun. Desain dapat digunakan untuk menelusuri dan mengecek kebutuhan customer dan sekaligus dapat dijadikan sebagai ukuran untuk menilai kualitas perangkat luak.

Bila kita pernah mendengar cetak biru dari sebuah gedung yang dapat digunakan sebagai dasar pembangunan gedung, pedoman penelusuran sesuatu bila dibutuhkan nanti, dan pedoman untuk melakukan perbaikan dan renovasi, maka begitu pula dengan perangkat lunak. Perangkat lunak lebih komplek dari sebuah rumah besar. Maka dari itu, perangkat lunak juga dan bahkan sangat membutuhkan cetak biru bangunan perangkat lunak, yaitu  desain atau perancangan.

Fungsi tahap perancangan perangkat lunak adalah:

  1. Pengembangan spesifikasi perangkat lunak
  2. Penjabaran bagaimana PL dapat berfungsi
  3. Penjabaran bagaimana spesifikasi perangkat lunak dapat diimplementasikan

Selama proses perancangan, kualitas perancangan selalu dipantau melalui ‘Review Teknis Formal’ dan dibahas bersama antara customer dan pengembang.

 

 

 

Menurut McGlaughlin, petuntuk untuk evaluasi kualitas perancangan yaitu sebagai berikut:

  1. Perancanan harus mengimplementasikan semua kebutuhan perangkat lunak yang disebut eksplisit dalam SRS (software requirements specifications), sekaligus mengakomodasi semua kebutuhan implisit dari SRS.
  2. Harus readabel (mudah dibaca dan dipahami) oleh programmer, tester, dan pelaku perawatan perangkat lunak.
  3. Harus menyediakan gambaran lengkap perangkat lunak, meliputi model data, fungsi, dan kelakuan perangkat lunak dari sudut pandang implementasi.

Adapun prinsip-prinsip perancangan perangkat lunak adalah:

  1. Mempertimbangkan beberapa alternatif model solusi
  2. Traceable (dapat dicek dan dirunut) terhadap model analisis
  3. Mempertimbangkan dan menghasilkan komponen yang dapat digunakan ulang (reusable).
  4. Meminimasi kesenjangan antara perangkat lunak dengan kondisi nyata.
  5. Memperlihatkan keseragaman perancangan.
  6. Memperlihatkan integerasi.
  7. Mengakomodasi perubahan.
  8. Mengakomodasi kondisi-kondisi insedental yang mingkin muncul.
  9. Abstraksi yang lebih detil dari analisis, tetapi lebih tinggi (general) dari coding.
  10. Dapat terukur kualitasnya.
  11. Harus di-review untuk meminimasi kesalahan semantik.

Tahapan perancangan (desain) yaitu:

  1. Perancangan Data
  2. Perancangan Arsitektur
  3. Perancangan Antarmuka
  4. Perancangan Prosedur

Dengan melakukan tahapan-tahapan tersebut, akan dihasilkan dokumen perancangan (Software Design Document = SDD), yang berisi:

  1. Ruang lingkup
  2. Prancangan data
  3. Perancangan Arsitektur
  4. Perancangan antarmuka
  5. Perancangan prosedur
  6. Kebutuhan lain
  7. Persiapan pengujian
  8. Catatan khusus

Hubungan tahap Analisis dengan tahapan Perancangan menggunakan Metode Terstruktur dapat digambarkan sebagai berikut:

 

 

  1. 1.   Perancangan Data

Perancangan data mentransformasikan model domain informasi yang dibangun dalam tahap analisis ke dalam struktur data yang akan dibutuhkan dalam implementasi (coding) perangkat lunak.

Objek data dan relasi yang didefinisikan dalam ER diagram serta detil data yang dijabarkan di dalam kamus data merupakan basis pengembangan perancangan data ini.

 

Dalam perancangan data, yang dilakukan adalah:

  1. Pemilihan representasi lojik dari objek data yang ditemukan pada proses analisis
  2. Perbaikan (refinement) terhadap kamus data menjadi:

–          struktur data tertentu (array, list, dll.)

–          struktur file tertentu

–          basisdata lengkap dengan fieldnya

 

 

Petunjuk teknis perancangan data:

  1. Menerapkan prinsip-prinsip analisis sistematis (pada tahap analisis)
  2. Mengidentifikasikan semua struktur data dan prosedur yang akan digunakan dalam pengaksesan data tersebut.
  3. Me-refine isi kamus data (data dictionary).
  4. Menunda perancangan data yang “low level” sampai di akhir proses perancangan.
  5. Merepresentasikan struktur data sedemikian rupa sehingga hanya modul yang  menggunakan data tersebut yang dapat mengaksesnya.
  6. Membangun pustaka untuk struktur data dan prosedur yang sering digunakan.

 

Hasil perancangan data adalah:

  1. Struktur data yang siap diprogram
  2. Struktur basis data yang siap dibuat oleh pemrogram
  3. Prosedur atau operasi untuk pengaksesan data yang telah siap diprogram.
  4. 2.   Perancangan Arsitektur

Perancangan Arsitektur merepresentasikan struktur data dan komponen program yang dibutuhkan untuk membangun sistem yang berbasis komponen.

Ketika kita berbicara tentang cetak biru sebuah bangunan, bangunan juga memiliki sebuah struktur arsitektur. Struktur arsitektur bangunan merepresentasikan cara mengintagrasikan komponen-komponen yang ada sehingga menjadi kesatuan yang kokoh. Struktur bangunan juga mempertimbangkan interaksinya dengan lingkungan sekitar. Struktur ini memudahkan pembangun untuk mengaplikasikan kebutuhan customer sehingga memenuhi keinginannya.

Begitu pula dengan perangkat lunak. Representasi struktur arsitektur perangkat lunak ini dapat mempermudah pengembang untuk:

  1. Menganalisa efektivitas desain dalam memenuhi kebutuhan perangkat lunak yang telah ditentukan dalam tahap analisis
  2. Mempertimbangkan alternatif perubahan pada desain kebutuhan perangkat lunak. Dengan melihat struktur perangkat lunak dapat diketahui di modul apa yang perlu dilakukan modifikasi, dan modifikasi tersebut akan berpengaruh pada modul apa.
  3. Meminimasi resiko pengembangan perangkat lunak.

 

 

Tujuan utama perancangan arsitektur adalah:

  1. Membangun struktur program yang modular.
  2. Merepresentasikan hubungan antar modul. (modul adalah kumpulan fungsional kebutuhan perangkat lunak yang relatif independent terhadap kumpulan fungsional kebutuhan perangkat lunak yang lain. Contoh, dalam stugi kasus membuat sistem Sistem Perpustakaan SMK TIKOM IBNU SIENA terdapat modul untuk menangani operasi dan transaksi terhadap buku, terdapat modul untuk menangani operasi dan transaksi terhadap anggota, dsb).
  3. Memadukan struktur program dan struktur data.
  4. Mendefinisikan antarmuka yang memungkinkan data dapat mengalir pada seluruh program.

Proses yang dilakukan yaitu mengubah aliran informasi (yang direpresentasikan dengan DFD) menjadi struktur perangkat lunak. Langkahnya:

  1. Menentukan jenis aliran informasi (dalam sebuah perangkat lunak aliran transformasional dan transaksional dapat digunakan bersama-sama)
  2. Menentukan batas aliran informasi
  3. Pemetaan DFD ke struktur program

Jenis Aliran informasi:

  1. Aliran Transformasional

 

 

 

Ciri-ciri jenis aliran Transformasional:

  1. Ada input dari entitas eksternal, lalu diproses dalam sistem, kemudian sistem menghasilkan output kembali ke entitas eksternal.
  2. Dilakukan secara berurutan (sequensial)

 

 

Langkah pemetaan untuk jenis aliran Transformasional:

  1. Kaji ulang model sistem dasarnya
  2. Kaji ulang dan perhalus DFD-nya
  3. Tentukan apakah DFD memiliki jenis aliran transaksional
  4. Isolasi pusat transaksi dengan menentukan batas aliran incoming dan outgoing.
  5. Lakukan faktorisasi
  6. Perhalus struktur program
  7. Aliran Transaksional

 

Ciri-ciri jenis aliran Transaksional:

  1. Terdapat input atau transaksi yang dapat memicu jalur aliran data yang lain.
  2. Aliran data merupakan transaksi pemilihan jalur aksi informasi.

Langkah pemetaan untuk jenis aliran Transaksional:

  1. Kaji ulang model sistem dasarnya
  2. Kaji ulang dan perhalus DFD-nya
  3. Tentukan pusat transaksi dan jenis aliran di sepanjang setiap jalur aksi.
  4. Lakukan faktorisasi
  5. Perhalus struktur program

 

  1. 3.   Perancangan Antarmuka

Fokus perancangan antarmuka:

  1. Antarmuka antar modul-modul perangkat lunak
  2. Antarmuka antara perangkat lunak dengan sumber informasi selain manusia
  3. Antarmuka dengan pengguna (manusia)

Jenis antarmuka yang diperlukan:

  1. Antarmuka untuk input parameter proses -> layar.
  2. Antarmuka untuk output proses -> layar
  3. Antarmuka untuk input data -> layar maupun parameter passing
  4. Antarmuka untuk output data -> layar maupun parameter passing
  5. Antarmuka untuk pesan-pesan

Hal-hal yang perlu diperhatikan dalam merancang antarmuka di layar: (MK IMK)

  1. Harus konsisten (warna, font, bahasa, layout, dsb).
  2. Memberikan umpan balik ke pengguna.
  3. Meminta verifikasi untuk semua aksi destruktif penting
  4. Memungkinkan aksi reversal (balikan)
  5. Mengurangi jumlah informasi yang harus diingat antar aksi.
  6. Efisiensi dialog, gerak, dan pikiran pengguna.
  7. Mengelompokkan aktivitas berdasarkan fungsi dan mengatur layar sesuai dengan pengelompokan tersebut.
  8. Sediakan bantuan (help) yang mudah navigasinya dan bila memungkinkan help yang sensitive terhadap konteks pengguna meminta bantuan.
  9. Perhatikan representasi data, sesuaikan dengan fungsi pengguna. Contoh pengguna level manajerial lebih membutuhkan diagram/grafik daripada detil data dalam tabel.
  10. Pesan kesalahan harus spesifik dan berarti, beri saran juga.
  11. Minimalisasi jumlah aksi masukan yang diperlukan.
  12. Sesuaikan dengan kebiasaan/kebutuhan user, misalnya:

–          clerk-keyboard, manajer-mouse

–          clerk-input, pembuat keputusan – update/delete

Perancangan antarmuka dapat dilakukan dengan:

  1. Manual pada kertas
  2. Dengan memanfaatkan CASE Tools (contoh AppModeller pada PowerDesigner).

 

Hasil perancangan antarmuka:

  1. Definisi antarmuka modul yang siap untuk diprogram.
  2. Definisi/format rancangan layar yang siap diimplementasikan

 

  1. 4.   Perancangan Prosedur

Tahapan ini merupakan tahapan terakhir dalam proses perancangan. Pada tahap ini dibangun algoritma (pseudo-code, program design language) yang siap diprogram dengan mengacu pada:

  1. Struktur data yang dibuat pada perancangan data
  2. Struktur modul dan kendali perangkat lunak yang dibangun pada saat merancang struktur arsitektur perangkat lunak.
  3. Struktur dan perancangan menu atau format tampilan layar yang diperoleh pada parancangan antarmuka.

Tahap Implementasi

Tahapan Implementasi adalah tahapan dalam rekayasa perangkat lunak yang dilakukan setelah tahapan Analisis dan Perancangan telah sempurna, dalam artian sudah selesai dan telah siap untuk dibuat dalam sebuah sistem. Dalam tahapan implementasi, bagian terpenting yang perlu diperhatikan adalah: Pengujian (Testing), Konversi, Instalasi dan Pelatihan.

  1. 1.   Pengujian

Testing adalah proses mengeksekusi keseluruhan program atau sistem secara intensif dengan maksud mencari kesalahan-kesalahan. Testing dilakukan tidak hanya untuk mendapatkan program yang benar, namun juga memastikan bahwa program tersebut bebas dari segala kesalahan-kesalahan dalam berbagai kondisi. Tahapan ini akan terpengaruh oleh tahapan Coding atau pembuatan program, jika pada saat pengkodean dilakukan dengan baik, maka waktu yang digunakan untuk testing juga semakin sedikit.

Kategori pengujian pada perangkat lunak meliputi:

  1. Functional, pengujian dilakukan untuk memastikan bahwa sistem dapat menjalankan fungsi secara normal. Dilakukan dengan cara memberikan input terhadap sistem dan meneliti output yang dihasilkan.
  2. Recovery, pengujian dilakukan untuk memastikan bahwa sistem dapat melakukan recovery terhadap berbagai jenis kesalahan atau kegagalan. Dilakukan dengan cara mensimulasikan berbagai kesalahan atau kegagalan, seperti kegagalan listrik, sistem operasi dan lainnya.
  3. Performance, pengujian dilakukan untuk memastikan bahwa sistem dapat memenuhi persyaratan kinerja yang sesuai.

 

Menurut Myers, jenis program testing dapat dibedakan menjadi:

  1. Module Test, test permodul dalam lingkungan yang tertutup
  2. Integration Test, verifikasi antarmuka modul dan bagian sistem
  3. External Function Test, verifikasi fungsi-fungsi eksternal
  4. System Test, verifikasi dan valdasi kerja sistem dalam lingkungan yang dibuat secara khusus
  5. Acceptance Test, validasi sistem dan persyaratan pengguna
  6. Instalation Test, untuk mencari kesalahan yang dibuat pada proses instalasi
  7. Simulation Test, mencoba meniru keadaan pada lingkungan tempat sistem tersebut akan dijalankan
  8. Field Test, dilakukan pada lingkungan pemakaian pada kondisi yang sebenarnya.
  9. 2.   Konversi

Konversi adalah suatu perubahan yang dapat meliputi berbagai hal, misalnya konversi program/sistem dan konversi data. Ada bebeapa hal yang perlu diperhatikan dalam konversi data dan konversi program yaitu:

  1. Konversi Data
    1.                           i.    Dalam konversi data ada perubahan dari sistem lama ke sistem baru
    2.                          ii.    Perlu diingat bahwa data dalam sistem yang lama masih mungkin mengandung kesalahan
    3.                         iii.    Harus berhati-hati dengan adanya perubahan domain data pada sistem yang baru, misalnya: perubahan sistem pengkodean, perubahan range.
    4.                          iv.    Pada umumnya ditempuh dengan cara membuat suatu program atau sistem khusus untuk keperluan konversi, akan tetapi pada banyak kasus tetap harus dibantu justifikasi oleh manusia.
    5. Konversi Program
      1. Konversi jarang sekali dilakukan kecuali dalam situasi yang khusus.
      2. Biasanya dengan alasan (biaya dan sistem masih baik) bahwa ada bagian dari sistem lama yang harus diintegrasikan dengan atau ke sistem yang baru. Bagian-bagian yang bersangkutan tidak dirancang kembali.
      3. Diperlukan semacam justifikasi tingkat kesulitan konversi. Ada bentuk konversi yang agak ringan, misalnya pemindahan jenis sistem operasi.
  2. 3.   Instalasi

Instalasi merupakan proses implementasi yang sangat penting karena sistem siap dicoba kedalam lingkungan yang baru. Ada beberapa hal yang perlu diperhatikan yaitu:

  1. Mempersiapkan Sistem Penunjang, komponen yang terlibat adalah:
    1. Bangunan/gedung/ruangan
    2. Sistem tenaga listrik
    3. Sistem telekomunikasi (telepon, radio, satelit)
    4. Sistem kondisi lingkungan (ac)
    5. Sistem keselamatan kerja dan keamanan fisik (petir, banjir, kebakaran)
    6. Mempersiapkan Hardware, hal yang harus diperhatikan adalah:
      1. Disusun suatu prosedur instalasi yang dilengkapi jenis test pada setiap kegiatan
      2. Harus ada Aceeptance Test yang disetujui oleh semua pihak yang terlibat
      3. Jika perlu dapat dipergunakan diagnostic software.
      4. Mempersiapkan Software, hal yang harus diperhatikan adalah:
        1. sama dengan point a dan b dalam mempersiapkan hardware
        2. Perlu adanya pengukuran kinerja sistem secara keseluruhan(Benchmarking)
  2. 4.   Pelatihan

Pelatihan adalah suatu usaha untuk memperkenalkan sistem yang baru ke klien atau suatu kelompok/organisasi. Dalam pelatihan ini perubahan-perubahan yang terjadi dalam sebuah sistem harus diketahui oleh orang yang akan menggunakan sistem tersebut.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bab IV.

STUDI KASUS TERSTRUKTUR:

Sistem Perpustakaan SMK TIKOM IBNU SIENA

 

 Pendahuluan

Dengan bekal pemahaman sebelumnya, kita akan membangun sebuah perangkat lunak yaitu Sistem Perpustakaan SMK TIKOM IBNU SIENA. Perangkat lunak ini berjalan di sebuah stand alone komputer. Metode pengembangan menggunakan Metode analisis dan perancangan Terstruktur dengan Model Waterfall.

 

1. Tahap Analisis

Aktivitas Analisis yang dilakukan untuk membuat Sistem Perpustakaan adalah:

  1. Pendefinisian lingkup perangkat lunak

Lingkup perangkat lunak Sistem Perpustakaan SMK TIKOM IBNU SIENA ini adalah:

  1. Perangkat lunak dikembangkan di Perpustakaan SMK TIKOM IBNU SIENA (fiktif)
  2. Perangkat lunak dinamai SISPUS SMK TIKOM IBNU SIENA atau Sistem Informasi Perpustakaan SMK TIKOM IBNU SIENA.
  3. Perangkat lunak dioperasikan pada stand alone komputer.
  1. Identifikasi dan pengumpulan kebutuhan perangkat lunak

Kebutuhan perangkat lunak Perpustakaan SMK TIKOM IBNU SIENA (SISPUS SMK TIKOM IBNU SIENA = Sistem Informasi Perpustakaan SMK TIKOM IBNU SIENA):

  1. Dapat mencatat dan mengolah transaksi peminjaman buku
    1. Dapat mencatat dan mengolah transaksi pengembalian buku
    2. Mencatat nomor buku yang dikembalikan
    3. Mencatat bahwa pengembalian telah dilakukan
      1. Saat pengembalian, ditampilkan keterangan buku yang dikembalikan: Menampilkan nomor buku, judul, dan pengarangnya
      2. Saat pengembalian, ditampilkan keterangan peminjam: Menampilkan nomor anggota, nama, dan alamat
      3. Mengecek keterlambatan pengembalian: Mengecek apakah pengembalian terlambat. Bila terlambat, tampilkan jumlah hari keterlambatan
  2. Dapat mencatat tambahan buku
    1. Mencatat nomor buku, judul, pengarang, dan asal buku: Bila nomor buku telah ada, tampilkan pesan bahwa nomor tersebut telah ada.
  3. Dapat menghapus buku yang pernah ada (hapus data buku)
    1. Dengan memberikan nomor buku, tampilkan data buku tersebut
    2. Dapat menghapus keberadaan buku dari basisdata
  4. Dapat menambah anggota/peminjam
    1. Mencatat nomor anggota, nomor KTP, nama, dan alamat: Bila nomor anggota telah ada, tampilkan pesan bahwa nomor tersebut telah ada.
  5. Dapat menghapus anggota/peminjam
    1. Dengan memberikan nomor anggota, tampilkan data anggota: Bila nomor anggota tidak ada, tampilkan pesan bahwa nomor tersebut tidak ada.
    2. Dapat menghapus anggota dari basisdata
  6. Dapat mencari data anggota berdasar nomor
  7. Dapat mencari data anggota berdasar nama
  8. Dapat mencari data buku berdasar nomor
  9. Dapat mencari data buku berdasar judul
  10. Dapat mencari data buku berdasar pengarang
  11. Dapat mencari data buku berdasar subjek
    1. Dapat mencari data buku yang sedang dipinjam beserta peminjamnya (dan keterangan keterlambatan pengembalian)
    1. Mencatat nomor anggota yang meminjam
    2. Mencatat nomor buku yang dipinjam
    3. Mencatat tanggal peminjaman
    4. Saat peminjaman, ditampilkan keterangan buku yang akan dipinjam: Menampilkan nomor buku, judul, dan pengarangnya
    5. Saat peminjaman, ditampilkan keterangan peminjam: Menampilkan nomor anggota, nama, dan alamat

Asumsi

Data subjek buku pada basisdata sesuai dengan standart penomoran yang digunakan. Tabel subjek (ID_subjek, Desc_Subjek) telah terisi.

 

  1. Pemodelan data
  1. Entity Relationship Diagram

 

 

  1. Data Object Description
Atribut Tipe Deskripsi
No_anggota Alpha numerik Merupakan identitas anggota yang nilainya unik.

Format penomoran : (Huruf pertama nama anggota) + (nomor)

No_KTP Karakter Sesuai dengan format nomor KTP di Indonesia (gabungan angka dan titik)
Nama Karakter Nama anggota
Alamat Karakter Alamat tempat tinggal anggota
Tgl_pinjam Date Tanggal peminjaman buku
Status Boolean Merupakan keterangan apakah buku telah dikembalikan.

True  = buku telah dikembalikan

False = buku masih dipinjam

No_buku Alpha numerik Format penomoran menganut format standart penomoran buku UDC
Judul Karakter Judul buku
Pengarang Karakter Nama pengarang buku
Asal_buku Karakter Sumber perolehan buku, merupakan keterangan tambahan. Contoh : beli, hadiah dari Bpk A dsb
ID_subjek Numerik Merupakan bagian dari penomoran buku (substring) yang memiliki makna penomoran subjek buku
Desc_subjek Karakter Keterangan subjek atau nama subjek

 

  1. Data Dictionary
    1. Nama           : Data Buku

Alias            : –

Deskripsi     : Merupakan data tentang buku-buku perpustakaan, berisi:

nomor buku            = (nomor subjek-nomor subsubjek-nomor urut buku)

nomor subjek         = 1 – 100

nomor sub-subjek  = 1 – 100

nomor urut buku     = 1 – ~

judul                      = karakter

pengarang              = karakter

asal buku               = katakter

  1. dan seterusnya

Lanjutkan sendiri untuk semua data yang terlibat dalam sistem, berikut field-fieldnya, keterangan mengenai tipe data. Penulisan Kamus Data dapat dilakukan dengan banyak cara, salah satunya adalah point 1 diatas, contoh lainnya akan anda pelajari pada matakuliah Rekayasa Perangkat Lunak.

  1. Pemodelan fungsional
  1. Diagram Context

SISPUS

SMK TIKOM

IBNU SIENA

 

 

  1. Data Flow Diagram:

DFD Level-1

 

 

 

DFD Level-2: Dekomposisi Proses 1, Proses Peminjaman

 

 

DFD Level-2: Dekomposisi Proses 2, Proses Pengembalian

Silahkan anda lanjutkan sendiri, Dekomposisi Proses 2 sampai dengan Dekomposisi Proses 7. Caranya sama dengan Dekomposisi yang dilakukan pada tahap Dekomposisi Proses 1 untuk Proses Peminjaman. Proses dekomposisi ini terus dilakukan terhadap semua proses, hingga tidak ada lagi proses yang belum tergantikan.

 

Tata cara atau batasan mengenai pembuatan diagram alir data atau DFD hampir sama dengan batasan pembuatan Diagram Context, karena diagram konteks dapat disebut sebagai DFD Level 0.

 

  1. Process Specification

Proses-1: Peminjaman

  1. Proses 1.1, 1.2, 1.3: Input Peminjaman

Proses 1.1, 1.2, 1.3 disatukan karena dapat diinstruksikan dalam sebuah perintah SQL

Input:

         Nomor buku, nomor anggota, tanggal peminjaman

Begin

{insert nilai ke basis data (tabel peminjaman) dengan nilai nomor buku yang dipinjam, nomor anggota peminjam, tanggal peminjaman yang diperoleh dari sistem, dan sebuah atribut bahwa buku sedang dipinjam (status=false)}

End

 

 

 

  1. Proses 1.4: Display Data Buku

Input:

         Nomor buku

Output:

         Hasil seleksi dari basis data yang ditampilkan ke layar

Begin

//Masukkan nomor buku yang dipinjam

//Select (nomor buku, subjek, judul, pengarang) dari basisdata (tabel buku, dan tabel subjek) sesuai dengan nomor buku yang dipinjam. Subjek didapat dari substring nomor buku yang menyatakan subjek

//Tampilkan hasil select tabel ke layar

End

 

  1. Proses 1.5: Display Data Peminjam

Input:

         Nomor anggota

Output:

Hasil seleksi dari basis data yang ditampilkan ke layar

Begin

//Masukkan nomor anggota (peminjam)

//Select (nomor anggota, nama, alamat, nomor KTP) dari basisdata (tabel anggota) sesuai dengan nomor anggota

//Tampilkan hasil select tabel ke layar

End

 

Proses spesifikasi untuk Pengembalian, Tambah Buku, Hapus Buku, Tambah Anggota, Hapus Anggota, Pencarian dapat dilakukan apabila proses-proses tersebut telah di Dekomposisi hingga akhir (tidak ada lagi proses yang belum tergantikan) pada tahapan pembuatan DFD.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Pemodelan status/kelakuan

 

 

2. Tahap Perancangan

Aktivitas Perancangan yang dilakukan untuk membuat Sistem Perpustakaan adalah:

  1. Perancangan Data
Nama Tabel : Buku
Kegunaan : Menyimpan nama tabel-tabel dan halaman query
Media Penyimpanan : Harddisk
Field Kunci : id
No. Field Name Type Size Note
1 Id integer NOT NULL auto_increment
2 No_buku integer 10 NOT NULL
3 Judul varchar 50 NOT NULL
4 Pengarang varchar 30 NOT NULL
5 Asal buku varchar 10 NOT NULL
6 Status integer 6 NOT NULL

 

 

 

 

 

 

  1. Perancangan Arsitektur

 

 

  1. Perancangan Antarmuka

Perancangan antarmuka adalah bagian terpenting dalam pengembangan perangkat lunak, karena bagian ini sebagai tempat sistem berkomunikasi dengan pengguna. Tata cara perancangan antarmuka yang baik dapat anda pelajari pada matakulah Interaksi Manusia dan Komputer. Contoh dari rancangan antarmuka adalah sebagai berikut:

 

 

  1. Perancangan Prosedur

Perancangan Prosedur dalam sistem dibuat berdasarkan Struktur Menu dan Struktur Program Sistem Perpustakaan SMK TIKOM IBNU SIENA. Perancangan Prosedur dibuat sedemikian rupa dan akan digunakan pada saat implementasi. Bagian ini dapat anda kembangkan sendiri.

 

1.2     Tugas:

Dengan cara yang sama, coba anda buat ERD, Context Diagram dan DFD untuk kasus pengajuan KRS di STMIK DCI dari awal (ketika mengambil formulir) sampai akhir (ketika lembaran KRS di berikan ke dosen wali).

 

 

 

 

 

 

Bab V.

ANALISIS & PERANCANGAN DENGAN

PENDEKATAN BERORIENTASI OBJEK

 

 Pendahuluan

Sebelum dimulai, perlu diingatkan kembali mengenai Rekaya Perangkat Lunak. Rekayasa Perangkat Lunak adalah  Suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem setelah digunakan. Pada bab sebelumnya kita mencoba memahami rekayasa perangkat lunak menggunakan pendekatan terstruktur (Data Oriented Approach). Sedangkan pada bab ini rekayasa perangkat lunak menggunakan pendekatan objek (Object Oriented Approach).

 

Pada pendekatan terstruktur ditemui banyak kelemahan dan kesulitan dalam merekayasa perangkat lunak dan tidak menggambarkan ‘dunia nyata’ dengan baik karena fungsi yang ada berorientasi pada fungsi saja dan tidak berhubungan langsung dengan permasalahan sehingga titik berat perancangan lebih kearah apa yang dibayangkan pengembang bukan apa yang diinginkan pengguna (user’s need expectation). Karakteristik pendekatan terstruktur adalah sebagai berikut:

  1. Penekanan pada sesuatu yang harus dikerjakan (algoritma pemacahan masalah), dimulai dari menerima input, melakukan proses, menghasilkan output.
  2. Program berukuran besar dipecah menjadi program-program yang lebih kecil.
  3. Kebanyakan fungsi/prosedur berbagi data global
  4. Data bergerak secara bebas dalam sistem, dari satu fungsi ke fungsi lain yang terkait
  5. Fungsi-fungsi mentransformasi data dari satu bentuk ke bentuk yang lain.
  6. Pendekatan yang digunakan yaitu pendekatan atas ke bawah (top down approach)

 

Analisis dan Perancangan perangkat lunak dengan pendekatan objek atau dikenal dengan pendekatan berorientasi objek (Object Oriented Approach) yaitu pendekatan untuk pengembangan perangkat lunak yang menitik beratkan permasalahan pada abstraksi objek-objek yang ada di dunia nyata. Abstraksi adalah menemukan serta memodelkan fakta-fakta dari suatu objek yang penting. Pendekatan ini digunakan oleh banyak pengembang sekitar awal tahun 1990-an.

Karakteristik pendekatan objek adalah sebagai berikut:

  1. Pendekatan lebih pada data dan bukanya pada prosedur/fungsi.
  2. Program besar dibagi pada sesuatu yang disebut objek-objek
  3. Struktur data dirancang dan menjadi karakteristik dari objek-objek.
  4. Fungsi-fungsi yang mengoperasikan data tergabung dalam suatu objek yang sama.
  5. Data tersembunyi dan terlindung dari fungsi/prosedur yang ada diluar
  6. Objek-objek dapat saling berkomunikasi dengan saling mengirim message (pesan) satu sama lain.
  7. Pendekatan yang digunakan yaitu pendekatan bawah ke atas (bottom up approach)

 

Secara umum, pendekatan terstruktur lebih sesuai untuk pengembangan aplikasi-aplikasi ilmiah (scientific application) karena memiliki fungsi-fungsi yang relatif stabil (ditentukan oleh hukum atau formula yang nilainya tidak berubah, seperti grafitasi). Pendekatan ini kurang memuaskan jika diterapkan pada aplikasi bisnis (business application) karena fungsi-fungsi didefinisikan oleh manusia yang bersifat subjektif dan berubah-ubah setiap waktu.

 

Solusi untuk permasalahan diatas adalah menggunakan pengembangan berorientasi objek dimana fungsi-fungsi disetarakan dan disatukan menjadi sebuah objek. Sebuah Objek adalah entitas yang menggabungkan data serta fungsi pada dirinya sendiri. Dengan cara ini pengembang dapat menghasilkan PL yang fleksibel, modifikatif, dan mudah dipelihara.

 

1. Konsep Berorientasi Objek

Untuk memahami titik pandang dan maksud dari ‘berorientasi objek’, kita dapat mempelajarinya dari alam secara luas. Obyek ada disekeliling kita, baik yang konkrit atau konseptual. Dalam sudut pandang Eksekutif perusahaan: Karyawan, Absensi, Gaji, Profit dapat disebut sebagai Objek. Seorang Arsitek melihat Gedung, Biaya dan tenaga kerja sebagai objek. Konsep-konsep dasar dalam memahami Objek dapat dilihat pada subjudul berikut:

 

  1. 1.  Object / Objek

Objek adalah orang, tempat, benda, kejadian atau konsep-konsep yang ada di dunia nyata dan penting bagi suatu aplikasi. Sebuah objek adalah Entitas yang memiliki Identitas, State (keadaan sesaat) dan Behavior (perilaku).

 

State sebuah objek adalah kondisi objek tersebut yang dinyatakan dalam Atribut atau property. Behavior sebuah objek mendefinisikan bagaimana sebuah objek bertindak/bereaksi yang dinyatakan dalam Operation. Satu object dapat diturunkan menjadi object dalam bentuk lain, kemudian saling mengkait menyusun sesuatu yang lebih rumit.

 

Langkah pertama yang harus dilakukan dalam pengembangan PL berorientasi objek adalah melakukan Abstraksi yaitu: kegiatan atau suatu usaha untuk mengenali objek-objek dan mengelompokkannya kedalam suatu kelas. Misalkan objek Hewan: Unggas, Reptil, maka Unggas dan Reptil adalah kelas-kelas dalam objek Hewan. Tata cara atau notasi pembuatan entitas objek digambarkan sebagai berikut:

 

 

  1. 2.  Class / Kelas

Class adalah kumpulan atau himpunan objek-objek yang sejenis, memiliki kesamaan atribut/property, perilaku, serta relasi dengan objek lain yang mirip. Notasi kelas digambarkan dengan kotak, dengan nama kelas didalamnya ditulis menggunakan huruf besar di awal kata. Bila sebuah kelas memiliki 2 suku kata atau lebih, maka penulisannya disatukan tanpa spasi dengan huruf awal tiap suku menggunakan huruf besar.Contohnya adalah Barang Elektronik  dapat dikatakan sebagai sebuah Kelas apabila memiliki kesamaan dengan objek yang ada padanya misalnya Mesin Cuci, Televisi, Radio, Kulkas adalah objek-objek yang dapat dikelompokkan kedalam satu kelas yaitu Barang Elektronik rumah tangga.

 

 

  1. 3.  Attribute / Atribut

Attribute adalah data yang dimiliki suatu objek atau property dari sebuah Class yang menggambarkan batas nilai yang mungkin ada pada obyek dari kelas. Sebuah bisa memiliki nol atau lebih atribut. Notasi atribut digambarkan dengan kotak dibawah kotak class, dengan nama atribut didalamnya ditulis menggunakan huruf kecil. Jika sebuah atribut memiliki 2 atau lebih suku kata, maka semua suku kata ditulis disatukan tanpa spasi, awal suku kata pertama dengan huruf kecil dan awal suku kata berikutnya dengan huruf besar.

 

Notasi atribut dapat ditambahkan informasi dengan tipe-tipe atribut tersebut. Penulisan tipe pada atribut dipisahkan dengan tanda titik dua (:), tipe yang ditambahkan berupa String, Floating-Point number, Integer dan Boolean.

 

 

 

  1. 4.  Operation / Operasi

Operation adalah sesuatu yang bisa dilakukan oleh sebuah class. Notasi penulisannya sama dengan atribut. Bagian operation ini juga bisa diberikan tambahan informasi, yaitu dengan menambahkan parameter yang akan dilakukan operation dalam tanda kurung. Contoh parameternya adalah function.

 

 

  1. 5.  Inheritance / Pewarisan

Inheritance atau pewarisan memungkinkan dibuat class yang menyerupai class lain yang telah ada sebelumnya, tetapi masih memiliki beberapa sifat induknya. Misalkan dari sebuah mobil biasa, anda dapat membuat mobil balap serta mobil angkutan umum. Prosesnya adalah dengan mengubah sifat dari mobil biasa tersebut.

 

  1. 6.  Polymorphisme / Kebanyakrupaan

Polymorphism adalah object yang memiliki fungsi sama dengan object dasar tetapi memiliki satu atau lebih sifat berbeda atau dengan kata lain Polymorphisme adalah pemisahan secara jelas diantara subsistem yang berbeda. Sebagai contoh misalkan sebuah kelas memiliki operasi ‘OPEN’, operasi open ini bisa dipakai untuk membuka pintu, membuka buku, membuka baju dan lainnya. Meskipun ‘OPEN’ memiliki tujuan yang sama, tapi apa yang dilakukannya berbeda.

 

  1. 7.  Encapsulation / Pembungkusan

Encapsulation sering disebut dengan penyembunyian informasi (Hidding), suatu konsep berdasarkan fakta di dunia nyata yang menyatakan bahwa segala sesuatu tidak perlu diperlihatkan. Misalnya kita tidak perlu tahu apa yang dilakukan sistem ketika kita menekan remote untuk menghidupkan televisi.

 

  1. 8.  Responsibilities / Tanggung Jawab

Responsibilities adalah model tambahan yang digambarkan pada bagian bawah suatu kelas setelah bagian operasi digunakan untuk menjelaskan pernyataan-pernyataan mengenai apa-apa yang bisa dilakukan oleh kelas tersebut.

 

 

 

2. Tahap Analisis

Apabila akan membangun suatu sistem baru, apapun pendekatan yang digunakan (terstruktur/objek) harus melewati proses analisis. Tahapan analisis menggunakan pendekatan berorientasi objek dikenal dengan  OOA (Object-Oriented Analysis). OOA adalah aktifitas teknik yang pertama kali dilakukan sebagai bagian dari rekayasa perangkat lunak berorientasi objek.

 

Ada 5 prinsip dasar OOA untuk membangun model analisis, yaitu:

  1. Domain informasi dimodelkan
  2. Fungsi modul digambarkan
  3. Tingkah laku model direpresentasikan
  4. Model di partisi untuk mengekspos detail yang lebih besar
  5. Model awal merepresentasikan inti masalah, sedangkan model selanjutnya memberikan detail implementasi.

 

Tujuan OOA adalah menentukan semua kelas (dan hubungan serta tingkah laku yang berkaitan dengannya) yang relevan dengan masalah yang akan dipecahkan.

 

 

 

Agar tujuan dari OOA ini terpenuhi, serangkaian tugas harus dilakukan, yaitu:

  1. Persyaratan pemakai dasar harus dikomunikasikan antara customer dengan enginer.
  2. Kelas-kelas harus didefinisikan (misalnya, atribut dan metode yang ditentukan)
  3. Hirarki kelas harus dispesifikasikan.
  4. Hubungan Objek-Ke-Objek (koneksi objek) harus direpresentasikan
  5. Tingkah laku objek dimodelkan
  6. Tugas 1 sampai 5 diaplikasikan lagi secara iterative sampai model selesai.

Masalah diuji dengan menggunakan model input-proses-output klasik (aliran data, sama seperti menggunakan metode terstruktur) atau dengan menggunakan model yang ditarik secara eksklusif dari struktur informasi hirarkis. Sampai bagian ini Konsep Analisis menggunakan pendekatan berorientasi objek (OOA) menjadi sulit dipahami karena TIDAK ADA kesepakatan Universal mengenai “Konsep” yang berfungsi sebagai dasar dari OOA.  Hal ini dikarenakan terlalu banyak metode (konsep) yang bisa digunakan, yaitu:

  1. Shlaer/Mellor Method [Shlaer-1988]
  2. Booch Method [Booch-1991] / OOAD
  3. Coad/Yourdan Method [Coad-1991]
  4. OMT Method [Rumbaugh-1991]
  5. Wirfs-Brock Method [Wirfs-Brock-1990]
  6. OOSE Objectory Method [Jacobson-1992]
  7. UML (Unified Modeling Language) [UML-1997]

 

Meskipun tidak ada kesepakatan mengenai konsep-nya, sasaran yang hendak dicapainya tetap sama. Sasaran OOA adalah mengembangkan sederetan model yang menggambarkan perangkat lunak komputer pada saat perangkat lunak tersebut berkerja untuk memenuhi serangkaian persyaratan yang ditentukan oleh pelanggan.

  1. Metode Booch

Metode Booch terfokus pada proses pengembangan Mikro dan proses pengembangan Makro. Tingkat mikro menentukan serangkaian tugas analisis yang diaplikasikan lagi untuk masing-masing langkah pada proses makro. Dengan demikian pendekatan Evolusioner dijaga. Metode Booch didukung oleh berbagai piranti otomatis. Outline singkat dari proses pengembangan mikro OOA Booch adalah sebagai berikut:

  1. Identifikasi kelas dan objek
    1. Usulkan objek calon

IV. Lakukan analsis tingkah laku

  1. Identifikasi scenario yang relevan

VI. Tentukan atribut dan operasi untuk amsing-masing kelas

  1. Identifikasi semantik dari kelas dan objek
    1. Pilih scenario dan analsis

IV. Tentukan tanggungjawab untuk mencapai tingkah laku yang diinginkan

  1. Bagikan tanggungjawab untuk menyeimbangkan tingkah laku

VI. Tentukan objek dan sebutkan tugas dan tanggungjawabnya satu per satu.

  1. Tentukan operasi untuk memenuhi tanggungjawab
  2. Carilah kolaborasi diantara objek.
  3. Identifikasi hubungan diantara kelas dan objek
    1. Tentukan ketergantungan yang ada diantara objek

IV. Deskripsikan peran masing-masing objek yang berpartisipasi

  1. Validasi melalui skenario
  2. Lakukan sederetan penyaringan
    1. Hasilkan diagram yang sesuai untuk kerja yang dilakukan diatas

IV. Tentukan hirarki kelas yang sesuai

  1. Lakukan pengikatan berdasarkan kelaziman data
  2. Implementasikan kelas dan objek (dalam konteks OOA, hal ini mengimplikasikan pelengkapan metoe analisis)

 

  1. Metode Coad-Yourdan

Metode Coad-Youdan adalah metoda OOA yang paling mudah dipelajari, karena Notasi pemodelannya relatif sederhana dan pedoman untuk mengembangkan model analisis tersebut jelas. Outline singkat mengenai proses OOA Coad-Yourdan adalah sebagai berikut:

  1. Identifikasi objek dengan menggunakan kriteria “apa yang dicari?”
  2. Tentukan struktur generalisasi-spesifikasi
  3. Tentukan struktur keseluruhan bagian
  4. Identifikasi subjek (representasi dari komponen subsistem)
  5. Tentukan atribut
  6. Tentukan pelayanan

 

  1. Metode Jacobson

Metode Jacobson ada dua yaitu versi lama disebut Objectory dan versi selanjutnya disebut OOSE (Object Oriented Software Engineering). OOSE adalah penyederhanaan dari metode Objectory. Metode OOSE difokuskan pada Use-Case, yaitu deskripsi atau scenario yang menggambarkan bagaimana pemakai berinteraksi dengan produk atau sistem. Outline singkat mengenai proses OOA Jacobson adalah sebagai berikut:

  1. Identifikasi pemakai sistem dan seluruh tanggung jawab mereka
  2. Bangun model persyaratan
    1. Tentukan actor dan tanggung jawab mereka

IV. Identifikasi use-case untuk setiap tingkah laku

  1. Persiapkan pandangan awal mengenai objek dan hubungan sistem

VI. Kaji model dengan menggunakan use-case sebagai scenario untuk menentukan validitas.

  1. Bangun model analisis
    1. Identifikasi objek interface dengan menggunakan informasi interaksi actor
    2. Ciptakan pandangan structural mengenai objek interface
    3. Representasikan tingkah laku objek
    4. Isolasi subsistem dan model untuk masing-masing
    5. Kaji model dengan menggunakan use-case seperti scenario untuk menentukan validitas.

 

  1. Metode Rumbaugh

Rumbaugh dan rekan-rekan mengembangkan OMT (Object Modelling Technique) menggunakan desain sistem dan desain tingkat objek. Aktivitas analisis menciptakan tiga model:

  1. Model Objek, representasi objek, kelas, hirarki dan hubungan.
  2. Model Dinamis, representasi dari objek dan tingkah laku sistem
  3. Model Fungsional, representasi aliran informasi seperti DFD tingkat tinggi melalui sistem tersebut.

 

Outline singkat mengenai proses OOA Rumbaugh adalah sebagai berikut:

  1. Kembangkan pernyataan ruang lingkup masalah
  2. Bangun model objek
    1. Identifikasi kelas yng relevan untuk masalah tersebut
    2. Tentukan atribut dan asosiasi
    3. Tentukan link objek
    4. Organisasikan kelas objek dengan pewarisan
    5. Kembangkan model dinamis
      1. Siapkan scenario
      2. Tentukan event dan kembangkan penelusuran event untuk masing-masing scenario
      3. Buatlah diagram aliran event
      4. Kembangkan diagram keadaan
      5. Kaji tingkah laku untuk konsistensi dan kelengkapannya
      6. Buat model fungsional untuk sistem tersebut
        1. Identifikasi input dan output
        2. Gunakan diagram aliran data untuk merepresentasikan transformasi aliran
        3. Kembangkan PSPEC (proses spesifikasi: ERD, DFD, Relationship) untuk masing-masing fungsi.
        4. Tentukan batasan dan kriteria optimasi.

 

  1. Metode Wirfs-Brock

Metode Wirfs-Brock tidak membuat perbedaan yang jelas antara analsis dan tugas desain. Metode ini mengusulkan proses kontinu mulai dengan penilaian terhadap spesifikasi  pelanggan dan berakhir dengan desain. Outline singkat mengenai tugas yang berhubungan dengan analisis Wirfs-Brock adalah sbagai berikut:

  1. Evaluasi spesifikasi pelanggan
  2. Berikan uraian gramatikal untuk mengekstrak kelas calon dari spesifikasi pelanggan
  3. Kelompokkan kelas dengan tujuan untuk mengidentifikasi superkelas
  4. Tentukan tanggung jawab untuk masing-masing kelas
  5. Identifikasi hubungan antar kelas
  6. Tentukan kolaborasi diantara kelas berdasarkan tanggung jawab
  7. Bangun representasi hirarki kelas untuk memperlihatkan hubungan pewarisan
  8. Bangun grafik kolaborasi untuk sistem

 

Masing-masing metode OOA diatas memiliki terminology dan langkah proses yang berbeda. Secara keseluruhan proses OOA-nya mirip. Untuk melakukan OOA, perekayasa perangkat lunak harus melewati langkah-langkah generic sebagai berikut:

  1. Cari persyaratan pelanggan untuk sistem OOA
  2. Pilih kelas dan objek dengan menggunakan persyaratan dasar sebagai panduan
  3. Identifikasi atribut dan operasi untuk masing-masing objek sistem
  4. Tentukan struktur dan hirarki yang mengorganisasi kelas
  5. Bangun suatu model hubungan objek
  6. Bangun suatu model tingkah laku objek
  7. Kaji model analsis OO terhadap use-case scenario.

 

3. Tahap Perancangan

Tahapan perancangan menggunakan pendekatan berorientasi objek dikenal dengan  OOD (Object-Oriented Design). OOD mentransformasikan model analsis yang dibuat menggunakan OOA kedalam suatu model desin yang berfungsi sebagai cetak biru bangunan perangkat lunak. OOD menghasilkan desain yang mencapai sejumlah tingkatan yang berbeda dari modularitasnya. Komponen Mayor dikumpulkan (dienkasuplasi) didalam modul tingkat sistem yang disebut subsistem. Subsistem tersebut berisi Data, Operasi untuk memanipulasi data, Atribut, Detail procedural operasi individu, dan Algoritma. Subsistem tersebut terangkum dalam OO, yang akhirnya menjadi sifat unik dari OOD.

 

Empat konsep desain perangkat lunak yang penting adalah:

  1. Abstraksi
  2. Penyembunyian Informasi
  3. Independensi Fungsional
  4. Modularitas.

 

Hubungan tahap Analisis dengan tahapan Perancangan menggunakan Metode Berorientasi Object dapat digambarkan sebagai berikut:

 

 

 

 

  1. Metode Booch

Metode Booch meliputi pendekatan proses pengembangan mikro dan proses pengembangan makro, seperti yang dijelaskan pada halaman 50. Outline singkat mengenai proses pendekatan mikro OOD Booch adalah sebagai berikut:

  1. Perencanaan Arsitektur
    1. Klusterkan/ satukan objek yang mirip didalam partisi arsitektur yang serupa
    2. Lapiskan objek dengan tingkat abstraksi
    3. Identifikasi scenario yang relevan
    4. Validasi prototype desain dengan mengaplikasikannya ke scenario kegunaan

 

  1. Desain Taktis
    1. Tentukan aturan domain independent (aturan yang mengatur penggunaan operasi dan atribut)
    2. Tentukan aturan domain spesifik bagi pengaturan manajemen, penanganan kesalahan, dan fungsi infrastruktur yang lain
    3. Kembangkan scenario yang menggambarkan semantik dari aturan
    4. Ciptakan prototype untuk masing-masing aturan
    5. Saringlah instrument dan prototype tersebut
    6. Kaji masing-masing aturan untuk memastikan bahwa aturan itu menyiarkan visi arsitekturnya

 

  1. Perencanaan Rilis
    1. Kumpulkan scenario yang dikembangkan selama OOA sesuai prioritas
    2. Alokasikan rilis arsitektur yang bersesuaian dengan scenario
    3. Rancang dan bangunlah masing-masing rilis arsitektur secara incremental
    4. Sesuaikan tujuan dan jadwal rilis incremental sesuai kebutuhan

 

 

  1. 2.   Metode Coad-Yourdan

Metode Coad-Yourdan untuk OOD dikembangkan dengan mempelajari bagaimana “desainer OO yang efektif” melakukan kerja desain mereka. Pendekatan desain tersebut tidak hanya menyinggung aplikasi tetapi juga infrastruktur untuk aplikasi. Outline singkat proses OOD Coad-Yourdan aalah sebagai berikut:

  1. Komponen Domain Masalah
    1. Kumpulkan semua kelas spesifik domain
    2. Rancang hirarki kelas yang sesuai untuk kelas aplikasi
    3. Bekerjalah untuk menyederhanakan pewarisan bila perlu
    4. Saringlah desain untuk meningkatkan kinerja
    5. Kembangkan suatu interface dengan komponen manajemen data
    6. Saring dan tambahkan objek tingkat data yang diperlukan
    7. Kaji desain dan kemungkinan beberapa tambahan ke model analisis
    8. Komponen Interaksi Manusia
      1. Tentukan actor manusia
      2. Kembangkan scenario tugas
      3. Desain sebuah hirarki perintah pemakai
      4. Saringlah urutan interaksi pemakai
      5. Rancanglah kelas-kelas yang relevan dan hirarki kelas
      6. Integrasikan kelas-kelas GUI yang sesuai
      7. Komponen Manajemen Tugas

LII.Identifikasi tipe-tipe tugas (misalnya event yang dikendalikan, jam yang dikendalikan)

  1. Buat prioritas
  2. Identifikasi suatu tugas untuk berfungsi sebagai coordinator bagi masing-masing tugas
  3. Desain objek yang sesuai untuk masing-masing tugas
  4. Komponen Manajemen Data
    1. Desain struktur data dan layout
    2. Desain pelayanan yang diperlukan untuk mengatur struktur data
    3. Identifikasi piranti yang dapat membantu mengimplementasikan manajemen data
    4. Desain kelas-kelas yang sesuai hirarkinya.

 

  1. 3.   Metode Jacobson

Aktifitas desain untuk OOSE merupakan versi sederhana dari metode Objectory. Model desain tersebut menekankan kemampuan penelusuran ke model analisis OOSE. Outline singkat mengenai proses OOD Jacobson adalah sebagai berikut:

  1. Perhatikan penyesuaian untuk membuat model analsis yang diidealkan dapat memenuhi lingkungan dunia nyata
  2. Buat blok (abstraksi desain yang memperbolehkan representasi objek komposit) sebagai objek desain primer.
    1. Tentukan blok untuk mengimplementasikan objek analisis yang sesuai
    2. Identifikasi blok interface, blok entitas dan blok kontrol
    3. Gambarkan bagaimana blok berkomunikasi selama eksekusi
    4. Identifikasi stimulus yang dilewatkan diantara blok-blok dan urutan komunikasi mereka.
    5. Buat diagram interaksi yang memperlihatkan bagaimana stimulus di lewatkan diantara blok-blok
    6. Kumpulkan blok-blok kedalam subsistem
    7. Kaji kerja desain

 

  1. 4.   Metode Rumbaugh

Object Modelling Tecnique (OMT) meliputi aktifitas desain yang mendorong desain untuk dilakukan paa dua tingkat abstraksi yang berbeda. Desain sistem berfokus pada layout komponen yang diperlukan untuk membangun produk atau sistem yang lengkap. Desain objek menekankan layout detail dari suatu objek individu. Outline singkat mengenai proses OO Rumbaugh adalah sebagai berikut:

  1. Lakukan desain sistem
    1. Partisi model analisis kedalam subsistem
    2. Identifikasi konkurensi yang ditentukan oleh masalah
    3. Alokasikan subsistem ke prosesor dan tugas
    4. Pilih strategi dasar bagi pengimplementasian manajemen data
    5. Identifikasi sumber daya global dan mekanisme kontrol yang diperlukan untuk mengakses mereka
    6. Rancang mekanisme kontrol yang sesuai untuk sistem tersebut
    7. Perhatikan bagaimana kondisi batas harus ditangani
    8. Kajilah dan perhatikan trade-offs
    9. Lakukan desain objek
      1. Pilih operasi dari model analsis
      2. Tentukan algoritma untuk masing-masing operasi
      3. Pilih struktur data yang sesuai untuk algoritma
      4. Tentukan setiap kelas internal
      5. Kajilah organisasi kelas untuk mengoptimalkan akses data dan tingkatkan efisiensi komputasi
      6. Rancanglah atribut kelas
      7. Implementasi mekanisime kontrol yang ditentukan didalam desain sistem
      8. Sesuaikan struktur kelas untuk memperkuat pewarisan
      9. Rancanglah pemesanan untuk mengimplementasi hubungan objek
      10. Kemas kelas-kelas dan asosiasi kedalam modul

 

  1. 5.   Metode Wirfs-Brock

Wirfs-Brock mendefinisikan kontinum tugas0tugas teknis dimana analisis membawa kepada desain. Pokok-pokok singkat mengenai tugas-tugas yang berhubungan dengan desain Wirfs-Brock adalah sebagai berikut:

  1. Konstruksikan protokol untuk masing-masing kelas
    1. Saring kontrak diantara objek-objek kedalam protokol tersaring
    2. Rancang masing-masing operasi (tanggung jawab)
    3. Rancang masing-masing protokol (desain interface)
    4. Buatlah spesifikasi desain untuk masing-masing kelas
      1. Gambarkan masing-masing kontrak secara detail
      2. Tentukan tanggung jawab privat
      3. Spesifikasikan algoritma bagi masing-masing operasi
      4. Catatlah pertimbangan dan batasan-batasan khusus
      5. Buatlah spesifikasi desain untuk masing-masing subsistem
        1. Identifikasi semua kelas yang dienkapsulasi
        2. Gambarkan kontrak secara detail dimana subsistem merupakan suatu server
        3. Catatlah pertimbangan dan batasan-batasan khusus

 

Masing-masing metode OOD diatas memiliki terminology dan langkah proses yang berbeda. Secara keseluruhan proses OOD-nya sangat konsisten. Untuk melakukan OOD, perekayasa perangkat lunak harus melewati langkah-langkah generic sebagai berikut:

  1. Gambarkan masing-masing subsistem dengan cara yang dapat diimplementasikan
    1. Alokasikan subsistem ke bagian pemrosesan dan tugas-tugas
    2. Pilih strategi untuk mengimplementasi manajemen data, dukungan interface, dan manajemen tugas
    3. Rancang mekanisme kontrol yang sesuai untuk sistem tersebut
    4. Kajilah dan perhatikan Trade-offs
  2. Desain objek:
    1. Desain masing-masing operasi pada suatu tingkat protokol
    2. Tentukan setiap kelas internal
    3. Desain struktur dan internal bagi atribut kelas
  3. Desain pesan:

Dengan menggunakan kolaborasi diantara objek dan hubungan objek, rancang model pemesanan.

  1. Kajilah model desain dan iterasi sesuai kebutuhan

Aliran proses untuk OOD atau angkah-langkah desain yang dibahas diatas adalah intraktif; yaitu bahwa langkah-langkah tersebut dapat dieksekusi secara incremental sepanjang aktifitas OOD tambahan samai duatu desain yang lengkap dihasilkan. Adapun aliran proses untuk OOD digambarkan sebagai berikut:

 

 

 

4. Kesimpulan

Pada tahapan analisis, masing-masing metode OOA (Object Oriented Analysis) memiliki terminology dan langkah proses yang berbeda. Secara keseluruhan proses OOA-nya mirip.

 

Pada tahapan desain, masing-masing metode OOD (Object Oriented Design) memiliki terminology dan langkah proses yang berbeda. Secara keseluruhan proses OOD-nya sangat konsisten.

 

Selain metode-metode OOAD yang telah dijelaskan diatas ada satu metode yang tidak bisa disebut sebagai “metode” yaitu UML (Unified Modeling Language). UML merupakan gabungan dari metode Booch, Rumbaugh (OMT) dan Jacobson. Tetapi UML ini akan mencakup lebih luas daripada OOAD. Pada pertengahan pengembangan UML dilakukan standarisasi proses dengan OMG (Object Management Group) dengan harapan UML akan menjadi bahasa standar pemodelan pada masa yang akan datang. UML disebut sebagai bahasa pemodelan bukan metode. Kebanyakan metode terdiri paling sedikit prinsip, bahasa pemodelan dan proses. Bahasa pemodelan (sebagian besar grafik) merupakan notasi dari metode yang digunakan untuk mendesain secara cepat. Ini yang akan kita pelajari di bab selanjutnya.

 

 

 

 

 

 

 

 

 

 

 

PETUNJUK PRAKTEK

EasyCase Profesional V.4.2.

 

 

Memulai EasyCase

Untuk mulai bekerja dengan EasyCase, klik ganda icon program ini dari desktop. Bila icon EasyCase tidak ada  di dekstop, aktifkan melalui tombol Start dari Taskbar pada Sistem Operasi Microsoft Windows.

 

 

 

 

 

  • Melalui menu Start pada taskbar, pilih menu Program, kemudian pilih menu EasyCASE Profesional 4.2, kemudian klik icon EasyCASE, maka akan ditampilkan kotak dialog berikut ini :

 

 

 

 

 

 

  • Kemudian Klik OK, maka akan tampil kotak dialog berikut ini :

 

 

 

 

 

 

 

  • Bila ingin memulai melakukan pembuatan Proyek DFD,  klik File, kemudian klik  Project, maka akan tampil kotak dialog berikut ini :

 

 

 

 

 

 

 

 

 

 

  • Pada kolom Directory  C:\  à ketik nama directori yang diinginkan untuk menyimpan data pembuatan DFD ( Data Flow Diagram ).
  • Penyimpanan juga bisa dilakukan pada Drive A:\ à kemudian ketik nama direktorinya.
  • Setelah itu klik icon Open. maka akan muncul kotak dialog berikut ini :

 

 

 

 

 

  • Setelah itu klik icon OK. Maka akan muncul kotal dialog berikut ini :

 

 

 

 

 

 

 

 

 

  • Pada kolom Project Name à ketik nama proyek yang diinginkan, misalkan     “ Sistem Simpan Pinjam PT.ABC “
  • Pada kolom Process Model Methodology à pilih model yang diinginkan, model yang umum dipakai ada 2 (dua ) yaitu Yourdon (DFD) dan Gane & Sarson (DFD). Defaultnya adalah Yourdon (DFD).
  • Pada kolom Data Model Methodology à abaikan pilihan.
  • Klik pada kolom Require Object Names.
  • Kemudian klik  Define Conteks Diagram, maka akan muncul kotak dialog berikut

 

 

 

 

 

 

  • Kemudian klik icon OK, maka akan muncul kotak dialog berikut ini :

 

 

 

 

 

 

 

 

 

 

 

  • Kemudian klik OK, maka akan muncul kotak dialog berikut ini :

 

 

 

 

 

 

 

 

  • Kemudian klik OK, maka akan muncul kotak dialog berikut ini :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gambar diatas adalah Konteks Diagram, pelajari simbol – simbol yang ada pada DFD, yang umum dipakai adalah : External Entity, Proses, Data Flow   ( aliran data ), dan Data Store ( simpanan data ). Pada konteks diagram tidak boleh ada simbol Data Strote ( simpanan data ).

  • Untuk memberi nama external entity ( kotak ), klik external entity, kemudian klik kanan pada mouse, setelah itu klik Name, maka akan tampak kotak dialog berikut ini  :

 

 

 

 

 

 

 

Ketik nama external entitynya, kemudian klik OK atau Cancel untuk membatalkan.

  • Untuk memberi nama aliran data ( garis ), klik aliran data, kemudian klik kanan pada mouse, setelah itu klik Name, maka akan tampak kotak dialog berikut ini

 

 

 

 

 

 

Ketik nama aliran data, kemudian klik OK atau Cancel untuk membatalkan.

  • Untuk  memberi nama Proses ( bulet ) dan Simpanan Data (  garis dua ) pada DFD level 1, perintahnya sama seperti pemberian nama Aliran Data dan External Entity.

 

 

 

 

 

 

 

 

 

 

  • Untuk membuat gambar DFD level 0, pada Konteks Diagram, klik Proses        ( bulet ),  kemudian klik kanan mouse, klik Goto Child, maka akan muncul kotak dialog berikut ini :

 

 

 

 

 

 

 

  • Klik Yes,  maka akan tampak kotak dialog berikut ini :

 

 

 

 

 

 

 

 

 

 

  • Pada kolom Child Type, kilk pilihan Data Flow Diagram ( dfd ), setelah itu Klik OK, maka akan muncul kotak dialog berikut ini  :

 

 

 

 

 

 

 

 

  • Klik No, maka akan muncul  layar kerja berikut ini :

 

 

 

 

 

 

 

 

 

 

 

  • Untuk membuat simbol Proses ( 1 ), klik simbol Proses ( bulet ), kemudian tempatkan pada lembaran kerja, maka akan tampak kotak dialog berikut ini :

 

 

 

 

 

 

  • Ketik nama Proses nya ( untuk proses 1 ), kemudian klik OK
  • Untuk pembuatan proses yang lainnya langkahnya sama pada gambar tersebut diatas.

 

Untuk menuju ( membuat ) gambar DFD level 1, langkahnya adalah sama seperti pada pembuatan gambar DFD level 0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bab VI.

UML (Unified Modeling Language)

 

  • Ø Pengenalan UML

UML (Unified Modeling Language) merupakan pengganti dari metode analisis berorientasi object dan design berorientasi object (OOA & OOD) yang dimunculkan sekitar akhir tahun 80-an dan awal tahun 90-an.

 

UML merupakan gabungan dari metode Grady Booch (Booch Method), James Rumbaugh (OMT) dan Ivar Jacobson (OOSE). Tetapi UML ini akan mencakup lebih luas daripada OOA&D. Pada pertengahan pengembangan UML dilakukan standarisasi proses dengan OMG (Object Management Group) dengan harapan UML akan menjadi bahasa standar pemodelan pada masa yang akan datang.

 

UML disebut sebagai bahasa pemodelan bukan metode. Kebanyakan metode terdiri paling sedikit prinsip, bahasa pemodelan dan proses. Bahasa pemodelan (sebagian besar grafik) merupakan notasi dari metode yang digunakan untuk mendesain secara cepat.

 

Bahasa pemodelan merupakan bagian terpenting dari metode. Ini merupakan bagian kunci tertentu untuk komunikasi. Jika anda ingin berdiskusi tentang desain dengan seseorang, maka Anda hanya membutuhkan bahasa pemodelan bukan proses yang digunakan untuk mendapatkan desain.

 

UML merupakan bahasa standar untuk penulisan Blueprint Software yang digunakan untuk Visualisasi (Visualize), Spesifikasi (Specify), Pembentukan (Construct) dan Pendokumentasian (Documentation) alat-alat dari sistem perangkat lunak.

 

  • Ø Sejarah UML

UML dimulai secara resmi pada oktober 1994, ketika Rumbaugh bergabung dengan Booch pada Relational Software Corporation. Proyek ini memfokuskan pada penyatuan metode Booch dan OMT. UML versi 0.8 merupakan metode penyatuan yang dirilis pada bulan Oktober 1995. Dalam waktu yang sama, Jacobson bergabung dengan Relational dan cakupan dari UML semakin luas sampai diluar perusahaan OOSE. Dokumentasi UML versi 0.9 akhirnya dirilis pada bulan Juni 1996. Meskipun pada tahun 1996 ini melihat dan menerima feedback dari komunitas Software Engineering . Dalam waktu tersebut, menjadi lebih jelas bahwa beberapa organisasi perangkat lunak melihat UML sebagai strategi dari bisnisnya. Kemudian dibangunlah UML Consortium dengan beberapa organisasi yang akan menyumbangkan sumber dayanya untuk bekerja, mengembangkan, dan melengkapi UML.

Di sini beberapa partner yang berkontribusi pada UML 1.0, diantaranya Digital Equipment Corporation, Hewlett-Packard, I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Relational, Texas Instruments dan Unisys. Dari kolaborasi ini dihasilkan UML 1.0 yang merupakan bahasa pemodelan yang ditetapkan secara baik, expressive, kuat, dan cocok untuk lingkungan masalah yang luas. UML 1.0 ditawarkan menjadi standarisasi dari Object Management Group (OMG). Dan pada Januari 1997 dijadikan sebagai standar bahasa pemodelan.

 

 

 

Antara Januari–Juli 1997 gabungan group tersebut memperluas kontribusinya sebagai hasil respon dari OMG dengan memasukkan Adersen Consulting, Ericsson, ObjectTimeLimeted, Platinum Technology, Ptech, Reich Technologies, Softeam, Sterling Software dan Taskon. Revisi dari versi UML (versi 1.1) ditawarkan kepada OMG sebagai standarisasi pada bulan Juli 1997. Dan pada bulan September 1997, versi ini dierima oleh OMG Analysis dan Design Task Force (ADTF) dan OMG ArchitectureBoard. Dan Akhirnya pada Juli 1997 UML versi 1.1 menjadi standarisasi.

 

Pemeliharaan UML terus dipegang oleh OMG Revision Task Force (RTF) yang dipimpin oleh Cris Kobryn. RTP merilis editorial dari UML 1.2 pada Juni 1998. Dan pada tahun 1998 RTF juga merilis UML 1.3 disertai dengan user guide dan memberikan technical cleanup.

 

  • Ø Pengertian UML

UML adalah bahasa untuk menspesifikasi, memvisualisasi, membangun dan mendokumentasikan artifacts (bagian dari informasi yang digunakan atau dihasilkan oleh proses pembuatan perangkat lunak, artifact tersebut dapat berupa model, deskripsi atau perangkat lunak) dari sistem perangkat lunak, seperti pada pemodelan bisnis dan sistem non perangkat lunak lainnya [HAN98]. Selain itu UML adalah bahasa pemodelan yang menggunakan konsep orientasi object. UML dibuat oleh Grady Booch, James Rumbaugh, dan Ivar Jacobson di bawah bendera Rational Software Corp [HAN98]. UML menyediakan notasi-notasi yang membantu memodelkan sistem dari berbagai perspektif. UML tidak hanya digunakan dalam pemodelan perangkat lunak, namun hampir dalam semua bidang yang membutuhkan pemodelan..

 

  • Ø Gambaran Umum UML

Gambaran umum mengenai UML dapat dijelaskan berdasarkan kegunaan dari UML itu sendiri, yaitu:

  1. 1.      Modeling Language, UML sebagai bahasa untuk pemodelan sistem

UML merupakan bahasa pemodelan yang memiliki pembendaharaan kata dan cara untuk mempresentasikan secara fokus pada konseptual dan fisik dari suatu sistem. Contoh untuk sistem software yang intensive membutuhkan bahasa yang menunjukkan pandangan yang berbeda dari arsitektur sistem, ini sama seperti menyusun/mengembangkan software development life cycle. Dengan UML akan memberitahukan kita bagaimana untuk membuat dan membaca bentuk model yang baik, tetapi UML tidak dapat memberitahukan model apa yang akan dibangun dan kapan akan membangun model tersebut. Ini merupakan aturan dalam software development process.

 

  1. 2.      Visualizing, UML sebagai bahasa untuk menggambarkan sistem

UML tidak hanya merupakan rangkaian simbol grafikal, cukup dengan tiap simbol pada notasi UML merupakan penetapan semantik yang baik. Dengan cara ini, satu pengembang dapat menulis model UML dan pengembang lain atau perangkat yang sama lainnya dapat mengartikan bahwa model tersebut tidak ambigu. Hal ini akan mengurangi error yang terjadi karena perbedaan bahasa dalam komunikasi model konseptual dengan model lainnya.

 

UML menggambarkan model yang dapat dimengerti dan dipresentasikan ke dalam model tekstual bahasa pemograman. Contohnya kita dapat menduga suatu model dari sistem yang berbasis web tetapi tidak secara langsung dipegang dengan mempelajari code dari sistem. Dengan model UML maka kita dapat memodelkan suatu sistem web tersebut dan direpresentasikan ke bahasa pemrograman.

 

UML merupakan suatu model eksplisit yang menggambarkan komunikasi informasi pada sistem. Sehingga kita tidak kehilangan informasi code implementasi yang hilang dikarenakan developer memotong coding dari implementasi.

 

  1. 3.      Specifying, UML sebagai bahasa untuk menspesifikasikan sistem

Maksudnya membangun model yang sesuai, tidak ambigu dan lengkap. Pada faktanya UML menunjukan semua spesifikasi keputusan analisis, desain dan implementasi yang penting yang harus dibuat pada saat pengembangan dan penyebaran dari sistem software intensif.

 

  1. 4.      Constructing, UML sebagai bahasa untuk membangun sistem

UML bukan bahasa pemograman visual, tetapi model UML dapat dikoneksikan secara langsung pada bahasa pemograman visual. Maksudnya membangun model yang dapat dimapping ke bahasa pemograman seperti java, C++, VB atau tabel pada database relational atau penyimpanan tetap pada database berorientasi object.

 

  1. 5.      Documenting, UML sebagai bahasa untuk pendokumentasian sistem

Maksudnya UML menunjukan dokumentasi dari arsitektur sistem dan detail dari semuanya.UML hanya memberikan bahasa untuk memperlihatkan permintaan dan untuk tes. UML menyediakan bahasa untuk memodelkan aktifitas dari perencanaan project dan manajemen pelepasan (release management).

  • Ø Area dan Tujuan Penggunaan UML

UML (Unified Modeling Language) digunakan paling efektif pada domain seperti:

  1. Sistem Informasi Perusahaan
  2. Sistem Perbankan dan Perekonomian
  3. Bidang Telekomunikasi
  4. Bidang Transportasi
  5. Bidang Penerbangan
  6. Bidang Perdagangan
  7. Bidang Pelayanan Elekronik
  8. Bidang Pengetahuan
  9. Bidang Pelayanan Berbasis Web Terdistribusi

 

UML tidak terbatas untuk pemodelan software saja. Pada faktanya UML banyak digunakan untuk memodelkan sistem non-software seperti:

  1. Aliran kerja pada sistem perundangan.
  2. Struktur dan kelakuan dari Sistem Kepedulian Kesehatan Pasien
  3. Desain hardware dll.

 

Tujuan penggunaan UML adalah, sebagai berikut:

  1. Memodelkan suatu sistem (bukan hanya perangkat lunak) yang menggunakan konsep berorientasi object
  2. Menciptakan suatu bahasa pemodelan yang dapat digunakan baik oleh manusia maupun mesin.

 

 

 

 

Keunggulan menggunakan UML dibandingkan menggunakan metodologi terstruktur:

  1. Uniformity

Pengembang cukup menggunakan 1 metodologi dari tahap analsis hingga perancangan. Memungkinkan merancang komponen antarmuka secara terintegrasi bersama perancangan PL dan perancangan struktur data

  1. Understandability

Kode yang dihasilkan dapat diorganisasi kedalam kelas-kelas yangberhubungan dengan masalah sesungguhnya sehingga lebih mudah untuk dipahami.

  1. Stability

Kode program yang dihasilkan relatif stabil sepanjang waktu, karena mendekati permasalahan yang sesungguhnya.

  1. Reusability

Dengan metodologi berorientasi objek, dimungkinkan penggunaan ulang kode, sehingga pada akhirnya akan sangat mempercepat waktu pengembangan perangkat lunak (atau sistem informasi)

 

  • Ø Bangunan Dasar UML

Untuk memahami UML diperlukan pemahaman konseptual. Metodologi UML menggunakan 3 bangunan dasar untuk mendeskripsikan sistem.perangkat lunak yang akan dikembangkan, yaitu:

  1. Things (sesuatu)
  2. Relationship (hubungan)
  3. Diagrams (diagram)

Setiap bangunan dasar tersebut dapat diterapkan sepanjang tahap pengembangan sistem, dan masing-masingnya dapat digunakan saling melengkapi satu sama lainnya. Penjelasan dari ketiga bangunan dasar UML yang disebutkan diatas adalah sebagai berikut:

  1. Things (sesuatu)

Ada 4 macam Things dalam UML yaitu:

  1. Structural Things

Merupakan bagian yang relatif statis dalam model UML. Bagian yang relatf statis dapat berupa elemen-elemen yang besifat fisik maupun konseptual. Secara keseluruhan ada 7 macam Structural Things:

1)       Classes / Kelas adalah himpunan dari objek-objek yang berbagi atribut serta operasi yang sama. Kelas mengimplementasikan satu atau lebih antarmuka. Secara grafis, kelas digambarkan dengan empat persegi panjang yang memuat nama, atribut serta operasi yang dimilikinya.

 

2)       Interfaces / Antarmuka adalah kumpulan dari operasi-operasi yang menspesifikasikan layanan/servis suatu kelas atau komponen/objek. Antarmuka ini mendeskripsikan perilaku yang tampak dari luar suatu elemen. Secara grafis, antarmuka digambarkan dengan lingkaran kecil dan nama yang didahului dengan garis tegak.

 

3)      Collaborations / Kolaborasi adalah sesuatu yang mendefinisikan interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan perilaku yang lebih besar dan sinergis. Secara grafis, kolaborasi digambarkan  elips bergaris putus-putus yang memuat nama kolaborasi itu.

 

4)       Use-Cases adalah deskripsi dari urutan aksi-aksi yang ditampilkan sistem dengan hasil yang terukur bagi suatu Actor. Use-Case digunakan untuk menstrukturkan perilaku pada suatu model. Secara grafis use case digambarkan dengan elips tegas yang berisi namanya.

 

5)    Active Class / Kelas Aktif adalah kelas (biasa) dimana objek-objek yang dimilikinya  memiliki 1 atau lebih proses dan lebih jauh menginisialisasi suatuu aktifitas kendali. Secara grafis, kelas aktif digambarkan sebagai kelas biasa tapi memiliki batas yang lebih tebal, yang memuat nama, atribut serta operasi yang dimilikinya.

 

6)    Components / Komponen adalah bagian fisik dan bagian yang dapat digantikan dalam suatu sistem, misalnya berkas ActiveX, COM, DLL yang keberadaanya dibutuhkan oleh sistem yang akan dikembangkan. Komponen ini merepresentasikan konsep-konsep reusable component. Secara grafis, komponen digambarkan dengan empat persegi panjang seperti kelas tetapi ditambahkan Tab.

 

7)    Nodes / Simpul adalah elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi; secara umum menggunakan kapasitas memori dan kemampuan pemrosesan. Secara grafis, simpul digambarkan sebagai kubus yang berisi namanya.

 

  1. Behavioral Things

Merupakan bagian yang dinamis pada model UML, biasanya merupakan kata kerja dari model UML yang mencerminkan perilaku sepanjang ruang dan waktu. Ada 2 macam Behavior Things, yaitu:

1)     Interactions / interaksi adalah suatu perilaku yang mencakup himpunan pesan-pesan (message) atau kumpulan objek & operasinya yang diperlukan untuk menyelesaikan suatu fungsi tertentu. Sebuah interaksi terdiri dari beberapa unsur, yaitu: Pesan, Perilaku dan Link, Secara grafis, pesan digambarkan dengan tanda panah tegas dan memuat nama operasinya.

 

2)    State Machine, adalah perilaku yang menspesifikasikan urutan kedudukan suatu objek atau interaksi-interaksi sepanjang waktu untuk menanggapi event-event yang terjadi. Penggambaran state memiliki beberapa unsur, yaitu: State itu sendiri, Transisi (perubahan dari suatu state ke state lain), Event (suatu keadaan yang memicu sebuah transisi), Aktifitas (tanggapan terhadap transisi). SecaragrafisState digambarkan sebagai empat persegi panjang dengan sudut tumpul, yang memuat namanya serta subsistem didalamnya jika ada.

 

  1. Grouping Things

Merupakan bagian pengorganisasian (Packages) dalam UML. Digunakan untuk menggambarkan paket-paket untuk menyederhanakan model-model UML yang rumit. Paket-paket ini kemudian dapat di dekomposisi. Paket berguna untuk pengelompokkan sesuatu misalnya model-model serta subsistem-subsistem.

  1. Annotational Things

Merupakan bagian yang memperjelas model UML (Notes), seperti komentar-komentar yang menjelaskan fungsi secara rinci serta ciri-ciri tiap elemen dalam model UML.

 

  1. Relationship (hubungan)

Relationship adalah hubungan-hubungan yang terjadi antara elemen dalam UML. Hubungan-hubungan ini Penting sekali dalam UML. Model-model UML harus dibuat menggunakan relationship. Ada 4 macam relationship dalam UML yang dapat digunakan untuk menggambarkan model-model UML yang representative:

  1. Dependency (kebergantungan)

Dependency adalah hubungan dimana perubahan yang terjadi dalam suatu eleman independent (mandiri) akan mempengaruhi elemen yang bergantung padanya. Secara grafis, dependency digambarkan dengan tanda panah terputus-putus.

 

  1. Association (asosiasi)

Asosiasi adalah sesuatu yang menghubungkan antara suatu objek dengan objek lainnya yang menggambarkan bagaimana hubungan antar objek tersebut dalam bentuk agregasi. Secara grafis, asosiasi digambarkan dengan garis tegas tanpa tanda panah.

 

 

  1. Generalizations (generalisasi)

Generalisasi adalah hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari obyek yang ada diatasnya yaitu objek induk (ancestor). Arah dari atas ke bawah atau dari ancestor ke descendent dinamakan Spesialisasi. Arah sebaliknya yaitu bawah ke atas dinamakan Generalisasi. Secara grafis Generalisasi digambarkan dengan garis dan panah yang berkepala sigitiga kosong dan mengarah ke objek induk.

 

  1. Realizations (realisasi)

Realisasi adalah operasi yang benar-benar dilakukan oleh suatu objek. Secara grafis, realisasi digambarkan dengan tanda panah bergaris putus-putus dengan kepala panah kosong.

 

  1. Diagrams (diagram)

Suatu sistem yang kompleks harus dapat dipandang dari sudut yang berbeda-beda sehingga didapat pemahaman secara menyeluruh. Untuk keperluan tersebut UML menyediakan 9 jenis diagrams yang dapat dikelompokkan berdasarkan sifatnya; Statis atau Dinamis. Kesembilan diagram ini tidak mutlak digunakan atau dibuat sesuai kebutuhan. Pada pemodelan UML dimungkinkan menggunakan diagram lain sejauh diagram tersebut dapat membantu pemahaman mendalam tentang suatu sistem atau perangkat lunak. Ke-9 diagram tersebut adalah sebagai berikut:

  1. Class Diagrams (Statis)

Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka, kolaborasi-kolaborasi, dan relasi-relasi. Diagram ini umum ditemui pada pemodelan sistem berorientasi objek. Meski sifatnya statis, sering pula memuat kelas-kelas aktif.

 

 

 

–          Class Diagram menggambarkan interaksi antar kelas dalam sistem tersebut.

–          Pembuatan Class sama dengan pembuatan Objek-objek

  1. Object Diagrams (Statis)

Diagram ini memperlihatkan objek-objek serta relasi-relasi antar objek. Diagram objek memperlihatkan instantiasi statis dari segala sesuatu yang dijumpai dari pada diagram kelas.

  1. Use-Case Diagrams (Statis)

Dagram ini memperlihatkan himpunan Use-Case dan Actor-Actor (jenis khusus dari kelas). Diagram ini penting untuk mengorganisasi dan memodelkan perilaku dari suatu sistem yang dibutuhkan serta diharapkan pengguna.

 

 

 

–          Use-Case diagram menggambarkan hubungan use-case dengan actor.

–          Use-case merepresentasikan fungsi, kebutuhan dari perpektif user

–          Actor adalah orang atau sistem yang menerima atau memberikan informasi dari sistem ini

  1. Sequence Diagrams (Dinamis)

Diagram sequence (urutan) adalah diagram interaksi yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu.

 

 

 

–          Sequence Diagram mengambarkan alur kerja dari fungsi-fungsi dalam sistem dengan use-case dimana didalamnya terdapat actor

–          Actor adalah orang atau sistem yang menerima atau memberikan informasi dari sistem ini. Dalam gambar diatas Actor-nya adalah Joe.

–          Diagram ini sangat memperhatikan waktu/ terurut berdasarkan kejadian (sequence)

 

  1. Collaboration Diagrams (Dinamis)

Diagram kolaborasi adalah diagram interaksi yang menekankan organisasi structural dari objek-objek yang menerima serta mengirim pesan (message).

 

 

 

–          Informasi yang disampaikan sama dengan sequencial diagram namun beda dalam pengambaran dan kegunaan saja.

–          Dalam diagram ini digambarkan hubungan antar objek dan actor dengan tidak memperhatikan waktu/urutan

  1. State Chart Diagram (Dinamis)

Diagram ini memperlihatkan state-state pada sistem; memuat state, transisi, event, serta aktifitas. Diagram ini terutama penting untuk memperlihatkan sifat dinamis dari antarmuka, kelas, kolaborasi, dan terutama penting pada pemodelan sistem-sistem reaktif.

 

 

–          State Chart Diagram memberikan berbagai cara/jalan kepada model untuk berbagai kejadian yang mungkin terjadi dalam sebuah objek

–          Diagram ini digunakan untuk menggambarkan berbagai prilaku objek yang sifatnya dinamis dalam sebuah sistem

  1. Activity Diagrams (Dinamis)

Diagram ini adalah tipe khusus dari diagram state yang memperlihatkan aliran dari suatu aktifitas ke aktifitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam pemodelan fungsi-fungsi dalam suatu sistem dan memberi tekanan pada aliran kendali antar objek.

 

 

 

–          Memberikan gambaran ilustrasi alur dari setiap fungsi yang ada dalam sistem

–          Aliran dimulai dari suatu titik hingga ke titik akhir yang disepakati.

 

  1. Component Diagrams (Statis)

Diagram ini memperlihatkan organisasi serta kebergantunngan pada komponen-komponen yang telah ada sebelumnya. Diagram ini berhubungan dengan diagram kelas dimana komponen secara tipikal dipetakan kedalam satu atau lebih kelas-kelas, antarmuka-antarmuka, serta kolaborasi-kolaborasi.

 

 

 

–          Menggambarkan model secara fisik sebagai sebuah software komponen yang ada dalam sebuah sistem

–          Komponen-komponen tersebut nantinya diarahkan pada suatu bahasa pemrograman tertentu

 

  1. Deployment Diagrams (Statis)

Diagram ini memperlihatkan konfigurasi saat aplikasi dijalankan (run-time), memuat simpul-simpul atau node beserta komponen-komponen yang ada didalamnya. Deployment Diagrams berhubungan erat dengan diagram komponen dimana Deployment Diagrams memuat satu atau lebih komponen-komponen. Diagram ini sangat berguna saat aplikasi kita berlaku sebagai aplikasi yang dijalankan pada banyak mesin (distributed computing).

 

 

 

–          Diagram Deployment menggambarkan bentuk layout secara fisik bentuk jaringan dan posisi komponen-komponen dari sistem

–          Pendekatan yang digunakan dalah pendekatan terhadap hasil implementasi/ program

 

  • Ø Langkah-Langkah Penggunaan UML

Menurut Sri Dharwiyanti (ilmukomputer.com), langkah-langkah pengembangan perangkat lunak menggunakan pendekatan berorientasi Objek dengan bantuan pemodelan visual UML melalui tahapan-tahapan berikut:

  1. Buatlah daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul.

Dari permasalahan diatas dapat digambarkan bussines process sebagai berikut:

 

 

 

  1. Petakan use case untuk tiap business process untuk mendefinisikan dengan tepat fungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use-case diagram dan lengkapi dengan requirement, constraints dan catatan-catatan lain.
  2. Buatlah deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem.
  3. Definisikan requirement lain (non-fungsional, security dan sebagainya) yang juga harus disediakan oleh sistem.
  4. Berdasarkan use-case diagram, mulailah membuat activity diagram.
  5. Definisikan objek-objek level atas (package atau domain) dan buatlah sequence dan/atau collaboration diagram untuk tiap alir pekerjaan. Jika sebuah use-case memiliki kemungkinan alir normal dan error, buatlah satu diagram untuk masing-masing alir.
  6. Buarlah rancangan user interface model yang menyediakan antarmuka bagi pengguna untuk menjalankan skenario use-case.
  7. Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package atau domain dipecah menjadi hirarki class lengkap dengan atribut dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi dengan class lain.
  8. Setelah class diagram dibuat, kita dapat melihat kemungkinan pengelompokan class menjadi komponen-komponen. Karena itu buatlah component diagram pada tahap ini. Juga, definisikan tes integrasi untuk setiap komponen meyakinkan ia berinteraksi dengan baik.
  9. Perhalus deployment diagram yang sudah dibuat. Detilkan kemampuan dan requirement piranti lunak, sistem operasi, jaringan, dan sebagainya. Petakan komponen ke dalam node.
  10. Mulailah membangun sistem. Ada dua pendekatan yang dapat digunakan:
  1. Pendekatan use case, dengan meng-assign setiap use case kepada tim pengembang tertentu untuk mengembangkan unit code yang lengkap dengan tes.
  2. Pendekatan komponen, yaitu meng-assign setiap komponen kepada tim pengembang tertentu.
  1. Lakukan uji modul dan uji integrasi serta perbaiki model berserta code-nya. Model harus selalu sesuai dengan code yang aktual.
  2. Piranti lunak siap dirilis.

 

  • Ø  Tools Pendukung UML

Saat ini banyak sekali tool pendesainan yang mendukung UML, baik itu tool komersial maupun opensource. Beberapa diantaranya adalah:

  1. Rational Rose (www.rational.com)
  2. Together (www.togethersoft.com)
  3. Object Domain (www.objectdomain.com)
  4. Jvision (www.object-insight.com)
  5. Objecteering (www.objecteering.com)
  6. MagicDraw (www.nomagic.com/magicdrawuml)
  7. Visual Object Modeller (www.visualobject.com)

 

Data seluruh tool yang mendukung UML, lengkap beserta harganya (dalam US dolar) bisa anda pelajari di situs

http://www.objectsbydesign.com/tools/umltools_byCompany.html

Disamping itu, daftar tool UML berikut fungsi dan perbandingan kemampuannya juga dapat dilihat di http://www.jeckle.de/umltools.htm. Pointer Penting UML sebagai referensi dalam mempelajari dan menggunakan UML, situs-situs yang merupakan pointer penting adalah:

–          http://www.cetus-links.org/oo_uml.html

–          http://www.omg.org

–          http://www.omg.org/technology/uml/

–          http://www.rational.com/uml

–          http://www.uml.org/

 

 

Perihal betara
berbagi dengan pengalaman yang ada

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: